| Index: ui/aura_shell/workspace/workspace_manager_unittest.cc
|
| diff --git a/ui/aura_shell/workspace/workspace_manager_unittest.cc b/ui/aura_shell/workspace/workspace_manager_unittest.cc
|
| index 2f2214a02b3831024d92c89f16fffc03a9adc24d..9e19658f9991b49be9172127c974949af3217696 100644
|
| --- a/ui/aura_shell/workspace/workspace_manager_unittest.cc
|
| +++ b/ui/aura_shell/workspace/workspace_manager_unittest.cc
|
| @@ -161,6 +161,49 @@ TEST_F(WorkspaceManagerTest, WorkspaceManagerActivate) {
|
| EXPECT_EQ(NULL, manager.GetActiveWorkspace());
|
| }
|
|
|
| +TEST_F(WorkspaceManagerTest, FindSwapWindow) {
|
| + WorkspaceManager manager(viewport());
|
| + manager.workspace_size_ = gfx::Size(500, 300);
|
| +
|
| + Workspace* ws1 = manager.CreateWorkspace();
|
| + scoped_ptr<Window> w11(CreateTestWindow());
|
| + w11->SetBounds(gfx::Rect(0, 0, 100, 100));
|
| + ws1->AddWindowAfter(w11.get(), NULL);
|
| +
|
| + scoped_ptr<Window> w12(CreateTestWindow());
|
| + w12->SetBounds(gfx::Rect(0, 0, 100, 100));
|
| + ws1->AddWindowAfter(w12.get(), NULL);
|
| + manager.LayoutWorkspaces();
|
| +
|
| + // Workspaces are 0-empt-145-w11-245-margin-265-365-500.
|
| + EXPECT_EQ(NULL, manager.FindSwapWindowForLocation(gfx::Point(0, 0)));
|
| + EXPECT_EQ(NULL, manager.FindSwapWindowForLocation(gfx::Point(100, 0)));
|
| + EXPECT_EQ(w11.get(), manager.FindSwapWindowForLocation(gfx::Point(150, 0)));
|
| + EXPECT_EQ(w12.get(), manager.FindSwapWindowForLocation(gfx::Point(300, 0)));
|
| + EXPECT_EQ(NULL, manager.FindSwapWindowForLocation(gfx::Point(400, 0)));
|
| +
|
| + w11->SetBounds(gfx::Rect(0, 0, 400, 100));
|
| + w12->SetBounds(gfx::Rect(0, 0, 200, 100));
|
| + manager.LayoutWorkspaces();
|
| + EXPECT_EQ(w11.get(), manager.FindSwapWindowForLocation(gfx::Point(10, 0)));
|
| + EXPECT_EQ(w11.get(), manager.FindSwapWindowForLocation(gfx::Point(240, 0)));
|
| + EXPECT_EQ(w12.get(), manager.FindSwapWindowForLocation(gfx::Point(260, 0)));
|
| + EXPECT_EQ(w12.get(), manager.FindSwapWindowForLocation(gfx::Point(490, 0)));
|
| +
|
| + Workspace* ws2 = manager.CreateWorkspace();
|
| + scoped_ptr<Window> w21(CreateTestWindow());
|
| + w21->SetBounds(gfx::Rect(0, 0, 100, 100));
|
| + ws2->AddWindowAfter(w21.get(), NULL);
|
| + manager.LayoutWorkspaces();
|
| +
|
| + // 2nd workspace starts from 500+50 and the window is centered 750-850.
|
| + EXPECT_EQ(NULL, manager.FindSwapWindowForLocation(gfx::Point(600, 0)));
|
| + EXPECT_EQ(NULL, manager.FindSwapWindowForLocation(gfx::Point(740, 0)));
|
| + EXPECT_EQ(w21.get(), manager.FindSwapWindowForLocation(gfx::Point(760, 0)));
|
| + EXPECT_EQ(w21.get(), manager.FindSwapWindowForLocation(gfx::Point(840, 0)));
|
| + EXPECT_EQ(NULL, manager.FindSwapWindowForLocation(gfx::Point(860, 0)));
|
| +}
|
| +
|
| class WorkspaceTest : public WorkspaceManagerTestBase {
|
| };
|
|
|
| @@ -209,4 +252,7 @@ TEST_F(WorkspaceTest, WorkspaceBasic) {
|
| EXPECT_EQ(1, ws->GetIndexOf(w1.get()));
|
| }
|
|
|
| +TEST_F(WorkspaceManagerTest, SwapWindow) {
|
| +}
|
| +
|
| } // namespace aura_shell
|
|
|