summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/browsers/the-window-object/close-method.window.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/html/browsers/the-window-object/close-method.window.js
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/html/browsers/the-window-object/close-method.window.js')
-rw-r--r--testing/web-platform/tests/html/browsers/the-window-object/close-method.window.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/browsers/the-window-object/close-method.window.js b/testing/web-platform/tests/html/browsers/the-window-object/close-method.window.js
new file mode 100644
index 0000000000..0288f9cab8
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/the-window-object/close-method.window.js
@@ -0,0 +1,39 @@
+function assert_closed_opener(w, closed, opener) {
+ assert_equals(w.closed, closed);
+ assert_equals(w.opener, opener);
+}
+
+async_test(t => {
+ const openee = window.open();
+ assert_closed_opener(openee, false, self);
+ openee.onunload = t.step_func(() => {
+ assert_closed_opener(openee, true, self);
+ t.step_timeout(() => {
+ assert_closed_opener(openee, true, null);
+ t.done();
+ }, 0);
+ });
+ openee.close();
+ assert_closed_opener(openee, true, self);
+}, "window.close() queues a task to discard, but window.closed knows immediately");
+
+async_test(t => {
+ const openee = window.open("", "greatname");
+ assert_closed_opener(openee, false, self);
+ openee.close();
+ assert_closed_opener(openee, true, self);
+ const openee2 = window.open("", "greatname");
+ assert_not_equals(openee, openee2);
+ assert_closed_opener(openee, true, self); // Ensure second window.open() call was synchronous
+ openee2.onunload = t.step_func(() => {
+ assert_closed_opener(openee2, true, self);
+ t.step_timeout(() => {
+ assert_closed_opener(openee, true, null);
+ assert_closed_opener(openee2, true, null);
+ t.done();
+ }, 0);
+ });
+ openee2.close();
+ assert_closed_opener(openee, true, self); // Ensure second close() call was synchronous
+ assert_closed_opener(openee2, true, self);
+}, "window.close() affects name targeting immediately");