blob: 59ee60a6c9a240f5175a338f4228652319f78091 [file] [log] [blame]
# Copyright 2018 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.common_lib import error
from autotest_lib.client.cros.multimedia import display_facade_native
from autotest_lib.client.cros.multimedia import facade_resource
class display_InternalDisplayRotation(test.test):
"""Display test case which rotates the internal display"""
version = 1
ROTATIONS = [90, 180, 270, 0]
STANDARD_ROTATION = 0
DELAY_BEFORE_ROTATION = DELAY_AFTER_ROTATION = 3
def cleanup(self):
"""Autotest cleanup method"""
# If the rotation is not standard then change rotation to standard
if self.display_facade:
if self.display_facade.get_display_rotation(
self.internal_display_id) != self.STANDARD_ROTATION:
logging.info("Setting standard rotation")
self.display_facade.set_display_rotation(
self.internal_display_id, self.STANDARD_ROTATION,
self.DELAY_BEFORE_ROTATION, self.DELAY_AFTER_ROTATION)
def run_once(self):
"""Test to rotate internal display"""
facade = facade_resource.FacadeResource()
facade.start_default_chrome()
self.display_facade = display_facade_native.DisplayFacadeNative(facade)
self.internal_display_id = self.display_facade.get_internal_display_id()
logging.info("Internal display ID is %s", self.internal_display_id)
rotation_before_starts = self.display_facade.get_display_rotation(
self.internal_display_id)
logging.info("Rotation before test starts is %d",
rotation_before_starts)
for angle in self.ROTATIONS:
logging.info("Rotation to be set %d", angle)
self.display_facade.set_display_rotation(self.internal_display_id,
angle,
self.DELAY_BEFORE_ROTATION,
self.DELAY_AFTER_ROTATION)
rotation = self.display_facade.get_display_rotation(
self.internal_display_id)
logging.info("Internal display rotation is set to %s", rotation)
if rotation != angle:
raise error.TestFail('Failed to set %d rotation' % angle)