Index: athena/wm/split_view_controller_unittest.cc |
diff --git a/athena/wm/split_view_controller_unittest.cc b/athena/wm/split_view_controller_unittest.cc |
index 06cde2096dd7e19be9ccae2bd1caaadaf0d2876d..d84a9f83cb85371f2fcf33d31c5b2259868e57ab 100644 |
--- a/athena/wm/split_view_controller_unittest.cc |
+++ b/athena/wm/split_view_controller_unittest.cc |
@@ -46,6 +46,22 @@ class SplitViewControllerTest : public test::AthenaTestBase { |
second_topmost == controller->right_window()); |
} |
+ // Returns whether only the split view windows are visible. |
+ bool OnlySplitViewWindowsVisible() const { |
+ SplitViewController* controller = api_->GetSplitViewController(); |
+ DCHECK(controller->IsSplitViewModeActive()); |
+ aura::Window::Windows list = |
+ api_->GetWindowListProvider()->GetWindowList(); |
+ for (aura::Window::Windows::const_iterator it = list.begin(); |
+ it != list.end(); ++it) { |
+ bool in_split_view = (*it == controller->left_window() || |
+ *it == controller->right_window()); |
+ if (in_split_view != (*it)->IsVisible()) |
+ return false; |
+ } |
+ return true; |
+ } |
+ |
bool IsSplitViewAllowed() const { |
return api_->GetSplitViewController()->CanScroll(); |
} |
@@ -69,8 +85,11 @@ TEST_F(SplitViewControllerTest, SplitModeActivation) { |
for (size_t i = 0; i < kNumWindows; ++i) { |
scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect()); |
windows.push_back(window.release()); |
+ windows[i]->Hide(); |
} |
+ windows[kNumWindows - 1]->Show(); |
+ |
SplitViewController* controller = api()->GetSplitViewController(); |
ASSERT_FALSE(controller->IsSplitViewModeActive()); |
@@ -80,6 +99,7 @@ TEST_F(SplitViewControllerTest, SplitModeActivation) { |
EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); |
EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); |
EXPECT_TRUE(SplitViewWindowsTopmost()); |
+ EXPECT_TRUE(OnlySplitViewWindowsVisible()); |
// Select the window that is currently on the left for the right panel. The |
// windows should switch. |
@@ -87,11 +107,13 @@ TEST_F(SplitViewControllerTest, SplitModeActivation) { |
EXPECT_EQ(windows[kNumWindows - 2], controller->left_window()); |
EXPECT_EQ(windows[kNumWindows - 1], controller->right_window()); |
EXPECT_TRUE(SplitViewWindowsTopmost()); |
+ EXPECT_TRUE(OnlySplitViewWindowsVisible()); |
controller->ActivateSplitMode(windows[kNumWindows - 1], NULL); |
EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); |
EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); |
EXPECT_TRUE(SplitViewWindowsTopmost()); |
+ EXPECT_TRUE(OnlySplitViewWindowsVisible()); |
// Select one of the windows behind the stacks for the right panel. The window |
// on the left should remain unchanged. |
@@ -99,21 +121,25 @@ TEST_F(SplitViewControllerTest, SplitModeActivation) { |
EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); |
EXPECT_EQ(windows[0], controller->right_window()); |
EXPECT_TRUE(SplitViewWindowsTopmost()); |
+ EXPECT_TRUE(OnlySplitViewWindowsVisible()); |
controller->ActivateSplitMode(windows[1], NULL); |
EXPECT_EQ(windows[1], controller->left_window()); |
EXPECT_EQ(windows[0], controller->right_window()); |
EXPECT_TRUE(SplitViewWindowsTopmost()); |
+ EXPECT_TRUE(OnlySplitViewWindowsVisible()); |
controller->ActivateSplitMode(windows[4], windows[5]); |
EXPECT_EQ(windows[4], controller->left_window()); |
EXPECT_EQ(windows[5], controller->right_window()); |
EXPECT_TRUE(SplitViewWindowsTopmost()); |
+ EXPECT_TRUE(OnlySplitViewWindowsVisible()); |
controller->ActivateSplitMode(windows[0], NULL); |
EXPECT_EQ(windows[0], controller->left_window()); |
EXPECT_EQ(windows[5], controller->right_window()); |
EXPECT_TRUE(SplitViewWindowsTopmost()); |
+ EXPECT_TRUE(OnlySplitViewWindowsVisible()); |
} |
TEST_F(SplitViewControllerTest, LandscapeOnly) { |