diff options
author | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-06 23:59:31 +0000 |
---|---|---|
committer | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-06 23:59:31 +0000 |
commit | 057dc5756fa7197ae0d8ae0d2306417eb8d4a219 (patch) | |
tree | 34b3ccb5b0c9f44edfcd7e8e2e7fdd53f8f16c1e /ash/focus_cycler_unittest.cc | |
parent | b14d4310b279d9edc2a479e1dd1f912a5b53b6a3 (diff) | |
download | chromium_src-057dc5756fa7197ae0d8ae0d2306417eb8d4a219.zip chromium_src-057dc5756fa7197ae0d8ae0d2306417eb8d4a219.tar.gz chromium_src-057dc5756fa7197ae0d8ae0d2306417eb8d4a219.tar.bz2 |
Add unittest to check that focus cycling skips the launcher when it's hidden
R=sky@chromium.org
BUG=None
TEST=run aura_shell_unittests
Review URL: https://chromiumcodereview.appspot.com/9370015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125259 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/focus_cycler_unittest.cc')
-rw-r--r-- | ash/focus_cycler_unittest.cc | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/ash/focus_cycler_unittest.cc b/ash/focus_cycler_unittest.cc index 0763d6a..39c53a1 100644 --- a/ash/focus_cycler_unittest.cc +++ b/ash/focus_cycler_unittest.cc @@ -122,5 +122,110 @@ TEST_F(FocusCyclerTest, CycleFocusBackward) { EXPECT_TRUE(wm::IsActiveWindow(window0.get())); } +class FocusCyclerLauncherTest : public AshTestBase { + public: + FocusCyclerLauncherTest() : AshTestBase() {} + virtual ~FocusCyclerLauncherTest() {} + + virtual void SetUp() OVERRIDE { + AshTestBase::SetUp(); + + // Hide the launcher + Launcher* launcher = Shell::GetInstance()->launcher(); + ASSERT_TRUE(launcher); + views::Widget* launcher_widget = launcher->widget(); + ASSERT_TRUE(launcher_widget); + launcher_widget->Hide(); + } + + virtual void TearDown() OVERRIDE { + // Show the launcher + Launcher* launcher = Shell::GetInstance()->launcher(); + ASSERT_TRUE(launcher); + views::Widget* launcher_widget = launcher->widget(); + ASSERT_TRUE(launcher_widget); + launcher_widget->Show(); + + AshTestBase::TearDown(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(FocusCyclerLauncherTest); +}; + +TEST_F(FocusCyclerLauncherTest, CycleFocusForwardInvisible) { + scoped_ptr<FocusCycler> focus_cycler(new FocusCycler()); + + // Add the Status area + views::Widget* status_widget = internal::CreateStatusArea(NULL); + ASSERT_TRUE(status_widget); + focus_cycler->AddWidget(status_widget); + + // Add a mock button to the status area. + status_widget->GetContentsView()->AddChildView( + new views::MenuButton(NULL, string16(), NULL, false)); + + // Add the launcher + Launcher* launcher = Shell::GetInstance()->launcher(); + ASSERT_TRUE(launcher); + views::Widget* launcher_widget = launcher->widget(); + ASSERT_TRUE(launcher_widget); + focus_cycler->AddWidget(launcher_widget); + launcher->SetFocusCycler(focus_cycler.get()); + + // Create a single test window. + Window* default_container = + ash::Shell::GetInstance()->GetContainer( + internal::kShellWindowId_DefaultContainer); + scoped_ptr<Window> window0(CreateTestWindowWithId(0, default_container)); + wm::ActivateWindow(window0.get()); + EXPECT_TRUE(wm::IsActiveWindow(window0.get())); + + // Cycle focus to the status area + focus_cycler->RotateFocus(FocusCycler::FORWARD); + EXPECT_TRUE(status_widget->IsActive()); + + // Cycle focus to the browser + focus_cycler->RotateFocus(FocusCycler::FORWARD); + EXPECT_TRUE(wm::IsActiveWindow(window0.get())); +} + +TEST_F(FocusCyclerLauncherTest, CycleFocusBackwardInvisible) { + scoped_ptr<FocusCycler> focus_cycler(new FocusCycler()); + + // Add the Status area + views::Widget* status_widget = internal::CreateStatusArea(NULL); + ASSERT_TRUE(status_widget); + focus_cycler->AddWidget(status_widget); + + // Add a mock button to the status area. + status_widget->GetContentsView()->AddChildView( + new views::MenuButton(NULL, string16(), NULL, false)); + + // Add the launcher + Launcher* launcher = Shell::GetInstance()->launcher(); + ASSERT_TRUE(launcher); + views::Widget* launcher_widget = launcher->widget(); + ASSERT_TRUE(launcher_widget); + focus_cycler->AddWidget(launcher_widget); + launcher->SetFocusCycler(focus_cycler.get()); + + // Create a single test window. + Window* default_container = + ash::Shell::GetInstance()->GetContainer( + internal::kShellWindowId_DefaultContainer); + scoped_ptr<Window> window0(CreateTestWindowWithId(0, default_container)); + wm::ActivateWindow(window0.get()); + EXPECT_TRUE(wm::IsActiveWindow(window0.get())); + + // Cycle focus to the status area + focus_cycler->RotateFocus(FocusCycler::BACKWARD); + EXPECT_TRUE(status_widget->IsActive()); + + // Cycle focus to the browser + focus_cycler->RotateFocus(FocusCycler::BACKWARD); + EXPECT_TRUE(wm::IsActiveWindow(window0.get())); +} + } // namespace test } // namespace ash |