Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Unified Diff: chrome/browser/extensions/display_info_provider_chromeos_unittest.cc

Issue 1109553003: Test chrome.system.display during TouchView (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
diff --git a/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc b/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
index 3df2766a5c8fe70743128d7ded44e2e961082616..5adde05bdbaa7304022da825d87ffde3fd93e3cf 100644
--- a/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
+++ b/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
@@ -4,12 +4,16 @@
#include "extensions/browser/api/system_display/display_info_provider.h"
+#include "ash/ash_switches.h"
+#include "ash/content/display/screen_orientation_controller_chromeos.h"
#include "ash/display/display_controller.h"
#include "ash/display/display_manager.h"
#include "ash/screen_util.h"
#include "ash/shell.h"
#include "ash/test/ash_test_base.h"
#include "ash/test/display_manager_test_api.h"
+#include "ash/wm/maximize_mode/maximize_mode_controller.h"
+#include "base/command_line.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "extensions/common/api/system_display.h"
@@ -25,6 +29,12 @@ class DisplayInfoProviderChromeosTest : public ash::test::AshTestBase {
~DisplayInfoProviderChromeosTest() override {}
+ void SetUp() override {
+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
+ ash::switches::kAshUseFirstDisplayAsInternal);
+ ash::test::AshTestBase::SetUp();
+ }
+
protected:
void CallSetDisplayUnitInfo(
const std::string& display_id,
@@ -716,6 +726,70 @@ TEST_F(DisplayInfoProviderChromeosTest, SetRotation) {
EXPECT_EQ(ash::Shell::GetScreen()->GetPrimaryDisplay().id(), secondary.id());
}
+// Tests that rotation changes made before entering maximize mode are restored
+// upon exiting maximize mode, and that a rotation lock is not set.
+TEST_F(DisplayInfoProviderChromeosTest, SetRotationBeforeMaximizeMode) {
+ ash::ScreenOrientationController* screen_orientation_controller =
+ ash::Shell::GetInstance()->screen_orientation_controller();
+ core_api::system_display::DisplayProperties info;
+ info.rotation.reset(new int(90));
+
+ bool success = false;
+ std::string error;
+ CallSetDisplayUnitInfo(base::Int64ToString(gfx::Display::InternalDisplayId()),
+ info, &success, &error);
+
+ ASSERT_TRUE(success);
+ EXPECT_TRUE(error.empty());
+ EXPECT_FALSE(screen_orientation_controller->rotation_locked());
+
+ // Entering maximize mode enables accelerometer screen rotations.
+ ash::Shell::GetInstance()
+ ->maximize_mode_controller()
+ ->EnableMaximizeModeWindowManager(true);
+ // Rotation lock should not activate as user entered this mode after initial
+ // screen rotation.
pkotwicz 2015/04/27 17:44:39 How about: "Rotation lock should not activate beca
jonross 2015/04/28 14:25:35 Done.
+ EXPECT_FALSE(screen_orientation_controller->rotation_locked());
+
+ // ScreenOrientationController rotations override display info.
+ screen_orientation_controller->SetDisplayRotation(
+ gfx::Display::ROTATE_0, gfx::Display::ROTATION_SOURCE_ACTIVE);
+ EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
+
+ // Exiting maximize mode should restore the initial rotation
+ ash::Shell::GetInstance()
+ ->maximize_mode_controller()
+ ->EnableMaximizeModeWindowManager(false);
+ EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
+}
+
+// Tests that rotation changes made during Maximize Mode lock the display
+// against accelerometer rotations.
pkotwicz 2015/04/27 17:44:39 Nit: "Maximize Mode" -> "maximize mode"
jonross 2015/04/28 14:25:35 Done.
+TEST_F(DisplayInfoProviderChromeosTest, SetRotationDuringMaximizeMode) {
+ // Entering maximize mode enables accelerometer screen rotations.
+ ash::Shell::GetInstance()
+ ->maximize_mode_controller()
+ ->EnableMaximizeModeWindowManager(true);
+
+ ASSERT_FALSE(ash::Shell::GetInstance()
+ ->screen_orientation_controller()
+ ->rotation_locked());
+
+ core_api::system_display::DisplayProperties info;
+ info.rotation.reset(new int(90));
+
+ bool success = false;
+ std::string error;
+ CallSetDisplayUnitInfo(base::Int64ToString(gfx::Display::InternalDisplayId()),
+ info, &success, &error);
+
+ ASSERT_TRUE(success);
+ EXPECT_TRUE(error.empty());
+ EXPECT_TRUE(ash::Shell::GetInstance()
+ ->screen_orientation_controller()
+ ->rotation_locked());
+}
+
TEST_F(DisplayInfoProviderChromeosTest, SetInvalidRotation) {
UpdateDisplay("1200x600,600x1000*2");
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698