| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "build/chromeos_buildflags.h" |
| #include "content/public/test/browser_test.h" |
| #include "content/public/test/browser_test_utils.h" |
| #include "content/public/test/content_browser_test.h" |
| #include "content/shell/browser/shell.h" |
| #include "ui/display/display.h" |
| #include "ui/display/screen.h" |
| |
| namespace content { |
| |
| // TODO(https://crbug.com/998131): Add test coverage across all platforms. |
| #if BUILDFLAG(IS_CHROMEOS_ASH) |
| class PanelRotationBrowserTest : public ContentBrowserTest { |
| protected: |
| void SetPanelRotation(display::Display::Rotation rotation) { |
| display::Screen* screen = display::Screen::GetScreen(); |
| screen->SetPanelRotationForTesting(screen->GetPrimaryDisplay().id(), |
| rotation); |
| } |
| int ReadScreenOrientationAngle() { |
| return EvalJs(CreateBrowser()->web_contents(), "screen.orientation.angle") |
| .ExtractInt(); |
| } |
| }; |
| |
| IN_PROC_BROWSER_TEST_F(PanelRotationBrowserTest, ScreenOrientationAPI) { |
| SetPanelRotation(display::Display::ROTATE_0); |
| EXPECT_EQ(ReadScreenOrientationAngle(), 0); |
| |
| SetPanelRotation(display::Display::ROTATE_90); |
| EXPECT_EQ(ReadScreenOrientationAngle(), 270); |
| |
| SetPanelRotation(display::Display::ROTATE_180); |
| EXPECT_EQ(ReadScreenOrientationAngle(), 180); |
| |
| SetPanelRotation(display::Display::ROTATE_270); |
| EXPECT_EQ(ReadScreenOrientationAngle(), 90); |
| } |
| #endif // BUILDFLAG(IS_CHROMEOS_ASH) |
| |
| } // namespace content |