summaryrefslogtreecommitdiffstats
path: root/ash/focus_cycler_unittest.cc
diff options
context:
space:
mode:
authorzork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-06 23:59:31 +0000
committerzork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-06 23:59:31 +0000
commit057dc5756fa7197ae0d8ae0d2306417eb8d4a219 (patch)
tree34b3ccb5b0c9f44edfcd7e8e2e7fdd53f8f16c1e /ash/focus_cycler_unittest.cc
parentb14d4310b279d9edc2a479e1dd1f912a5b53b6a3 (diff)
downloadchromium_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.cc105
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