diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java index 3ad573c0..3d1a1a27 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextStorageState.java @@ -139,4 +139,20 @@ public class TestBrowserContextStorageState extends TestBase { } context2.close(); } + + @Test + void shouldSerialiseStorageStateWithLoneSurrogates() { + page.navigate(server.EMPTY_PAGE); + page.evaluate("chars => window.localStorage.setItem('foo', String.fromCharCode(55934))"); + String storageState = context.storageState(); + assertJsonEquals("{" + + "cookies:[]," + + "origins:[{\n" + + " origin: 'http://localhost:" + server.PORT + "',\n" + + " localStorage: [{\n" + + " name: 'foo',\n" + + " value: '" + (char)55934 + "'\n" + + " }]\n" + + "}]}", new Gson().fromJson(storageState, JsonObject.class)); + } }