| Index: ash/display/display_manager_unittest.cc
|
| diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc
|
| index b9ed83d8150c41228ea16cefbda3250af2070f82..775f3d5c9fbcb5d7999b643eccacfa8b790c56db 100644
|
| --- a/ash/display/display_manager_unittest.cc
|
| +++ b/ash/display/display_manager_unittest.cc
|
| @@ -1381,6 +1381,48 @@ TEST_F(DisplayManagerTest, InvertLayout) {
|
| DisplayLayout(DisplayLayout::BOTTOM, -80).Invert().ToString());
|
| }
|
|
|
| +TEST_F(DisplayManagerTest, NotifyPrimaryChange) {
|
| + if (!SupportsMultipleDisplays())
|
| + return;
|
| + UpdateDisplay("500x500,500x500");
|
| + ash::Shell::GetInstance()->display_controller()->SwapPrimaryDisplay();
|
| + reset();
|
| + UpdateDisplay("500x500");
|
| + EXPECT_FALSE(changed_metrics() & gfx::DisplayObserver::DISPLAY_METRIC_BOUNDS);
|
| + EXPECT_FALSE(changed_metrics() &
|
| + gfx::DisplayObserver::DISPLAY_METRIC_WORK_AREA);
|
| + EXPECT_TRUE(changed_metrics() &
|
| + gfx::DisplayObserver::DISPLAY_METRIC_PRIMARY);
|
| +
|
| + UpdateDisplay("500x500,500x500");
|
| + ash::Shell::GetInstance()->display_controller()->SwapPrimaryDisplay();
|
| + reset();
|
| + UpdateDisplay("500x400");
|
| + EXPECT_TRUE(changed_metrics() & gfx::DisplayObserver::DISPLAY_METRIC_BOUNDS);
|
| + EXPECT_TRUE(changed_metrics() &
|
| + gfx::DisplayObserver::DISPLAY_METRIC_WORK_AREA);
|
| + EXPECT_TRUE(changed_metrics() &
|
| + gfx::DisplayObserver::DISPLAY_METRIC_PRIMARY);
|
| +}
|
| +
|
| +TEST_F(DisplayManagerTest, NotifyPrimaryChangeUndock) {
|
| + if (!SupportsMultipleDisplays())
|
| + return;
|
| + // Assume the default display is an external display, and
|
| + // emulates undocking by switching to another display.
|
| + DisplayInfo another_display_info =
|
| + CreateDisplayInfo(1, gfx::Rect(0, 0, 1280, 800));
|
| + std::vector<DisplayInfo> info_list;
|
| + info_list.push_back(another_display_info);
|
| + reset();
|
| + display_manager()->OnNativeDisplaysChanged(info_list);
|
| + EXPECT_TRUE(changed_metrics() & gfx::DisplayObserver::DISPLAY_METRIC_BOUNDS);
|
| + EXPECT_TRUE(changed_metrics() &
|
| + gfx::DisplayObserver::DISPLAY_METRIC_WORK_AREA);
|
| + EXPECT_TRUE(changed_metrics() &
|
| + gfx::DisplayObserver::DISPLAY_METRIC_PRIMARY);
|
| +}
|
| +
|
| #if defined(OS_WIN)
|
| // TODO(scottmg): RootWindow doesn't get resized on Windows
|
| // Ash. http://crbug.com/247916.
|
|
|