RFR: 8255940: localStorage is null after window.close() [v2]
Jay Bhaskar
duke at openjdk.java.net
Sat Feb 5 07:37:16 UTC 2022
On Fri, 28 Jan 2022 00:11:40 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:
>> Jay Bhaskar has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
>>
>> - Merge branch 'openjdk:master' into PRLocalstorage
>> - Window.close(), Fix for localstoarge
>
> modules/javafx.web/src/test/java/test/javafx/scene/web/LocalStorageTest.java line 2:
>
>> 1: /*
>> 2: * Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
>
> Copyright should be a single year (2022)
done
> modules/javafx.web/src/test/java/test/javafx/scene/web/LocalStorageTest.java line 48:
>
>> 46: final WebEngine webEngine = getEngine();
>> 47: webEngine.setJavaScriptEnabled(true);
>> 48: webEngine.setUserDataDirectory(new File("/tmp/java-store"));
>
> You should not hard-code /tmp/. You can either use a local subdirectory in the build dir (which some other tests do), or else you will need to use something like `Files.createTempDirectory("webstorage")`. If you use the latter, then you will need to worry about how to clean up after the test, so the former seems better.
i think /tmp/java-store is ok, as it would not require cleanup
> modules/javafx.web/src/test/java/test/javafx/scene/web/LocalStorageTest.java line 70:
>
>> 68: WebView view = getView();
>> 69: view.getEngine().executeScript("test_local_storage_set();");
>> 70: String s = (String) view.getEngine().executeScript("document.getElementById('key').innerText;");
>
> This will work, but it might be cleaner to add a JavaScript `getLocalStorage` method so you don't have to get it from a DOM element.
The method webEngine.executeScript("localStorage;") returns JSObject and in to get data members we need to call js.getMember(...) , getMember is not available in our code base, so i used tring s = (String) view.getEngine().executeScript("document.getElementById('key').innerText;");
> modules/javafx.web/src/test/java/test/javafx/scene/web/LocalStorageTest.java line 80:
>
>> 78: submit(() -> {
>> 79: WebView view = getView();
>> 80: view.getEngine().executeScript("delete_items();");
>
> You need to set some items first before deleting them if you want it to be an effective test of this case.
The test runs after testLocalStorageSet , so there would be items in localstorage
-------------
PR: https://git.openjdk.java.net/jfx/pull/703
More information about the openjfx-dev
mailing list