| 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 |