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

Unified Diff: ui/views/controls/textfield/textfield_unittest.cc

Issue 782673002: MacViews: tryjobs for toolkit_views=1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: latest crrev/901823002 Created 5 years, 10 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
« no previous file with comments | « ui/views/controls/textfield/textfield.cc ('k') | ui/views/ime/input_method_bridge.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/controls/textfield/textfield_unittest.cc
diff --git a/ui/views/controls/textfield/textfield_unittest.cc b/ui/views/controls/textfield/textfield_unittest.cc
index 2cbd7de6968816093c99d8ba205784367265cfe5..5aaabe3aee6e37f34391c743ba85abc7542c3736 100644
--- a/ui/views/controls/textfield/textfield_unittest.cc
+++ b/ui/views/controls/textfield/textfield_unittest.cc
@@ -85,9 +85,41 @@ class TestTextfield : public views::Textfield {
bool OnKeyReleased(const ui::KeyEvent& e) override {
key_received_ = true;
key_handled_ = views::Textfield::OnKeyReleased(e);
+ EXPECT_FALSE(key_handled_); // Textfield doesn't override OnKeyReleased.
return key_handled_;
}
+ // On Mac, characters are inserted directly rather than attempting to get a
+ // unicode character from the ui::KeyEvent (which isn't always possible).
+ // Also, editing commands are translated from AppKit "action messages", which
+ // conform to custom keybindings a user may have. For these, count them as
+ // both received and handled. If a Mac key event does not map to a character
+ // or editing command, it falls back to OnKeyPressed(), which will be logged
+ // above as received, but not handled.
+
+ // ui::TextInputClient overrides:
+ void InsertChar(base::char16 ch, int flags) override {
+ views::Textfield::InsertChar(ch, flags);
+#if defined(OS_MACOSX)
+ key_received_ = true;
+#endif
+ }
+
+ void ExecuteEditingCommand(int command_id) override {
+ views::Textfield::ExecuteEditingCommand(command_id);
+#if defined(OS_MACOSX)
+ key_received_ = true;
+ key_handled_ = true;
+#endif
+ }
+
+ bool HandleAsKeyEventOnly(const ui::KeyEvent& key_event) override {
+#if defined(OS_MACOSX)
+ key_received_ = true;
+#endif
+ return views::Textfield::HandleAsKeyEventOnly(key_event);
+ }
+
bool key_handled() const { return key_handled_; }
bool key_received() const { return key_received_; }
@@ -182,6 +214,17 @@ class TextfieldTest : public ViewsTestBase, public TextfieldController {
last_contents_ = new_contents;
}
+ // views::TextfieldController:
+ bool HandleKeyEvent(views::Textfield* sender,
+ const ui::KeyEvent& key_event) override {
+ if (!input_method_->HasMockComposition())
+ return false;
+
+ input_method_->InsertMockComposition();
+ input_method_->ClearMockComposition();
+ return true;
+ }
+
void OnBeforeUserAction(Textfield* sender) override {
++on_before_user_action_;
}
@@ -340,6 +383,40 @@ class TextfieldTest : public ViewsTestBase, public TextfieldController {
SendKeyEvent(key, alt, shift, control, caps);
}
+ // Sends Shift+Delete if supported, otherwise Cmd+X again.
+ void SendAlternateCut() {
+ if (TestingNativeMac())
+ SendKeyEvent(ui::VKEY_X, false, true);
+ else
+ SendKeyEvent(ui::VKEY_DELETE, true, false);
+ }
+
+ // Sends Ctrl+Insert if supported, otherwise Cmd+C again.
+ void SendAlternateCopy() {
+ if (TestingNativeMac())
+ SendKeyEvent(ui::VKEY_C, false, true);
+ else
+ SendKeyEvent(ui::VKEY_INSERT, false, true);
+ }
+
+ // Sends Shift+Insert if supported, otherwise Cmd+V again.
+ void SendAlternatePaste() {
+ if (TestingNativeMac())
+ SendKeyEvent(ui::VKEY_V, false, true);
+ else
+ SendKeyEvent(ui::VKEY_INSERT, true, false);
+ }
+
+ // Most platforms support Ctrl+Y as an alternative to Ctrl+Shift+Z, but on Mac
+ // that is bound to "Show full history", so is not mapped as an editing
+ // command. So, on Mac, send Cmd+Shift+Z.
+ void SendAlternateRedo() {
+ if (TestingNativeMac())
+ SendKeyEvent(ui::VKEY_Z, true, true);
+ else
+ SendKeyEvent(ui::VKEY_Y, false, true);
+ }
+
View* GetFocusedView() {
return widget_->GetFocusManager()->GetFocusedView();
}
@@ -580,7 +657,7 @@ TEST_F(TextfieldTest, PasswordTest) {
EXPECT_FALSE(textfield_->IsCommandIdEnabled(IDS_APP_COPY));
textfield_->ExecuteCommand(IDS_APP_COPY, 0);
SendKeyEvent(ui::VKEY_C, false, true);
- SendKeyEvent(ui::VKEY_INSERT, false, true);
+ SendAlternateCopy();
EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
EXPECT_STR_EQ("password", textfield_->text());
// [Shift]+[Delete] should just delete without copying text to the clipboard.
@@ -591,7 +668,7 @@ TEST_F(TextfieldTest, PasswordTest) {
EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_PASTE));
textfield_->ExecuteCommand(IDS_APP_PASTE, 0);
SendKeyEvent(ui::VKEY_V, false, true);
- SendKeyEvent(ui::VKEY_INSERT, true, false);
+ SendAlternatePaste();
EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
EXPECT_STR_EQ("foofoofoo", textfield_->text());
}
@@ -643,19 +720,26 @@ TEST_F(TextfieldTest, OnKeyPress) {
EXPECT_TRUE(textfield_->key_handled());
textfield_->clear();
- SendKeyEvent(ui::VKEY_HOME);
+ bool shift = false;
+ SendHomeEvent(shift);
EXPECT_TRUE(textfield_->key_received());
EXPECT_TRUE(textfield_->key_handled());
textfield_->clear();
- SendKeyEvent(ui::VKEY_END);
+ SendEndEvent(shift);
EXPECT_TRUE(textfield_->key_received());
EXPECT_TRUE(textfield_->key_handled());
textfield_->clear();
- // F24, up/down key won't be handled.
- SendKeyEvent(ui::VKEY_F24);
+ // F20, up/down key won't be handled.
+ SendKeyEvent(ui::VKEY_F20);
+#if defined(OS_MACOSX)
+ // On Mac, key combinations that don't map to editing commands are forwarded
+ // on to the next responder, usually ending up at the window, which will beep.
+ EXPECT_FALSE(textfield_->key_received());
+#else
EXPECT_TRUE(textfield_->key_received());
+#endif
EXPECT_FALSE(textfield_->key_handled());
textfield_->clear();
@@ -727,19 +811,20 @@ TEST_F(TextfieldTest, CursorMovement) {
SendKeyEvent(ui::VKEY_END);
// Ctrl+Left should move the cursor just before the last word.
- SendKeyEvent(ui::VKEY_LEFT, false, true);
+ bool shift = false;
+ SendWordEvent(ui::VKEY_LEFT, shift);
SendKeyEvent(ui::VKEY_T);
EXPECT_STR_EQ("one two thre ", textfield_->text());
EXPECT_STR_EQ("one two thre ", last_contents_);
// Ctrl+Right should move the cursor to the end of the last word.
- SendKeyEvent(ui::VKEY_RIGHT, false, true);
+ SendWordEvent(ui::VKEY_RIGHT, shift);
SendKeyEvent(ui::VKEY_E);
EXPECT_STR_EQ("one two three ", textfield_->text());
EXPECT_STR_EQ("one two three ", last_contents_);
// Ctrl+Right again should move the cursor to the end.
- SendKeyEvent(ui::VKEY_RIGHT, false, true);
+ SendWordEvent(ui::VKEY_RIGHT, shift);
SendKeyEvent(ui::VKEY_BACK);
EXPECT_STR_EQ("one two three", textfield_->text());
EXPECT_STR_EQ("one two three", last_contents_);
@@ -748,20 +833,20 @@ TEST_F(TextfieldTest, CursorMovement) {
textfield_->SetText(ASCIIToUTF16(" ne two"));
// Send the cursor at the beginning.
- SendKeyEvent(ui::VKEY_HOME);
+ SendHomeEvent(shift);
// Ctrl+Right, then Ctrl+Left should move the cursor to the beginning of the
// first word.
- SendKeyEvent(ui::VKEY_RIGHT, false, true);
- SendKeyEvent(ui::VKEY_LEFT, false, true);
+ SendWordEvent(ui::VKEY_RIGHT, shift);
+ SendWordEvent(ui::VKEY_LEFT, shift);
SendKeyEvent(ui::VKEY_O);
EXPECT_STR_EQ(" one two", textfield_->text());
EXPECT_STR_EQ(" one two", last_contents_);
// Ctrl+Left to move the cursor to the beginning of the first word.
- SendKeyEvent(ui::VKEY_LEFT, false, true);
+ SendWordEvent(ui::VKEY_LEFT, shift);
// Ctrl+Left again should move the cursor back to the very beginning.
- SendKeyEvent(ui::VKEY_LEFT, false, true);
+ SendWordEvent(ui::VKEY_LEFT, shift);
SendKeyEvent(ui::VKEY_DELETE);
EXPECT_STR_EQ("one two", textfield_->text());
EXPECT_STR_EQ("one two", last_contents_);
@@ -1039,11 +1124,11 @@ TEST_F(TextfieldTest, DragAndDrop_ToTheRight) {
EXPECT_STR_EQ("", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("hello world", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("h welloorld", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("h welloorld", textfield_->text());
}
@@ -1092,11 +1177,11 @@ TEST_F(TextfieldTest, DragAndDrop_ToTheLeft) {
EXPECT_STR_EQ("", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("hello world", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("h worlellod", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("h worlellod", textfield_->text());
}
@@ -1137,16 +1222,18 @@ TEST_F(TextfieldTest, ReadOnlyTest) {
EXPECT_TRUE(textfield_->enabled());
EXPECT_TRUE(textfield_->IsFocusable());
- SendKeyEvent(ui::VKEY_HOME);
+ bool shift = false;
+ SendHomeEvent(shift);
EXPECT_EQ(0U, textfield_->GetCursorPosition());
- SendKeyEvent(ui::VKEY_END);
+ SendEndEvent(shift);
EXPECT_EQ(9U, textfield_->GetCursorPosition());
- SendKeyEvent(ui::VKEY_LEFT, false, false);
+ SendKeyEvent(ui::VKEY_LEFT, shift, false);
EXPECT_EQ(8U, textfield_->GetCursorPosition());
- SendKeyEvent(ui::VKEY_LEFT, false, true);
+ SendWordEvent(ui::VKEY_LEFT, shift);
EXPECT_EQ(5U, textfield_->GetCursorPosition());
- SendKeyEvent(ui::VKEY_LEFT, true, true);
+ shift = true;
+ SendWordEvent(ui::VKEY_LEFT, shift);
EXPECT_EQ(0U, textfield_->GetCursorPosition());
EXPECT_STR_EQ("read ", textfield_->GetSelectedText());
textfield_->SelectAll(false);
@@ -1157,7 +1244,7 @@ TEST_F(TextfieldTest, ReadOnlyTest) {
EXPECT_FALSE(textfield_->IsCommandIdEnabled(IDS_APP_CUT));
textfield_->ExecuteCommand(IDS_APP_CUT, 0);
SendKeyEvent(ui::VKEY_X, false, true);
- SendKeyEvent(ui::VKEY_DELETE, true, false);
+ SendAlternateCut();
EXPECT_STR_EQ("Test", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
EXPECT_STR_EQ("read only", textfield_->text());
@@ -1165,7 +1252,7 @@ TEST_F(TextfieldTest, ReadOnlyTest) {
EXPECT_FALSE(textfield_->IsCommandIdEnabled(IDS_APP_PASTE));
textfield_->ExecuteCommand(IDS_APP_PASTE, 0);
SendKeyEvent(ui::VKEY_V, false, true);
- SendKeyEvent(ui::VKEY_INSERT, true, false);
+ SendAlternatePaste();
EXPECT_STR_EQ("read only", textfield_->text());
// Copy should work normally.
@@ -1177,7 +1264,7 @@ TEST_F(TextfieldTest, ReadOnlyTest) {
SendKeyEvent(ui::VKEY_C, false, true);
EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test");
- SendKeyEvent(ui::VKEY_INSERT, false, true);
+ SendAlternateCopy();
EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
// SetText should work even in read only mode.
@@ -1227,7 +1314,7 @@ TEST_F(TextfieldTest, TextInputClientTest) {
textfield_->clear();
on_before_user_action_ = on_after_user_action_ = 0;
- SendKeyEvent(ui::VKEY_A);
+ SendKeyEvent(ui::VKEY_RETURN);
EXPECT_TRUE(textfield_->key_received());
EXPECT_FALSE(textfield_->key_handled());
EXPECT_TRUE(client->HasCompositionText());
@@ -1240,7 +1327,7 @@ TEST_F(TextfieldTest, TextInputClientTest) {
input_method_->SetResultTextForNextKey(UTF8ToUTF16("123"));
on_before_user_action_ = on_after_user_action_ = 0;
textfield_->clear();
- SendKeyEvent(ui::VKEY_A);
+ SendKeyEvent(ui::VKEY_RETURN);
EXPECT_TRUE(textfield_->key_received());
EXPECT_FALSE(textfield_->key_handled());
EXPECT_FALSE(client->HasCompositionText());
@@ -1252,7 +1339,7 @@ TEST_F(TextfieldTest, TextInputClientTest) {
input_method_->Clear();
input_method_->SetCompositionTextForNextKey(composition);
textfield_->clear();
- SendKeyEvent(ui::VKEY_A);
+ SendKeyEvent(ui::VKEY_RETURN);
EXPECT_TRUE(client->HasCompositionText());
EXPECT_STR_EQ("0123321456789", textfield_->text());
@@ -1284,11 +1371,20 @@ TEST_F(TextfieldTest, TextInputClientTest) {
EXPECT_EQ(0, on_after_user_action_);
input_method_->Clear();
+
+ // Changing the Textfield to readonly shouldn't change the input client, since
+ // it's still required for selections and clipboard copy.
+ ui::TextInputClient* text_input_client = textfield_->GetTextInputClient();
+ EXPECT_TRUE(text_input_client);
+ EXPECT_NE(ui::TEXT_INPUT_TYPE_NONE, text_input_client->GetTextInputType());
textfield_->SetReadOnly(true);
EXPECT_TRUE(input_method_->text_input_type_changed());
- EXPECT_FALSE(textfield_->GetTextInputClient());
+ EXPECT_EQ(text_input_client, textfield_->GetTextInputClient());
+ EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE, text_input_client->GetTextInputType());
textfield_->SetReadOnly(false);
+ EXPECT_NE(ui::TEXT_INPUT_TYPE_NONE, text_input_client->GetTextInputType());
+
input_method_->Clear();
textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD);
EXPECT_TRUE(input_method_->text_input_type_changed());
@@ -1303,9 +1399,9 @@ TEST_F(TextfieldTest, UndoRedoTest) {
EXPECT_STR_EQ("", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("a", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("a", textfield_->text());
// AppendText
@@ -1314,7 +1410,7 @@ TEST_F(TextfieldTest, UndoRedoTest) {
EXPECT_STR_EQ("ab", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("a", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("ab", textfield_->text());
// SetText
@@ -1326,9 +1422,9 @@ TEST_F(TextfieldTest, UndoRedoTest) {
EXPECT_STR_EQ("abc", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("ab", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("abc", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("abc", textfield_->text());
textfield_->SetText(ASCIIToUTF16("123"));
textfield_->SetText(ASCIIToUTF16("123"));
@@ -1345,11 +1441,11 @@ TEST_F(TextfieldTest, UndoRedoTest) {
EXPECT_STR_EQ("ab", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("a", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("ab", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("123", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("1234", textfield_->text());
// Undoing to the same text shouldn't call ContentsChanged.
@@ -1361,13 +1457,14 @@ TEST_F(TextfieldTest, UndoRedoTest) {
EXPECT_STR_EQ("abc", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("1234", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("abc", textfield_->text());
// Delete/Backspace
SendKeyEvent(ui::VKEY_BACK);
EXPECT_STR_EQ("ab", textfield_->text());
- SendKeyEvent(ui::VKEY_HOME);
+ bool shift = false;
+ SendHomeEvent(shift);
SendKeyEvent(ui::VKEY_DELETE);
EXPECT_STR_EQ("b", textfield_->text());
SendKeyEvent(ui::VKEY_A, false, true);
@@ -1379,13 +1476,13 @@ TEST_F(TextfieldTest, UndoRedoTest) {
EXPECT_STR_EQ("ab", textfield_->text());
SendKeyEvent(ui::VKEY_Z, false, true);
EXPECT_STR_EQ("abc", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("ab", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("b", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("", textfield_->text());
- SendKeyEvent(ui::VKEY_Y, false, true);
+ SendAlternateRedo();
EXPECT_STR_EQ("", textfield_->text());
}
@@ -1416,7 +1513,7 @@ TEST_F(TextfieldTest, CutCopyPaste) {
// Ensure [Shift]+[Delete] cuts.
textfield_->SetText(ASCIIToUTF16("123"));
textfield_->SelectAll(false);
- SendKeyEvent(ui::VKEY_DELETE, true, false);
+ SendAlternateCut();
EXPECT_STR_EQ("123", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
EXPECT_STR_EQ("", textfield_->text());
EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
@@ -1442,7 +1539,7 @@ TEST_F(TextfieldTest, CutCopyPaste) {
// Ensure [Ctrl]+[Insert] copies.
textfield_->SetText(ASCIIToUTF16("345"));
textfield_->SelectAll(false);
- SendKeyEvent(ui::VKEY_INSERT, false, true);
+ SendAlternateCopy();
EXPECT_STR_EQ("345", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE));
EXPECT_STR_EQ("345", textfield_->text());
EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard());
@@ -1456,7 +1553,7 @@ TEST_F(TextfieldTest, CutCopyPaste) {
EXPECT_STR_EQ("abc", textfield_->text());
SendKeyEvent(ui::VKEY_V, false, true);
EXPECT_STR_EQ("abcabc", textfield_->text());
- SendKeyEvent(ui::VKEY_INSERT, true, false);
+ SendAlternatePaste();
EXPECT_STR_EQ("abcabcabc", textfield_->text());
SendKeyEvent(ui::VKEY_V, true, false, true, false);
EXPECT_STR_EQ("abcabcabc", textfield_->text());
@@ -1473,7 +1570,11 @@ TEST_F(TextfieldTest, OvertypeMode) {
InitTextfield();
// Overtype mode should be disabled (no-op [Insert]).
textfield_->SetText(ASCIIToUTF16("2"));
- SendKeyEvent(ui::VKEY_HOME);
+ bool shift = false;
+ SendHomeEvent(shift);
+ // Note: On Mac, there is no insert key. Insert sends kVK_Help. Currently,
+ // since there is no overtype on toolkit-views, the behavior happens to match.
+ // However, there's no enable-overtype equivalent key combination on OSX.
SendKeyEvent(ui::VKEY_INSERT);
SendKeyEvent(ui::VKEY_1, false, false);
EXPECT_STR_EQ("12", textfield_->text());
@@ -1651,12 +1752,13 @@ TEST_F(TextfieldTest, HitOutsideTextAreaTest) {
// LTR-RTL string in LTR context.
textfield_->SetText(WideToUTF16(L"ab\x05E1\x5E2"));
- SendKeyEvent(ui::VKEY_HOME);
+ bool shift = false;
+ SendHomeEvent(shift);
gfx::Rect bound = GetCursorBounds();
MouseClick(bound, -10);
EXPECT_EQ(bound, GetCursorBounds());
- SendKeyEvent(ui::VKEY_END);
+ SendEndEvent(shift);
bound = GetCursorBounds();
MouseClick(bound, 10);
EXPECT_EQ(bound, GetCursorBounds());
@@ -1666,12 +1768,12 @@ TEST_F(TextfieldTest, HitOutsideTextAreaTest) {
// RTL-LTR string in LTR context.
textfield_->SetText(WideToUTF16(L"\x05E1\x5E2" L"ab"));
- SendKeyEvent(ui::VKEY_HOME);
+ SendHomeEvent(shift);
bound = GetCursorBounds();
MouseClick(bound, 10);
EXPECT_EQ(bound, GetCursorBounds());
- SendKeyEvent(ui::VKEY_END);
+ SendEndEvent(shift);
bound = GetCursorBounds();
MouseClick(bound, -10);
EXPECT_EQ(bound, GetCursorBounds());
@@ -1685,12 +1787,13 @@ TEST_F(TextfieldTest, HitOutsideTextAreaInRTLTest) {
// RTL-LTR string in RTL context.
textfield_->SetText(WideToUTF16(L"\x05E1\x5E2" L"ab"));
- SendKeyEvent(ui::VKEY_HOME);
+ bool shift = false;
+ SendHomeEvent(shift);
gfx::Rect bound = GetCursorBounds();
MouseClick(bound, 10);
EXPECT_EQ(bound, GetCursorBounds());
- SendKeyEvent(ui::VKEY_END);
+ SendEndEvent(shift);
bound = GetCursorBounds();
MouseClick(bound, -10);
EXPECT_EQ(bound, GetCursorBounds());
@@ -1699,12 +1802,12 @@ TEST_F(TextfieldTest, HitOutsideTextAreaInRTLTest) {
// LTR-RTL string in RTL context.
textfield_->SetText(WideToUTF16(L"ab\x05E1\x5E2"));
- SendKeyEvent(ui::VKEY_HOME);
+ SendHomeEvent(shift);
bound = GetCursorBounds();
MouseClick(bound, -10);
EXPECT_EQ(bound, GetCursorBounds());
- SendKeyEvent(ui::VKEY_END);
+ SendEndEvent(shift);
bound = GetCursorBounds();
MouseClick(bound, 10);
EXPECT_EQ(bound, GetCursorBounds());
@@ -2040,7 +2143,7 @@ TEST_F(TextfieldTest, DestroyingTextfieldFromOnKeyEvent) {
EXPECT_TRUE(controller.target());
// Send a key to trigger OnKeyEvent().
- SendKeyEvent('X');
+ SendKeyEvent(ui::VKEY_RETURN);
EXPECT_FALSE(controller.target());
}
@@ -2157,7 +2260,14 @@ TEST_F(TextfieldTouchSelectionTest, TouchSelectionInUnfocusableTextfield) {
textfield_->SetFocusable(true);
}
-TEST_F(TextfieldTouchSelectionTest, TapOnSelection) {
+// No touch on desktop Mac. Tracked in http://crbug.com/445520.
+#if defined(OS_MACOSX) && !defined(USE_AURA)
+#define MAYBE_TapOnSelection DISABLED_TapOnSelection
+#else
+#define MAYBE_TapOnSelection TapOnSelection
+#endif
+
+TEST_F(TextfieldTouchSelectionTest, MAYBE_TapOnSelection) {
InitTextfield();
textfield_->SetText(ASCIIToUTF16("hello world"));
gfx::Range sel_range(2, 7);
« no previous file with comments | « ui/views/controls/textfield/textfield.cc ('k') | ui/views/ime/input_method_bridge.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698