Chromium Code Reviews| Index: ash/wm/overview/window_selector_unittest.cc |
| diff --git a/ash/wm/overview/window_selector_unittest.cc b/ash/wm/overview/window_selector_unittest.cc |
| index 1b65eff9263a0190f1aa1a970e2aceae451b58fc..37f0578b4f218a575df432462c1e1f5fd8645079 100644 |
| --- a/ash/wm/overview/window_selector_unittest.cc |
| +++ b/ash/wm/overview/window_selector_unittest.cc |
| @@ -16,6 +16,7 @@ |
| #include "ash/test/shell_test_api.h" |
| #include "ash/test/test_shelf_delegate.h" |
| #include "ash/wm/mru_window_tracker.h" |
| +#include "ash/wm/overview/window_grid.h" |
| #include "ash/wm/overview/window_selector.h" |
| #include "ash/wm/overview/window_selector_controller.h" |
| #include "ash/wm/overview/window_selector_item.h" |
| @@ -154,6 +155,12 @@ class WindowSelectorTest : public test::AshTestBase { |
| event_generator.ClickLeftButton(); |
| } |
| + void SendKey(ui::KeyboardCode key) { |
| + aura::test::EventGenerator event_generator(Shell::GetPrimaryRootWindow()); |
| + event_generator.PressKey(key, 0); |
| + event_generator.ReleaseKey(key, 0); |
| + } |
| + |
| bool IsSelecting() { |
| return ash::Shell::GetInstance()->window_selector_controller()-> |
| IsSelecting(); |
| @@ -164,11 +171,18 @@ class WindowSelectorTest : public test::AshTestBase { |
| Shell::GetPrimaryRootWindow())->GetFocusedWindow(); |
| } |
| - ScopedVector<WindowSelectorItem>* GetWindowItems() { |
| - return &(ash::Shell::GetInstance()->window_selector_controller()-> |
| - window_selector_->windows_); |
| + const std::vector<WindowSelectorItem*>& GetWindowItemsForRoot(int index) { |
| + return ash::Shell::GetInstance()->window_selector_controller()-> |
| + window_selector_->grid_list_[index]->window_list(); |
| } |
| + const aura::Window* GetSelectedWindow() { |
| + WindowSelector* ws = ash::Shell::GetInstance()-> |
| + window_selector_controller()->window_selector_.get(); |
| + return ws->grid_list_[ws->selected_grid_index_]-> |
| + SelectedWindow()->SelectionWindow(); |
| + } |
| + |
| views::Widget* GetLabelWidget(ash::WindowSelectorItem* window) { |
| return window->window_label_.get(); |
| } |
| @@ -699,7 +713,7 @@ TEST_F(WindowSelectorTest, CreateLabelUnderWindow) { |
| base::string16 window_title = base::UTF8ToUTF16("My window"); |
| window->set_title(window_title); |
| ToggleOverview(); |
| - WindowSelectorItem* window_item = GetWindowItems()->back(); |
| + WindowSelectorItem* window_item = GetWindowItemsForRoot(0).back(); |
| views::Widget* widget = GetLabelWidget(window_item); |
| // Has the label widget been created? |
| ASSERT_TRUE(widget); |
| @@ -728,7 +742,7 @@ TEST_F(WindowSelectorTest, CreateLabelUnderPanel) { |
| panel2->set_title(panel2_title); |
| wm::ActivateWindow(panel1.get()); |
| ToggleOverview(); |
| - WindowSelectorItem* window_item = GetWindowItems()->back(); |
| + WindowSelectorItem* window_item = GetWindowItemsForRoot(0).back(); |
| views::Widget* widget = GetLabelWidget(window_item); |
| // Has the label widget been created? |
| ASSERT_TRUE(widget); |
| @@ -770,4 +784,31 @@ TEST_F(WindowSelectorTest, DisplayOrientationChanged) { |
| } |
| } |
| +// Tests traversing some windows in overview mode with the arrow keys. |
| +TEST_F(WindowSelectorTest, BasicArrowKeyNavigation) { |
|
flackr
2014/06/04 22:25:06
Should probably have a test which tries complete c
Nina
2014/06/05 18:04:36
Check the new test out, I'm sure you're gonna like
flackr
2014/06/05 20:16:32
I do!
|
| + gfx::Rect bounds(0, 0, 100, 100); |
| + scoped_ptr<aura::Window> window4(CreateWindow(bounds)); |
| + scoped_ptr<aura::Window> window3(CreateWindow(bounds)); |
| + scoped_ptr<aura::Window> window2(CreateWindow(bounds)); |
| + scoped_ptr<aura::Window> window1(CreateWindow(bounds)); |
| + ToggleOverview(); |
| + SendKey(ui::VKEY_DOWN); |
| + EXPECT_EQ(GetSelectedWindow(), window1.get()); |
| + SendKey(ui::VKEY_RIGHT); |
| + EXPECT_EQ(GetSelectedWindow(), window2.get()); |
| + SendKey(ui::VKEY_RIGHT); |
| + EXPECT_EQ(GetSelectedWindow(), window3.get()); |
| + SendKey(ui::VKEY_LEFT); |
| + EXPECT_EQ(GetSelectedWindow(), window2.get()); |
| + // Wrap the selection. |
| + SendKey(ui::VKEY_RIGHT); |
| + SendKey(ui::VKEY_RIGHT); |
| + SendKey(ui::VKEY_RIGHT); |
| + EXPECT_EQ(GetSelectedWindow(), window1.get()); |
| + ToggleOverview(); |
| + ToggleOverview(); |
| + SendKey(ui::VKEY_LEFT); |
| + EXPECT_EQ(GetSelectedWindow(), window4.get()); |
| +} |
| + |
| } // namespace ash |