Index: ash/wm/system_modal_container_layout_manager_unittest.cc |
diff --git a/ash/wm/system_modal_container_layout_manager_unittest.cc b/ash/wm/system_modal_container_layout_manager_unittest.cc |
index ce8c21ccd49594d921d89edb92833464c7320cbf..2e1ab67383466030f50b29828cf88844de5015bd 100644 |
--- a/ash/wm/system_modal_container_layout_manager_unittest.cc |
+++ b/ash/wm/system_modal_container_layout_manager_unittest.cc |
@@ -58,13 +58,6 @@ class TestWindow : public views::WidgetDelegateView { |
explicit TestWindow(bool modal) : modal_(modal) {} |
virtual ~TestWindow() {} |
- static aura::Window* OpenTestWindow(aura::Window* parent, bool modal) { |
- views::Widget* widget = |
- views::Widget::CreateWindowWithParent(new TestWindow(modal), parent); |
- widget->Show(); |
- return widget->GetNativeView(); |
- } |
- |
// The window needs be closed from widget in order for |
// aura::client::kModalKey property to be reset. |
static void CloseTestWindow(aura::Window* window) { |
@@ -96,7 +89,15 @@ class EventTestWindow : public TestWindow { |
mouse_presses_(0) {} |
virtual ~EventTestWindow() {} |
- aura::Window* OpenTestWindow(aura::Window* parent) { |
+ aura::Window* OpenTestWindowWithContext(aura::RootWindow* context) { |
+ views::Widget* widget = |
+ views::Widget::CreateWindowWithContext(this, context); |
+ widget->Show(); |
+ return widget->GetNativeView(); |
+ } |
+ |
+ aura::Window* OpenTestWindowWithParent(aura::Window* parent) { |
+ DCHECK(parent); |
views::Widget* widget = |
views::Widget::CreateWindowWithParent(this, parent); |
widget->Show(); |
@@ -136,11 +137,26 @@ class TransientWindowObserver : public aura::WindowObserver { |
} // namespace |
-typedef AshTestBase SystemModalContainerLayoutManagerTest; |
+class SystemModalContainerLayoutManagerTest : public AshTestBase { |
+ public: |
+ aura::Window* OpenToplevelTestWindow(bool modal) { |
+ views::Widget* widget = views::Widget::CreateWindowWithContext( |
+ new TestWindow(modal), CurrentContext()); |
+ widget->Show(); |
+ return widget->GetNativeView(); |
+ } |
+ |
+ aura::Window* OpenTestWindowWithParent(aura::Window* parent, bool modal) { |
+ views::Widget* widget = |
+ views::Widget::CreateWindowWithParent(new TestWindow(modal), parent); |
+ widget->Show(); |
+ return widget->GetNativeView(); |
+ } |
+}; |
TEST_F(SystemModalContainerLayoutManagerTest, NonModalTransient) { |
- scoped_ptr<aura::Window> parent(TestWindow::OpenTestWindow(NULL, false)); |
- aura::Window* transient = TestWindow::OpenTestWindow(parent.get(), false); |
+ scoped_ptr<aura::Window> parent(OpenToplevelTestWindow(false)); |
+ aura::Window* transient = OpenTestWindowWithParent(parent.get(), false); |
TransientWindowObserver destruction_observer; |
transient->AddObserver(&destruction_observer); |
@@ -153,10 +169,10 @@ TEST_F(SystemModalContainerLayoutManagerTest, NonModalTransient) { |
} |
TEST_F(SystemModalContainerLayoutManagerTest, ModalTransient) { |
- scoped_ptr<aura::Window> parent(TestWindow::OpenTestWindow(NULL, false)); |
+ scoped_ptr<aura::Window> parent(OpenToplevelTestWindow(false)); |
// parent should be active. |
EXPECT_TRUE(wm::IsActiveWindow(parent.get())); |
- aura::Window* t1 = TestWindow::OpenTestWindow(parent.get(), true); |
+ aura::Window* t1 = OpenTestWindowWithParent(parent.get(), true); |
TransientWindowObserver do1; |
t1->AddObserver(&do1); |
@@ -173,7 +189,7 @@ TEST_F(SystemModalContainerLayoutManagerTest, ModalTransient) { |
EXPECT_TRUE(wm::IsActiveWindow(t1)); |
// Now open another modal transient parented to the original modal transient. |
- aura::Window* t2 = TestWindow::OpenTestWindow(t1, true); |
+ aura::Window* t2 = OpenTestWindowWithParent(t1, true); |
TransientWindowObserver do2; |
t2->AddObserver(&do2); |
@@ -194,7 +210,7 @@ TEST_F(SystemModalContainerLayoutManagerTest, ModalTransient) { |
} |
TEST_F(SystemModalContainerLayoutManagerTest, ModalNonTransient) { |
- scoped_ptr<aura::Window> t1(TestWindow::OpenTestWindow(NULL, true)); |
+ scoped_ptr<aura::Window> t1(OpenToplevelTestWindow(true)); |
// parent should be active. |
EXPECT_TRUE(wm::IsActiveWindow(t1.get())); |
TransientWindowObserver do1; |
@@ -213,7 +229,7 @@ TEST_F(SystemModalContainerLayoutManagerTest, ModalNonTransient) { |
EXPECT_TRUE(wm::IsActiveWindow(t1.get())); |
// Now open another modal transient parented to the original modal transient. |
- aura::Window* t2 = TestWindow::OpenTestWindow(t1.get(), true); |
+ aura::Window* t2 = OpenTestWindowWithParent(t1.get(), true); |
TransientWindowObserver do2; |
t2->AddObserver(&do2); |
@@ -244,14 +260,14 @@ TEST_F(SystemModalContainerLayoutManagerTest, ModalNonTransient) { |
// for a window. |
TEST_F(SystemModalContainerLayoutManagerTest, |
MAYBE_CanActivateAfterEndModalSession) { |
- scoped_ptr<aura::Window> unrelated(TestWindow::OpenTestWindow(NULL, false)); |
+ scoped_ptr<aura::Window> unrelated(OpenToplevelTestWindow(false)); |
unrelated->SetBounds(gfx::Rect(100, 100, 50, 50)); |
- scoped_ptr<aura::Window> parent(TestWindow::OpenTestWindow(NULL, false)); |
+ scoped_ptr<aura::Window> parent(OpenToplevelTestWindow(false)); |
// parent should be active. |
EXPECT_TRUE(wm::IsActiveWindow(parent.get())); |
scoped_ptr<aura::Window> transient( |
- TestWindow::OpenTestWindow(parent.get(), true)); |
+ OpenTestWindowWithParent(parent.get(), true)); |
// t1 should now be active. |
EXPECT_TRUE(wm::IsActiveWindow(transient.get())); |
@@ -278,7 +294,8 @@ TEST_F(SystemModalContainerLayoutManagerTest, |
TEST_F(SystemModalContainerLayoutManagerTest, EventFocusContainers) { |
// Create a normal window and attempt to receive a click event. |
EventTestWindow* main_delegate = new EventTestWindow(false); |
- scoped_ptr<aura::Window> main(main_delegate->OpenTestWindow(NULL)); |
+ scoped_ptr<aura::Window> main( |
+ main_delegate->OpenTestWindowWithContext(CurrentContext())); |
EXPECT_TRUE(wm::IsActiveWindow(main.get())); |
aura::test::EventGenerator e1(Shell::GetPrimaryRootWindow(), main.get()); |
e1.ClickLeftButton(); |
@@ -287,7 +304,8 @@ TEST_F(SystemModalContainerLayoutManagerTest, EventFocusContainers) { |
// Create a modal window for the main window and verify that the main window |
// no longer receives mouse events. |
EventTestWindow* transient_delegate = new EventTestWindow(true); |
- aura::Window* transient = transient_delegate->OpenTestWindow(main.get()); |
+ aura::Window* transient = |
+ transient_delegate->OpenTestWindowWithParent(main.get()); |
EXPECT_TRUE(wm::IsActiveWindow(transient)); |
e1.ClickLeftButton(); |
EXPECT_EQ(1, transient_delegate->mouse_presses()); |
@@ -296,7 +314,7 @@ TEST_F(SystemModalContainerLayoutManagerTest, EventFocusContainers) { |
// the mouse event instead of the modal window (crbug.com/110920). |
Shell::GetInstance()->delegate()->LockScreen(); |
EventTestWindow* lock_delegate = new EventTestWindow(false); |
- scoped_ptr<aura::Window> lock(lock_delegate->OpenTestWindow( |
+ scoped_ptr<aura::Window> lock(lock_delegate->OpenTestWindowWithParent( |
Shell::GetPrimaryRootWindowController()->GetContainer( |
ash::internal::kShellWindowId_LockScreenContainer))); |
EXPECT_TRUE(wm::IsActiveWindow(lock.get())); |
@@ -306,7 +324,8 @@ TEST_F(SystemModalContainerLayoutManagerTest, EventFocusContainers) { |
// Make sure that a modal container created by the lock screen can still |
// receive mouse events. |
EventTestWindow* lock_modal_delegate = new EventTestWindow(true); |
- aura::Window* lock_modal = lock_modal_delegate->OpenTestWindow(lock.get()); |
+ aura::Window* lock_modal = |
+ lock_modal_delegate->OpenTestWindowWithParent(lock.get()); |
EXPECT_TRUE(wm::IsActiveWindow(lock_modal)); |
e1.ClickLeftButton(); |
EXPECT_EQ(1, lock_modal_delegate->mouse_presses()); |
@@ -328,17 +347,17 @@ TEST_F(SystemModalContainerLayoutManagerTest, ShowModalWhileHidden) { |
internal::kShellWindowId_SystemModalContainer)->layer()->SetOpacity(0); |
// Create a modal window. |
- scoped_ptr<aura::Window> parent(TestWindow::OpenTestWindow(NULL, false)); |
+ scoped_ptr<aura::Window> parent(OpenToplevelTestWindow(false)); |
scoped_ptr<aura::Window> modal_window( |
- TestWindow::OpenTestWindow(parent.get(), true)); |
+ OpenTestWindowWithParent(parent.get(), true)); |
parent->Show(); |
modal_window->Show(); |
} |
// Verifies we generate a capture lost when showing a modal window. |
TEST_F(SystemModalContainerLayoutManagerTest, ChangeCapture) { |
- views::Widget* widget = |
- views::Widget::CreateWindowWithParent(new TestWindow(false), NULL); |
+ views::Widget* widget = views::Widget::CreateWindowWithContext( |
+ new TestWindow(false), CurrentContext()); |
scoped_ptr<aura::Window> widget_window(widget->GetNativeView()); |
views::test::CaptureTrackingView* view = new views::test::CaptureTrackingView; |
widget->GetContentsView()->AddChildView(view); |
@@ -351,7 +370,7 @@ TEST_F(SystemModalContainerLayoutManagerTest, ChangeCapture) { |
generator.PressLeftButton(); |
EXPECT_TRUE(view->got_press()); |
scoped_ptr<aura::Window> modal_window( |
- TestWindow::OpenTestWindow(widget->GetNativeView(), true)); |
+ OpenTestWindowWithParent(widget->GetNativeView(), true)); |
modal_window->Show(); |
EXPECT_TRUE(view->got_capture_lost()); |
} |
@@ -360,8 +379,8 @@ TEST_F(SystemModalContainerLayoutManagerTest, ChangeCapture) { |
// resize. |
TEST_F(SystemModalContainerLayoutManagerTest, KeepVisible) { |
GetModalContainer()->SetBounds(gfx::Rect(0, 0, 1024, 768)); |
- scoped_ptr<aura::Window> main(TestWindow::OpenTestWindow(GetModalContainer(), |
- true)); |
+ scoped_ptr<aura::Window> main(OpenTestWindowWithParent(GetModalContainer(), |
+ true)); |
main->SetBounds(gfx::Rect(924, 668, 100, 100)); |
// We set now the bounds of the root window to something new which will |
// Then trigger the repos operation. |
@@ -372,9 +391,9 @@ TEST_F(SystemModalContainerLayoutManagerTest, KeepVisible) { |
} |
TEST_F(SystemModalContainerLayoutManagerTest, ShowNormalBackgroundOrLocked) { |
- scoped_ptr<aura::Window> parent(TestWindow::OpenTestWindow(NULL, false)); |
+ scoped_ptr<aura::Window> parent(OpenToplevelTestWindow(false)); |
scoped_ptr<aura::Window> modal_window( |
- TestWindow::OpenTestWindow(parent.get(), true)); |
+ OpenTestWindowWithParent(parent.get(), true)); |
parent->Show(); |
modal_window->Show(); |
@@ -390,11 +409,11 @@ TEST_F(SystemModalContainerLayoutManagerTest, ShowNormalBackgroundOrLocked) { |
// Normal system modal window while locked. Shows locked system modal |
// background. |
Shell::GetInstance()->delegate()->LockScreen(); |
- scoped_ptr<aura::Window> lock_parent(TestWindow::OpenTestWindow( |
+ scoped_ptr<aura::Window> lock_parent(OpenTestWindowWithParent( |
Shell::GetPrimaryRootWindowController()->GetContainer( |
ash::internal::kShellWindowId_LockScreenContainer), |
false)); |
- scoped_ptr<aura::Window> lock_modal_window(TestWindow::OpenTestWindow( |
+ scoped_ptr<aura::Window> lock_modal_window(OpenTestWindowWithParent( |
lock_parent.get(), true)); |
lock_parent->Show(); |
lock_modal_window->Show(); |
@@ -405,7 +424,7 @@ TEST_F(SystemModalContainerLayoutManagerTest, ShowNormalBackgroundOrLocked) { |
// Normal system modal window while locked, but it belongs to the normal |
// window. Shouldn't show locked system modal background, but normal. |
scoped_ptr<aura::Window> modal_window2( |
- TestWindow::OpenTestWindow(parent.get(), true)); |
+ OpenTestWindowWithParent(parent.get(), true)); |
modal_window2->Show(); |
EXPECT_TRUE(AllRootWindowsHaveModalBackgrounds()); |
EXPECT_FALSE(AllRootWindowsHaveLockedModalBackgrounds()); |
@@ -420,7 +439,7 @@ TEST_F(SystemModalContainerLayoutManagerTest, ShowNormalBackgroundOrLocked) { |
TEST_F(SystemModalContainerLayoutManagerTest, MultiDisplays) { |
UpdateDisplay("500x500,500x500"); |
- scoped_ptr<aura::Window> normal(TestWindow::OpenTestWindow(NULL, false)); |
+ scoped_ptr<aura::Window> normal(OpenToplevelTestWindow(false)); |
normal->SetBounds(gfx::Rect(100, 100, 50, 50)); |
Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
@@ -431,16 +450,16 @@ TEST_F(SystemModalContainerLayoutManagerTest, MultiDisplays) { |
root_windows[1], ash::internal::kShellWindowId_SystemModalContainer); |
scoped_ptr<aura::Window> modal1( |
- TestWindow::OpenTestWindow(container1, true)); |
+ OpenTestWindowWithParent(container1, true)); |
EXPECT_TRUE(AllRootWindowsHaveModalBackgrounds()); |
EXPECT_TRUE(wm::IsActiveWindow(modal1.get())); |
scoped_ptr<aura::Window> modal11( |
- TestWindow::OpenTestWindow(container1, true)); |
+ OpenTestWindowWithParent(container1, true)); |
EXPECT_TRUE(wm::IsActiveWindow(modal11.get())); |
scoped_ptr<aura::Window> modal2( |
- TestWindow::OpenTestWindow(container2, true)); |
+ OpenTestWindowWithParent(container2, true)); |
EXPECT_TRUE(wm::IsActiveWindow(modal2.get())); |
// Sanity check if they're on the correct containers. |