Index: ui/views/controls/textfield/textfield_model_unittest.cc |
diff --git a/ui/views/controls/textfield/textfield_model_unittest.cc b/ui/views/controls/textfield/textfield_model_unittest.cc |
index 03cb08d76eac6d0d0b05dbc0a24fbf3d2b226e83..8351fd3f3da5c7abc25a665578157298ad4154fe 100644 |
--- a/ui/views/controls/textfield/textfield_model_unittest.cc |
+++ b/ui/views/controls/textfield/textfield_model_unittest.cc |
@@ -43,6 +43,10 @@ void MoveCursorTo(views::TextfieldModel& model, size_t pos) { |
model.MoveCursorTo(gfx::SelectionModel(pos, gfx::CURSOR_FORWARD)); |
} |
+gfx::Range GetSelectedRange(const views::TextfieldModel& model) { |
+ return model.render_text()->selection(); |
+} |
+ |
} // namespace |
namespace views { |
@@ -1007,35 +1011,35 @@ TEST_F(TextfieldModelTest, UndoRedo_BasicTest) { |
EXPECT_STR_EQ("abc", model.text()); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("a", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0), GetSelectedRange(model)); |
// Undoing further shouldn't change the text. |
EXPECT_FALSE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
EXPECT_FALSE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0), GetSelectedRange(model)); |
// Redoing to the latest text. |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("a", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("abc", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
// Backspace =============================== |
EXPECT_TRUE(model.Backspace()); |
EXPECT_STR_EQ("ab", model.text()); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("abc", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3,2), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ab", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2), GetSelectedRange(model)); |
// Continous backspaces are treated as one edit. |
EXPECT_TRUE(model.Backspace()); |
EXPECT_TRUE(model.Backspace()); |
@@ -1044,20 +1048,20 @@ TEST_F(TextfieldModelTest, UndoRedo_BasicTest) { |
EXPECT_FALSE(model.Backspace()); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ab", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2,0), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("abc", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3,2), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("a", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
// Clear history |
model.ClearEditHistory(); |
EXPECT_FALSE(model.Undo()); |
EXPECT_FALSE(model.Redo()); |
EXPECT_STR_EQ("a", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
// Delete =============================== |
model.SetText(base::ASCIIToUTF16("ABCDE")); |
@@ -1070,23 +1074,23 @@ TEST_F(TextfieldModelTest, UndoRedo_BasicTest) { |
EXPECT_STR_EQ("BDE", model.text()); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABDE", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0, 1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABCDE", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2,3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ABDE", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2), GetSelectedRange(model)); |
// Continous deletes are treated as one edit. |
EXPECT_TRUE(model.Delete()); |
EXPECT_TRUE(model.Delete()); |
EXPECT_STR_EQ("AB", model.text()); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABDE", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2,4), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("AB", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2), GetSelectedRange(model)); |
} |
TEST_F(TextfieldModelTest, UndoRedo_SetText) { |
@@ -1094,9 +1098,9 @@ TEST_F(TextfieldModelTest, UndoRedo_SetText) { |
TextfieldModel model(NULL); |
model.InsertChar('w'); |
EXPECT_STR_EQ("w", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
model.SetText(base::ASCIIToUTF16("www.google.com")); |
- EXPECT_EQ(14U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(14U), GetSelectedRange(model)); |
EXPECT_STR_EQ("www.google.com", model.text()); |
model.SelectRange(gfx::Range(14, 1)); |
model.InsertChar('w'); |
@@ -1115,39 +1119,39 @@ TEST_F(TextfieldModelTest, UndoRedo_SetText) { |
EXPECT_STR_EQ("www.y", model.text()); |
model.SetText(base::ASCIIToUTF16("www.youtube.com")); |
EXPECT_STR_EQ("www.youtube.com", model.text()); |
- EXPECT_EQ(15U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(15U), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(4U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(4), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0), GetSelectedRange(model)); |
EXPECT_FALSE(model.Undo()); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(2), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("www.google.com", model.text()); |
- EXPECT_EQ(4U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(4), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("www.youtube.com", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_FALSE(model.Redo()); |
} |
@@ -1183,21 +1187,21 @@ TEST_F(TextfieldModelTest, UndoRedo_CutCopyPasteTest) { |
model.SelectRange(gfx::Range(1, 3)); |
model.Cut(); |
EXPECT_STR_EQ("ADE", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABCDE", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1,3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0), GetSelectedRange(model)); |
EXPECT_FALSE(model.Undo()); // There is no more to undo. |
EXPECT_STR_EQ("", model.text()); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ABCDE", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ADE", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_FALSE(model.Redo()); // There is no more to redo. |
EXPECT_STR_EQ("ADE", model.text()); |
@@ -1205,97 +1209,97 @@ TEST_F(TextfieldModelTest, UndoRedo_CutCopyPasteTest) { |
model.Paste(); |
model.Paste(); |
EXPECT_STR_EQ("ABCBCBCDE", model.text()); |
- EXPECT_EQ(7U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(7), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABCBCDE", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABCDE", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ADE", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABCDE", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1,3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0), GetSelectedRange(model)); |
EXPECT_FALSE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ABCDE", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
// Test Redo. |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ADE", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ABCDE", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ABCBCDE", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("ABCBCBCDE", model.text()); |
- EXPECT_EQ(7U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(7), GetSelectedRange(model)); |
EXPECT_FALSE(model.Redo()); |
// Test using SelectRange. |
model.SelectRange(gfx::Range(1, 3)); |
EXPECT_TRUE(model.Cut()); |
EXPECT_STR_EQ("ABCBCDE", model.text()); |
- EXPECT_EQ(1U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1), GetSelectedRange(model)); |
model.SelectRange(gfx::Range(1, 1)); |
EXPECT_FALSE(model.Cut()); |
model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
EXPECT_TRUE(model.Paste()); |
EXPECT_STR_EQ("ABCBCDEBC", model.text()); |
- EXPECT_EQ(9U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(9), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABCBCDE", model.text()); |
- EXPECT_EQ(7U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(7), GetSelectedRange(model)); |
// An empty cut shouldn't create an edit. |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("ABCBCBCDE", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1,3), GetSelectedRange(model)); |
// Test Copy. |
ResetModel(&model); |
model.SetText(base::ASCIIToUTF16("12345")); |
EXPECT_STR_EQ("12345", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
model.SelectRange(gfx::Range(1, 3)); |
model.Copy(); // Copy "23". |
EXPECT_STR_EQ("12345", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1, 3), GetSelectedRange(model)); |
model.Paste(); // Paste "23" into "23". |
EXPECT_STR_EQ("12345", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
model.Paste(); |
EXPECT_STR_EQ("1232345", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("12345", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
// TODO(oshima): Change the return type from bool to enum. |
EXPECT_FALSE(model.Undo()); // No text change. |
EXPECT_STR_EQ("12345", model.text()); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(1,3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
EXPECT_FALSE(model.Undo()); |
// Test Redo. |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("12345", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("12345", model.text()); // For 1st paste |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("1232345", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_FALSE(model.Redo()); |
EXPECT_STR_EQ("1232345", model.text()); |
@@ -1306,10 +1310,10 @@ TEST_F(TextfieldModelTest, UndoRedo_CutCopyPasteTest) { |
model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
EXPECT_TRUE(model.Paste()); |
EXPECT_STR_EQ("123234523", model.text()); |
- EXPECT_EQ(9U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(9), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("1232345", model.text()); |
- EXPECT_EQ(7U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(7), GetSelectedRange(model)); |
} |
TEST_F(TextfieldModelTest, UndoRedo_CursorTest) { |
@@ -1337,20 +1341,20 @@ void RunInsertReplaceTest(TextfieldModel& model) { |
model.InsertChar('2'); |
model.InsertChar('3'); |
EXPECT_STR_EQ("a123d", model.text()); |
- EXPECT_EQ(4U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(4), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("abcd", model.text()); |
- EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition()); |
+ EXPECT_EQ(reverse ? gfx::Range(3,1) : gfx::Range(1,3), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0), GetSelectedRange(model)); |
EXPECT_FALSE(model.Undo()); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("abcd", model.text()); |
- EXPECT_EQ(4U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(4), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("a123d", model.text()); |
- EXPECT_EQ(4U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(4), GetSelectedRange(model)); |
EXPECT_FALSE(model.Redo()); |
} |
@@ -1361,20 +1365,20 @@ void RunOverwriteReplaceTest(TextfieldModel& model) { |
model.ReplaceChar('3'); |
model.ReplaceChar('4'); |
EXPECT_STR_EQ("a1234", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("abcd", model.text()); |
- EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition()); |
+ EXPECT_EQ(reverse ? gfx::Range(4,1) : gfx::Range(1,4), GetSelectedRange(model)); |
EXPECT_TRUE(model.Undo()); |
EXPECT_STR_EQ("", model.text()); |
- EXPECT_EQ(0U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(0), GetSelectedRange(model)); |
EXPECT_FALSE(model.Undo()); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("abcd", model.text()); |
- EXPECT_EQ(4U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(4), GetSelectedRange(model)); |
EXPECT_TRUE(model.Redo()); |
EXPECT_STR_EQ("a1234", model.text()); |
- EXPECT_EQ(5U, model.GetCursorPosition()); |
+ EXPECT_EQ(gfx::Range(5), GetSelectedRange(model)); |
EXPECT_FALSE(model.Redo()); |
} |