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

Side by Side Diff: ash/wm/workspace_controller_unittest.cc

Issue 115153002: wm: public window_types. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ozone deps Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/wm/workspace_controller.h" 5 #include "ash/wm/workspace_controller.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "ash/ash_switches.h" 9 #include "ash/ash_switches.h"
10 #include "ash/root_window_controller.h" 10 #include "ash/root_window_controller.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 } 78 }
79 79
80 class WorkspaceControllerTest : public test::AshTestBase { 80 class WorkspaceControllerTest : public test::AshTestBase {
81 public: 81 public:
82 WorkspaceControllerTest() {} 82 WorkspaceControllerTest() {}
83 virtual ~WorkspaceControllerTest() {} 83 virtual ~WorkspaceControllerTest() {}
84 84
85 aura::Window* CreateTestWindowUnparented() { 85 aura::Window* CreateTestWindowUnparented() {
86 aura::Window* window = new aura::Window(NULL); 86 aura::Window* window = new aura::Window(NULL);
87 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); 87 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
88 window->SetType(aura::client::WINDOW_TYPE_NORMAL); 88 window->SetType(ui::wm::WINDOW_TYPE_NORMAL);
89 window->Init(ui::LAYER_TEXTURED); 89 window->Init(ui::LAYER_TEXTURED);
90 return window; 90 return window;
91 } 91 }
92 92
93 aura::Window* CreateTestWindow() { 93 aura::Window* CreateTestWindow() {
94 aura::Window* window = new aura::Window(NULL); 94 aura::Window* window = new aura::Window(NULL);
95 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); 95 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
96 window->SetType(aura::client::WINDOW_TYPE_NORMAL); 96 window->SetType(ui::wm::WINDOW_TYPE_NORMAL);
97 window->Init(ui::LAYER_TEXTURED); 97 window->Init(ui::LAYER_TEXTURED);
98 ParentWindowInPrimaryRootWindow(window); 98 ParentWindowInPrimaryRootWindow(window);
99 return window; 99 return window;
100 } 100 }
101 101
102 aura::Window* CreateBrowserLikeWindow(const gfx::Rect& bounds) { 102 aura::Window* CreateBrowserLikeWindow(const gfx::Rect& bounds) {
103 aura::Window* window = CreateTestWindow(); 103 aura::Window* window = CreateTestWindow();
104 window->SetBounds(bounds); 104 window->SetBounds(bounds);
105 wm::WindowState* window_state = wm::GetWindowState(window); 105 wm::WindowState* window_state = wm::GetWindowState(window);
106 window_state->set_window_position_managed(true); 106 window_state->set_window_position_managed(true);
(...skipping 1000 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 ",32 640x320", window1->bounds().ToString()); 1107 ",32 640x320", window1->bounds().ToString());
1108 EXPECT_EQ("0,48 256x512", window2->bounds().ToString()); 1108 EXPECT_EQ("0,48 256x512", window2->bounds().ToString());
1109 } 1109 }
1110 1110
1111 // This tests simulates a browser and an app and verifies the ordering of the 1111 // This tests simulates a browser and an app and verifies the ordering of the
1112 // windows and layers doesn't get out of sync as various operations occur. Its 1112 // windows and layers doesn't get out of sync as various operations occur. Its
1113 // really testing code in FocusController, but easier to simulate here. Just as 1113 // really testing code in FocusController, but easier to simulate here. Just as
1114 // with a real browser the browser here has a transient child window 1114 // with a real browser the browser here has a transient child window
1115 // (corresponds to the status bubble). 1115 // (corresponds to the status bubble).
1116 TEST_F(WorkspaceControllerTest, VerifyLayerOrdering) { 1116 TEST_F(WorkspaceControllerTest, VerifyLayerOrdering) {
1117 scoped_ptr<Window> browser( 1117 scoped_ptr<Window> browser(aura::test::CreateTestWindowWithDelegate(
1118 aura::test::CreateTestWindowWithDelegate( 1118 NULL, ui::wm::WINDOW_TYPE_NORMAL, gfx::Rect(5, 6, 7, 8), NULL));
1119 NULL,
1120 aura::client::WINDOW_TYPE_NORMAL,
1121 gfx::Rect(5, 6, 7, 8),
1122 NULL));
1123 browser->SetName("browser"); 1119 browser->SetName("browser");
1124 ParentWindowInPrimaryRootWindow(browser.get()); 1120 ParentWindowInPrimaryRootWindow(browser.get());
1125 browser->Show(); 1121 browser->Show();
1126 wm::ActivateWindow(browser.get()); 1122 wm::ActivateWindow(browser.get());
1127 1123
1128 // |status_bubble| is made a transient child of |browser| and as a result 1124 // |status_bubble| is made a transient child of |browser| and as a result
1129 // owned by |browser|. 1125 // owned by |browser|.
1130 aura::test::TestWindowDelegate* status_bubble_delegate = 1126 aura::test::TestWindowDelegate* status_bubble_delegate =
1131 aura::test::TestWindowDelegate::CreateSelfDestroyingDelegate(); 1127 aura::test::TestWindowDelegate::CreateSelfDestroyingDelegate();
1132 status_bubble_delegate->set_can_focus(false); 1128 status_bubble_delegate->set_can_focus(false);
1133 Window* status_bubble = 1129 Window* status_bubble =
1134 aura::test::CreateTestWindowWithDelegate( 1130 aura::test::CreateTestWindowWithDelegate(status_bubble_delegate,
1135 status_bubble_delegate, 1131 ui::wm::WINDOW_TYPE_POPUP,
1136 aura::client::WINDOW_TYPE_POPUP, 1132 gfx::Rect(5, 6, 7, 8),
1137 gfx::Rect(5, 6, 7, 8), 1133 NULL);
1138 NULL);
1139 browser->AddTransientChild(status_bubble); 1134 browser->AddTransientChild(status_bubble);
1140 ParentWindowInPrimaryRootWindow(status_bubble); 1135 ParentWindowInPrimaryRootWindow(status_bubble);
1141 status_bubble->SetName("status_bubble"); 1136 status_bubble->SetName("status_bubble");
1142 1137
1143 scoped_ptr<Window> app( 1138 scoped_ptr<Window> app(aura::test::CreateTestWindowWithDelegate(
1144 aura::test::CreateTestWindowWithDelegate( 1139 NULL, ui::wm::WINDOW_TYPE_NORMAL, gfx::Rect(5, 6, 7, 8), NULL));
1145 NULL,
1146 aura::client::WINDOW_TYPE_NORMAL,
1147 gfx::Rect(5, 6, 7, 8),
1148 NULL));
1149 app->SetName("app"); 1140 app->SetName("app");
1150 ParentWindowInPrimaryRootWindow(app.get()); 1141 ParentWindowInPrimaryRootWindow(app.get());
1151 1142
1152 aura::Window* parent = browser->parent(); 1143 aura::Window* parent = browser->parent();
1153 1144
1154 app->Show(); 1145 app->Show();
1155 wm::ActivateWindow(app.get()); 1146 wm::ActivateWindow(app.get());
1156 EXPECT_EQ(GetWindowNames(parent), GetLayerNames(parent)); 1147 EXPECT_EQ(GetWindowNames(parent), GetLayerNames(parent));
1157 1148
1158 // Minimize the app, focus should go the browser. 1149 // Minimize the app, focus should go the browser.
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1274 DISALLOW_COPY_AND_ASSIGN(WorkspaceControllerTestDragging); 1265 DISALLOW_COPY_AND_ASSIGN(WorkspaceControllerTestDragging);
1275 }; 1266 };
1276 1267
1277 } // namespace 1268 } // namespace
1278 1269
1279 // Verifies that when dragging a window over the shelf overlap is detected 1270 // Verifies that when dragging a window over the shelf overlap is detected
1280 // during and after the drag. 1271 // during and after the drag.
1281 TEST_P(WorkspaceControllerTestDragging, DragWindowOverlapShelf) { 1272 TEST_P(WorkspaceControllerTestDragging, DragWindowOverlapShelf) {
1282 aura::test::TestWindowDelegate delegate; 1273 aura::test::TestWindowDelegate delegate;
1283 delegate.set_window_component(HTCAPTION); 1274 delegate.set_window_component(HTCAPTION);
1284 scoped_ptr<Window> w1( 1275 scoped_ptr<Window> w1(aura::test::CreateTestWindowWithDelegate(
1285 aura::test::CreateTestWindowWithDelegate(&delegate, 1276 &delegate, ui::wm::WINDOW_TYPE_NORMAL, gfx::Rect(5, 5, 100, 50), NULL));
1286 aura::client::WINDOW_TYPE_NORMAL,
1287 gfx::Rect(5, 5, 100, 50),
1288 NULL));
1289 ParentWindowInPrimaryRootWindow(w1.get()); 1277 ParentWindowInPrimaryRootWindow(w1.get());
1290 1278
1291 ShelfLayoutManager* shelf = shelf_layout_manager(); 1279 ShelfLayoutManager* shelf = shelf_layout_manager();
1292 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 1280 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
1293 1281
1294 // Drag near the shelf 1282 // Drag near the shelf
1295 aura::test::EventGenerator generator( 1283 aura::test::EventGenerator generator(
1296 Shell::GetPrimaryRootWindow(), gfx::Point()); 1284 Shell::GetPrimaryRootWindow(), gfx::Point());
1297 generator.MoveMouseTo(10, 10); 1285 generator.MoveMouseTo(10, 10);
1298 generator.PressLeftButton(); 1286 generator.PressLeftButton();
1299 generator.MoveMouseTo(100, shelf->GetIdealBounds().y() - 70); 1287 generator.MoveMouseTo(100, shelf->GetIdealBounds().y() - 70);
1300 1288
1301 // Shelf should not be in overlapped state. 1289 // Shelf should not be in overlapped state.
1302 EXPECT_FALSE(GetWindowOverlapsShelf()); 1290 EXPECT_FALSE(GetWindowOverlapsShelf());
1303 1291
1304 generator.MoveMouseTo(100, shelf->GetIdealBounds().y() - 20); 1292 generator.MoveMouseTo(100, shelf->GetIdealBounds().y() - 20);
1305 1293
1306 // Shelf should detect overlap. Overlap state stays after mouse is released. 1294 // Shelf should detect overlap. Overlap state stays after mouse is released.
1307 EXPECT_TRUE(GetWindowOverlapsShelf()); 1295 EXPECT_TRUE(GetWindowOverlapsShelf());
1308 generator.ReleaseLeftButton(); 1296 generator.ReleaseLeftButton();
1309 EXPECT_TRUE(GetWindowOverlapsShelf()); 1297 EXPECT_TRUE(GetWindowOverlapsShelf());
1310 } 1298 }
1311 1299
1312 INSTANTIATE_TEST_CASE_P(DockedOrNot, WorkspaceControllerTestDragging, 1300 INSTANTIATE_TEST_CASE_P(DockedOrNot, WorkspaceControllerTestDragging,
1313 ::testing::Bool()); 1301 ::testing::Bool());
1314 1302
1315 } // namespace internal 1303 } // namespace internal
1316 } // namespace ash 1304 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698