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

Side by Side Diff: ash/wm/panels/panel_layout_manager_unittest.cc

Issue 115113006: Rename Launcher to Shelf. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more fixes 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
« no previous file with comments | « ash/wm/panels/panel_layout_manager.cc ('k') | ash/wm/panels/panel_window_resizer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/panels/panel_layout_manager.h" 5 #include "ash/wm/panels/panel_layout_manager.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/launcher/launcher.h"
9 #include "ash/root_window_controller.h" 8 #include "ash/root_window_controller.h"
10 #include "ash/screen_ash.h" 9 #include "ash/screen_ash.h"
10 #include "ash/shelf/shelf.h"
11 #include "ash/shelf/shelf_button.h" 11 #include "ash/shelf/shelf_button.h"
12 #include "ash/shelf/shelf_layout_manager.h" 12 #include "ash/shelf/shelf_layout_manager.h"
13 #include "ash/shelf/shelf_model.h" 13 #include "ash/shelf/shelf_model.h"
14 #include "ash/shelf/shelf_types.h" 14 #include "ash/shelf/shelf_types.h"
15 #include "ash/shelf/shelf_util.h" 15 #include "ash/shelf/shelf_util.h"
16 #include "ash/shelf/shelf_view.h" 16 #include "ash/shelf/shelf_view.h"
17 #include "ash/shelf/shelf_widget.h" 17 #include "ash/shelf/shelf_widget.h"
18 #include "ash/shell.h" 18 #include "ash/shell.h"
19 #include "ash/shell_window_ids.h" 19 #include "ash/shell_window_ids.h"
20 #include "ash/test/ash_test_base.h" 20 #include "ash/test/ash_test_base.h"
21 #include "ash/test/launcher_test_api.h" 21 #include "ash/test/shelf_test_api.h"
22 #include "ash/test/shelf_view_test_api.h" 22 #include "ash/test/shelf_view_test_api.h"
23 #include "ash/test/shell_test_api.h" 23 #include "ash/test/shell_test_api.h"
24 #include "ash/test/test_shelf_delegate.h" 24 #include "ash/test/test_shelf_delegate.h"
25 #include "ash/wm/mru_window_tracker.h" 25 #include "ash/wm/mru_window_tracker.h"
26 #include "ash/wm/window_util.h" 26 #include "ash/wm/window_util.h"
27 #include "base/basictypes.h" 27 #include "base/basictypes.h"
28 #include "base/command_line.h" 28 #include "base/command_line.h"
29 #include "base/compiler_specific.h" 29 #include "base/compiler_specific.h"
30 #include "base/i18n/rtl.h" 30 #include "base/i18n/rtl.h"
31 #include "base/run_loop.h" 31 #include "base/run_loop.h"
(...skipping 14 matching lines...) Expand all
46 class PanelLayoutManagerTest : public test::AshTestBase { 46 class PanelLayoutManagerTest : public test::AshTestBase {
47 public: 47 public:
48 PanelLayoutManagerTest() {} 48 PanelLayoutManagerTest() {}
49 virtual ~PanelLayoutManagerTest() {} 49 virtual ~PanelLayoutManagerTest() {}
50 50
51 virtual void SetUp() OVERRIDE { 51 virtual void SetUp() OVERRIDE {
52 test::AshTestBase::SetUp(); 52 test::AshTestBase::SetUp();
53 ASSERT_TRUE(test::TestShelfDelegate::instance()); 53 ASSERT_TRUE(test::TestShelfDelegate::instance());
54 54
55 shelf_view_test_.reset(new test::ShelfViewTestAPI( 55 shelf_view_test_.reset(new test::ShelfViewTestAPI(
56 GetShelfView(Launcher::ForPrimaryDisplay()))); 56 GetShelfView(Shelf::ForPrimaryDisplay())));
57 shelf_view_test_->SetAnimationDuration(1); 57 shelf_view_test_->SetAnimationDuration(1);
58 } 58 }
59 59
60 aura::Window* CreateNormalWindow(const gfx::Rect& bounds) { 60 aura::Window* CreateNormalWindow(const gfx::Rect& bounds) {
61 return CreateTestWindowInShellWithBounds(bounds); 61 return CreateTestWindowInShellWithBounds(bounds);
62 } 62 }
63 63
64 aura::Window* CreatePanelWindow(const gfx::Rect& bounds) { 64 aura::Window* CreatePanelWindow(const gfx::Rect& bounds) {
65 aura::Window* window = CreateTestWindowInShellWithDelegateAndType( 65 aura::Window* window = CreateTestWindowInShellWithDelegateAndType(
66 NULL, 66 NULL,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 117
118 EXPECT_FALSE(window1_bounds.Intersects(window2_bounds)); 118 EXPECT_FALSE(window1_bounds.Intersects(window2_bounds));
119 } 119 }
120 120
121 // TODO(dcheng): This should be const, but GetScreenBoundsOfItemIconForWindow 121 // TODO(dcheng): This should be const, but GetScreenBoundsOfItemIconForWindow
122 // takes a non-const Window. We can probably fix that. 122 // takes a non-const Window. We can probably fix that.
123 void IsPanelAboveLauncherIcon(aura::Window* panel) { 123 void IsPanelAboveLauncherIcon(aura::Window* panel) {
124 // Waits until all shelf view animations are done. 124 // Waits until all shelf view animations are done.
125 shelf_view_test()->RunMessageLoopUntilAnimationsDone(); 125 shelf_view_test()->RunMessageLoopUntilAnimationsDone();
126 126
127 Launcher* launcher = 127 Shelf* shelf = RootWindowController::ForShelf(panel)->shelf()->shelf();
128 RootWindowController::ForLauncher(panel)->shelf()->launcher(); 128 gfx::Rect icon_bounds = shelf->GetScreenBoundsOfItemIconForWindow(panel);
129 gfx::Rect icon_bounds = launcher->GetScreenBoundsOfItemIconForWindow(panel);
130 ASSERT_FALSE(icon_bounds.width() == 0 && icon_bounds.height() == 0); 129 ASSERT_FALSE(icon_bounds.width() == 0 && icon_bounds.height() == 0);
131 130
132 gfx::Rect window_bounds = panel->GetBoundsInScreen(); 131 gfx::Rect window_bounds = panel->GetBoundsInScreen();
133 ASSERT_LT(icon_bounds.width(), window_bounds.width()); 132 ASSERT_LT(icon_bounds.width(), window_bounds.width());
134 ASSERT_LT(icon_bounds.height(), window_bounds.height()); 133 ASSERT_LT(icon_bounds.height(), window_bounds.height());
135 gfx::Rect launcher_bounds = launcher->shelf_widget()-> 134 gfx::Rect shelf_bounds = shelf->shelf_widget()->GetWindowBoundsInScreen();
136 GetWindowBoundsInScreen();
137 ShelfAlignment alignment = GetAlignment(panel->GetRootWindow()); 135 ShelfAlignment alignment = GetAlignment(panel->GetRootWindow());
138 136
139 if (IsHorizontal(alignment)) { 137 if (IsHorizontal(alignment)) {
140 // The horizontal bounds of the panel window should contain the bounds of 138 // The horizontal bounds of the panel window should contain the bounds of
141 // the launcher icon. 139 // the shelf icon.
142 EXPECT_LE(window_bounds.x(), icon_bounds.x()); 140 EXPECT_LE(window_bounds.x(), icon_bounds.x());
143 EXPECT_GE(window_bounds.right(), icon_bounds.right()); 141 EXPECT_GE(window_bounds.right(), icon_bounds.right());
144 } else { 142 } else {
145 // The vertical bounds of the panel window should contain the bounds of 143 // The vertical bounds of the panel window should contain the bounds of
146 // the launcher icon. 144 // the shelf icon.
147 EXPECT_LE(window_bounds.y(), icon_bounds.y()); 145 EXPECT_LE(window_bounds.y(), icon_bounds.y());
148 EXPECT_GE(window_bounds.bottom(), icon_bounds.bottom()); 146 EXPECT_GE(window_bounds.bottom(), icon_bounds.bottom());
149 } 147 }
150 148
151 switch (alignment) { 149 switch (alignment) {
152 case SHELF_ALIGNMENT_BOTTOM: 150 case SHELF_ALIGNMENT_BOTTOM:
153 EXPECT_EQ(launcher_bounds.y(), window_bounds.bottom()); 151 EXPECT_EQ(shelf_bounds.y(), window_bounds.bottom());
154 break; 152 break;
155 case SHELF_ALIGNMENT_LEFT: 153 case SHELF_ALIGNMENT_LEFT:
156 EXPECT_EQ(launcher_bounds.right(), window_bounds.x()); 154 EXPECT_EQ(shelf_bounds.right(), window_bounds.x());
157 break; 155 break;
158 case SHELF_ALIGNMENT_RIGHT: 156 case SHELF_ALIGNMENT_RIGHT:
159 EXPECT_EQ(launcher_bounds.x(), window_bounds.right()); 157 EXPECT_EQ(shelf_bounds.x(), window_bounds.right());
160 break; 158 break;
161 case SHELF_ALIGNMENT_TOP: 159 case SHELF_ALIGNMENT_TOP:
162 EXPECT_EQ(launcher_bounds.bottom(), window_bounds.y()); 160 EXPECT_EQ(shelf_bounds.bottom(), window_bounds.y());
163 break; 161 break;
164 } 162 }
165 } 163 }
166 164
167 void IsCalloutAboveLauncherIcon(aura::Window* panel) { 165 void IsCalloutAboveLauncherIcon(aura::Window* panel) {
168 // Flush the message loop, since callout updates use a delayed task. 166 // Flush the message loop, since callout updates use a delayed task.
169 base::RunLoop().RunUntilIdle(); 167 base::RunLoop().RunUntilIdle();
170 views::Widget* widget = GetCalloutWidgetForPanel(panel); 168 views::Widget* widget = GetCalloutWidgetForPanel(panel);
171 169
172 Launcher* launcher = 170 Shelf* shelf = RootWindowController::ForShelf(panel)->shelf()->shelf();
173 RootWindowController::ForLauncher(panel)->shelf()->launcher(); 171 gfx::Rect icon_bounds = shelf->GetScreenBoundsOfItemIconForWindow(panel);
174 gfx::Rect icon_bounds = launcher->GetScreenBoundsOfItemIconForWindow(panel);
175 ASSERT_FALSE(icon_bounds.IsEmpty()); 172 ASSERT_FALSE(icon_bounds.IsEmpty());
176 173
177 gfx::Rect panel_bounds = panel->GetBoundsInScreen(); 174 gfx::Rect panel_bounds = panel->GetBoundsInScreen();
178 gfx::Rect callout_bounds = widget->GetWindowBoundsInScreen(); 175 gfx::Rect callout_bounds = widget->GetWindowBoundsInScreen();
179 ASSERT_FALSE(icon_bounds.IsEmpty()); 176 ASSERT_FALSE(icon_bounds.IsEmpty());
180 177
181 EXPECT_TRUE(widget->IsVisible()); 178 EXPECT_TRUE(widget->IsVisible());
182 179
183 ShelfAlignment alignment = GetAlignment(panel->GetRootWindow()); 180 ShelfAlignment alignment = GetAlignment(panel->GetRootWindow());
184 switch (alignment) { 181 switch (alignment) {
(...skipping 24 matching lines...) Expand all
209 206
210 bool IsPanelCalloutVisible(aura::Window* panel) { 207 bool IsPanelCalloutVisible(aura::Window* panel) {
211 views::Widget* widget = GetCalloutWidgetForPanel(panel); 208 views::Widget* widget = GetCalloutWidgetForPanel(panel);
212 return widget->IsVisible(); 209 return widget->IsVisible();
213 } 210 }
214 211
215 test::ShelfViewTestAPI* shelf_view_test() { 212 test::ShelfViewTestAPI* shelf_view_test() {
216 return shelf_view_test_.get(); 213 return shelf_view_test_.get();
217 } 214 }
218 215
219 // Clicks the launcher items on |shelf_view| that is 216 // Clicks the shelf items on |shelf_view| that is associated with given
220 /// associated with given |window|. 217 // |window|.
221 void ClickLauncherItemForWindow(ShelfView* shelf_view, 218 void ClickLauncherItemForWindow(ShelfView* shelf_view,
222 aura::Window* window) { 219 aura::Window* window) {
223 test::ShelfViewTestAPI test_api(shelf_view); 220 test::ShelfViewTestAPI test_api(shelf_view);
224 test_api.SetAnimationDuration(1); 221 test_api.SetAnimationDuration(1);
225 test_api.RunMessageLoopUntilAnimationsDone(); 222 test_api.RunMessageLoopUntilAnimationsDone();
226 ShelfModel* model = test::ShellTestApi(Shell::GetInstance()).shelf_model(); 223 ShelfModel* model = test::ShellTestApi(Shell::GetInstance()).shelf_model();
227 int index = model->ItemIndexByID(GetLauncherIDForWindow(window)); 224 int index = model->ItemIndexByID(GetLauncherIDForWindow(window));
228 gfx::Rect bounds = test_api.GetButton(index)->GetBoundsInScreen(); 225 gfx::Rect bounds = test_api.GetButton(index)->GetBoundsInScreen();
229 226
230 aura::test::EventGenerator& event_generator = GetEventGenerator(); 227 aura::test::EventGenerator& event_generator = GetEventGenerator();
(...skipping 12 matching lines...) Expand all
243 ash::Shell* shell = ash::Shell::GetInstance(); 240 ash::Shell* shell = ash::Shell::GetInstance();
244 return shell->GetShelfAlignment(root_window); 241 return shell->GetShelfAlignment(root_window);
245 } 242 }
246 243
247 void SetShelfAutoHideBehavior(aura::Window* window, 244 void SetShelfAutoHideBehavior(aura::Window* window,
248 ShelfAutoHideBehavior behavior) { 245 ShelfAutoHideBehavior behavior) {
249 internal::ShelfLayoutManager* shelf = 246 internal::ShelfLayoutManager* shelf =
250 RootWindowController::ForWindow(window)->shelf()-> 247 RootWindowController::ForWindow(window)->shelf()->
251 shelf_layout_manager(); 248 shelf_layout_manager();
252 shelf->SetAutoHideBehavior(behavior); 249 shelf->SetAutoHideBehavior(behavior);
253 ShelfView* shelf_view = GetShelfView(Launcher::ForWindow(window)); 250 ShelfView* shelf_view = GetShelfView(Shelf::ForWindow(window));
254 test::ShelfViewTestAPI test_api(shelf_view); 251 test::ShelfViewTestAPI test_api(shelf_view);
255 test_api.RunMessageLoopUntilAnimationsDone(); 252 test_api.RunMessageLoopUntilAnimationsDone();
256 } 253 }
257 254
258 void SetShelfVisibilityState(aura::Window* window, 255 void SetShelfVisibilityState(aura::Window* window,
259 ShelfVisibilityState visibility_state) { 256 ShelfVisibilityState visibility_state) {
260 internal::ShelfLayoutManager* shelf = 257 internal::ShelfLayoutManager* shelf =
261 RootWindowController::ForWindow(window)->shelf()-> 258 RootWindowController::ForWindow(window)->shelf()->
262 shelf_layout_manager(); 259 shelf_layout_manager();
263 shelf->SetState(visibility_state); 260 shelf->SetState(visibility_state);
264 } 261 }
265 262
266 internal::ShelfView* GetShelfView(Launcher* launcher) { 263 internal::ShelfView* GetShelfView(Shelf* shelf) {
267 return test::LauncherTestAPI(launcher).shelf_view(); 264 return test::ShelfTestAPI(shelf).shelf_view();
268 } 265 }
269 266
270 private: 267 private:
271 scoped_ptr<test::ShelfViewTestAPI> shelf_view_test_; 268 scoped_ptr<test::ShelfViewTestAPI> shelf_view_test_;
272 269
273 bool IsHorizontal(ShelfAlignment alignment) { 270 bool IsHorizontal(ShelfAlignment alignment) {
274 return alignment == SHELF_ALIGNMENT_BOTTOM || 271 return alignment == SHELF_ALIGNMENT_BOTTOM ||
275 alignment == SHELF_ALIGNMENT_TOP; 272 alignment == SHELF_ALIGNMENT_TOP;
276 } 273 }
277 274
(...skipping 21 matching lines...) Expand all
299 PanelLayoutManagerTest::TearDown(); 296 PanelLayoutManagerTest::TearDown();
300 } 297 }
301 298
302 private: 299 private:
303 bool is_rtl_; 300 bool is_rtl_;
304 std::string original_locale; 301 std::string original_locale;
305 302
306 DISALLOW_COPY_AND_ASSIGN(PanelLayoutManagerTextDirectionTest); 303 DISALLOW_COPY_AND_ASSIGN(PanelLayoutManagerTextDirectionTest);
307 }; 304 };
308 305
309 // Tests that a created panel window is above the launcher icon in LTR and RTL. 306 // Tests that a created panel window is above the shelf icon in LTR and RTL.
310 TEST_P(PanelLayoutManagerTextDirectionTest, AddOnePanel) { 307 TEST_P(PanelLayoutManagerTextDirectionTest, AddOnePanel) {
311 gfx::Rect bounds(0, 0, 201, 201); 308 gfx::Rect bounds(0, 0, 201, 201);
312 scoped_ptr<aura::Window> window(CreatePanelWindow(bounds)); 309 scoped_ptr<aura::Window> window(CreatePanelWindow(bounds));
313 EXPECT_EQ(GetPanelContainer(window.get()), window->parent()); 310 EXPECT_EQ(GetPanelContainer(window.get()), window->parent());
314 EXPECT_NO_FATAL_FAILURE(IsPanelAboveLauncherIcon(window.get())); 311 EXPECT_NO_FATAL_FAILURE(IsPanelAboveLauncherIcon(window.get()));
315 EXPECT_NO_FATAL_FAILURE(IsCalloutAboveLauncherIcon(window.get())); 312 EXPECT_NO_FATAL_FAILURE(IsCalloutAboveLauncherIcon(window.get()));
316 } 313 }
317 314
318 // Tests that a created panel window is successfully aligned over a hidden 315 // Tests that a created panel window is successfully aligned over a hidden
319 // launcher icon. 316 // shelf icon.
320 TEST_F(PanelLayoutManagerTest, PanelAlignsToHiddenLauncherIcon) { 317 TEST_F(PanelLayoutManagerTest, PanelAlignsToHiddenLauncherIcon) {
321 gfx::Rect bounds(0, 0, 201, 201); 318 gfx::Rect bounds(0, 0, 201, 201);
322 SetShelfAutoHideBehavior(Shell::GetPrimaryRootWindow(), 319 SetShelfAutoHideBehavior(Shell::GetPrimaryRootWindow(),
323 SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 320 SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
324 scoped_ptr<aura::Window> normal_window(CreateNormalWindow(bounds)); 321 scoped_ptr<aura::Window> normal_window(CreateNormalWindow(bounds));
325 scoped_ptr<aura::Window> window(CreatePanelWindow(bounds)); 322 scoped_ptr<aura::Window> window(CreatePanelWindow(bounds));
326 EXPECT_EQ(GetPanelContainer(window.get()), window->parent()); 323 EXPECT_EQ(GetPanelContainer(window.get()), window->parent());
327 EXPECT_NO_FATAL_FAILURE(IsPanelAboveLauncherIcon(window.get())); 324 EXPECT_NO_FATAL_FAILURE(IsPanelAboveLauncherIcon(window.get()));
328 } 325 }
329 326
330 TEST_F(PanelLayoutManagerTest, PanelAlignsToHiddenLauncherIconSecondDisplay) { 327 TEST_F(PanelLayoutManagerTest, PanelAlignsToHiddenLauncherIconSecondDisplay) {
331 if (!SupportsMultipleDisplays()) 328 if (!SupportsMultipleDisplays())
332 return; 329 return;
333 330
334 // Keep the displays wide so that launchers have enough 331 // Keep the displays wide so that shelves have enough space for shelves
335 // space for launcher buttons. 332 // buttons.
336 UpdateDisplay("400x400,600x400"); 333 UpdateDisplay("400x400,600x400");
337 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 334 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
338 335
339 scoped_ptr<aura::Window> normal_window( 336 scoped_ptr<aura::Window> normal_window(
340 CreateNormalWindow(gfx::Rect(450, 0, 100, 100))); 337 CreateNormalWindow(gfx::Rect(450, 0, 100, 100)));
341 scoped_ptr<aura::Window> panel(CreatePanelWindow(gfx::Rect(400, 0, 50, 50))); 338 scoped_ptr<aura::Window> panel(CreatePanelWindow(gfx::Rect(400, 0, 50, 50)));
342 EXPECT_EQ(root_windows[1], panel->GetRootWindow()); 339 EXPECT_EQ(root_windows[1], panel->GetRootWindow());
343 EXPECT_NO_FATAL_FAILURE(IsPanelAboveLauncherIcon(panel.get())); 340 EXPECT_NO_FATAL_FAILURE(IsPanelAboveLauncherIcon(panel.get()));
344 gfx::Rect shelf_visible_position = panel->GetBoundsInScreen(); 341 gfx::Rect shelf_visible_position = panel->GetBoundsInScreen();
345 342
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 EXPECT_TRUE(WindowIsAbove(w1.get(), w3.get())); 388 EXPECT_TRUE(WindowIsAbove(w1.get(), w3.get()));
392 EXPECT_TRUE(WindowIsAbove(w2.get(), w3.get())); 389 EXPECT_TRUE(WindowIsAbove(w2.get(), w3.get()));
393 EXPECT_TRUE(WindowIsAbove(w2.get(), w1.get())); 390 EXPECT_TRUE(WindowIsAbove(w2.get(), w1.get()));
394 391
395 wm::ActivateWindow(w3.get()); 392 wm::ActivateWindow(w3.get());
396 EXPECT_TRUE(WindowIsAbove(w3.get(), w2.get())); 393 EXPECT_TRUE(WindowIsAbove(w3.get(), w2.get()));
397 EXPECT_TRUE(WindowIsAbove(w2.get(), w1.get())); 394 EXPECT_TRUE(WindowIsAbove(w2.get(), w1.get()));
398 } 395 }
399 396
400 TEST_F(PanelLayoutManagerTest, MultiplePanelStackingVertical) { 397 TEST_F(PanelLayoutManagerTest, MultiplePanelStackingVertical) {
401 // set launcher shelf to be aligned on the right 398 // Set shelf to be aligned on the right.
402 SetAlignment(Shell::GetPrimaryRootWindow(), SHELF_ALIGNMENT_RIGHT); 399 SetAlignment(Shell::GetPrimaryRootWindow(), SHELF_ALIGNMENT_RIGHT);
403 400
404 // Size panels in such a way that ordering them by X coordinate would cause 401 // Size panels in such a way that ordering them by X coordinate would cause
405 // stacking order to be incorrect. Test that stacking order is based on Y. 402 // stacking order to be incorrect. Test that stacking order is based on Y.
406 scoped_ptr<aura::Window> w1(CreatePanelWindow(gfx::Rect(0, 0, 210, 201))); 403 scoped_ptr<aura::Window> w1(CreatePanelWindow(gfx::Rect(0, 0, 210, 201)));
407 scoped_ptr<aura::Window> w2(CreatePanelWindow(gfx::Rect(0, 0, 220, 201))); 404 scoped_ptr<aura::Window> w2(CreatePanelWindow(gfx::Rect(0, 0, 220, 201)));
408 scoped_ptr<aura::Window> w3(CreatePanelWindow(gfx::Rect(0, 0, 200, 201))); 405 scoped_ptr<aura::Window> w3(CreatePanelWindow(gfx::Rect(0, 0, 200, 201)));
409 406
410 // Default stacking order. 407 // Default stacking order.
411 EXPECT_TRUE(WindowIsAbove(w3.get(), w2.get())); 408 EXPECT_TRUE(WindowIsAbove(w3.get(), w2.get()));
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 TEST_F(PanelLayoutManagerTest, FanWindows) { 537 TEST_F(PanelLayoutManagerTest, FanWindows) {
541 gfx::Rect bounds(0, 0, 201, 201); 538 gfx::Rect bounds(0, 0, 201, 201);
542 scoped_ptr<aura::Window> w1(CreatePanelWindow(bounds)); 539 scoped_ptr<aura::Window> w1(CreatePanelWindow(bounds));
543 scoped_ptr<aura::Window> w2(CreatePanelWindow(bounds)); 540 scoped_ptr<aura::Window> w2(CreatePanelWindow(bounds));
544 scoped_ptr<aura::Window> w3(CreatePanelWindow(bounds)); 541 scoped_ptr<aura::Window> w3(CreatePanelWindow(bounds));
545 542
546 shelf_view_test()->RunMessageLoopUntilAnimationsDone(); 543 shelf_view_test()->RunMessageLoopUntilAnimationsDone();
547 int window_x1 = w1->GetBoundsInRootWindow().CenterPoint().x(); 544 int window_x1 = w1->GetBoundsInRootWindow().CenterPoint().x();
548 int window_x2 = w2->GetBoundsInRootWindow().CenterPoint().x(); 545 int window_x2 = w2->GetBoundsInRootWindow().CenterPoint().x();
549 int window_x3 = w3->GetBoundsInRootWindow().CenterPoint().x(); 546 int window_x3 = w3->GetBoundsInRootWindow().CenterPoint().x();
550 Launcher* launcher = Launcher::ForPrimaryDisplay(); 547 Shelf* shelf = Shelf::ForPrimaryDisplay();
551 int icon_x1 = launcher->GetScreenBoundsOfItemIconForWindow(w1.get()).x(); 548 int icon_x1 = shelf->GetScreenBoundsOfItemIconForWindow(w1.get()).x();
552 int icon_x2 = launcher->GetScreenBoundsOfItemIconForWindow(w2.get()).x(); 549 int icon_x2 = shelf->GetScreenBoundsOfItemIconForWindow(w2.get()).x();
553 EXPECT_EQ(window_x2 - window_x1, window_x3 - window_x2); 550 EXPECT_EQ(window_x2 - window_x1, window_x3 - window_x2);
554 int spacing = window_x2 - window_x1; 551 int spacing = window_x2 - window_x1;
555 EXPECT_GT(spacing, icon_x2 - icon_x1); 552 EXPECT_GT(spacing, icon_x2 - icon_x1);
556 } 553 }
557 554
558 TEST_F(PanelLayoutManagerTest, FanLargeWindow) { 555 TEST_F(PanelLayoutManagerTest, FanLargeWindow) {
559 gfx::Rect small_bounds(0, 0, 201, 201); 556 gfx::Rect small_bounds(0, 0, 201, 201);
560 gfx::Rect large_bounds(0, 0, 501, 201); 557 gfx::Rect large_bounds(0, 0, 501, 201);
561 scoped_ptr<aura::Window> w1(CreatePanelWindow(small_bounds)); 558 scoped_ptr<aura::Window> w1(CreatePanelWindow(small_bounds));
562 scoped_ptr<aura::Window> w2(CreatePanelWindow(large_bounds)); 559 scoped_ptr<aura::Window> w2(CreatePanelWindow(large_bounds));
(...skipping 28 matching lines...) Expand all
591 // Activate the window, ensure callout is visible. 588 // Activate the window, ensure callout is visible.
592 wm::ActivateWindow(window.get()); 589 wm::ActivateWindow(window.get());
593 RunAllPendingInMessageLoop(); 590 RunAllPendingInMessageLoop();
594 EXPECT_TRUE(IsPanelCalloutVisible(window.get())); 591 EXPECT_TRUE(IsPanelCalloutVisible(window.get()));
595 } 592 }
596 593
597 TEST_F(PanelLayoutManagerTest, PanelMoveBetweenMultipleDisplays) { 594 TEST_F(PanelLayoutManagerTest, PanelMoveBetweenMultipleDisplays) {
598 if (!SupportsMultipleDisplays()) 595 if (!SupportsMultipleDisplays())
599 return; 596 return;
600 597
601 // Keep the displays wide so that launchers have enough 598 // Keep the displays wide so that shelves have enough space for launcher
602 // space for launcher buttons. 599 // buttons.
603 UpdateDisplay("600x400,600x400"); 600 UpdateDisplay("600x400,600x400");
604 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 601 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
605 602
606 scoped_ptr<aura::Window> p1_d1(CreatePanelWindow(gfx::Rect(0, 0, 50, 50))); 603 scoped_ptr<aura::Window> p1_d1(CreatePanelWindow(gfx::Rect(0, 0, 50, 50)));
607 scoped_ptr<aura::Window> p2_d1(CreatePanelWindow(gfx::Rect(0, 0, 50, 50))); 604 scoped_ptr<aura::Window> p2_d1(CreatePanelWindow(gfx::Rect(0, 0, 50, 50)));
608 scoped_ptr<aura::Window> p1_d2(CreatePanelWindow(gfx::Rect(600, 0, 50, 50))); 605 scoped_ptr<aura::Window> p1_d2(CreatePanelWindow(gfx::Rect(600, 0, 50, 50)));
609 scoped_ptr<aura::Window> p2_d2(CreatePanelWindow(gfx::Rect(600, 0, 50, 50))); 606 scoped_ptr<aura::Window> p2_d2(CreatePanelWindow(gfx::Rect(600, 0, 50, 50)));
610 607
611 ShelfView* shelf_view_1st = GetShelfView(Launcher::ForPrimaryDisplay()); 608 ShelfView* shelf_view_1st = GetShelfView(Shelf::ForPrimaryDisplay());
612 ShelfView* shelf_view_2nd = 609 ShelfView* shelf_view_2nd =
613 GetShelfView(Launcher::ForWindow(root_windows[1])); 610 GetShelfView(Shelf::ForWindow(root_windows[1]));
614 611
615 EXPECT_EQ(root_windows[0], p1_d1->GetRootWindow()); 612 EXPECT_EQ(root_windows[0], p1_d1->GetRootWindow());
616 EXPECT_EQ(root_windows[0], p2_d1->GetRootWindow()); 613 EXPECT_EQ(root_windows[0], p2_d1->GetRootWindow());
617 EXPECT_EQ(root_windows[1], p1_d2->GetRootWindow()); 614 EXPECT_EQ(root_windows[1], p1_d2->GetRootWindow());
618 EXPECT_EQ(root_windows[1], p2_d2->GetRootWindow()); 615 EXPECT_EQ(root_windows[1], p2_d2->GetRootWindow());
619 616
620 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p1_d1->parent()->id()); 617 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p1_d1->parent()->id());
621 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p2_d1->parent()->id()); 618 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p2_d1->parent()->id());
622 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p1_d2->parent()->id()); 619 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p1_d2->parent()->id());
623 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p2_d2->parent()->id()); 620 EXPECT_EQ(internal::kShellWindowId_PanelContainer, p2_d2->parent()->id());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 EXPECT_EQ(root_windows[0], p1_d2->GetRootWindow()); 667 EXPECT_EQ(root_windows[0], p1_d2->GetRootWindow());
671 EXPECT_EQ(root_windows[1], p2_d2->GetRootWindow()); 668 EXPECT_EQ(root_windows[1], p2_d2->GetRootWindow());
672 EXPECT_TRUE(root_windows[0]->GetBoundsInScreen().Contains( 669 EXPECT_TRUE(root_windows[0]->GetBoundsInScreen().Contains(
673 p1_d1->GetBoundsInScreen())); 670 p1_d1->GetBoundsInScreen()));
674 } 671 }
675 672
676 TEST_F(PanelLayoutManagerTest, PanelAttachPositionMultipleDisplays) { 673 TEST_F(PanelLayoutManagerTest, PanelAttachPositionMultipleDisplays) {
677 if (!SupportsMultipleDisplays()) 674 if (!SupportsMultipleDisplays())
678 return; 675 return;
679 676
680 // Keep the displays wide so that launchers have enough space for launcher 677 // Keep the displays wide so that shelves have enough space for shelf buttons.
681 // buttons. Use differently sized displays so the launcher is in a different 678 // Use differently sized displays so the shelf is in a different
682 // position on second display. 679 // position on second display.
683 UpdateDisplay("600x400,600x600"); 680 UpdateDisplay("600x400,600x600");
684 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 681 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
685 682
686 scoped_ptr<aura::Window> p1_d1(CreatePanelWindow(gfx::Rect(0, 0, 50, 50))); 683 scoped_ptr<aura::Window> p1_d1(CreatePanelWindow(gfx::Rect(0, 0, 50, 50)));
687 scoped_ptr<aura::Window> p1_d2(CreatePanelWindow(gfx::Rect(600, 0, 50, 50))); 684 scoped_ptr<aura::Window> p1_d2(CreatePanelWindow(gfx::Rect(600, 0, 50, 50)));
688 685
689 EXPECT_EQ(root_windows[0], p1_d1->GetRootWindow()); 686 EXPECT_EQ(root_windows[0], p1_d1->GetRootWindow());
690 EXPECT_EQ(root_windows[1], p1_d2->GetRootWindow()); 687 EXPECT_EQ(root_windows[1], p1_d2->GetRootWindow());
691 688
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 EXPECT_TRUE(w1->IsVisible()); 788 EXPECT_TRUE(w1->IsVisible());
792 EXPECT_FALSE(w2->IsVisible()); 789 EXPECT_FALSE(w2->IsVisible());
793 EXPECT_TRUE(w3->IsVisible()); 790 EXPECT_TRUE(w3->IsVisible());
794 } 791 }
795 792
796 INSTANTIATE_TEST_CASE_P(LtrRtl, PanelLayoutManagerTextDirectionTest, 793 INSTANTIATE_TEST_CASE_P(LtrRtl, PanelLayoutManagerTextDirectionTest,
797 testing::Bool()); 794 testing::Bool());
798 795
799 } // namespace internal 796 } // namespace internal
800 } // namespace ash 797 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/panels/panel_layout_manager.cc ('k') | ash/wm/panels/panel_window_resizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698