| OLD | NEW |
| 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/shell.h" | 5 #include "ash/shell.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 Shell::GetPrimaryRootWindow(), | 48 Shell::GetPrimaryRootWindow(), |
| 49 internal::kShellWindowId_AlwaysOnTopContainer); | 49 internal::kShellWindowId_AlwaysOnTopContainer); |
| 50 } | 50 } |
| 51 | 51 |
| 52 // Expect ALL the containers! | 52 // Expect ALL the containers! |
| 53 void ExpectAllContainers() { | 53 void ExpectAllContainers() { |
| 54 aura::RootWindow* root_window = Shell::GetPrimaryRootWindow(); | 54 aura::RootWindow* root_window = Shell::GetPrimaryRootWindow(); |
| 55 EXPECT_TRUE(Shell::GetContainer( | 55 EXPECT_TRUE(Shell::GetContainer( |
| 56 root_window, internal::kShellWindowId_DesktopBackgroundContainer)); | 56 root_window, internal::kShellWindowId_DesktopBackgroundContainer)); |
| 57 EXPECT_TRUE(Shell::GetContainer( | 57 EXPECT_TRUE(Shell::GetContainer( |
| 58 root_window, internal::kShellWindowId_SystemBackgroundContainer)); | |
| 59 EXPECT_TRUE(Shell::GetContainer( | |
| 60 root_window, internal::kShellWindowId_DefaultContainer)); | 58 root_window, internal::kShellWindowId_DefaultContainer)); |
| 61 EXPECT_TRUE(Shell::GetContainer( | 59 EXPECT_TRUE(Shell::GetContainer( |
| 62 root_window, internal::kShellWindowId_AlwaysOnTopContainer)); | 60 root_window, internal::kShellWindowId_AlwaysOnTopContainer)); |
| 63 EXPECT_TRUE(Shell::GetContainer( | 61 EXPECT_TRUE(Shell::GetContainer( |
| 64 root_window, internal::kShellWindowId_PanelContainer)); | 62 root_window, internal::kShellWindowId_PanelContainer)); |
| 65 EXPECT_TRUE(Shell::GetContainer( | 63 EXPECT_TRUE(Shell::GetContainer( |
| 66 root_window, internal::kShellWindowId_LauncherContainer)); | 64 root_window, internal::kShellWindowId_LauncherContainer)); |
| 67 EXPECT_TRUE(Shell::GetContainer( | 65 EXPECT_TRUE(Shell::GetContainer( |
| 68 root_window, internal::kShellWindowId_SystemModalContainer)); | 66 root_window, internal::kShellWindowId_SystemModalContainer)); |
| 69 EXPECT_TRUE(Shell::GetContainer( | 67 EXPECT_TRUE(Shell::GetContainer( |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 std::vector<aura::Window*> results; | 344 std::vector<aura::Window*> results; |
| 347 while (window) { | 345 while (window) { |
| 348 results.push_back(window); | 346 results.push_back(window); |
| 349 window = window->parent(); | 347 window = window->parent(); |
| 350 } | 348 } |
| 351 return results; | 349 return results; |
| 352 } | 350 } |
| 353 | 351 |
| 354 } // namespace | 352 } // namespace |
| 355 | 353 |
| 356 // The SystemBackgroundContainer needs to be behind the | |
| 357 // DesktopBackgroundContainer, otherwise workspace animations don't line up. | |
| 358 TEST_F(ShellTest, SystemBackgroundBehindDesktopBackground) { | |
| 359 aura::RootWindow* root_window = Shell::GetPrimaryRootWindow(); | |
| 360 aura::Window* desktop = Shell::GetContainer( | |
| 361 root_window, internal::kShellWindowId_DesktopBackgroundContainer); | |
| 362 ASSERT_TRUE(desktop != NULL); | |
| 363 aura::Window* system_bg = Shell::GetContainer( | |
| 364 root_window, internal::kShellWindowId_SystemBackgroundContainer); | |
| 365 ASSERT_TRUE(system_bg != NULL); | |
| 366 | |
| 367 std::vector<aura::Window*> desktop_parents(BuildPathToRoot(desktop)); | |
| 368 std::vector<aura::Window*> system_bg_parents(BuildPathToRoot(system_bg)); | |
| 369 | |
| 370 for (size_t i = 0; i < system_bg_parents.size(); ++i) { | |
| 371 std::vector<aura::Window*>::iterator desktop_i = | |
| 372 std::find(desktop_parents.begin(), desktop_parents.end(), | |
| 373 system_bg_parents[i]); | |
| 374 if (desktop_i != desktop_parents.end()) { | |
| 375 // Found the common parent. | |
| 376 ASSERT_NE(0u, i); | |
| 377 ASSERT_TRUE(desktop_i != desktop_parents.begin()); | |
| 378 aura::Window* common_parent = system_bg_parents[i]; | |
| 379 int system_child = static_cast<int>(std::find( | |
| 380 common_parent->children().begin(), | |
| 381 common_parent->children().end(), system_bg_parents[i - 1]) - | |
| 382 common_parent->children().begin()); | |
| 383 int desktop_child = static_cast<int>(std::find( | |
| 384 common_parent->children().begin(), | |
| 385 common_parent->children().end(), *(desktop_i - 1)) - | |
| 386 common_parent->children().begin()); | |
| 387 EXPECT_LT(system_child, desktop_child); | |
| 388 return; | |
| 389 } | |
| 390 } | |
| 391 EXPECT_TRUE(false) << | |
| 392 "system background and desktop background need to have a common parent"; | |
| 393 } | |
| 394 | |
| 395 // Various assertions around IsAutoHideMenuHideChecked() and | 354 // Various assertions around IsAutoHideMenuHideChecked() and |
| 396 // ToggleAutoHideMenu(). | 355 // ToggleAutoHideMenu(). |
| 397 TEST_F(ShellTest, ToggleAutoHide) { | 356 TEST_F(ShellTest, ToggleAutoHide) { |
| 398 scoped_ptr<aura::Window> window(new aura::Window(NULL)); | 357 scoped_ptr<aura::Window> window(new aura::Window(NULL)); |
| 399 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); | 358 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); |
| 400 window->SetType(aura::client::WINDOW_TYPE_NORMAL); | 359 window->SetType(aura::client::WINDOW_TYPE_NORMAL); |
| 401 window->Init(ui::LAYER_TEXTURED); | 360 window->Init(ui::LAYER_TEXTURED); |
| 402 window->SetParent(NULL); | 361 window->SetParent(NULL); |
| 403 window->Show(); | 362 window->Show(); |
| 404 wm::ActivateWindow(window.get()); | 363 wm::ActivateWindow(window.get()); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 private: | 404 private: |
| 446 DISALLOW_COPY_AND_ASSIGN(ShellTest2); | 405 DISALLOW_COPY_AND_ASSIGN(ShellTest2); |
| 447 }; | 406 }; |
| 448 | 407 |
| 449 TEST_F(ShellTest2, DontCrashWhenWindowDeleted) { | 408 TEST_F(ShellTest2, DontCrashWhenWindowDeleted) { |
| 450 window_.reset(new aura::Window(NULL)); | 409 window_.reset(new aura::Window(NULL)); |
| 451 window_->Init(ui::LAYER_NOT_DRAWN); | 410 window_->Init(ui::LAYER_NOT_DRAWN); |
| 452 } | 411 } |
| 453 | 412 |
| 454 } // namespace ash | 413 } // namespace ash |
| OLD | NEW |