| # 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) |