blob: 054146211b68d13caf6c91aaf2edf6627a5a9c6c [file] [log] [blame]
# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import logging
import time
from autotest_lib.client.bin import test
from autotest_lib.client.bin import utils
from autotest_lib.client.common_lib import error
from autotest_lib.client.common_lib.cros import chrome
from autotest_lib.client.cros.input_playback import input_playback
from telemetry.core import exceptions
class platform_InputNewTab(test.test):
"""Tests if device suspends using shortcut keys."""
version = 1
_WAIT = 15
def warmup(self):
"""Test setup."""
# Emulate keyboard.
# See input_playback. The keyboard is used to play back shortcuts.
self._player = input_playback.InputPlayback()
self._player.emulate(input_type='keyboard')
self._player.find_connected_inputs()
def _open_tab(self):
"""Use keyboard shortcut to start a new tab."""
self._player.blocking_playback_of_default_file(
input_type='keyboard', filename='keyboard_ctrl+t')
time.sleep(self._WAIT)
def _close_tab(self):
"""Use keyboard shortcut to start a new tab."""
self._player.blocking_playback_of_default_file(
input_type='keyboard', filename='keyboard_ctrl+w')
time.sleep(self._WAIT)
def verify_num_tabs(self, expected_num):
"""Verify number of tabs open.
@param expected_num: expected number of tabs
@raises: error.TestFail if number of expected tabs does not equal
number of current tabs.
"""
current_num = len(self.cr.browser.tabs)
utils.poll_for_condition(
lambda: current_num == expected_num,
exception=error.TestFail('Incorrect number of tabs: %s vs %s'
% (current_num, expected_num)),
timeout=self._WAIT)
def run_once(self):
"""
Open and close tabs in new browser. Verify expected
number of tabs.
"""
with chrome.Chrome() as cr:
self.cr = cr
time.sleep(self._WAIT)
init_tabs = len(cr.browser.tabs)
self._open_tab()
self.verify_num_tabs(init_tabs + 1)
self._open_tab()
self.verify_num_tabs(init_tabs + 2)
self._close_tab()
self.verify_num_tabs(init_tabs + 1)
def cleanup(self):
"""Test cleanup."""
self._player.close()