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

Unified Diff: ui/views/controls/combobox/combobox_unittest.cc

Issue 2624093002: MacViews: Correctly handle character events when there's an active TextInputClient. (Closed)
Patch Set: Created 3 years, 11 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: 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());
« ui/views/cocoa/bridged_content_view.mm ('K') | « ui/views/cocoa/bridged_content_view.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698