OLD | NEW |
---|---|
(Empty) | |
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | |
bokan
2015/10/21 13:32:15
Please change the doctype on any of these tests to
ymalik
2015/10/21 15:14:08
Done.
| |
2 <script src="../../resources/js-test.js"></script> | |
3 <style> | |
4 #target { | |
5 width: 2000px; | |
6 height: 1500px; | |
7 } | |
8 </style> | |
9 <script language="JavaScript" type="text/javascript"> | |
10 var shouldTrigger; | |
bokan
2015/10/21 13:32:15
unused.
ymalik
2015/10/21 15:14:08
Done.
| |
11 if (window.testRunner && window.internals) { | |
12 window.jsTestIsAsync = true; | |
13 testRunner.dumpAsText(); | |
14 testRunner.waitUntilDone(); | |
15 setPrintTestResultsLazily(); | |
16 } | |
17 | |
18 description("This test ensures that scrolling the visual viewport doesn't\ | |
19 trigger an onscroll event."); | |
20 | |
21 function runTest() { | |
22 if (!window.testRunner || !window.internals) { | |
23 testFailed("This test requires test runner and inernals.") | |
24 finishJSTest(); | |
25 return; | |
26 } | |
27 | |
28 window.internals.setPageScaleFactor(2.0); | |
29 var target = document.getElementById('target'); | |
30 | |
31 // The first scroll should trigger onscroll because it scrolls the | |
32 // layout viewport. The second scroll should not trigger onscroll | |
33 // because it only scrolls the visual viewport. | |
34 var scrolls = [-10, 1]; | |
35 var numScrollsReceived = 0; | |
36 var numRAFCalls = 0; | |
37 | |
38 document.onscroll = function() { | |
39 if (numRAFCalls == 0) | |
40 return; | |
41 | |
42 ++numScrollsReceived; | |
43 debug('PASS OnScroll called for scroll #' + numScrollsReceived); | |
44 if (numScrollsReceived < scrolls.length) { | |
45 var scrollAmount = scrolls[numScrollsReceived]; | |
46 eventSender.mouseMoveTo(target.offsetLeft + 5, target.offsetTop + 5); | |
47 eventSender.mouseScrollBy(0, scrollAmount); | |
48 } else if (numScrollsReceived == scrolls.length) { | |
49 testFailed("Received visual viewport scroll event"); | |
50 finishJSTest(); | |
51 } else { | |
52 debug(''); | |
53 finishJSTest(); | |
54 } | |
55 } | |
56 | |
57 var failureSentinel = function() { | |
58 if (numRAFCalls == 0) { | |
59 eventSender.mouseMoveTo(target.offsetLeft + 5, target.offsetTop + 5); | |
60 eventSender.mouseScrollBy(0, scrolls[0]); | |
61 } else if (numRAFCalls == scrolls.length && numScrollsReceived < num RAFCalls) { | |
bokan
2015/10/21 13:32:15
I know I wrote this, but this is incredibly hard t
ymalik
2015/10/21 15:14:08
Done. Thanks for simplifying it.
| |
62 testPassed("Did not receive visual viewport scroll event"); | |
63 finishJSTest(); | |
64 } else if (numRAFCalls > numScrollsReceived) { | |
65 testFailed("Did not receive scroll event #" + (numScrollsReceive d+1)); | |
66 finishJSTest(); | |
67 } | |
68 ++numRAFCalls; | |
69 window.requestAnimationFrame(failureSentinel); | |
70 } | |
71 | |
72 window.requestAnimationFrame(failureSentinel); | |
73 } | |
74 | |
75 onload = runTest; | |
76 </script> | |
77 <div id="target"></div> | |
OLD | NEW |