45 lines
1.5 KiB
HTML
45 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
<script>
|
|
description("Checks that the Window's EventListener API can be called without an explicit 'this' value.");
|
|
|
|
var wasWindowEventListenerCalled = false;
|
|
|
|
var addEventListenerFunction = window.addEventListener;
|
|
shouldNotThrow("addEventListenerFunction.call(undefined, 'myevent', function() { wasWindowEventListenerCalled = true; });");
|
|
|
|
var dispatchEventFunction = window.dispatchEvent;
|
|
shouldBeTrue("dispatchEventFunction.call(undefined, new Event('myevent'))");
|
|
|
|
shouldBeTrue("wasWindowEventListenerCalled");
|
|
|
|
// As of early 2016, this matches Firefox and Chrome's behavior: We fall back to using the global window, even if the function
|
|
// came from a non-Window object.
|
|
wasWindowEventListenerCalled = false;
|
|
|
|
bodyDispatchEventFunction = document.body.dispatchEvent;
|
|
shouldBeTrue("bodyDispatchEventFunction.call(undefined, new Event('myevent'))");
|
|
|
|
shouldBeTrue("wasWindowEventListenerCalled");
|
|
|
|
wasWindowEventListenerCalled = false;
|
|
|
|
var xhr = new XMLHttpRequest();
|
|
xhrDispatchEventFunction = xhr.dispatchEvent;
|
|
shouldBeTrue("xhrDispatchEventFunction.call(undefined, new Event('myevent'))");
|
|
|
|
shouldBeTrue("wasWindowEventListenerCalled");
|
|
|
|
wasWindowEventListenerCalled = false;
|
|
shouldNotThrow("addEventListenerFunction('myevent2', function() { wasWindowEventListenerCalled = true; });");
|
|
shouldBeTrue("window.dispatchEvent(new Event('myevent2'))");
|
|
shouldBeTrue("wasWindowEventListenerCalled");
|
|
|
|
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|