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

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

Issue 224113005: Eliminate ash::internal namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/wm/panels/panel_window_resizer.cc ('k') | ash/wm/partial_screenshot_view.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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/panels/panel_window_resizer.h" 5 #include "ash/wm/panels/panel_window_resizer.h"
6 6
7 #include "ash/root_window_controller.h" 7 #include "ash/root_window_controller.h"
8 #include "ash/shelf/shelf.h" 8 #include "ash/shelf/shelf.h"
9 #include "ash/shelf/shelf_layout_manager.h" 9 #include "ash/shelf/shelf_layout_manager.h"
10 #include "ash/shelf/shelf_model.h" 10 #include "ash/shelf/shelf_model.h"
(...skipping 13 matching lines...) Expand all
24 #include "base/win/windows_version.h" 24 #include "base/win/windows_version.h"
25 #include "ui/aura/client/aura_constants.h" 25 #include "ui/aura/client/aura_constants.h"
26 #include "ui/aura/window_event_dispatcher.h" 26 #include "ui/aura/window_event_dispatcher.h"
27 #include "ui/base/hit_test.h" 27 #include "ui/base/hit_test.h"
28 #include "ui/base/l10n/l10n_util.h" 28 #include "ui/base/l10n/l10n_util.h"
29 #include "ui/base/ui_base_types.h" 29 #include "ui/base/ui_base_types.h"
30 #include "ui/views/widget/widget.h" 30 #include "ui/views/widget/widget.h"
31 #include "ui/wm/core/window_util.h" 31 #include "ui/wm/core/window_util.h"
32 32
33 namespace ash { 33 namespace ash {
34 namespace internal {
35 34
36 class PanelWindowResizerTest : public test::AshTestBase { 35 class PanelWindowResizerTest : public test::AshTestBase {
37 public: 36 public:
38 PanelWindowResizerTest() {} 37 PanelWindowResizerTest() {}
39 virtual ~PanelWindowResizerTest() {} 38 virtual ~PanelWindowResizerTest() {}
40 39
41 virtual void SetUp() OVERRIDE { 40 virtual void SetUp() OVERRIDE {
42 AshTestBase::SetUp(); 41 AshTestBase::SetUp();
43 UpdateDisplay("600x400"); 42 UpdateDisplay("600x400");
44 test::ShellTestApi test_api(Shell::GetInstance()); 43 test::ShellTestApi test_api(Shell::GetInstance());
(...skipping 13 matching lines...) Expand all
58 location.set_x(location.x() + delta_x); 57 location.set_x(location.x() + delta_x);
59 location.set_y(location.y() + delta_y); 58 location.set_y(location.y() + delta_y);
60 return location; 59 return location;
61 } 60 }
62 61
63 aura::Window* CreatePanelWindow(const gfx::Point& origin) { 62 aura::Window* CreatePanelWindow(const gfx::Point& origin) {
64 gfx::Rect bounds(origin, gfx::Size(101, 101)); 63 gfx::Rect bounds(origin, gfx::Size(101, 101));
65 aura::Window* window = CreateTestWindowInShellWithDelegateAndType( 64 aura::Window* window = CreateTestWindowInShellWithDelegateAndType(
66 NULL, ui::wm::WINDOW_TYPE_PANEL, 0, bounds); 65 NULL, ui::wm::WINDOW_TYPE_PANEL, 0, bounds);
67 shelf_delegate_->AddShelfItem(window); 66 shelf_delegate_->AddShelfItem(window);
68 PanelLayoutManager* manager = 67 PanelLayoutManager* manager = static_cast<PanelLayoutManager*>(
69 static_cast<PanelLayoutManager*>( 68 Shell::GetContainer(window->GetRootWindow(),
70 Shell::GetContainer(window->GetRootWindow(), 69 kShellWindowId_PanelContainer)->layout_manager());
71 internal::kShellWindowId_PanelContainer)->
72 layout_manager());
73 manager->Relayout(); 70 manager->Relayout();
74 return window; 71 return window;
75 } 72 }
76 73
77 void DragStart(aura::Window* window) { 74 void DragStart(aura::Window* window) {
78 resizer_.reset(CreateWindowResizer( 75 resizer_.reset(CreateWindowResizer(
79 window, 76 window,
80 window->bounds().origin(), 77 window->bounds().origin(),
81 HTCAPTION, 78 HTCAPTION,
82 aura::client::WINDOW_MOVE_SOURCE_MOUSE).release()); 79 aura::client::WINDOW_MOVE_SOURCE_MOUSE).release());
(...skipping 13 matching lines...) Expand all
96 resizer_->RevertDrag(); 93 resizer_->RevertDrag();
97 resizer_.reset(); 94 resizer_.reset();
98 } 95 }
99 96
100 // Test dragging the panel slightly, then detaching, and then reattaching 97 // Test dragging the panel slightly, then detaching, and then reattaching
101 // dragging out by the vector (dx, dy). 98 // dragging out by the vector (dx, dy).
102 void DetachReattachTest(aura::Window* window, int dx, int dy) { 99 void DetachReattachTest(aura::Window* window, int dx, int dy) {
103 wm::WindowState* window_state = wm::GetWindowState(window); 100 wm::WindowState* window_state = wm::GetWindowState(window);
104 EXPECT_TRUE(window_state->panel_attached()); 101 EXPECT_TRUE(window_state->panel_attached());
105 aura::Window* root_window = window->GetRootWindow(); 102 aura::Window* root_window = window->GetRootWindow();
106 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 103 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
107 DragStart(window); 104 DragStart(window);
108 gfx::Rect initial_bounds = window->GetBoundsInScreen(); 105 gfx::Rect initial_bounds = window->GetBoundsInScreen();
109 106
110 // Drag the panel slightly. The window should still be snapped to the 107 // Drag the panel slightly. The window should still be snapped to the
111 // launcher. 108 // launcher.
112 DragMove(dx * 5, dy * 5); 109 DragMove(dx * 5, dy * 5);
113 EXPECT_EQ(initial_bounds.x(), window->GetBoundsInScreen().x()); 110 EXPECT_EQ(initial_bounds.x(), window->GetBoundsInScreen().x());
114 EXPECT_EQ(initial_bounds.y(), window->GetBoundsInScreen().y()); 111 EXPECT_EQ(initial_bounds.y(), window->GetBoundsInScreen().y());
115 112
116 // Drag further out and the window should now move to the cursor. 113 // Drag further out and the window should now move to the cursor.
117 DragMove(dx * 100, dy * 100); 114 DragMove(dx * 100, dy * 100);
118 EXPECT_EQ(initial_bounds.x() + dx * 100, window->GetBoundsInScreen().x()); 115 EXPECT_EQ(initial_bounds.x() + dx * 100, window->GetBoundsInScreen().x());
119 EXPECT_EQ(initial_bounds.y() + dy * 100, window->GetBoundsInScreen().y()); 116 EXPECT_EQ(initial_bounds.y() + dy * 100, window->GetBoundsInScreen().y());
120 117
121 // The panel should be detached when the drag completes. 118 // The panel should be detached when the drag completes.
122 DragEnd(); 119 DragEnd();
123 120
124 EXPECT_FALSE(window_state->panel_attached()); 121 EXPECT_FALSE(window_state->panel_attached());
125 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, 122 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
126 window->parent()->id());
127 EXPECT_EQ(root_window, window->GetRootWindow()); 123 EXPECT_EQ(root_window, window->GetRootWindow());
128 124
129 DragStart(window); 125 DragStart(window);
130 // Drag the panel down. 126 // Drag the panel down.
131 DragMove(dx * -95, dy * -95); 127 DragMove(dx * -95, dy * -95);
132 // Release the mouse and the panel should be reattached. 128 // Release the mouse and the panel should be reattached.
133 DragEnd(); 129 DragEnd();
134 130
135 // The panel should be reattached and have snapped to the launcher. 131 // The panel should be reattached and have snapped to the launcher.
136 EXPECT_TRUE(window_state->panel_attached()); 132 EXPECT_TRUE(window_state->panel_attached());
137 EXPECT_EQ(initial_bounds.x(), window->GetBoundsInScreen().x()); 133 EXPECT_EQ(initial_bounds.x(), window->GetBoundsInScreen().x());
138 EXPECT_EQ(initial_bounds.y(), window->GetBoundsInScreen().y()); 134 EXPECT_EQ(initial_bounds.y(), window->GetBoundsInScreen().y());
139 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 135 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
140 } 136 }
141 137
142 void TestWindowOrder(const std::vector<aura::Window*>& window_order) { 138 void TestWindowOrder(const std::vector<aura::Window*>& window_order) {
143 int panel_index = model_->FirstPanelIndex(); 139 int panel_index = model_->FirstPanelIndex();
144 EXPECT_EQ((int)(panel_index + window_order.size()), model_->item_count()); 140 EXPECT_EQ((int)(panel_index + window_order.size()), model_->item_count());
145 for (std::vector<aura::Window*>::const_iterator iter = 141 for (std::vector<aura::Window*>::const_iterator iter =
146 window_order.begin(); iter != window_order.end(); 142 window_order.begin(); iter != window_order.end();
147 ++iter, ++panel_index) { 143 ++iter, ++panel_index) {
148 ShelfID id = GetShelfIDForWindow(*iter); 144 ShelfID id = GetShelfIDForWindow(*iter);
149 EXPECT_EQ(id, model_->items()[panel_index].id); 145 EXPECT_EQ(id, model_->items()[panel_index].id);
(...skipping 28 matching lines...) Expand all
178 DragMove(-400 * dx, -400 * dy); 174 DragMove(-400 * dx, -400 * dy);
179 TestWindowOrder(window_order_original); 175 TestWindowOrder(window_order_original);
180 DragEnd(); 176 DragEnd();
181 177
182 // Expect original order. 178 // Expect original order.
183 TestWindowOrder(window_order_original); 179 TestWindowOrder(window_order_original);
184 } 180 }
185 181
186 private: 182 private:
187 scoped_ptr<WindowResizer> resizer_; 183 scoped_ptr<WindowResizer> resizer_;
188 internal::PanelLayoutManager* panel_layout_manager_; 184 PanelLayoutManager* panel_layout_manager_;
189 ShelfModel* model_; 185 ShelfModel* model_;
190 test::TestShelfDelegate* shelf_delegate_; 186 test::TestShelfDelegate* shelf_delegate_;
191 187
192 DISALLOW_COPY_AND_ASSIGN(PanelWindowResizerTest); 188 DISALLOW_COPY_AND_ASSIGN(PanelWindowResizerTest);
193 }; 189 };
194 190
195 class PanelWindowResizerTextDirectionTest 191 class PanelWindowResizerTextDirectionTest
196 : public PanelWindowResizerTest, 192 : public PanelWindowResizerTest,
197 public testing::WithParamInterface<bool> { 193 public testing::WithParamInterface<bool> {
198 public: 194 public:
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 CreatePanelWindow(gfx::Point(0, 0))); 299 CreatePanelWindow(gfx::Point(0, 0)));
304 gfx::Rect initial_bounds = window->GetBoundsInScreen(); 300 gfx::Rect initial_bounds = window->GetBoundsInScreen();
305 EXPECT_EQ(root_windows[0], window->GetRootWindow()); 301 EXPECT_EQ(root_windows[0], window->GetRootWindow());
306 DragStart(window.get()); 302 DragStart(window.get());
307 DragMove(0, -100); 303 DragMove(0, -100);
308 DragEnd(); 304 DragEnd();
309 EXPECT_EQ(root_windows[0], window->GetRootWindow()); 305 EXPECT_EQ(root_windows[0], window->GetRootWindow());
310 EXPECT_EQ(initial_bounds.x(), window->GetBoundsInScreen().x()); 306 EXPECT_EQ(initial_bounds.x(), window->GetBoundsInScreen().x());
311 EXPECT_EQ(initial_bounds.y() - 100, window->GetBoundsInScreen().y()); 307 EXPECT_EQ(initial_bounds.y() - 100, window->GetBoundsInScreen().y());
312 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached()); 308 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached());
313 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 309 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
314 310
315 DragStart(window.get()); 311 DragStart(window.get());
316 DragMove(500, 0); 312 DragMove(500, 0);
317 DragEnd(); 313 DragEnd();
318 EXPECT_EQ(root_windows[1], window->GetRootWindow()); 314 EXPECT_EQ(root_windows[1], window->GetRootWindow());
319 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x()); 315 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x());
320 EXPECT_EQ(initial_bounds.y() - 100, window->GetBoundsInScreen().y()); 316 EXPECT_EQ(initial_bounds.y() - 100, window->GetBoundsInScreen().y());
321 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached()); 317 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached());
322 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 318 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
323 } 319 }
324 320
325 TEST_F(PanelWindowResizerTest, DetachAcrossDisplays) { 321 TEST_F(PanelWindowResizerTest, DetachAcrossDisplays) {
326 if (!SupportsMultipleDisplays()) 322 if (!SupportsMultipleDisplays())
327 return; 323 return;
328 324
329 UpdateDisplay("600x400,600x400"); 325 UpdateDisplay("600x400,600x400");
330 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 326 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
331 scoped_ptr<aura::Window> window( 327 scoped_ptr<aura::Window> window(
332 CreatePanelWindow(gfx::Point(0, 0))); 328 CreatePanelWindow(gfx::Point(0, 0)));
333 gfx::Rect initial_bounds = window->GetBoundsInScreen(); 329 gfx::Rect initial_bounds = window->GetBoundsInScreen();
334 EXPECT_EQ(root_windows[0], window->GetRootWindow()); 330 EXPECT_EQ(root_windows[0], window->GetRootWindow());
335 DragStart(window.get()); 331 DragStart(window.get());
336 DragMove(500, -100); 332 DragMove(500, -100);
337 DragEnd(); 333 DragEnd();
338 EXPECT_EQ(root_windows[1], window->GetRootWindow()); 334 EXPECT_EQ(root_windows[1], window->GetRootWindow());
339 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x()); 335 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x());
340 EXPECT_EQ(initial_bounds.y() - 100, window->GetBoundsInScreen().y()); 336 EXPECT_EQ(initial_bounds.y() - 100, window->GetBoundsInScreen().y());
341 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached()); 337 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached());
342 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 338 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
343 } 339 }
344 340
345 TEST_F(PanelWindowResizerTest, DetachThenAttachToSecondDisplay) { 341 TEST_F(PanelWindowResizerTest, DetachThenAttachToSecondDisplay) {
346 if (!SupportsMultipleDisplays()) 342 if (!SupportsMultipleDisplays())
347 return; 343 return;
348 344
349 UpdateDisplay("600x400,600x600"); 345 UpdateDisplay("600x400,600x600");
350 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 346 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
351 scoped_ptr<aura::Window> window( 347 scoped_ptr<aura::Window> window(
352 CreatePanelWindow(gfx::Point(0, 0))); 348 CreatePanelWindow(gfx::Point(0, 0)));
(...skipping 12 matching lines...) Expand all
365 DragMove(500, 295); 361 DragMove(500, 295);
366 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x()); 362 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x());
367 363
368 // Should stick to other launcher. 364 // Should stick to other launcher.
369 EXPECT_EQ(initial_bounds.y() + 200, window->GetBoundsInScreen().y()); 365 EXPECT_EQ(initial_bounds.y() + 200, window->GetBoundsInScreen().y());
370 DragEnd(); 366 DragEnd();
371 367
372 // When dropped should move to second display's panel container. 368 // When dropped should move to second display's panel container.
373 EXPECT_EQ(root_windows[1], window->GetRootWindow()); 369 EXPECT_EQ(root_windows[1], window->GetRootWindow());
374 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached()); 370 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached());
375 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 371 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
376 } 372 }
377 373
378 TEST_F(PanelWindowResizerTest, AttachToSecondDisplay) { 374 TEST_F(PanelWindowResizerTest, AttachToSecondDisplay) {
379 if (!SupportsMultipleDisplays()) 375 if (!SupportsMultipleDisplays())
380 return; 376 return;
381 377
382 UpdateDisplay("600x400,600x600"); 378 UpdateDisplay("600x400,600x600");
383 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 379 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
384 scoped_ptr<aura::Window> window( 380 scoped_ptr<aura::Window> window(
385 CreatePanelWindow(gfx::Point(0, 0))); 381 CreatePanelWindow(gfx::Point(0, 0)));
386 gfx::Rect initial_bounds = window->GetBoundsInScreen(); 382 gfx::Rect initial_bounds = window->GetBoundsInScreen();
387 EXPECT_EQ(root_windows[0], window->GetRootWindow()); 383 EXPECT_EQ(root_windows[0], window->GetRootWindow());
388 384
389 // Drag the window just above the other display's launcher. 385 // Drag the window just above the other display's launcher.
390 DragStart(window.get()); 386 DragStart(window.get());
391 DragMove(500, 195); 387 DragMove(500, 195);
392 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x()); 388 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x());
393 389
394 // Should stick to other launcher. 390 // Should stick to other launcher.
395 EXPECT_EQ(initial_bounds.y() + 200, window->GetBoundsInScreen().y()); 391 EXPECT_EQ(initial_bounds.y() + 200, window->GetBoundsInScreen().y());
396 DragEnd(); 392 DragEnd();
397 393
398 // When dropped should move to second display's panel container. 394 // When dropped should move to second display's panel container.
399 EXPECT_EQ(root_windows[1], window->GetRootWindow()); 395 EXPECT_EQ(root_windows[1], window->GetRootWindow());
400 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached()); 396 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached());
401 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 397 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
402 } 398 }
403 399
404 TEST_F(PanelWindowResizerTest, AttachToSecondFullscreenDisplay) { 400 TEST_F(PanelWindowResizerTest, AttachToSecondFullscreenDisplay) {
405 if (!SupportsMultipleDisplays()) 401 if (!SupportsMultipleDisplays())
406 return; 402 return;
407 403
408 UpdateDisplay("600x400,600x600"); 404 UpdateDisplay("600x400,600x600");
409 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 405 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
410 scoped_ptr<aura::Window> window( 406 scoped_ptr<aura::Window> window(
411 CreatePanelWindow(gfx::Point(0, 0))); 407 CreatePanelWindow(gfx::Point(0, 0)));
(...skipping 12 matching lines...) Expand all
424 DragStart(window.get()); 420 DragStart(window.get());
425 DragMove(500, 250); 421 DragMove(500, 250);
426 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x()); 422 EXPECT_EQ(initial_bounds.x() + 500, window->GetBoundsInScreen().x());
427 EXPECT_GT(window->GetBoundsInScreen().y(), 423 EXPECT_GT(window->GetBoundsInScreen().y(),
428 initial_bounds.y() + 200); 424 initial_bounds.y() + 200);
429 DragEnd(); 425 DragEnd();
430 426
431 // When dropped should move to second display's panel container. 427 // When dropped should move to second display's panel container.
432 EXPECT_EQ(root_windows[1], window->GetRootWindow()); 428 EXPECT_EQ(root_windows[1], window->GetRootWindow());
433 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached()); 429 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached());
434 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 430 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
435 EXPECT_TRUE(window->IsVisible()); 431 EXPECT_TRUE(window->IsVisible());
436 EXPECT_TRUE(wm::GetWindowState(window.get())->IsActive()); 432 EXPECT_TRUE(wm::GetWindowState(window.get())->IsActive());
437 EXPECT_EQ(initial_bounds.y() + 200, window->GetBoundsInScreen().y()); 433 EXPECT_EQ(initial_bounds.y() + 200, window->GetBoundsInScreen().y());
438 } 434 }
439 435
440 TEST_F(PanelWindowResizerTest, RevertDragRestoresAttachment) { 436 TEST_F(PanelWindowResizerTest, RevertDragRestoresAttachment) {
441 scoped_ptr<aura::Window> window( 437 scoped_ptr<aura::Window> window(
442 CreatePanelWindow(gfx::Point(0, 0))); 438 CreatePanelWindow(gfx::Point(0, 0)));
443 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached()); 439 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached());
444 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 440 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
445 DragStart(window.get()); 441 DragStart(window.get());
446 DragMove(0, -100); 442 DragMove(0, -100);
447 DragRevert(); 443 DragRevert();
448 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached()); 444 EXPECT_TRUE(wm::GetWindowState(window.get())->panel_attached());
449 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 445 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
450 446
451 // Detach panel. 447 // Detach panel.
452 DragStart(window.get()); 448 DragStart(window.get());
453 DragMove(0, -100); 449 DragMove(0, -100);
454 DragEnd(); 450 DragEnd();
455 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached()); 451 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached());
456 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 452 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
457 453
458 // Drag back to launcher. 454 // Drag back to launcher.
459 DragStart(window.get()); 455 DragStart(window.get());
460 DragMove(0, 100); 456 DragMove(0, 100);
461 457
462 // When the drag is reverted it should remain detached. 458 // When the drag is reverted it should remain detached.
463 DragRevert(); 459 DragRevert();
464 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached()); 460 EXPECT_FALSE(wm::GetWindowState(window.get())->panel_attached());
465 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 461 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
466 } 462 }
467 463
468 TEST_F(PanelWindowResizerTest, DragMovesToPanelLayer) { 464 TEST_F(PanelWindowResizerTest, DragMovesToPanelLayer) {
469 scoped_ptr<aura::Window> window(CreatePanelWindow(gfx::Point(0, 0))); 465 scoped_ptr<aura::Window> window(CreatePanelWindow(gfx::Point(0, 0)));
470 DragStart(window.get()); 466 DragStart(window.get());
471 DragMove(0, -100); 467 DragMove(0, -100);
472 DragEnd(); 468 DragEnd();
473 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 469 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
474 470
475 // While moving the panel window should be moved to the panel container. 471 // While moving the panel window should be moved to the panel container.
476 DragStart(window.get()); 472 DragStart(window.get());
477 DragMove(20, 0); 473 DragMove(20, 0);
478 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 474 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
479 DragEnd(); 475 DragEnd();
480 476
481 // When dropped it should return to the default container. 477 // When dropped it should return to the default container.
482 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, 478 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
483 window->parent()->id());
484 } 479 }
485 480
486 TEST_P(PanelWindowResizerTextDirectionTest, DragReordersPanelsHorizontal) { 481 TEST_P(PanelWindowResizerTextDirectionTest, DragReordersPanelsHorizontal) {
487 if (!SupportsHostWindowResize()) 482 if (!SupportsHostWindowResize())
488 return; 483 return;
489 484
490 DragAlongShelfReorder(base::i18n::IsRTL() ? 1 : -1, 0); 485 DragAlongShelfReorder(base::i18n::IsRTL() ? 1 : -1, 0);
491 } 486 }
492 487
493 TEST_F(PanelWindowResizerTest, DragReordersPanelsVertical) { 488 TEST_F(PanelWindowResizerTest, DragReordersPanelsVertical) {
(...skipping 19 matching lines...) Expand all
513 window->parent()->AddChild(child.get()); 508 window->parent()->AddChild(child.get());
514 EXPECT_EQ(window.get(), ::wm::GetTransientParent(child.get())); 509 EXPECT_EQ(window.get(), ::wm::GetTransientParent(child.get()));
515 510
516 // Drag the child to the shelf. Its new position should not be overridden. 511 // Drag the child to the shelf. Its new position should not be overridden.
517 const gfx::Rect attached_bounds(window->GetBoundsInScreen()); 512 const gfx::Rect attached_bounds(window->GetBoundsInScreen());
518 const int dy = window->GetBoundsInScreen().bottom() - 513 const int dy = window->GetBoundsInScreen().bottom() -
519 child->GetBoundsInScreen().bottom(); 514 child->GetBoundsInScreen().bottom();
520 DragStart(child.get()); 515 DragStart(child.get());
521 DragMove(50, dy); 516 DragMove(50, dy);
522 // While moving the transient child window should be in the panel container. 517 // While moving the transient child window should be in the panel container.
523 EXPECT_EQ(internal::kShellWindowId_PanelContainer, child->parent()->id()); 518 EXPECT_EQ(kShellWindowId_PanelContainer, child->parent()->id());
524 DragEnd(); 519 DragEnd();
525 // Child should move, |window| should not. 520 // Child should move, |window| should not.
526 EXPECT_EQ(gfx::Point(20 + 50, 20 + dy).ToString(), 521 EXPECT_EQ(gfx::Point(20 + 50, 20 + dy).ToString(),
527 child->GetBoundsInScreen().origin().ToString()); 522 child->GetBoundsInScreen().origin().ToString());
528 EXPECT_EQ(attached_bounds.ToString(), window->GetBoundsInScreen().ToString()); 523 EXPECT_EQ(attached_bounds.ToString(), window->GetBoundsInScreen().ToString());
529 524
530 // Drag the child along the the shelf past the |window|. 525 // Drag the child along the the shelf past the |window|.
531 // Its new position should not be overridden. 526 // Its new position should not be overridden.
532 DragStart(child.get()); 527 DragStart(child.get());
533 DragMove(350, 0); 528 DragMove(350, 0);
534 // While moving the transient child window should be in the panel container. 529 // While moving the transient child window should be in the panel container.
535 EXPECT_EQ(internal::kShellWindowId_PanelContainer, child->parent()->id()); 530 EXPECT_EQ(kShellWindowId_PanelContainer, child->parent()->id());
536 DragEnd(); 531 DragEnd();
537 // |child| should move, |window| should not. 532 // |child| should move, |window| should not.
538 EXPECT_EQ(gfx::Point(20 + 50 + 350, 20 + dy).ToString(), 533 EXPECT_EQ(gfx::Point(20 + 50 + 350, 20 + dy).ToString(),
539 child->GetBoundsInScreen().origin().ToString()); 534 child->GetBoundsInScreen().origin().ToString());
540 EXPECT_EQ(attached_bounds.ToString(), window->GetBoundsInScreen().ToString()); 535 EXPECT_EQ(attached_bounds.ToString(), window->GetBoundsInScreen().ToString());
541 536
542 DragStart(window.get()); 537 DragStart(window.get());
543 DragMove(0, -100); 538 DragMove(0, -100);
544 // While moving the windows should be in the panel container. 539 // While moving the windows should be in the panel container.
545 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 540 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
546 EXPECT_EQ(internal::kShellWindowId_PanelContainer, child->parent()->id()); 541 EXPECT_EQ(kShellWindowId_PanelContainer, child->parent()->id());
547 DragEnd(); 542 DragEnd();
548 // When dropped they should return to the default container. 543 // When dropped they should return to the default container.
549 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 544 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
550 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, child->parent()->id()); 545 EXPECT_EQ(kShellWindowId_DefaultContainer, child->parent()->id());
551 546
552 // While moving the window and child should be moved to the panel container. 547 // While moving the window and child should be moved to the panel container.
553 DragStart(window.get()); 548 DragStart(window.get());
554 DragMove(20, 0); 549 DragMove(20, 0);
555 EXPECT_EQ(internal::kShellWindowId_PanelContainer, window->parent()->id()); 550 EXPECT_EQ(kShellWindowId_PanelContainer, window->parent()->id());
556 EXPECT_EQ(internal::kShellWindowId_PanelContainer, child->parent()->id()); 551 EXPECT_EQ(kShellWindowId_PanelContainer, child->parent()->id());
557 DragEnd(); 552 DragEnd();
558 553
559 // When dropped they should return to the default container. 554 // When dropped they should return to the default container.
560 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, window->parent()->id()); 555 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id());
561 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, child->parent()->id()); 556 EXPECT_EQ(kShellWindowId_DefaultContainer, child->parent()->id());
562 } 557 }
563 558
564 INSTANTIATE_TEST_CASE_P(LtrRtl, PanelWindowResizerTextDirectionTest, 559 INSTANTIATE_TEST_CASE_P(LtrRtl, PanelWindowResizerTextDirectionTest,
565 testing::Bool()); 560 testing::Bool());
566 INSTANTIATE_TEST_CASE_P(NormalPanelPopup, 561 INSTANTIATE_TEST_CASE_P(NormalPanelPopup,
567 PanelWindowResizerTransientTest, 562 PanelWindowResizerTransientTest,
568 testing::Values(ui::wm::WINDOW_TYPE_NORMAL, 563 testing::Values(ui::wm::WINDOW_TYPE_NORMAL,
569 ui::wm::WINDOW_TYPE_PANEL, 564 ui::wm::WINDOW_TYPE_PANEL,
570 ui::wm::WINDOW_TYPE_POPUP)); 565 ui::wm::WINDOW_TYPE_POPUP));
571 566
572 } // namespace internal
573 } // namespace ash 567 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/panels/panel_window_resizer.cc ('k') | ash/wm/partial_screenshot_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698