OLD | NEW |
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="../../../resources/js-test.js"></script> | 4 <script src="../../../resources/js-test.js"></script> |
5 </head> | 5 </head> |
6 <body> | 6 <body> |
7 <p id="description"></p> | 7 <p id="description"></p> |
8 <div id="console"></div> | 8 <div id="console"></div> |
9 <script> | 9 <script> |
10 description('Test if change event fires properly when color chooser changes. Bug
66848 <br> To manually test this, click on the input color element in the top l
eft corner and change the value from the color chooser. See if the number of "va
lue changed" messages matches the number of times you changed the color.'); | 10 description('Test if change event fires properly when color chooser changes. Bug
66848 <br> To manually test this, click on the input color element in the top l
eft corner and change the value from the color chooser. See if the number of "va
lue changed" messages matches the number of times you changed the color.'); |
| 11 jsTestIsAsync = true; |
11 | 12 |
12 var input = document.createElement('input'); | 13 var input = document.createElement('input'); |
13 input.type = 'color'; | 14 input.type = 'color'; |
14 input.value = '#000000'; | 15 input.value = '#000000'; |
15 document.body.appendChild(input); | 16 document.body.appendChild(input); |
16 | 17 |
17 input.style.position = 'absolute'; | 18 input.style.position = 'absolute'; |
18 input.style.left = '0'; | 19 input.style.left = '0'; |
19 input.style.top = '0'; | 20 input.style.top = '0'; |
20 input.style.width = '20px'; | 21 input.style.width = '20px'; |
21 input.style.height = '20px'; | 22 input.style.height = '20px'; |
22 | 23 |
23 var onChange = 0; | 24 var onChange = 0; |
24 | 25 |
25 input.onchange = function() { | |
26 debug("change event dispatched - value changed to " + input.value); | |
27 onChange++; | |
28 }; | |
29 | |
30 input.oninput = function() { | 26 input.oninput = function() { |
31 debug("input event dispatched - value is: " + input.value); | 27 debug("input event dispatched - value is: " + input.value); |
32 }; | 28 }; |
33 | 29 |
34 eventSender.mouseMoveTo(10, 10); | 30 eventSender.mouseMoveTo(10, 10); |
35 eventSender.mouseDown(); | 31 eventSender.mouseDown(); |
36 eventSender.mouseUp(); | 32 eventSender.mouseUp(); |
37 | 33 |
38 // Test that incorrect element arguments are (not) handled. | 34 // Test that incorrect element arguments are (not) handled. |
39 shouldThrow("internals.selectColorInColorChooser({}, '#ff0000');"); | 35 shouldThrow("internals.selectColorInColorChooser({}, '#ff0000');"); |
40 shouldThrow("internals.selectColorInColorChooser(document, '#ff0000');"); | 36 shouldThrow("internals.selectColorInColorChooser(document, '#ff0000');"); |
41 | 37 |
42 // input.onchange should be called | 38 function step1() { |
43 internals.selectColorInColorChooser(input, '#ff0000'); | 39 // input.onchange should be called |
44 internals.endColorChooser(input); | 40 input.onchange = step2; |
45 // input.onchange should not be called | 41 internals.selectColorInColorChooser(input, '#ff0000'); |
46 internals.selectColorInColorChooser(input, '#ff0000'); | 42 internals.endColorChooser(input); |
47 internals.endColorChooser(input); | 43 shouldBe('input.value', '"#ff0000"'); |
48 shouldBe('input.value', '"#ff0000"'); | 44 } |
49 | 45 |
50 debug('Change event is only dispatched, when color chooser is closed'); | 46 function step2() { |
51 onChange = 0; | 47 debug("change event dispatched - value changed to " + input.value); |
52 internals.selectColorInColorChooser(input, '#ff0002'); | 48 // input.onchange should not be called |
53 shouldBe('onChange', '0'); | 49 input.onchange = () => { |
54 internals.endColorChooser(input); | 50 testFailed("Change event should not be dispatched."); |
55 shouldBe('onChange', '1'); | 51 }; |
| 52 internals.selectColorInColorChooser(input, '#ff0000'); |
| 53 internals.endColorChooser(input); |
| 54 shouldBe('input.value', '"#ff0000"'); |
| 55 step3(); |
| 56 } |
56 | 57 |
| 58 function step3() { |
| 59 debug('Change event is only dispatched, when color chooser is closed'); |
| 60 input.onchange = step4; |
| 61 internals.selectColorInColorChooser(input, '#ff0002'); |
| 62 internals.endColorChooser(input); |
| 63 } |
| 64 |
| 65 function step4() { |
| 66 testPassed('Change event was dispatched.'); |
| 67 finishJSTest(); |
| 68 } |
| 69 |
| 70 step1(); |
57 </script> | 71 </script> |
58 </body> | 72 </body> |
59 </html> | 73 </html> |
OLD | NEW |