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