2 <script src=
"../../resources/js-test.js"></script>
5 description('EventTarget.addEventListener and EventTarget.removeEventLister should throw on invalid arguments.');
7 function listener(event
)
12 debug('void addEventListener(DOMString type, EventListener listener, optional boolean useCapture)');
13 // FIXME: should throw on missing arguments: http://crbug.com/353484
14 // shouldThrow('document.addEventListener()');
15 // shouldThrow('document.addEventListener("foo")');
16 var AddEventListenerNoArguments
= 656;
17 shouldBeFalse('internals.isUseCounted(document, AddEventListenerNoArguments)');
18 shouldBe('document.addEventListener()', 'undefined');
19 shouldBeTrue('internals.isUseCounted(document, AddEventListenerNoArguments)');
20 var AddEventListenerOneArgument
= 657;
21 shouldBeFalse('internals.isUseCounted(document, AddEventListenerOneArgument)');
22 shouldBe('document.addEventListener("foo")', 'undefined');
23 shouldBeTrue('internals.isUseCounted(document, AddEventListenerOneArgument)');
24 shouldNotThrow('document.addEventListener("foo", listener)');
25 shouldNotThrow('document.addEventListener("", listener)');
26 shouldNotThrow('document.addEventListener("", function(){})');
27 shouldNotThrow('document.addEventListener("bar", listener, false)');
28 shouldNotThrow('document.addEventListener("bar", listener, true)');
30 shouldBe('document.addEventListener(null)', 'undefined');
31 shouldNotThrow('document.addEventListener(null, listener)'); // converted to "null"
32 // FIXME: throw on |null|: http://crbug.com/249598
33 // shouldThrow('document.addEventListener("foo", null)');
34 shouldBe('document.addEventListener("foo", null)', 'undefined');
35 shouldNotThrow('document.addEventListener("zork", listener, null)');
37 // FIXME: behavior of undefined for mandatory arguments is unclear, but
38 // probably should throw
39 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=23532
40 shouldBe('document.addEventListener(undefined)', 'undefined');
41 // shouldThrow('document.addEventListener(undefined, listener)');
42 // shouldThrow('document.addEventListener("foo", undefined)');
43 shouldBe('document.addEventListener(undefined, listener)', 'undefined');
44 shouldBe('document.addEventListener("foo", undefined)', 'undefined');
45 shouldNotThrow('document.addEventListener("zork", listener, undefined)');
49 debug('void removeEventListener(DOMString type, EventListener listener, optional boolean useCapture)');
50 // FIXME: should throw on missing arguments: http://crbug.com/353484
51 // shouldThrow('document.removeEventListener()');
52 // shouldThrow('document.removeEventListener("foo")');
53 var RemoveEventListenerNoArguments
= 658;
54 shouldBeFalse('internals.isUseCounted(document, RemoveEventListenerNoArguments)');
55 shouldBe('document.removeEventListener()', 'undefined');
56 shouldBeTrue('internals.isUseCounted(document, RemoveEventListenerNoArguments)');
57 var RemoveEventListenerOneArgument
= 659;
58 shouldBeFalse('internals.isUseCounted(document, RemoveEventListenerOneArgument)');
59 shouldBe('document.removeEventListener("foo")', 'undefined');
60 shouldBeTrue('internals.isUseCounted(document, RemoveEventListenerOneArgument)');
61 shouldNotThrow('document.removeEventListener("foo", listener)');
62 shouldNotThrow('document.removeEventListener("foo", listener, true)');
63 shouldNotThrow('document.removeEventListener("bar", listener, false)');
64 shouldNotThrow('document.removeEventListener("bar", listener, false)');
65 shouldNotThrow('document.removeEventListener("bar", listener, true)');
67 shouldBe('document.removeEventListener(null)', 'undefined');
68 shouldNotThrow('document.removeEventListener(null, listener)'); // converted to "null"
69 // FIXME: throw on |null|: http://crbug.com/249598
70 // shouldThrow('document.removeEventListener("foo", null)');
71 shouldBe('document.removeEventListener("foo", null)', 'undefined');
72 shouldNotThrow('document.removeEventListener("zork", listener, null)');
74 // FIXME: behavior of undefined for mandatory arguments is unclear, but
75 // probably should throw
76 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=23532
77 shouldBe('document.removeEventListener(undefined)', 'undefined');
78 // shouldthrow('document.removeeventlistener("foo", undefined)');
79 // shouldthrow('document.removeeventlistener(undefined, listener)');
80 shouldBe('document.removeEventListener(undefined, listener)', 'undefined');
81 shouldBe('document.removeEventListener("foo", undefined)', 'undefined');
82 shouldNotThrow('document.removeEventListener("zork", listener, undefined)');