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 <script> | 3 <script> |
4 var numScrolls; | 4 var numScrolls; |
5 var pageHeight = 2000; | 5 var pageHeight = 2000; |
6 var pageWidth = 2000; | 6 var pageWidth = 2000; |
7 | 7 |
8 function reset() | 8 function reset() |
9 { | 9 { |
10 window.scrollTo(0, 0); | 10 window.scrollTo(0, 0); |
11 internals.setPageScaleFactor(2); | 11 internals.setPageScaleFactor(2); |
12 } | 12 } |
13 | 13 |
14 function testArrowKeys() | 14 function testArrowKeys() |
15 { | 15 { |
16 // Test up and down. | 16 // Test up and down. |
17 window.eventSender.keyDown('downArrow'); | 17 window.eventSender.keyDown('downArrow'); |
18 shouldBeGreaterThan('window.scrollY', '0'); | 18 shouldBeGreaterThan('internals.visualViewportScrollY()', '0'); |
19 | 19 |
20 numScrolls = Math.ceil((pageHeight - window.innerHeight) / window.scrollY); | 20 numScrolls = Math.ceil((pageHeight - internals.visualViewportHeight()) / int
ernals.visualViewportScrollY()); |
21 | 21 |
22 for(var i = 0; i < numScrolls - 1; ++i) { | 22 for(var i = 0; i < numScrolls - 1; ++i) { |
23 window.eventSender.keyDown('downArrow'); | 23 window.eventSender.keyDown('downArrow'); |
24 } | 24 } |
25 | 25 |
26 shouldBe('window.scrollY', 'pageHeight - window.innerHeight'); | 26 shouldBe('internals.visualViewportScrollY()', 'pageHeight - internals.visual
ViewportHeight()'); |
27 | 27 |
28 for(var i = 0; i < numScrolls; ++i) { | 28 for(var i = 0; i < numScrolls; ++i) { |
29 window.eventSender.keyDown('upArrow'); | 29 window.eventSender.keyDown('upArrow'); |
30 } | 30 } |
31 | 31 |
32 shouldBe('window.scrollY', '0'); | 32 shouldBe('internals.visualViewportScrollY()', '0'); |
33 | 33 |
34 // Now test left and right. | 34 // Now test left and right. |
35 | 35 |
36 reset(); | 36 reset(); |
37 window.eventSender.keyDown('rightArrow'); | 37 window.eventSender.keyDown('rightArrow'); |
38 numScrolls = Math.ceil((pageWidth - window.innerWidth) / window.scrollX); | 38 numScrolls = Math.ceil((pageWidth - internals.visualViewportWidth()) / inter
nals.visualViewportScrollX()); |
39 | 39 |
40 for(var i = 0; i < numScrolls - 1; ++i) { | 40 for(var i = 0; i < numScrolls - 1; ++i) { |
41 window.eventSender.keyDown('rightArrow'); | 41 window.eventSender.keyDown('rightArrow'); |
42 } | 42 } |
43 | 43 |
44 shouldBe('window.scrollX', 'pageWidth - window.innerWidth'); | 44 shouldBe('internals.visualViewportScrollX()', 'pageWidth - internals.visualV
iewportWidth()'); |
45 | 45 |
46 for(var i = 0; i < numScrolls; ++i) { | 46 for(var i = 0; i < numScrolls; ++i) { |
47 window.eventSender.keyDown('leftArrow'); | 47 window.eventSender.keyDown('leftArrow'); |
48 } | 48 } |
49 | 49 |
50 shouldBe('window.scrollX', '0'); | 50 shouldBe('internals.visualViewportScrollX()', '0'); |
51 } | 51 } |
52 | 52 |
53 function testHomeEnd() | 53 function testHomeEnd() |
54 { | 54 { |
55 window.eventSender.keyDown('end'); | 55 window.eventSender.keyDown('end'); |
56 shouldBe('window.scrollY', 'pageHeight - window.innerHeight'); | 56 shouldBe('window.scrollY', 'pageHeight - window.innerHeight'); |
| 57 shouldBe('internals.visualViewportScrollY()', 'pageHeight - internals.visual
ViewportHeight()'); |
57 window.eventSender.keyDown('home'); | 58 window.eventSender.keyDown('home'); |
58 shouldBe('window.scrollY', '0'); | 59 shouldBe('window.scrollY', '0'); |
| 60 shouldBe('internals.visualViewportScrollY()', '0'); |
59 } | 61 } |
60 | 62 |
61 function testPageUpDown() | 63 function testPageUpDown() |
62 { | 64 { |
63 window.eventSender.keyDown('pageDown'); | 65 window.eventSender.keyDown('pageDown'); |
64 shouldBeGreaterThan('window.scrollY', '0'); | 66 shouldBeGreaterThan('internals.visualViewportScrollY()', '0'); |
65 | 67 |
66 numScrolls = Math.ceil((pageHeight - window.innerHeight) / window.scrollY); | 68 numScrolls = Math.ceil((pageHeight - internals.visualViewportHeight()) / int
ernals.visualViewportScrollY()); |
67 | 69 |
68 for(var i = 0; i < numScrolls - 1; ++i) { | 70 for(var i = 0; i < numScrolls - 1; ++i) { |
69 window.eventSender.keyDown('pageDown'); | 71 window.eventSender.keyDown('pageDown'); |
70 } | 72 } |
71 | 73 |
72 shouldBe('window.scrollY', 'pageHeight - window.innerHeight'); | 74 shouldBe('internals.visualViewportScrollY()', 'pageHeight - internals.visual
ViewportHeight()'); |
73 | 75 |
74 for(var i = 0; i < numScrolls; ++i) { | 76 for(var i = 0; i < numScrolls; ++i) { |
75 window.eventSender.keyDown('pageUp'); | 77 window.eventSender.keyDown('pageUp'); |
76 } | 78 } |
77 | 79 |
78 shouldBe('window.scrollY', '0'); | 80 shouldBe('internals.visualViewportScrollY()', '0'); |
79 } | 81 } |
80 | 82 |
81 function testSpacebar() | 83 function testSpacebar() |
82 { | 84 { |
83 window.eventSender.keyDown(' '); | 85 window.eventSender.keyDown(' '); |
84 shouldBeGreaterThan('window.scrollY', '0'); | 86 shouldBeGreaterThan('internals.visualViewportScrollY()', '0'); |
85 | 87 |
86 numScrolls = Math.ceil((pageHeight - window.innerHeight) / window.scrollY); | 88 numScrolls = Math.ceil((pageHeight - internals.visualViewportHeight()) / int
ernals.visualViewportScrollY()); |
87 | 89 |
88 for(var i = 0; i < numScrolls - 1; ++i) { | 90 for(var i = 0; i < numScrolls - 1; ++i) { |
89 window.eventSender.keyDown(' '); | 91 window.eventSender.keyDown(' '); |
90 } | 92 } |
91 | 93 |
92 shouldBe('window.scrollY', 'pageHeight - window.innerHeight'); | 94 shouldBe('internals.visualViewportScrollY()', 'pageHeight - internals.visual
ViewportHeight()'); |
93 | 95 |
94 for(var i = 0; i < numScrolls; ++i) { | 96 for(var i = 0; i < numScrolls; ++i) { |
95 window.eventSender.keyDown(' ', 'shiftKey'); | 97 window.eventSender.keyDown(' ', 'shiftKey'); |
96 } | 98 } |
97 | 99 |
98 shouldBe('window.scrollY', '0'); | 100 shouldBe('internals.visualViewportScrollY()', '0'); |
99 } | 101 } |
100 | 102 |
101 function runTest() | 103 function runTest() |
102 { | 104 { |
103 description( | 105 description( |
104 'Test that keyboard scrolling while the page is scaled scrolls ' + | 106 'Test that keyboard scrolling while the page is scaled scrolls ' + |
105 'both viewports. To test manually, pinch zoom into the page and ' + | 107 'both viewports. To test manually, pinch zoom into the page and ' + |
106 'use the arrow keys, page up/down, home/end to scroll the page. ' + | 108 'use the arrow keys, page up/down, home/end to scroll the page. ' + |
107 'You should be able to reach the end of the page bounds (i.e. ' + | 109 'You should be able to reach the end of the page bounds (i.e. ' + |
108 'scroll to see the divs at the bounds.)'); | 110 'scroll to see the divs at the bounds.)'); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 left: 1800px; | 183 left: 1800px; |
182 } | 184 } |
183 </style> | 185 </style> |
184 <p id="description" style="width: 800px"></p> | 186 <p id="description" style="width: 800px"></p> |
185 <p id="console" style="width: 800px"></p> | 187 <p id="console" style="width: 800px"></p> |
186 <div class="top">Top of page</div> | 188 <div class="top">Top of page</div> |
187 <div class="bottom">Bottom of page</div> | 189 <div class="bottom">Bottom of page</div> |
188 <div class="left">Left of page</div> | 190 <div class="left">Left of page</div> |
189 <div class="right">Right of page</div> | 191 <div class="right">Right of page</div> |
190 <div class="middle">Middle of page</div> | 192 <div class="middle">Middle of page</div> |
OLD | NEW |