diff options
author | Arseniy Ivanov <freeatnet@freeatnet.com> | 2017-02-02 17:51:54 -0500 |
---|---|---|
committer | Arseniy Ivanov <freeatnet@freeatnet.com> | 2017-02-02 19:14:49 -0500 |
commit | ca73b30fcfd0ffc18f1e834c4d3bf9760fc01e8f (patch) | |
tree | dd1423dc402da83e7506c12ed40e5878f4765310 | |
parent | 94e3c900294372fd4bc95e694668b2b07aa1c93a (diff) | |
download | servo-ca73b30fcfd0ffc18f1e834c4d3bf9760fc01e8f.tar.gz servo-ca73b30fcfd0ffc18f1e834c4d3bf9760fc01e8f.zip |
Add tests for windowless element's event handler behaviour
-rw-r--r-- | tests/wpt/metadata/MANIFEST.json | 6 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html | 48 |
2 files changed, 54 insertions, 0 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 51d045d6c52..26692c67f87 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -45890,6 +45890,12 @@ "path": "html/semantics/embedded-content/the-img-element/not-rendered-dimension-getter.html", "url": "/html/semantics/embedded-content/the-img-element/not-rendered-dimension-getter.html" } + ], + "html/webappapis/scripting/events/body-exposed-window-event-handlers.html": [ + { + "path": "html/webappapis/scripting/events/body-exposed-window-event-handlers.html", + "url": "/html/webappapis/scripting/events/body-exposed-window-event-handlers.html" + } ] } }, diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html new file mode 100644 index 00000000000..e771b64a27e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/scripting/events/body-exposed-window-event-handlers.html @@ -0,0 +1,48 @@ +<!doctype html> +<meta charset="utf-8"> +<title></title> +<body></body> +<script src="https://code.jquery.com/jquery-1.10.2.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +var elements = ['body', 'frameset']; +var handlers = [ + 'afterprint', 'beforeprint', 'beforeunload', 'hashchange', + 'languagechange', 'message', 'offline', 'online', 'pagehide', + 'pageshow', 'popstate', 'rejectionhandled', 'storage', + 'unhandledrejection', 'unload']; + +elements.forEach(function (elementName) { + handlers.forEach(function (eventName) { + var handlerName = "on" + eventName; + + test(function() { + var windowHandler = function () { return "Handler attached to the window"; }; + window[handlerName] = windowHandler; + + var d = (new DOMParser).parseFromString('', 'text/html'); + var b = d.createElement(elementName); + + assert_equals(b[handlerName], null); + + window[handlerName] = null; + }, "Return null when getting the " + eventName + " event handler of a windowless " + elementName); + + test(function() { + var windowHandler = function () { return "Handler attached to the window"; }; + window[handlerName] = windowHandler; + + var d = (new DOMParser).parseFromString('', 'text/html'); + var b = d.createElement(elementName); + b[handlerName] = function() { return "Handler attached to windowless element"; }; + + assert_equals(window[handlerName], windowHandler); + assert_equals(b[handlerName], null); + + // Clean up window event handler + window[handlerName] = null; + }, "Ignore setting of " + eventName + " window event handlers on windowless " + elementName); + }); +}); +</script> |