blob: f6708edfdbfa172da550bd74deb304ba185a977c [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from telemetry import decorators
from telemetry.internal.actions import tap
from telemetry.testing import tab_test_case
class TapActionTest(tab_test_case.TabTestCase):
def _PerformTapAction(self, *args, **kwargs):
action = tap.TapAction(*args, **kwargs)
action.WillRunAction(self._tab)
action.RunAction(self._tab)
# https://github.com/catapult-project/catapult/issues/3099 (Android)
# http://crbug.com/634343 (Windows)
@decorators.Disabled('android', 'win')
def testTapSinglePage(self):
self.Navigate('page_with_clickables.html')
self._tab.ExecuteJavaScript('valueSettableByTest = 1;')
self._PerformTapAction('#test')
self.assertEqual(1, self._tab.EvaluateJavaScript('valueToTest'))
self._tab.ExecuteJavaScript('valueSettableByTest = 2;')
self._PerformTapAction(text='Click/tap me')
self.assertEqual(2, self._tab.EvaluateJavaScript('valueToTest'))
self._tab.ExecuteJavaScript('valueSettableByTest = 3;')
self._PerformTapAction(element_function='document.body.firstElementChild')
self.assertEqual(3, self._tab.EvaluateJavaScript('valueToTest'))
@decorators.Disabled('win') # http://crbug.com/634343
def testTapNavigate(self):
self.Navigate('page_with_link.html')
self._PerformTapAction(selector='#clickme')
self._tab.WaitForJavaScriptCondition(
'document.location.pathname === "/blank.html"', timeout=5)
self._tab.WaitForJavaScriptCondition(
'document.readyState === "complete"', timeout=5)