Chromium Code Reviews| 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..9d3f66e70d7d92687afc1f232e072c51140f12c7 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 resolutino is set |
|
Jun Mukai
2013/08/01 02:41:00
s/resolutino/resolution/
oshima
2013/08/01 06:02:50
Done.
|
| + // 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 should not change |
|
Jun Mukai
2013/08/01 02:41:00
remove either "must" or "should"
oshima
2013/08/01 06:02:50
Done.
|
| + // 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) { |