Index: tools/telemetry/telemetry/internal/actions/scroll_unittest.py |
diff --git a/tools/telemetry/telemetry/internal/actions/scroll_unittest.py b/tools/telemetry/telemetry/internal/actions/scroll_unittest.py |
index 66c66813e31c45c521d64864b99f92a12b83cec2..29bd28570f37c46bdc3af09dde2bae929aaefab5 100644 |
--- a/tools/telemetry/telemetry/internal/actions/scroll_unittest.py |
+++ b/tools/telemetry/telemetry/internal/actions/scroll_unittest.py |
@@ -7,7 +7,7 @@ import os |
from telemetry import decorators |
from telemetry.internal.actions import scroll |
from telemetry.unittest_util import tab_test_case |
- |
+from telemetry.core.backends.chrome_inspector import devtools_client_backend |
class ScrollActionTest(tab_test_case.TabTestCase): |
def testScrollAction(self): |
@@ -41,6 +41,42 @@ class ScrollActionTest(tab_test_case.TabTestCase): |
self.assertTrue(scroll_position != 0, |
msg='scroll_position=%d;' % (scroll_position)) |
+ def testDiagonalScrollAction(self): |
+ # Diagonal scrolling was not supported in the ScrollAction until Chrome |
+ # branch number 2332 |
+ branch_num = self._tab.browser._browser_backend.devtools_client \ |
+ .GetChromeBranchNumber() |
+ if branch_num < 2332: |
+ return |
+ |
+ self.Navigate('blank.html') |
+ |
+ # Make page bigger than window so it's scrollable. |
+ self._tab.ExecuteJavaScript("""document.body.style.height = |
+ (2 * window.innerHeight + 1) + 'px';""") |
+ self._tab.ExecuteJavaScript("""document.body.style.width = |
+ (2 * window.innerWidth + 1) + 'px';""") |
+ |
+ self.assertEquals( |
+ self._tab.EvaluateJavaScript("""document.documentElement.scrollTop |
+ || document.body.scrollTop"""), 0) |
+ self.assertEquals( |
+ self._tab.EvaluateJavaScript("""document.documentElement.scrollLeft |
+ || document.body.scrollLeft"""), 0) |
+ |
+ i = scroll.ScrollAction(direction='downright') |
+ i.WillRunAction(self._tab) |
+ |
+ i.RunAction(self._tab) |
+ |
+ viewport_top = self._tab.EvaluateJavaScript( |
+ '(document.documentElement.scrollTop || document.body.scrollTop)') |
+ self.assertTrue(viewport_top != 0, msg='viewport_top=%d;' % viewport_top) |
+ |
+ viewport_left = self._tab.EvaluateJavaScript( |
+ '(document.documentElement.scrollLeft || document.body.scrollLeft)') |
+ self.assertTrue(viewport_left != 0, msg='viewport_left=%d;' % viewport_left) |
+ |
def testBoundingClientRect(self): |
self.Navigate('blank.html') |