From a97d90ba068cbd5c12269b31fd2492259c174e88 Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Mon, 10 Sep 2018 18:11:08 +0000 Subject: [PATCH] Bug 1489269 [wpt PR 12879] - HTML: Add test for document.open() and MutationObserver, a=testonly Automatic update from web-platform-testsHTML: Add test for document.open() and MutationObserver (#12879) For https://github.com/whatwg/html/issues/3818. -- wpt-commits: cf0ea11ebe5801798d0390f7747b056110f74ed9 wpt-pr: 12879 --- testing/web-platform/meta/MANIFEST.json | 10 ++++++++++ .../mutation-observer.window.js | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index f5f9403ec246c..c18887e529378 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -368902,6 +368902,12 @@ {} ] ], + "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js": [ + [ + "/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.html", + {} + ] + ], "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window.js": [ [ "/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window.html", @@ -613663,6 +613669,10 @@ "4efbb863c6372a3ee04d11f38d7ee56a44a2ac7d", "testharness" ], + "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js": [ + "34e73146a9d8e4ecab1e74a0079cd721e7306e59", + "testharness" + ], "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window.js": [ "d4a9296fca66d3017c267a8d8951bef2dcbee238", "testharness" diff --git a/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js b/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js new file mode 100644 index 0000000000000..34e73146a9d8e --- /dev/null +++ b/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js @@ -0,0 +1,19 @@ +async_test(t => { + const frame = document.body.appendChild(document.createElement("iframe")); + t.add_cleanup(() => { frame.remove(); }); + const originalHTMLElement = frame.contentDocument.documentElement; + assert_equals(originalHTMLElement.localName, "html"); + const observer = new frame.contentWindow.MutationObserver(t.step_func_done(records => { + // Even though we passed `subtree: true` to observer.observe, due to the + // fact that "replace all" algorithm removes children with the "suppress + // observers flag" set, we still only get the html element as the sole + // removed node. + assert_equals(records.length, 1); + assert_equals(records[0].type, "childList"); + assert_equals(records[0].target, frame.contentDocument); + assert_array_equals(records[0].addedNodes, []); + assert_array_equals(records[0].removedNodes, [originalHTMLElement]); + })); + observer.observe(frame.contentDocument, { childList: true, subtree: true }); + assert_equals(frame.contentDocument.open(), frame.contentDocument); +}, "document.open() should inform mutation observer of node removal");