Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: LayoutTests/fast/forms/option-mouseevents.html

Issue 14096013: Implement select element list box with shadow DOM. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@shadowselect
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script> 3 <script>
4 function print(message, color) { 4 function print(message, color) {
5 var paragraph = document.createElement("div"); 5 var paragraph = document.createElement("div");
6 paragraph.appendChild(document.createTextNode(message)); 6 paragraph.appendChild(document.createTextNode(message));
7 paragraph.style.fontFamily = "monospace"; 7 paragraph.style.fontFamily = "monospace";
8 if (color) 8 if (color)
9 paragraph.style.color = color; 9 paragraph.style.color = color;
10 document.getElementById("console").appendChild(paragraph); 10 document.getElementById("console").appendChild(paragraph);
11 } 11 }
12 function shouldBe(description, actual, expected) 12 function shouldBe(description, actual, expected)
13 { 13 {
14 if (expected === actual) { 14 if (expected === actual) {
15 print("PASS: " + description + " should be " + expected + 15 print("PASS: " + description + " should be " + expected +
16 " and is\n", 16 " and is\n",
17 "green"); 17 "green");
18 } else { 18 } else {
19 print("FAIL: " + description + " should be " + expected + 19 print("FAIL: " + description + " should be " + expected +
20 " but instead is " + actual + "\n", 20 " but instead is " + actual + "\n",
21 "red"); 21 "red");
22 } 22 }
23 } 23 }
24 function mouseeventverify(event, x, y, target, type) 24 function testEvent(listener, offsetX, offsetY, target, type)
25 { 25 {
26 shouldBe("event type", event.type, type); 26 var rect = target.getBoundingClientRect();
27 shouldBe("event target", event.target, target); 27 var x = rect.left + offsetX;
28 shouldBe("event.pageX", event.pageX, x); 28 var y = rect.top + offsetY;
29 shouldBe("event.pageY", event.pageY, y); 29 listener.addEventListener(type, function () {
30 shouldBe("event.offsetX", event.offsetX, x); 30 shouldBe("event type", event.type, type);
31 shouldBe("event.offsetY", event.offsetY, y); 31 shouldBe("event target", event.target, target);
32 shouldBe("event.x", event.x, x); 32 shouldBe("event.pageX", event.pageX, x);
33 shouldBe("event.y", event.y, y); 33 shouldBe("event.pageY", event.pageY, y);
34 } 34 shouldBe("event.offsetX", event.offsetX, offsetX);
35 function mouseeventverify2(event, x, y, offsetX, offsetY, target, type) 35 shouldBe("event.offsetY", event.offsetY, offsetY);
36 { 36 shouldBe("event.x", event.x, x);
37 shouldBe("event type", event.type, type); 37 shouldBe("event.y", event.y, y);
38 shouldBe("event target", event.target, target); 38 }, false);
39 shouldBe("event.pageX", event.pageX, x); 39 eventSender.mouseMoveTo(x, y);
40 shouldBe("event.pageY", event.pageY, y); 40 eventSender.mouseDown();
41 shouldBe("event.offsetX", event.offsetX, offsetX); 41 eventSender.mouseUp();
42 shouldBe("event.offsetY", event.offsetY, offsetY); 42 if (type == "dblclick") {
43 shouldBe("event.x", event.x, x); 43 eventSender.mouseDown();
44 shouldBe("event.y", event.y, y); 44 eventSender.mouseUp();
45 }
45 } 46 }
46 function test() { 47 function test() {
47 if (window.testRunner) { 48 if (window.testRunner) {
48 testRunner.dumpAsText(); 49 testRunner.dumpAsText();
49 testRunner.waitUntilDone(); 50 testRunner.waitUntilDone();
50 } 51 }
51 52
52 if (window.eventSender) { 53 testEvent(document.getElementById('s1'), 11, 3, document.getElementById('o1' ), 'mousedown');
53 eventSender.mouseMoveTo(22, 104); 54 testEvent(document.getElementById('o1'), 11, 3, document.getElementById('o1' ), 'mousedown');
54 eventSender.mouseDown(); 55 testEvent(document.getElementById('s2'), 11, 3, document.getElementById('o2' ), 'mouseup');
55 eventSender.mouseUp(); 56 testEvent(document.getElementById('o2'), 11, 3, document.getElementById('o2' ), 'mouseup');
56 } 57 testEvent(document.getElementById('s3'), 11, 3, document.getElementById('o3' ), 'click');
57 58 testEvent(document.getElementById('o3'), 11, 3, document.getElementById('o3' ), 'click');
58 if (window.eventSender) { 59 testEvent(document.getElementById('s3'), 11, 3, document.getElementById('o3' ), 'click');
59 eventSender.mouseMoveTo(22, 184); 60 testEvent(document.getElementById('o3'), 11, 3, document.getElementById('o3' ), 'click');
60 eventSender.mouseDown();
61 eventSender.mouseUp();
62 }
63
64 if (window.eventSender) {
65 eventSender.mouseMoveTo(22, 262);
66 eventSender.mouseDown();
67 eventSender.mouseUp();
68 }
69
70 if (window.eventSender) {
71 eventSender.mouseMoveTo(22, 344);
72 eventSender.mouseDown();
73 eventSender.mouseUp();
74 eventSender.mouseDown();
75 eventSender.mouseUp();
76 }
77
78 if (window.eventSender) {
79 eventSender.mouseMoveTo(22, 448);
80 eventSender.mouseDown();
81 eventSender.mouseUp();
82 eventSender.mouseDown();
83 eventSender.mouseUp();
84 }
85 61
86 if (window.testRunner) 62 if (window.testRunner)
87 testRunner.notifyDone(); 63 testRunner.notifyDone();
88 } 64 }
89 </script> 65 </script>
90 </head> 66 </head>
91 <body onload="test();"> 67 <body onload="test();">
92 <p>This page tests whether a click event on a list box item propogates with the correct target and positioning values.<br> 68 <p>This page tests whether a click event on a list box item propogates with the correct target and positioning values.<br>
93 Bug 3248: Mouse events on OPTION element seem to be ignored<br> 69 Bug 3248: Mouse events on OPTION element seem to be ignored<br>
94 <a href="https://bugs.webkit.org/show_bug.cgi?id=3248">https://bugs.webkit.org/s how_bug.cgi?id=3248</a></p> 70 <a href="https://bugs.webkit.org/show_bug.cgi?id=3248">https://bugs.webkit.org/s how_bug.cgi?id=3248</a></p>
95 <form action="" method="post"> 71 <form action="" method="post">
96 <select style="position:absolute; top: 84;" size="2" onmousedown="mouseeventveri fy(event, 22, 104, document.getElementById('o1'), 'mousedown')"> 72 <select id="s1" style="position:absolute; top: 84;" size="2">
97 <option>One 73 <option>One
98 <option id="o1" onmousedown="mouseeventverify(event, 22, 104, this, 'mousedown') ">Two 74 <option id="o1">Two
99 </select> 75 </select>
100 </form> 76 </form>
101 <form action="" method="post"> 77 <form action="" method="post">
102 <select style="position:absolute; top: 164;" size="2" onmouseup="mouseeventverif y(event, 22, 184, document.getElementById('o2'), 'mouseup')"> 78 <select id="s2" style="position:absolute; top: 164;" size="2", 'mouseup')">
103 <option>One 79 <option>One
104 <option id="o2" onmouseup="mouseeventverify(event, 22, 184, this, 'mouseup')">Tw o 80 <option id="o2">Two
105 </select> 81 </select>
106 </form> 82 </form>
107 <form action="" method="post"> 83 <form action="" method="post">
108 <select style="position:absolute; top: 242;" size="2" onclick="mouseeventverify( event, 22, 262, document.getElementById('o3'), 'click')"> 84 <select id="s3" style="position:absolute; top: 242;" size="2", 'click')">
109 <option>One 85 <option>One
110 <option id="o3" onclick="mouseeventverify(event, 22, 262, this, 'click')">Two 86 <option id="o3">Two
111 </select> 87 </select>
112 </form> 88 </form>
113 <form action="" method="post"> 89 <form action="" method="post">
114 <select style="position:absolute; top: 324;" size="2" ondblclick="mouseeventveri fy(event, 22, 344, document.getElementById('o4'), 'dblclick')"> 90 <select style="position:absolute; top: 324;" size="2", 'dblclick')">
115 <option>One 91 <option>One
116 <option id="o4" ondblclick="mouseeventverify(event, 22, 344, this, 'dblclick')"> Two 92 <option id="o4">Two
117 </select> 93 </select>
118 </form> 94 </form>
119 <select style="position:absolute; top: 408;" size="3" onmousedown="mouseeventver ify2(event, 22, 448, 12, 38, this, 'mousedown')"> 95 <select style="position:absolute; top: 408;" size="3">
120 <option>One 96 <option>One
121 <option id="o5" onmousedown="mouseeventverify2(event, 22, 448, 12, 38, this, 'mo usedown')">Two 97 <option id="o5">Two
122 </select> 98 </select>
123 </form> 99 </form>
124 <div style="position:absolute; top: 550;" id='console'></div> 100 <div style="position:absolute; top: 550;" id='console'></div>
125 </body> 101 </body>
126 </html> 102 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698