OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
3 <body> | 3 <body> |
4 <script> | 4 <script> |
5 description('EventTarget.addEventListener and EventTarget.removeEventLister shou
ld throw on invalid arguments.'); | 5 description('EventTarget.addEventListener and EventTarget.removeEventLister shou
ld throw on invalid arguments.'); |
6 | 6 |
7 function listener(event) | 7 function listener(event) |
8 { | 8 { |
9 } | 9 } |
10 | 10 |
11 debug('Signature:') | 11 debug('Signature:') |
12 debug('void addEventListener(DOMString type, EventListener listener, optional bo
olean useCapture)'); | 12 debug('void addEventListener(DOMString type, EventListener listener, optional bo
olean useCapture)'); |
13 shouldThrow('document.addEventListener()'); | 13 // FIXME: should throw on missing arguments: http://crbug.com/353484 |
14 shouldThrow('document.addEventListener("foo")'); | 14 // shouldThrow('document.addEventListener()'); |
| 15 // shouldThrow('document.addEventListener("foo")'); |
| 16 shouldBe('document.addEventListener()', 'undefined'); |
| 17 shouldBe('document.addEventListener("foo")', 'undefined'); |
15 shouldNotThrow('document.addEventListener("foo", listener)'); | 18 shouldNotThrow('document.addEventListener("foo", listener)'); |
16 shouldNotThrow('document.addEventListener("", listener)'); | 19 shouldNotThrow('document.addEventListener("", listener)'); |
17 shouldNotThrow('document.addEventListener("", function(){})'); | 20 shouldNotThrow('document.addEventListener("", function(){})'); |
18 shouldNotThrow('document.addEventListener("bar", listener, false)'); | 21 shouldNotThrow('document.addEventListener("bar", listener, false)'); |
19 shouldNotThrow('document.addEventListener("bar", listener, true)'); | 22 shouldNotThrow('document.addEventListener("bar", listener, true)'); |
20 // null | 23 // null |
21 shouldThrow('document.addEventListener(null)'); | 24 shouldBe('document.addEventListener(null)', 'undefined'); |
22 shouldNotThrow('document.addEventListener(null, listener)'); // converted to "nu
ll" | 25 shouldNotThrow('document.addEventListener(null, listener)'); // converted to "nu
ll" |
| 26 // FIXME: throw on |null|: http://crbug.com/249598 |
| 27 // shouldThrow('document.addEventListener("foo", null)'); |
23 shouldBe('document.addEventListener("foo", null)', 'undefined'); | 28 shouldBe('document.addEventListener("foo", null)', 'undefined'); |
24 shouldNotThrow('document.addEventListener("zork", listener, null)'); | 29 shouldNotThrow('document.addEventListener("zork", listener, null)'); |
25 // undefined | 30 // undefined |
26 shouldThrow('document.addEventListener(undefined)'); | 31 // FIXME: behavior of undefined for mandatory arguments is unclear, but |
27 shouldNotThrow('document.addEventListener(undefined, listener)', 'undefined'); /
/ converted to "undefined" | 32 // probably should throw |
| 33 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=23532 |
| 34 shouldBe('document.addEventListener(undefined)', 'undefined'); |
| 35 // shouldThrow('document.addEventListener(undefined, listener)'); |
| 36 // shouldThrow('document.addEventListener("foo", undefined)'); |
| 37 shouldBe('document.addEventListener(undefined, listener)', 'undefined'); |
28 shouldBe('document.addEventListener("foo", undefined)', 'undefined'); | 38 shouldBe('document.addEventListener("foo", undefined)', 'undefined'); |
29 shouldNotThrow('document.addEventListener("zork", listener, undefined)'); | 39 shouldNotThrow('document.addEventListener("zork", listener, undefined)'); |
30 | 40 |
31 debug(''); | 41 debug(''); |
32 debug('Signature:'); | 42 debug('Signature:'); |
33 debug('void removeEventListener(DOMString type, EventListener listener, optional
boolean useCapture)'); | 43 debug('void removeEventListener(DOMString type, EventListener listener, optional
boolean useCapture)'); |
34 shouldThrow('document.removeEventListener()'); | 44 // FIXME: should throw on missing arguments: http://crbug.com/353484 |
35 shouldThrow('document.removeEventListener("foo")'); | 45 // shouldThrow('document.removeEventListener()'); |
| 46 // shouldThrow('document.removeEventListener("foo")'); |
| 47 shouldBe('document.removeEventListener()', 'undefined'); |
| 48 shouldBe('document.removeEventListener("foo")', 'undefined'); |
36 shouldNotThrow('document.removeEventListener("foo", listener)'); | 49 shouldNotThrow('document.removeEventListener("foo", listener)'); |
37 shouldNotThrow('document.removeEventListener("foo", listener, true)'); | 50 shouldNotThrow('document.removeEventListener("foo", listener, true)'); |
38 shouldNotThrow('document.removeEventListener("bar", listener, false)'); | 51 shouldNotThrow('document.removeEventListener("bar", listener, false)'); |
39 shouldNotThrow('document.removeEventListener("bar", listener, false)'); | 52 shouldNotThrow('document.removeEventListener("bar", listener, false)'); |
40 shouldNotThrow('document.removeEventListener("bar", listener, true)'); | 53 shouldNotThrow('document.removeEventListener("bar", listener, true)'); |
41 // null | 54 // null |
42 shouldThrow('document.removeEventListener(null)'); | 55 shouldBe('document.removeEventListener(null)', 'undefined'); |
43 shouldNotThrow('document.removeEventListener(null, listener)'); // converted to
"null" | 56 shouldNotThrow('document.removeEventListener(null, listener)'); // converted to
"null" |
| 57 // FIXME: throw on |null|: http://crbug.com/249598 |
| 58 // shouldThrow('document.removeEventListener("foo", null)'); |
44 shouldBe('document.removeEventListener("foo", null)', 'undefined'); | 59 shouldBe('document.removeEventListener("foo", null)', 'undefined'); |
45 shouldNotThrow('document.removeEventListener("zork", listener, null)'); | 60 shouldNotThrow('document.removeEventListener("zork", listener, null)'); |
46 // undefined | 61 // undefined |
47 shouldThrow('document.removeEventListener(undefined)'); | 62 // FIXME: behavior of undefined for mandatory arguments is unclear, but |
48 shouldNotThrow('document.removeEventListener(undefined, listener)', 'undefined')
; // converted to "undefined" | 63 // probably should throw |
| 64 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=23532 |
| 65 shouldBe('document.removeEventListener(undefined)', 'undefined'); |
| 66 // shouldthrow('document.removeeventlistener("foo", undefined)'); |
| 67 // shouldthrow('document.removeeventlistener(undefined, listener)'); |
| 68 shouldBe('document.removeEventListener(undefined, listener)', 'undefined'); |
49 shouldBe('document.removeEventListener("foo", undefined)', 'undefined'); | 69 shouldBe('document.removeEventListener("foo", undefined)', 'undefined'); |
50 shouldNotThrow('document.removeEventListener("zork", listener, undefined)'); | 70 shouldNotThrow('document.removeEventListener("zork", listener, undefined)'); |
51 </script> | 71 </script> |
OLD | NEW |