Index: ui/views/controls/combobox/combobox_unittest.cc |
diff --git a/ui/views/controls/combobox/combobox_unittest.cc b/ui/views/controls/combobox/combobox_unittest.cc |
index 7cdaa56308c1447a34f3f30def031c999b57d767..d37c908789aa5d8dacc2435159b72b776fd942da 100644 |
--- a/ui/views/controls/combobox/combobox_unittest.cc |
+++ b/ui/views/controls/combobox/combobox_unittest.cc |
@@ -18,6 +18,7 @@ |
#include "ui/events/event_utils.h" |
#include "ui/events/keycodes/dom/dom_code.h" |
#include "ui/events/keycodes/keyboard_codes.h" |
+#include "ui/events/test/event_generator.h" |
#include "ui/views/controls/combobox/combobox_listener.h" |
#include "ui/views/test/combobox_test_api.h" |
#include "ui/views/test/views_test_base.h" |
@@ -216,19 +217,20 @@ class ComboboxTest : public ViewsTestBase { |
combobox_->RequestFocus(); |
combobox_->SizeToPreferredSize(); |
+ |
+ event_generator_.reset( |
+ new ui::test::EventGenerator(widget_->GetNativeWindow())); |
+ event_generator_->set_target(ui::test::EventGenerator::Target::WINDOW); |
} |
protected: |
- void SendKeyEvent(ui::KeyboardCode key_code) { |
- SendKeyEventWithType(key_code, ui::ET_KEY_PRESSED); |
+ |
+ void PressKey(ui::KeyboardCode key_code) { |
+ event_generator_->PressKey(key_code, ui::EF_NONE); |
} |
- void SendKeyEventWithType(ui::KeyboardCode key_code, ui::EventType type) { |
- ui::KeyEvent event(type, key_code, ui::EF_NONE); |
- FocusManager* focus_manager = widget_->GetFocusManager(); |
- widget_->OnKeyEvent(&event); |
- if (!event.handled() && focus_manager) |
- focus_manager->OnKeyEvent(event); |
+ void ReleaseKey(ui::KeyboardCode key_code) { |
+ event_generator_->ReleaseKey(key_code, ui::EF_NONE); |
} |
View* GetFocusedView() { |
@@ -269,28 +271,30 @@ class ComboboxTest : public ViewsTestBase { |
// The current menu show count. |
int menu_show_count_; |
+ std::unique_ptr<ui::test::EventGenerator> event_generator_; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(ComboboxTest); |
}; |
TEST_F(ComboboxTest, KeyTest) { |
InitCombobox(nullptr, Combobox::STYLE_NORMAL); |
- SendKeyEvent(ui::VKEY_END); |
+ PressKey(ui::VKEY_END); |
EXPECT_EQ(combobox_->selected_index() + 1, model_->GetItemCount()); |
- SendKeyEvent(ui::VKEY_HOME); |
+ PressKey(ui::VKEY_HOME); |
EXPECT_EQ(combobox_->selected_index(), 0); |
- SendKeyEvent(ui::VKEY_DOWN); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(combobox_->selected_index(), 2); |
- SendKeyEvent(ui::VKEY_RIGHT); |
+ PressKey(ui::VKEY_RIGHT); |
EXPECT_EQ(combobox_->selected_index(), 2); |
- SendKeyEvent(ui::VKEY_LEFT); |
+ PressKey(ui::VKEY_LEFT); |
EXPECT_EQ(combobox_->selected_index(), 2); |
- SendKeyEvent(ui::VKEY_UP); |
+ PressKey(ui::VKEY_UP); |
EXPECT_EQ(combobox_->selected_index(), 1); |
- SendKeyEvent(ui::VKEY_PRIOR); |
+ PressKey(ui::VKEY_PRIOR); |
EXPECT_EQ(combobox_->selected_index(), 0); |
- SendKeyEvent(ui::VKEY_NEXT); |
+ PressKey(ui::VKEY_NEXT); |
EXPECT_EQ(combobox_->selected_index(), model_->GetItemCount() - 1); |
} |
@@ -320,17 +324,17 @@ TEST_F(ComboboxTest, SkipSeparatorSimple) { |
separators.insert(2); |
InitCombobox(&separators, Combobox::STYLE_NORMAL); |
EXPECT_EQ(0, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(1, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(3, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_UP); |
+ PressKey(ui::VKEY_UP); |
EXPECT_EQ(1, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_HOME); |
+ PressKey(ui::VKEY_HOME); |
EXPECT_EQ(0, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_PRIOR); |
+ PressKey(ui::VKEY_PRIOR); |
EXPECT_EQ(0, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_END); |
+ PressKey(ui::VKEY_END); |
EXPECT_EQ(9, combobox_->selected_index()); |
} |
@@ -341,17 +345,17 @@ TEST_F(ComboboxTest, SkipSeparatorBeginning) { |
separators.insert(0); |
InitCombobox(&separators, Combobox::STYLE_NORMAL); |
EXPECT_EQ(1, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(2, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(3, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_UP); |
+ PressKey(ui::VKEY_UP); |
EXPECT_EQ(2, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_HOME); |
+ PressKey(ui::VKEY_HOME); |
EXPECT_EQ(1, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_PRIOR); |
+ PressKey(ui::VKEY_PRIOR); |
EXPECT_EQ(1, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_END); |
+ PressKey(ui::VKEY_END); |
EXPECT_EQ(9, combobox_->selected_index()); |
} |
@@ -362,11 +366,11 @@ TEST_F(ComboboxTest, SkipSeparatorEnd) { |
separators.insert(TestComboboxModel::kItemCount - 1); |
InitCombobox(&separators, Combobox::STYLE_NORMAL); |
combobox_->SetSelectedIndex(8); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(8, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_UP); |
+ PressKey(ui::VKEY_UP); |
EXPECT_EQ(7, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_END); |
+ PressKey(ui::VKEY_END); |
EXPECT_EQ(8, combobox_->selected_index()); |
} |
@@ -380,17 +384,17 @@ TEST_F(ComboboxTest, SkipMultipleSeparatorsAtBeginning) { |
separators.insert(2); |
InitCombobox(&separators, Combobox::STYLE_NORMAL); |
EXPECT_EQ(3, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(4, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_UP); |
+ PressKey(ui::VKEY_UP); |
EXPECT_EQ(3, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_NEXT); |
+ PressKey(ui::VKEY_NEXT); |
EXPECT_EQ(9, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_HOME); |
+ PressKey(ui::VKEY_HOME); |
EXPECT_EQ(3, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_END); |
+ PressKey(ui::VKEY_END); |
EXPECT_EQ(9, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_PRIOR); |
+ PressKey(ui::VKEY_PRIOR); |
EXPECT_EQ(3, combobox_->selected_index()); |
} |
@@ -404,9 +408,9 @@ TEST_F(ComboboxTest, SkipMultipleAdjacentSeparatorsAtMiddle) { |
separators.insert(6); |
InitCombobox(&separators, Combobox::STYLE_NORMAL); |
combobox_->SetSelectedIndex(3); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(7, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_UP); |
+ PressKey(ui::VKEY_UP); |
EXPECT_EQ(3, combobox_->selected_index()); |
} |
@@ -420,17 +424,17 @@ TEST_F(ComboboxTest, SkipMultipleSeparatorsAtEnd) { |
separators.insert(9); |
InitCombobox(&separators, Combobox::STYLE_NORMAL); |
combobox_->SetSelectedIndex(6); |
- SendKeyEvent(ui::VKEY_DOWN); |
+ PressKey(ui::VKEY_DOWN); |
EXPECT_EQ(6, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_UP); |
+ PressKey(ui::VKEY_UP); |
EXPECT_EQ(5, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_HOME); |
+ PressKey(ui::VKEY_HOME); |
EXPECT_EQ(0, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_NEXT); |
+ PressKey(ui::VKEY_NEXT); |
EXPECT_EQ(6, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_PRIOR); |
+ PressKey(ui::VKEY_PRIOR); |
EXPECT_EQ(0, combobox_->selected_index()); |
- SendKeyEvent(ui::VKEY_END); |
+ PressKey(ui::VKEY_END); |
EXPECT_EQ(6, combobox_->selected_index()); |
} |
@@ -542,7 +546,7 @@ TEST_F(ComboboxTest, NotifyOnClickWithReturnKey) { |
combobox_->set_listener(&listener); |
// With STYLE_NORMAL, the click event is ignored. Instead the menu is shown. |
- SendKeyEvent(ui::VKEY_RETURN); |
+ PressKey(ui::VKEY_RETURN); |
EXPECT_EQ(1, menu_show_count()); |
EXPECT_FALSE(listener.on_perform_action_called()); |
} |
@@ -554,7 +558,7 @@ TEST_F(ComboboxTest, NotifyOnClickWithReturnKeyActionStyle) { |
combobox_->set_listener(&listener); |
// With STYLE_ACTION, the click event is notified and the menu is not shown. |
- SendKeyEvent(ui::VKEY_RETURN); |
+ PressKey(ui::VKEY_RETURN); |
EXPECT_EQ(0, menu_show_count()); |
EXPECT_TRUE(listener.on_perform_action_called()); |
EXPECT_EQ(0, listener.perform_action_index()); |
@@ -567,11 +571,11 @@ TEST_F(ComboboxTest, NotifyOnClickWithSpaceKey) { |
combobox_->set_listener(&listener); |
// With STYLE_NORMAL, the click event is ignored. Instead the menu is shwon. |
- SendKeyEvent(ui::VKEY_SPACE); |
+ PressKey(ui::VKEY_SPACE); |
EXPECT_EQ(1, menu_show_count()); |
EXPECT_FALSE(listener.on_perform_action_called()); |
- SendKeyEventWithType(ui::VKEY_SPACE, ui::ET_KEY_RELEASED); |
+ ReleaseKey(ui::VKEY_SPACE); |
EXPECT_EQ(1, menu_show_count()); |
EXPECT_FALSE(listener.on_perform_action_called()); |
} |
@@ -584,11 +588,11 @@ TEST_F(ComboboxTest, NotifyOnClickWithSpaceKeyActionStyle) { |
// With STYLE_ACTION, the click event is notified after releasing and the menu |
// is not shown. |
- SendKeyEvent(ui::VKEY_SPACE); |
+ PressKey(ui::VKEY_SPACE); |
EXPECT_EQ(0, menu_show_count()); |
EXPECT_FALSE(listener.on_perform_action_called()); |
- SendKeyEventWithType(ui::VKEY_SPACE, ui::ET_KEY_RELEASED); |
+ ReleaseKey(ui::VKEY_SPACE); |
EXPECT_EQ(0, menu_show_count()); |
EXPECT_TRUE(listener.on_perform_action_called()); |
EXPECT_EQ(0, listener.perform_action_index()); |