Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(363)

Unified Diff: athena/wm/split_view_controller_unittest.cc

Issue 574113004: [Athena] Fix switching activities by swiping from the right bezel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@athena_split
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « athena/wm/split_view_controller.cc ('k') | athena/wm/window_list_provider_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 081c6f18c3fe475cbadb6a97eab20cdcb684ba24..f2a1a4d6bc3f1423237f558a7dba4c239f3e9817 100644
--- a/athena/wm/split_view_controller_unittest.cc
+++ b/athena/wm/split_view_controller_unittest.cc
@@ -13,6 +13,7 @@
#include "ui/aura/window.h"
#include "ui/gfx/display.h"
#include "ui/gfx/screen.h"
+#include "ui/wm/core/window_util.h"
namespace athena {
@@ -32,18 +33,16 @@ class SplitViewControllerTest : public test::AthenaTestBase {
test::AthenaTestBase::TearDown();
}
- // Returns whether the split view windows are topmost.
- bool SplitViewWindowsTopmost() const {
- SplitViewController* controller = api_->GetSplitViewController();
- DCHECK(controller->IsSplitViewModeActive());
+ // Returns the topmost window in z-order.
+ const aura::Window* GetTopmostWindow() const {
+ return *api_->GetWindowListProvider()->GetWindowList().rbegin();
+ }
+
+ // Returns the second topmost window in z-order.
+ const aura::Window* GetSecondTopmostWindow() const {
const aura::Window::Windows& list =
api_->GetWindowListProvider()->GetWindowList();
- aura::Window* topmost = *list.rbegin();
- aura::Window* second_topmost = *(list.rbegin() + 1);
- return (topmost == controller->left_window() ||
- topmost == controller->right_window()) &&
- (second_topmost == controller->left_window() ||
- second_topmost == controller->right_window());
+ return *(list.rbegin() + 1);
}
// Returns whether only the split view windows are visible.
@@ -89,56 +88,76 @@ TEST_F(SplitViewControllerTest, SplitModeActivation) {
}
windows[kNumWindows - 1]->Show();
+ wm::ActivateWindow(windows[kNumWindows - 1]);
SplitViewController* controller = api()->GetSplitViewController();
ASSERT_FALSE(controller->IsSplitViewModeActive());
- controller->ActivateSplitMode(NULL, NULL);
+ controller->ActivateSplitMode(NULL, NULL, NULL);
ASSERT_TRUE(controller->IsSplitViewModeActive());
// The last two windows should be on the left and right, respectively.
EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
EXPECT_EQ(windows[kNumWindows - 2], controller->right_window());
- EXPECT_TRUE(SplitViewWindowsTopmost());
+ EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow());
+ EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow());
EXPECT_TRUE(OnlySplitViewWindowsVisible());
// Select the window that is currently on the left for the right panel. The
// windows should switch.
- controller->ActivateSplitMode(NULL, windows[kNumWindows - 1]);
+ controller->ActivateSplitMode(
+ NULL, windows[kNumWindows - 1], windows[kNumWindows - 1]);
EXPECT_EQ(windows[kNumWindows - 2], controller->left_window());
EXPECT_EQ(windows[kNumWindows - 1], controller->right_window());
- EXPECT_TRUE(SplitViewWindowsTopmost());
+ EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow());
+ EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow());
+ EXPECT_TRUE(OnlySplitViewWindowsVisible());
+
+ controller->ActivateSplitMode(
+ windows[kNumWindows - 1], NULL, windows[kNumWindows - 1]);
+ EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
+ EXPECT_EQ(windows[kNumWindows - 2], controller->right_window());
+ EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow());
+ EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow());
EXPECT_TRUE(OnlySplitViewWindowsVisible());
- controller->ActivateSplitMode(windows[kNumWindows - 1], NULL);
+ // Select the same windows, but pass in a different window to activate.
+ controller->ActivateSplitMode(windows[kNumWindows - 1],
+ windows[kNumWindows - 2],
+ windows[kNumWindows - 2]);
EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
EXPECT_EQ(windows[kNumWindows - 2], controller->right_window());
- EXPECT_TRUE(SplitViewWindowsTopmost());
+ EXPECT_EQ(windows[kNumWindows - 2], GetTopmostWindow());
+ EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow());
EXPECT_TRUE(OnlySplitViewWindowsVisible());
// Select one of the windows behind the stacks for the right panel. The window
// on the left should remain unchanged.
- controller->ActivateSplitMode(NULL, windows[0]);
+ controller->ActivateSplitMode(NULL, windows[0], windows[0]);
EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
EXPECT_EQ(windows[0], controller->right_window());
- EXPECT_TRUE(SplitViewWindowsTopmost());
+ EXPECT_EQ(windows[0], GetTopmostWindow());
+ EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow());
EXPECT_TRUE(OnlySplitViewWindowsVisible());
- controller->ActivateSplitMode(windows[1], NULL);
+ controller->ActivateSplitMode(windows[1], NULL, NULL);
EXPECT_EQ(windows[1], controller->left_window());
EXPECT_EQ(windows[0], controller->right_window());
- EXPECT_TRUE(SplitViewWindowsTopmost());
+ EXPECT_EQ(windows[0], GetTopmostWindow());
+ EXPECT_EQ(windows[1], GetSecondTopmostWindow());
EXPECT_TRUE(OnlySplitViewWindowsVisible());
- controller->ActivateSplitMode(windows[4], windows[5]);
+ controller->ActivateSplitMode(windows[4], windows[5], windows[5]);
EXPECT_EQ(windows[4], controller->left_window());
EXPECT_EQ(windows[5], controller->right_window());
- EXPECT_TRUE(SplitViewWindowsTopmost());
+ EXPECT_EQ(windows[5], GetTopmostWindow());
+ EXPECT_EQ(windows[4], GetSecondTopmostWindow());
EXPECT_TRUE(OnlySplitViewWindowsVisible());
- controller->ActivateSplitMode(windows[0], NULL);
+ controller->ActivateSplitMode(windows[0], NULL, windows[0]);
EXPECT_EQ(windows[0], controller->left_window());
EXPECT_EQ(windows[5], controller->right_window());
- EXPECT_TRUE(SplitViewWindowsTopmost());
+ EXPECT_EQ(windows[0], GetTopmostWindow());
+ EXPECT_EQ(windows[5], GetSecondTopmostWindow());
EXPECT_TRUE(OnlySplitViewWindowsVisible());
}
@@ -148,8 +167,12 @@ TEST_F(SplitViewControllerTest, LandscapeOnly) {
const int kNumWindows = 2;
for (size_t i = 0; i < kNumWindows; ++i) {
scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect());
+ window->Hide();
windows.push_back(window.release());
}
+ windows[kNumWindows - 1]->Show();
+ wm::ActivateWindow(windows[kNumWindows - 1]);
+
ASSERT_EQ(gfx::Display::ROTATE_0,
gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation());
@@ -157,7 +180,7 @@ TEST_F(SplitViewControllerTest, LandscapeOnly) {
ASSERT_TRUE(IsSplitViewAllowed());
ASSERT_FALSE(controller->IsSplitViewModeActive());
- controller->ActivateSplitMode(NULL, NULL);
+ controller->ActivateSplitMode(NULL, NULL, NULL);
ASSERT_TRUE(controller->IsSplitViewModeActive());
// Screen rotation should be locked while in splitview.
« no previous file with comments | « athena/wm/split_view_controller.cc ('k') | athena/wm/window_list_provider_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698