Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2539)

Unified Diff: ash/wm/overview/window_selector_unittest.cc

Issue 251103005: Added arrow key navigation to Overview Mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed a bug with panels and changing windows bounds Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« ash/wm/overview/window_selector.cc ('K') | « ash/wm/overview/window_selector_item.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698