| Index: chrome/browser/chromeos/display/display_preferences_unittest.cc
|
| diff --git a/chrome/browser/chromeos/display/display_preferences_unittest.cc b/chrome/browser/chromeos/display/display_preferences_unittest.cc
|
| index 023cfdf34bb660c6fea8e27c5bee7391f06d8b5a..a319c5b307d5f3a378b2c985cb966837523c44a1 100644
|
| --- a/chrome/browser/chromeos/display/display_preferences_unittest.cc
|
| +++ b/chrome/browser/chromeos/display/display_preferences_unittest.cc
|
| @@ -183,7 +183,7 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
|
| ash::internal::DisplayManager* display_manager =
|
| ash::Shell::GetInstance()->display_manager();
|
|
|
| - UpdateDisplay("200x200*2,200x200");
|
| + UpdateDisplay("200x200*2,400x300");
|
| int64 id1 = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().id();
|
| gfx::Display::SetInternalDisplayId(id1);
|
| int64 id2 = ash::ScreenAsh::GetSecondaryDisplay().id();
|
| @@ -231,6 +231,11 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
|
| EXPECT_EQ(1, rotation);
|
| EXPECT_EQ(1250, ui_scale);
|
|
|
| + // Internal display never registere the resolution.
|
| + int width = 0, height = 0;
|
| + EXPECT_FALSE(property->GetInteger("width", &width));
|
| + EXPECT_FALSE(property->GetInteger("height", &height));
|
| +
|
| int top = 0, left = 0, bottom = 0, right = 0;
|
| EXPECT_TRUE(property->GetInteger("insets_top", &top));
|
| EXPECT_TRUE(property->GetInteger("insets_left", &left));
|
| @@ -252,8 +257,31 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
|
| EXPECT_FALSE(property->GetInteger("insets_bottom", &bottom));
|
| EXPECT_FALSE(property->GetInteger("insets_right", &right));
|
|
|
| + // Resolution is saved only when the resolution is set
|
| + // by DisplayManager::SetDisplayResolution
|
| + width = 0;
|
| + height = 0;
|
| + EXPECT_FALSE(property->GetInteger("width", &width));
|
| + EXPECT_FALSE(property->GetInteger("height", &height));
|
| +
|
| + display_manager->SetDisplayResolution(id2, gfx::Size(400, 300));
|
| +
|
| display_controller->SetPrimaryDisplayId(id2);
|
|
|
| + EXPECT_TRUE(properties->GetDictionary(base::Int64ToString(id1), &property));
|
| + width = 0;
|
| + height = 0;
|
| + // Internal dispaly shouldn't store its resolution.
|
| + EXPECT_FALSE(property->GetInteger("width", &width));
|
| + EXPECT_FALSE(property->GetInteger("height", &height));
|
| +
|
| + // External dispaly's resolution must be stored this time.
|
| + EXPECT_TRUE(properties->GetDictionary(base::Int64ToString(id2), &property));
|
| + EXPECT_TRUE(property->GetInteger("width", &width));
|
| + EXPECT_TRUE(property->GetInteger("height", &height));
|
| + EXPECT_EQ(400, width);
|
| + EXPECT_EQ(300, height);
|
| +
|
| // The layout remains the same.
|
| EXPECT_TRUE(displays->GetDictionary(key, &layout_value));
|
| EXPECT_TRUE(ash::DisplayLayout::ConvertFromValue(*layout_value,
|
| @@ -287,7 +315,21 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
|
| EXPECT_TRUE(layout_value->GetString(kPrimaryIdKey, &primary_id_str));
|
| EXPECT_EQ(base::Int64ToString(id2), primary_id_str);
|
|
|
| - UpdateDisplay("200x200*2,200x200");
|
| + EXPECT_TRUE(properties->GetDictionary(base::Int64ToString(id1), &property));
|
| + EXPECT_FALSE(property->GetInteger("width", &width));
|
| + EXPECT_FALSE(property->GetInteger("height", &height));
|
| +
|
| + // External dispaly's selected resolution must not change
|
| + // by mirroring.
|
| + EXPECT_TRUE(properties->GetDictionary(base::Int64ToString(id2), &property));
|
| + EXPECT_TRUE(property->GetInteger("width", &width));
|
| + EXPECT_TRUE(property->GetInteger("height", &height));
|
| + EXPECT_EQ(400, width);
|
| + EXPECT_EQ(300, height);
|
| +
|
| + // Set new display's selected resolution.
|
| + display_manager->SetDisplayResolution(id2 + 1, gfx::Size(500, 400));
|
| + UpdateDisplay("200x200*2,500x400");
|
| // Update key as the 2nd display gets new id.
|
| id2 = ash::ScreenAsh::GetSecondaryDisplay().id();
|
| key = base::Int64ToString(id1) + "," + base::Int64ToString(id2);
|
| @@ -301,6 +343,13 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
|
| EXPECT_FALSE(mirrored);
|
| EXPECT_TRUE(layout_value->GetString(kPrimaryIdKey, &primary_id_str));
|
| EXPECT_EQ(base::Int64ToString(id1), primary_id_str);
|
| +
|
| + // External dispaly's selected resolution must be updated.
|
| + EXPECT_TRUE(properties->GetDictionary(base::Int64ToString(id2), &property));
|
| + EXPECT_TRUE(property->GetInteger("width", &width));
|
| + EXPECT_TRUE(property->GetInteger("height", &height));
|
| + EXPECT_EQ(500, width);
|
| + EXPECT_EQ(400, height);
|
| }
|
|
|
| TEST_F(DisplayPreferencesTest, StoreForSwappedDisplay) {
|
|
|