1# Copyright 2014 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5from telemetry.internal.actions import page_action 6from telemetry.testing import tab_test_case 7 8 9class PinchActionTest(tab_test_case.TabTestCase): 10 def setUp(self): 11 super(PinchActionTest, self).setUp() 12 13 def testPinchByApiCalledWithCorrectArguments(self): 14 self.Navigate('blank.html') 15 if not page_action.IsGestureSourceTypeSupported(self._tab, 'touch'): 16 return 17 18 action_runner = self._tab.action_runner 19 action_runner.ExecuteJavaScript(''' 20 chrome.gpuBenchmarking.pinchBy = function( 21 scaleFactor, anchorLeft, anchorTop, callback, speed) { 22 window.__test_scaleFactor = scaleFactor; 23 window.__test_anchorLeft = anchorLeft; 24 window.__test_anchorTop = anchorTop; 25 window.__test_callback = callback; 26 window.__test_speed = speed; 27 window.__pinchActionDone = true; 28 };''') 29 action_runner.PinchPage(scale_factor=2) 30 self.assertEqual( 31 2, action_runner.EvaluateJavaScript('window.__test_scaleFactor')) 32 self.assertTrue( 33 action_runner.EvaluateJavaScript('!isNaN(window.__test_anchorLeft)')) 34 self.assertTrue( 35 action_runner.EvaluateJavaScript('!isNaN(window.__test_anchorTop)')) 36 self.assertTrue( 37 action_runner.EvaluateJavaScript('!!window.__test_callback')) 38 self.assertEqual( 39 800, action_runner.EvaluateJavaScript('window.__test_speed')) 40