| OLD | NEW |
| 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/solo_window_tracker.h" | 5 #include "ash/wm/solo_window_tracker.h" |
| 6 | 6 |
| 7 #include "ash/ash_constants.h" | 7 #include "ash/ash_constants.h" |
| 8 #include "ash/ash_switches.h" | 8 #include "ash/ash_switches.h" |
| 9 #include "ash/root_window_controller.h" | 9 #include "ash/root_window_controller.h" |
| 10 #include "ash/screen_ash.h" | 10 #include "ash/screen_ash.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 class SoloWindowTrackerTest : public test::AshTestBase { | 67 class SoloWindowTrackerTest : public test::AshTestBase { |
| 68 public: | 68 public: |
| 69 SoloWindowTrackerTest() { | 69 SoloWindowTrackerTest() { |
| 70 } | 70 } |
| 71 virtual ~SoloWindowTrackerTest() { | 71 virtual ~SoloWindowTrackerTest() { |
| 72 } | 72 } |
| 73 | 73 |
| 74 // Helpers methods to create test windows in the primary root window. | 74 // Helpers methods to create test windows in the primary root window. |
| 75 aura::Window* CreateWindowInPrimary() { | 75 aura::Window* CreateWindowInPrimary() { |
| 76 aura::Window* window = new aura::Window(NULL); | 76 aura::Window* window = new aura::Window(NULL); |
| 77 window->SetType(aura::client::WINDOW_TYPE_NORMAL); | 77 window->SetType(ui::wm::WINDOW_TYPE_NORMAL); |
| 78 window->Init(ui::LAYER_TEXTURED); | 78 window->Init(ui::LAYER_TEXTURED); |
| 79 window->SetBounds(gfx::Rect(100, 100)); | 79 window->SetBounds(gfx::Rect(100, 100)); |
| 80 ParentWindowInPrimaryRootWindow(window); | 80 ParentWindowInPrimaryRootWindow(window); |
| 81 return window; | 81 return window; |
| 82 } | 82 } |
| 83 aura::Window* CreateAlwaysOnTopWindowInPrimary() { | 83 aura::Window* CreateAlwaysOnTopWindowInPrimary() { |
| 84 aura::Window* window = new aura::Window(NULL); | 84 aura::Window* window = new aura::Window(NULL); |
| 85 window->SetType(aura::client::WINDOW_TYPE_NORMAL); | 85 window->SetType(ui::wm::WINDOW_TYPE_NORMAL); |
| 86 window->Init(ui::LAYER_TEXTURED); | 86 window->Init(ui::LAYER_TEXTURED); |
| 87 window->SetBounds(gfx::Rect(100, 100)); | 87 window->SetBounds(gfx::Rect(100, 100)); |
| 88 window->SetProperty(aura::client::kAlwaysOnTopKey, true); | 88 window->SetProperty(aura::client::kAlwaysOnTopKey, true); |
| 89 ParentWindowInPrimaryRootWindow(window); | 89 ParentWindowInPrimaryRootWindow(window); |
| 90 return window; | 90 return window; |
| 91 } | 91 } |
| 92 aura::Window* CreatePanelWindowInPrimary() { | 92 aura::Window* CreatePanelWindowInPrimary() { |
| 93 aura::Window* window = new aura::Window(NULL); | 93 aura::Window* window = new aura::Window(NULL); |
| 94 window->SetType(aura::client::WINDOW_TYPE_PANEL); | 94 window->SetType(ui::wm::WINDOW_TYPE_PANEL); |
| 95 window->Init(ui::LAYER_TEXTURED); | 95 window->Init(ui::LAYER_TEXTURED); |
| 96 window->SetBounds(gfx::Rect(100, 100)); | 96 window->SetBounds(gfx::Rect(100, 100)); |
| 97 ParentWindowInPrimaryRootWindow(window); | 97 ParentWindowInPrimaryRootWindow(window); |
| 98 return window; | 98 return window; |
| 99 } | 99 } |
| 100 | 100 |
| 101 // Drag |window| to the dock. | 101 // Drag |window| to the dock. |
| 102 void DockWindow(aura::Window* window) { | 102 void DockWindow(aura::Window* window) { |
| 103 // Because the tests use windows without delegates, | 103 // Because the tests use windows without delegates, |
| 104 // aura::test::EventGenerator cannot be used. | 104 // aura::test::EventGenerator cannot be used. |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 // Non-drawing windows should not affect the solo computation. | 289 // Non-drawing windows should not affect the solo computation. |
| 290 TEST_F(SoloWindowTrackerTest, NotDrawn) { | 290 TEST_F(SoloWindowTrackerTest, NotDrawn) { |
| 291 aura::Window* w = CreateWindowInPrimary(); | 291 aura::Window* w = CreateWindowInPrimary(); |
| 292 w->Show(); | 292 w->Show(); |
| 293 | 293 |
| 294 // We only have one window, so it should use a solo header. | 294 // We only have one window, so it should use a solo header. |
| 295 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); | 295 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); |
| 296 | 296 |
| 297 // Create non-drawing window similar to DragDropTracker. | 297 // Create non-drawing window similar to DragDropTracker. |
| 298 aura::Window* not_drawn = new aura::Window(NULL); | 298 aura::Window* not_drawn = new aura::Window(NULL); |
| 299 not_drawn->SetType(aura::client::WINDOW_TYPE_NORMAL); | 299 not_drawn->SetType(ui::wm::WINDOW_TYPE_NORMAL); |
| 300 not_drawn->Init(ui::LAYER_NOT_DRAWN); | 300 not_drawn->Init(ui::LAYER_NOT_DRAWN); |
| 301 ParentWindowInPrimaryRootWindow(not_drawn); | 301 ParentWindowInPrimaryRootWindow(not_drawn); |
| 302 not_drawn->Show(); | 302 not_drawn->Show(); |
| 303 | 303 |
| 304 // Despite two windows, the first window should still be considered "solo" | 304 // Despite two windows, the first window should still be considered "solo" |
| 305 // because non-drawing windows aren't included in the computation. | 305 // because non-drawing windows aren't included in the computation. |
| 306 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); | 306 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); |
| 307 } | 307 } |
| 308 | 308 |
| 309 TEST_F(SoloWindowTrackerTest, MultiDisplay) { | 309 TEST_F(SoloWindowTrackerTest, MultiDisplay) { |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 | 388 |
| 389 TEST_F(SoloWindowTrackerTest, ChildWindowVisibility) { | 389 TEST_F(SoloWindowTrackerTest, ChildWindowVisibility) { |
| 390 aura::Window* w = CreateWindowInPrimary(); | 390 aura::Window* w = CreateWindowInPrimary(); |
| 391 w->Show(); | 391 w->Show(); |
| 392 | 392 |
| 393 // We only have one window, so it should use a solo header. | 393 // We only have one window, so it should use a solo header. |
| 394 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); | 394 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); |
| 395 | 395 |
| 396 // Create a child window. This should not affect the solo-ness of |w1|. | 396 // Create a child window. This should not affect the solo-ness of |w1|. |
| 397 aura::Window* child = new aura::Window(NULL); | 397 aura::Window* child = new aura::Window(NULL); |
| 398 child->SetType(aura::client::WINDOW_TYPE_CONTROL); | 398 child->SetType(ui::wm::WINDOW_TYPE_CONTROL); |
| 399 child->Init(ui::LAYER_TEXTURED); | 399 child->Init(ui::LAYER_TEXTURED); |
| 400 child->SetBounds(gfx::Rect(100, 100)); | 400 child->SetBounds(gfx::Rect(100, 100)); |
| 401 w->AddChild(child); | 401 w->AddChild(child); |
| 402 child->Show(); | 402 child->Show(); |
| 403 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); | 403 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); |
| 404 | 404 |
| 405 // Changing the visibility of |child| should not affect the solo-ness of |w1|. | 405 // Changing the visibility of |child| should not affect the solo-ness of |w1|. |
| 406 child->Hide(); | 406 child->Hide(); |
| 407 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); | 407 EXPECT_EQ(w, GetWindowWithSoloHeaderInPrimary()); |
| 408 } | 408 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 420 w.reset(); | 420 w.reset(); |
| 421 EXPECT_EQ(NULL, GetWindowWithSoloHeaderInPrimary()); | 421 EXPECT_EQ(NULL, GetWindowWithSoloHeaderInPrimary()); |
| 422 | 422 |
| 423 // Recreate another window again. | 423 // Recreate another window again. |
| 424 w.reset(CreateWindowInPrimary()); | 424 w.reset(CreateWindowInPrimary()); |
| 425 w->Show(); | 425 w->Show(); |
| 426 EXPECT_EQ(w.get(), GetWindowWithSoloHeaderInPrimary()); | 426 EXPECT_EQ(w.get(), GetWindowWithSoloHeaderInPrimary()); |
| 427 } | 427 } |
| 428 | 428 |
| 429 } // namespace ash | 429 } // namespace ash |
| OLD | NEW |