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