Index: ui/views/controls/textfield/textfield_views_model_unittest.cc |
diff --git a/ui/views/controls/textfield/textfield_views_model_unittest.cc b/ui/views/controls/textfield/textfield_views_model_unittest.cc |
index fa4706179268a63d87f4ff4fe5c18272bf0aa272..8c56b928e31b71845d06d07f31b126072df40863 100644 |
--- a/ui/views/controls/textfield/textfield_views_model_unittest.cc |
+++ b/ui/views/controls/textfield/textfield_views_model_unittest.cc |
@@ -502,31 +502,50 @@ TEST_F(TextfieldViewsModelTest, MAYBE_Clipboard) { |
string16 clipboard_text; |
TextfieldViewsModel model(NULL); |
model.Append(ASCIIToUTF16("HELLO WORLD")); |
- model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
- // Test for cut: Empty selection. |
+ // Cut with an empty selection should do nothing. |
+ model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
EXPECT_FALSE(model.Cut()); |
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); |
- EXPECT_STR_EQ(UTF16ToUTF8(initial_clipboard_text), clipboard_text); |
+ EXPECT_EQ(initial_clipboard_text, clipboard_text); |
EXPECT_STR_EQ("HELLO WORLD", model.GetText()); |
EXPECT_EQ(11U, model.GetCursorPosition()); |
- // Test for cut: Non-empty selection. |
- model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); |
- EXPECT_TRUE(model.Cut()); |
+ // Copy with an empty selection should do nothing. |
+ model.Copy(); |
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); |
- EXPECT_STR_EQ("WORLD", clipboard_text); |
- EXPECT_STR_EQ("HELLO ", model.GetText()); |
- EXPECT_EQ(6U, model.GetCursorPosition()); |
+ EXPECT_EQ(initial_clipboard_text, clipboard_text); |
+ EXPECT_STR_EQ("HELLO WORLD", model.GetText()); |
+ EXPECT_EQ(11U, model.GetCursorPosition()); |
- // Test for copy: Empty selection. |
- model.Copy(); |
+ // Cut on obscured (password) text should do nothing. |
+ model.render_text()->SetObscured(true); |
+ model.SelectAll(); |
+ EXPECT_FALSE(model.Cut()); |
+ clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); |
+ EXPECT_EQ(initial_clipboard_text, clipboard_text); |
+ EXPECT_STR_EQ("HELLO WORLD", model.GetText()); |
+ EXPECT_STR_EQ("HELLO WORLD", model.GetSelectedText()); |
+ |
+ // Copy on obscured text should do nothing. |
+ model.SelectAll(); |
+ EXPECT_FALSE(model.Copy()); |
+ clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); |
+ EXPECT_EQ(initial_clipboard_text, clipboard_text); |
+ EXPECT_STR_EQ("HELLO WORLD", model.GetText()); |
+ EXPECT_STR_EQ("HELLO WORLD", model.GetSelectedText()); |
+ |
+ // Cut with non-empty selection. |
+ model.render_text()->SetObscured(false); |
+ model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
+ model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); |
+ EXPECT_TRUE(model.Cut()); |
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); |
EXPECT_STR_EQ("WORLD", clipboard_text); |
EXPECT_STR_EQ("HELLO ", model.GetText()); |
EXPECT_EQ(6U, model.GetCursorPosition()); |
- // Test for copy: Non-empty selection. |
+ // Copy with non-empty selection. |
model.Append(ASCIIToUTF16("HELLO WORLD")); |
model.SelectAll(); |
model.Copy(); |
@@ -544,6 +563,16 @@ TEST_F(TextfieldViewsModelTest, MAYBE_Clipboard) { |
EXPECT_STR_EQ("HELLO HELLO WORLD", clipboard_text); |
EXPECT_STR_EQ("HELLO HELLO HELLO HELLO WORLD", model.GetText()); |
EXPECT_EQ(29U, model.GetCursorPosition()); |
+ |
+ // Paste ignores the obscured bit. |
+ model.render_text()->SetObscured(true); |
+ model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); |
+ ui::ScopedClipboardWriter( |
+ clipboard, |
+ ui::Clipboard::BUFFER_STANDARD).WriteText(initial_clipboard_text); |
+ EXPECT_TRUE(model.Paste()); |
+ clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); |
+ EXPECT_STR_EQ("HELLO HELLO HELLO HELLO initial text", model.GetText()); |
} |
static void SelectWordTestVerifier(const TextfieldViewsModel& model, |