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

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

Issue 1989893005: Undo selection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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_model.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
}
« no previous file with comments | « ui/views/controls/textfield/textfield_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698