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 8a14df79d331b9fd73f871ab030fc9d20f88a584..65f0e650c6b6f114fcf405c1a851f39a953f2d4b 100644 |
--- a/ui/views/controls/textfield/textfield_unittest.cc |
+++ b/ui/views/controls/textfield/textfield_unittest.cc |
@@ -1956,29 +1956,38 @@ TEST_F(TextfieldTest, DISABLED_SelectionClipboard) { |
EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); |
// Middle clicking should paste at the mouse (not cursor) location. |
+ // The cursor should be placed at the end of the pasted text. |
ui::MouseEvent middle(ui::ET_MOUSE_PRESSED, point_4, point_4, |
ui::EF_MIDDLE_MOUSE_BUTTON, ui::EF_MIDDLE_MOUSE_BUTTON); |
textfield_->OnMousePressed(middle); |
EXPECT_STR_EQ("01230123", textfield_->text()); |
- EXPECT_EQ(gfx::Range(0, 0), textfield_->GetSelectedRange()); |
+ EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange()); |
EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
- // Middle click pasting should adjust trailing cursors. |
- textfield_->SelectRange(gfx::Range(5, 5)); |
+ // Middle clicking on an unfocused textfield should focus it and paste. |
+ textfield_->GetFocusManager()->ClearFocus(); |
+ EXPECT_FALSE(textfield_->HasFocus()); |
textfield_->OnMousePressed(middle); |
+ EXPECT_TRUE(textfield_->HasFocus()); |
EXPECT_STR_EQ("012301230123", textfield_->text()); |
- EXPECT_EQ(gfx::Range(9, 9), textfield_->GetSelectedRange()); |
+ EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange()); |
+ EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
- // Middle click pasting should adjust trailing selections. |
- textfield_->SelectRange(gfx::Range(7, 9)); |
+ // Middle clicking with an empty selection clipboard should still focus. |
+ SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, std::string()); |
+ textfield_->GetFocusManager()->ClearFocus(); |
+ EXPECT_FALSE(textfield_->HasFocus()); |
textfield_->OnMousePressed(middle); |
- EXPECT_STR_EQ("0123012301230123", textfield_->text()); |
- EXPECT_EQ(gfx::Range(11, 13), textfield_->GetSelectedRange()); |
+ EXPECT_TRUE(textfield_->HasFocus()); |
+ EXPECT_STR_EQ("012301230123", textfield_->text()); |
+ EXPECT_EQ(gfx::Range(4, 4), textfield_->GetSelectedRange()); |
+ EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty()); |
// Middle clicking in the selection should clear the clipboard and selection. |
+ SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "foo"); |
textfield_->SelectRange(gfx::Range(2, 6)); |
textfield_->OnMousePressed(middle); |
- EXPECT_STR_EQ("0123012301230123", textfield_->text()); |
+ EXPECT_STR_EQ("012301230123", textfield_->text()); |
EXPECT_EQ(gfx::Range(6, 6), textfield_->GetSelectedRange()); |
EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty()); |