summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js
diff options
context:
space:
mode:
Diffstat (limited to 'LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js')
-rw-r--r--LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js b/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js
new file mode 100644
index 0000000..b27df61
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js
@@ -0,0 +1,41 @@
+description("Tests the assertion that the GeolocationClient should not be updating<br>" +
+ "when the GeolocationController is destroyed.<br>" +
+ "See https://bugs.webkit.org/show_bug.cgi?id=52216");
+
+var otherWindow;
+
+if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.setCanOpenWindows();
+ layoutTestController.setCloseRemainingWindowsWhenComplete(true);
+} else
+ testFailed('This test can not be run without the LayoutTestController');
+
+function gotPosition(p)
+{
+ testPassed("Received Geoposition.");
+ otherWindow.close();
+ window.setTimeout(waitForWindowToClose, 0);
+}
+
+function waitForWindowToClose()
+{
+ if (!otherWindow.closed) {
+ window.setTimeout(waitForWindowToClose, 0);
+ return;
+ }
+ testPassed("Success - no crash!");
+ finishJSTest();
+}
+
+function failedToCreateWatch(e)
+{
+ testFailed("Failed to create watch: " + e);
+ finishJSTest();
+}
+
+debug("Main page opening resources/window-close-popup.html");
+otherWindow = window.open("resources/window-close-popup.html");
+
+window.jsTestIsAsync = true;
+window.successfullyParsed = true;