OLD | NEW |
---|---|
1 # Copyright 2012 The Chromium Authors. All rights reserved. | 1 # Copyright 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import os | 5 import os |
6 | 6 |
7 from telemetry import decorators | 7 from telemetry import decorators |
8 from telemetry.page.actions import scroll | 8 from telemetry.page.actions import scroll |
9 from telemetry.unittest_util import tab_test_case | 9 from telemetry.unittest_util import tab_test_case |
10 | 10 |
11 | 11 |
12 class ScrollActionTest(tab_test_case.TabTestCase): | 12 class ScrollActionTest(tab_test_case.TabTestCase): |
13 @decorators.Disabled # Disabled due to flakiness: crbug.com/330544 | |
14 def testScrollAction(self): | 13 def testScrollAction(self): |
15 self.Navigate('blank.html') | 14 self.Navigate('blank.html') |
16 | 15 |
17 # Make page bigger than window so it's scrollable. | 16 # Make page bigger than window so it's scrollable. |
18 self._tab.ExecuteJavaScript("""document.body.style.height = | 17 self._tab.ExecuteJavaScript("""document.body.style.height = |
19 (2 * window.innerHeight + 1) + 'px';""") | 18 (2 * window.innerHeight + 1) + 'px';""") |
20 | 19 |
21 self.assertEquals( | 20 self.assertEquals( |
22 self._tab.EvaluateJavaScript("""document.documentElement.scrollTop | 21 self._tab.EvaluateJavaScript("""document.documentElement.scrollTop |
23 || document.body.scrollTop"""), 0) | 22 || document.body.scrollTop"""), 0) |
24 | 23 |
25 i = scroll.ScrollAction() | 24 i = scroll.ScrollAction() |
26 i.WillRunAction(self._tab) | 25 i.WillRunAction(self._tab) |
27 | 26 |
28 self._tab.ExecuteJavaScript(""" | 27 self._tab.ExecuteJavaScript(""" |
29 window.__scrollAction.beginMeasuringHook = function() { | 28 window.__scrollAction.beginMeasuringHook = function() { |
30 window.__didBeginMeasuring = true; | 29 window.__didBeginMeasuring = true; |
31 }; | 30 }; |
32 window.__scrollAction.endMeasuringHook = function() { | 31 window.__scrollAction.endMeasuringHook = function() { |
33 window.__didEndMeasuring = true; | 32 window.__didEndMeasuring = true; |
34 };""") | 33 };""") |
35 i.RunAction(self._tab) | 34 i.RunAction(self._tab) |
36 | 35 |
37 self.assertTrue(self._tab.EvaluateJavaScript('window.__didBeginMeasuring')) | 36 self.assertTrue(self._tab.EvaluateJavaScript('window.__didBeginMeasuring')) |
38 self.assertTrue(self._tab.EvaluateJavaScript('window.__didEndMeasuring')) | 37 self.assertTrue(self._tab.EvaluateJavaScript('window.__didEndMeasuring')) |
39 | 38 |
40 # Allow for roundoff error in scaled viewport. | |
41 scroll_position = self._tab.EvaluateJavaScript( | 39 scroll_position = self._tab.EvaluateJavaScript( |
42 """(document.documentElement.scrollTop || document.body.scrollTop) | 40 """(document.documentElement.scrollTop || document.body.scrollTop)""") |
sullivan
2015/03/05 03:03:58
Nit: Don't need the triple quotes since this fits
| |
43 + window.innerHeight""") | 41 self.assertTrue(scroll_position != 0, |
44 scroll_height = self._tab.EvaluateJavaScript('document.body.scrollHeight') | 42 msg='scroll_position=%d;' % (scroll_position)) |
45 difference = scroll_position - scroll_height | |
46 self.assertTrue(abs(difference) <= 1, | |
47 msg='scroll_position=%d; scroll_height=%d' % | |
48 (scroll_position, scroll_height)) | |
49 | 43 |
50 def testBoundingClientRect(self): | 44 def testBoundingClientRect(self): |
51 self.Navigate('blank.html') | 45 self.Navigate('blank.html') |
52 | 46 |
53 with open(os.path.join(os.path.dirname(__file__), | 47 with open(os.path.join(os.path.dirname(__file__), |
54 'gesture_common.js')) as f: | 48 'gesture_common.js')) as f: |
55 js = f.read() | 49 js = f.read() |
56 self._tab.ExecuteJavaScript(js) | 50 self._tab.ExecuteJavaScript(js) |
57 | 51 |
58 # Verify that the rect returned by getBoundingVisibleRect() in scroll.js is | 52 # Verify that the rect returned by getBoundingVisibleRect() in scroll.js is |
(...skipping 27 matching lines...) Expand all Loading... | |
86 viewport_width = int(self._tab.EvaluateJavaScript('window.innerWidth')) | 80 viewport_width = int(self._tab.EvaluateJavaScript('window.innerWidth')) |
87 | 81 |
88 self.assertTrue(rect_top >= 0, | 82 self.assertTrue(rect_top >= 0, |
89 msg='%s >= %s' % (rect_top, 0)) | 83 msg='%s >= %s' % (rect_top, 0)) |
90 self.assertTrue(rect_left >= 0, | 84 self.assertTrue(rect_left >= 0, |
91 msg='%s >= %s' % (rect_left, 0)) | 85 msg='%s >= %s' % (rect_left, 0)) |
92 self.assertTrue(rect_bottom <= viewport_height, | 86 self.assertTrue(rect_bottom <= viewport_height, |
93 msg='%s + %s <= %s' % (rect_top, rect_height, viewport_height)) | 87 msg='%s + %s <= %s' % (rect_top, rect_height, viewport_height)) |
94 self.assertTrue(rect_right <= viewport_width, | 88 self.assertTrue(rect_right <= viewport_width, |
95 msg='%s + %s <= %s' % (rect_left, rect_width, viewport_width)) | 89 msg='%s + %s <= %s' % (rect_left, rect_width, viewport_width)) |
OLD | NEW |