OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <style> | 4 <style> |
5 div { | 5 div { |
6 line-height: 50px; | 6 line-height: 50px; |
7 } | 7 } |
8 | 8 |
9 .hoverme { | 9 .hoverme { |
10 background-color: lightblue; | 10 background-color: lightblue; |
(...skipping 27 matching lines...) Expand all Loading... |
38 shouldBeEqualToString("array[2].innerHTML", textWhenHovered); | 38 shouldBeEqualToString("array[2].innerHTML", textWhenHovered); |
39 shouldBeEqualToString("array[3].innerHTML", textWhenNotHovered); | 39 shouldBeEqualToString("array[3].innerHTML", textWhenNotHovered); |
40 shouldBeEqualToString("array[4].innerHTML", textWhenNotHovered); | 40 shouldBeEqualToString("array[4].innerHTML", textWhenNotHovered); |
41 shouldBe("document.scrollingElement.scrollTop", "100"); | 41 shouldBe("document.scrollingElement.scrollTop", "100"); |
42 | 42 |
43 testRunner.notifyDone(); | 43 testRunner.notifyDone(); |
44 } | 44 } |
45 | 45 |
46 function scrolledWhileCursorVisible() | 46 function scrolledWhileCursorVisible() |
47 { | 47 { |
48 // The delay is necessary to guarantee that the fake mouse move | |
49 // event timer has fired. But since the cursor is visible, we | |
50 // can stop waiting as soon as the hover effect has been invoked. | |
51 var elementHovered = array[2].innerHTML == textWhenHovered; | 48 var elementHovered = array[2].innerHTML == textWhenHovered; |
52 if (!elementHovered && Date.now() - startTime < fakeMouseMoveTimerDelay) { | 49 if (!elementHovered) { |
53 window.setTimeout(scrolledWhileCursorVisible, 10); | 50 window.setTimeout(scrolledWhileCursorVisible, 10); |
54 return; | 51 return; |
55 } | 52 } |
56 | 53 |
57 shouldBeEqualToString("array[0].innerHTML", textWhenWasHovered); | 54 shouldBeEqualToString("array[0].innerHTML", textWhenWasHovered); |
58 shouldBeEqualToString("array[1].innerHTML", textWhenWasHovered); | 55 shouldBeEqualToString("array[1].innerHTML", textWhenWasHovered); |
59 shouldBeEqualToString("array[2].innerHTML", textWhenHovered); | 56 shouldBeEqualToString("array[2].innerHTML", textWhenHovered); |
60 shouldBeEqualToString("array[3].innerHTML", textWhenNotHovered); | 57 shouldBeEqualToString("array[3].innerHTML", textWhenNotHovered); |
61 | 58 |
62 debug("Mouse is not visible, scrolling page so the mouse ends up on the four
th div."); | 59 debug("Mouse is not visible, scrolling page so the mouse ends up on the four
th div."); |
63 shouldBe("document.scrollingElement.scrollTop", "50"); | 60 shouldBe("document.scrollingElement.scrollTop", "50"); |
64 internals.setIsCursorVisible(document, false); | 61 internals.setIsCursorVisible(document, false); |
65 startTime = Date.now(); | 62 startTime = Date.now(); |
66 eventSender.continuousMouseScrollBy(0, -elementHeight); | 63 eventSender.continuousMouseScrollBy(0, -elementHeight); |
67 scrolledWhileCursorNotVisible(); | 64 shouldBecomeEqual('document.scrollingElement.scrollTop == elementHeight*2',
'true', scrolledWhileCursorNotVisible); |
68 } | 65 } |
69 | 66 |
70 var array; | 67 var array; |
71 var numHoverElements = 30; | 68 var numHoverElements = 30; |
72 var elementHeight = 50; | 69 var elementHeight = 50; |
73 var fakeMouseMoveTimerDelay = 150; | 70 var fakeMouseMoveTimerDelay = 500; |
74 var textWhenNotHovered = "hover over me"; | 71 var textWhenNotHovered = "hover over me"; |
75 var textWhenHovered = "currently hovered"; | 72 var textWhenHovered = "currently hovered"; |
76 var textWhenWasHovered = "was hovered"; | 73 var textWhenWasHovered = "was hovered"; |
77 var startTime; | 74 var startTime; |
78 | 75 |
79 function runtest() | 76 function runtest() |
80 { | 77 { |
81 buildPage(); | 78 buildPage(); |
82 | 79 |
83 array = document.getElementsByClassName('hoverme'); | 80 array = document.getElementsByClassName('hoverme'); |
(...skipping 28 matching lines...) Expand all Loading... |
112 debug("Mouse is visible, moving it over the second div."); | 109 debug("Mouse is visible, moving it over the second div."); |
113 eventSender.mouseMoveTo(53, centerOfDivAtIndex(1)); | 110 eventSender.mouseMoveTo(53, centerOfDivAtIndex(1)); |
114 shouldBeEqualToString("array[0].innerHTML", textWhenWasHovered); | 111 shouldBeEqualToString("array[0].innerHTML", textWhenWasHovered); |
115 shouldBeEqualToString("array[1].innerHTML", textWhenHovered); | 112 shouldBeEqualToString("array[1].innerHTML", textWhenHovered); |
116 shouldBeEqualToString("array[2].innerHTML", textWhenNotHovered); | 113 shouldBeEqualToString("array[2].innerHTML", textWhenNotHovered); |
117 | 114 |
118 debug("Mouse is visible, scrolling page so the mouse ends up on the third di
v."); | 115 debug("Mouse is visible, scrolling page so the mouse ends up on the third di
v."); |
119 shouldBe("document.scrollingElement.scrollTop", "0"); | 116 shouldBe("document.scrollingElement.scrollTop", "0"); |
120 startTime = Date.now(); | 117 startTime = Date.now(); |
121 eventSender.continuousMouseScrollBy(0, -elementHeight); | 118 eventSender.continuousMouseScrollBy(0, -elementHeight); |
122 scrolledWhileCursorVisible(); | 119 shouldBecomeEqual('document.scrollingElement.scrollTop == elementHeight', 't
rue', scrolledWhileCursorVisible); |
123 } | 120 } |
124 | 121 |
125 function buildPage() | 122 function buildPage() |
126 { | 123 { |
127 var table = document.getElementById('table_to_fill'); | 124 var table = document.getElementById('table_to_fill'); |
128 var i; | 125 var i; |
129 for (i = 0; i < numHoverElements; i++) { | 126 for (i = 0; i < numHoverElements; i++) { |
130 var p = document.createElement('tr'); | 127 var p = document.createElement('tr'); |
131 p.innerHTML = '<tr><td><div class="hoverme">' + textWhenNotHovered + '</
div></td></tr>'; | 128 p.innerHTML = '<tr><td><div class="hoverme">' + textWhenNotHovered + '</
div></td></tr>'; |
132 table.appendChild(p); | 129 table.appendChild(p); |
133 } | 130 } |
134 } | 131 } |
135 </script> | 132 </script> |
136 | 133 |
137 <table id="table_to_fill" width="100%" cellpadding="0px" cellspacing="0px" borde
r="0px"> | 134 <table id="table_to_fill" width="100%" cellpadding="0px" cellspacing="0px" borde
r="0px"> |
138 <tr><td><div class="hoverme">hover over me</div></td></tr> | 135 <tr><td><div class="hoverme">hover over me</div></td></tr> |
139 </table> | 136 </table> |
140 | 137 |
141 <p>Test for <a href="http://crbug.com/153784">http://crbug.com/153784</a>. New h
over effects should not be invoked during scroll if the mouse cursor is not visi
ble.</p> | 138 <p>Test for <a href="http://crbug.com/153784">http://crbug.com/153784</a>. New h
over effects should not be invoked during scroll if the mouse cursor is not visi
ble.</p> |
142 | 139 |
143 <div id="console"></div> | 140 <div id="console"></div> |
144 </body> | 141 </body> |
145 </html> | 142 </html> |
OLD | NEW |