| <!DOCTYPE html> |
| <style> |
| #scrollable { |
| height: 800px; |
| width: 800px; |
| overflow: auto; |
| } |
| #content { |
| height: 4000px; |
| width: 800px; |
| } |
| </style> |
| |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <div id="scrollable"> |
| <div id="content"> </div> |
| </div> |
| |
| <script> |
| // values are from enum Feature in UseCounter.h |
| var ScrollByKeyboardArrowKeys = 1843; |
| var ScrollByKeyboardPageUpDownKeys = 1844; |
| var ScrollByKeyboardHomeEndKeys = 1845; |
| var ScrollByKeyboardSpacebarKey = 1846; |
| |
| test(function() { |
| if (!window.eventSender) |
| return; |
| |
| var rect = document.getElementById("scrollable").getBoundingClientRect(); |
| var startX = (rect.left + rect.right) / 2; |
| var startY = (rect.top + rect.bottom) / 2; |
| |
| // Make sure that scrollable will scroll. |
| eventSender.mouseMoveTo(startX, startY); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| |
| scrollByArrowKey(); |
| scrollBySpaceKey(); |
| scrollByPage(); |
| scrollByEndKey(); |
| |
| }, "Tests that scrolling by keyboard keys is recorded in UMA usecounter."); |
| |
| function scrollByArrowKey() { |
| eventSender.keyDown('ArrowDown'); |
| assert_true(internals.isUseCounted(document, ScrollByKeyboardArrowKeys)); |
| } |
| |
| function scrollBySpaceKey() { |
| eventSender.keyDown(" ", []); |
| assert_true(internals.isUseCounted(document, ScrollByKeyboardSpacebarKey)); |
| } |
| |
| function scrollByPage() { |
| if (navigator.platform.indexOf('Mac') == 0) { |
| eventSender.keyDown('ArrowDown', ["altKey"]); |
| } else { |
| eventSender.keyDown('PageDown'); |
| } |
| assert_true(internals.isUseCounted(document, |
| ScrollByKeyboardPageUpDownKeys)); |
| } |
| |
| function scrollByEndKey() { |
| eventSender.keyDown('End'); |
| assert_true(internals.isUseCounted(document, ScrollByKeyboardHomeEndKeys)); |
| } |
| </script> |