OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/string16.h" | 10 #include "base/string16.h" |
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 EXPECT_EQ(string16(), model.GetSelectedText()); | 463 EXPECT_EQ(string16(), model.GetSelectedText()); |
464 EXPECT_STR_EQ("42", model.GetText()); | 464 EXPECT_STR_EQ("42", model.GetText()); |
465 } | 465 } |
466 | 466 |
467 TEST_F(TextfieldViewsModelTest, SetText) { | 467 TEST_F(TextfieldViewsModelTest, SetText) { |
468 TextfieldViewsModel model(NULL); | 468 TextfieldViewsModel model(NULL); |
469 model.Append(ASCIIToUTF16("HELLO")); | 469 model.Append(ASCIIToUTF16("HELLO")); |
470 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 470 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
471 model.SetText(ASCIIToUTF16("GOODBYE")); | 471 model.SetText(ASCIIToUTF16("GOODBYE")); |
472 EXPECT_STR_EQ("GOODBYE", model.GetText()); | 472 EXPECT_STR_EQ("GOODBYE", model.GetText()); |
473 // SetText won't reset the cursor posistion. | 473 // SetText move the cursor to the end of the new text. |
474 EXPECT_EQ(5U, model.GetCursorPosition()); | 474 EXPECT_EQ(7U, model.GetCursorPosition()); |
475 model.SelectAll(); | 475 model.SelectAll(); |
476 EXPECT_STR_EQ("GOODBYE", model.GetSelectedText()); | 476 EXPECT_STR_EQ("GOODBYE", model.GetSelectedText()); |
477 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 477 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
478 EXPECT_EQ(7U, model.GetCursorPosition()); | 478 EXPECT_EQ(7U, model.GetCursorPosition()); |
479 | 479 |
480 model.SetText(ASCIIToUTF16("BYE")); | 480 model.SetText(ASCIIToUTF16("BYE")); |
481 // Setting shorter string moves the cursor to the end of the new string. | 481 // Setting shorter string moves the cursor to the end of the new string. |
482 EXPECT_EQ(3U, model.GetCursorPosition()); | 482 EXPECT_EQ(3U, model.GetCursorPosition()); |
483 EXPECT_EQ(string16(), model.GetSelectedText()); | 483 EXPECT_EQ(string16(), model.GetSelectedText()); |
484 model.SetText(string16()); | 484 model.SetText(string16()); |
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1097 EXPECT_EQ(2U, model.GetCursorPosition()); | 1097 EXPECT_EQ(2U, model.GetCursorPosition()); |
1098 } | 1098 } |
1099 | 1099 |
1100 TEST_F(TextfieldViewsModelTest, UndoRedo_SetText) { | 1100 TEST_F(TextfieldViewsModelTest, UndoRedo_SetText) { |
1101 // This is to test the undo/redo behavior of omnibox. | 1101 // This is to test the undo/redo behavior of omnibox. |
1102 TextfieldViewsModel model(NULL); | 1102 TextfieldViewsModel model(NULL); |
1103 model.InsertChar('w'); | 1103 model.InsertChar('w'); |
1104 EXPECT_STR_EQ("w", model.GetText()); | 1104 EXPECT_STR_EQ("w", model.GetText()); |
1105 EXPECT_EQ(1U, model.GetCursorPosition()); | 1105 EXPECT_EQ(1U, model.GetCursorPosition()); |
1106 model.SetText(ASCIIToUTF16("www.google.com")); | 1106 model.SetText(ASCIIToUTF16("www.google.com")); |
1107 EXPECT_EQ(1U, model.GetCursorPosition()); | 1107 EXPECT_EQ(14U, model.GetCursorPosition()); |
1108 EXPECT_STR_EQ("www.google.com", model.GetText()); | 1108 EXPECT_STR_EQ("www.google.com", model.GetText()); |
1109 model.SelectRange(ui::Range(14, 1)); | 1109 model.SelectRange(ui::Range(14, 1)); |
1110 model.InsertChar('w'); | 1110 model.InsertChar('w'); |
1111 EXPECT_STR_EQ("ww", model.GetText()); | 1111 EXPECT_STR_EQ("ww", model.GetText()); |
1112 model.SetText(ASCIIToUTF16("www.google.com")); | 1112 model.SetText(ASCIIToUTF16("www.google.com")); |
1113 model.SelectRange(ui::Range(14, 2)); | 1113 model.SelectRange(ui::Range(14, 2)); |
1114 model.InsertChar('w'); | 1114 model.InsertChar('w'); |
1115 EXPECT_STR_EQ("www", model.GetText()); | 1115 EXPECT_STR_EQ("www", model.GetText()); |
1116 model.SetText(ASCIIToUTF16("www.google.com")); | 1116 model.SetText(ASCIIToUTF16("www.google.com")); |
1117 model.SelectRange(ui::Range(14, 3)); | 1117 model.SelectRange(ui::Range(14, 3)); |
1118 model.InsertChar('.'); | 1118 model.InsertChar('.'); |
1119 EXPECT_STR_EQ("www.", model.GetText()); | 1119 EXPECT_STR_EQ("www.", model.GetText()); |
1120 model.SetText(ASCIIToUTF16("www.google.com")); | 1120 model.SetText(ASCIIToUTF16("www.google.com")); |
1121 model.SelectRange(ui::Range(14, 4)); | 1121 model.SelectRange(ui::Range(14, 4)); |
1122 model.InsertChar('y'); | 1122 model.InsertChar('y'); |
1123 EXPECT_STR_EQ("www.y", model.GetText()); | 1123 EXPECT_STR_EQ("www.y", model.GetText()); |
1124 model.SetText(ASCIIToUTF16("www.youtube.com")); | 1124 model.SetText(ASCIIToUTF16("www.youtube.com")); |
1125 EXPECT_STR_EQ("www.youtube.com", model.GetText()); | 1125 EXPECT_STR_EQ("www.youtube.com", model.GetText()); |
1126 EXPECT_EQ(5U, model.GetCursorPosition()); | 1126 EXPECT_EQ(15U, model.GetCursorPosition()); |
1127 | 1127 |
1128 EXPECT_TRUE(model.Undo()); | 1128 EXPECT_TRUE(model.Undo()); |
1129 EXPECT_STR_EQ("www.google.com", model.GetText()); | 1129 EXPECT_STR_EQ("www.google.com", model.GetText()); |
1130 EXPECT_EQ(4U, model.GetCursorPosition()); | 1130 EXPECT_EQ(4U, model.GetCursorPosition()); |
1131 EXPECT_TRUE(model.Undo()); | 1131 EXPECT_TRUE(model.Undo()); |
1132 EXPECT_STR_EQ("www.google.com", model.GetText()); | 1132 EXPECT_STR_EQ("www.google.com", model.GetText()); |
1133 EXPECT_EQ(3U, model.GetCursorPosition()); | 1133 EXPECT_EQ(3U, model.GetCursorPosition()); |
1134 EXPECT_TRUE(model.Undo()); | 1134 EXPECT_TRUE(model.Undo()); |
1135 EXPECT_STR_EQ("www.google.com", model.GetText()); | 1135 EXPECT_STR_EQ("www.google.com", model.GetText()); |
1136 EXPECT_EQ(2U, model.GetCursorPosition()); | 1136 EXPECT_EQ(2U, model.GetCursorPosition()); |
(...skipping 22 matching lines...) Expand all Loading... |
1159 EXPECT_FALSE(model.Redo()); | 1159 EXPECT_FALSE(model.Redo()); |
1160 } | 1160 } |
1161 | 1161 |
1162 TEST_F(TextfieldViewsModelTest, UndoRedo_BackspaceThenSetText) { | 1162 TEST_F(TextfieldViewsModelTest, UndoRedo_BackspaceThenSetText) { |
1163 // This is to test the undo/redo behavior of omnibox. | 1163 // This is to test the undo/redo behavior of omnibox. |
1164 TextfieldViewsModel model(NULL); | 1164 TextfieldViewsModel model(NULL); |
1165 model.InsertChar('w'); | 1165 model.InsertChar('w'); |
1166 EXPECT_STR_EQ("w", model.GetText()); | 1166 EXPECT_STR_EQ("w", model.GetText()); |
1167 EXPECT_EQ(1U, model.GetCursorPosition()); | 1167 EXPECT_EQ(1U, model.GetCursorPosition()); |
1168 model.SetText(ASCIIToUTF16("www.google.com")); | 1168 model.SetText(ASCIIToUTF16("www.google.com")); |
1169 EXPECT_EQ(1U, model.GetCursorPosition()); | 1169 EXPECT_EQ(14U, model.GetCursorPosition()); |
1170 EXPECT_STR_EQ("www.google.com", model.GetText()); | 1170 EXPECT_STR_EQ("www.google.com", model.GetText()); |
1171 model.SetText(ASCIIToUTF16("www.google.com")); // Confirm the text. | 1171 model.SetText(ASCIIToUTF16("www.google.com")); // Confirm the text. |
1172 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 1172 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
1173 EXPECT_EQ(14U, model.GetCursorPosition()); | 1173 EXPECT_EQ(14U, model.GetCursorPosition()); |
1174 EXPECT_TRUE(model.Backspace()); | 1174 EXPECT_TRUE(model.Backspace()); |
1175 EXPECT_TRUE(model.Backspace()); | 1175 EXPECT_TRUE(model.Backspace()); |
1176 EXPECT_STR_EQ("www.google.c", model.GetText()); | 1176 EXPECT_STR_EQ("www.google.c", model.GetText()); |
1177 // Autocomplete sets the text | 1177 // Autocomplete sets the text |
1178 model.SetText(ASCIIToUTF16("www.google.com/search=www.google.c")); | 1178 model.SetText(ASCIIToUTF16("www.google.com/search=www.google.c")); |
1179 EXPECT_STR_EQ("www.google.com/search=www.google.c", model.GetText()); | 1179 EXPECT_STR_EQ("www.google.com/search=www.google.c", model.GetText()); |
(...skipping 15 matching lines...) Expand all Loading... |
1195 EXPECT_TRUE(model.Undo()); | 1195 EXPECT_TRUE(model.Undo()); |
1196 EXPECT_STR_EQ("ABCDE", model.GetText()); | 1196 EXPECT_STR_EQ("ABCDE", model.GetText()); |
1197 EXPECT_EQ(3U, model.GetCursorPosition()); | 1197 EXPECT_EQ(3U, model.GetCursorPosition()); |
1198 EXPECT_TRUE(model.Undo()); | 1198 EXPECT_TRUE(model.Undo()); |
1199 EXPECT_STR_EQ("", model.GetText()); | 1199 EXPECT_STR_EQ("", model.GetText()); |
1200 EXPECT_EQ(0U, model.GetCursorPosition()); | 1200 EXPECT_EQ(0U, model.GetCursorPosition()); |
1201 EXPECT_FALSE(model.Undo()); // no more undo | 1201 EXPECT_FALSE(model.Undo()); // no more undo |
1202 EXPECT_STR_EQ("", model.GetText()); | 1202 EXPECT_STR_EQ("", model.GetText()); |
1203 EXPECT_TRUE(model.Redo()); | 1203 EXPECT_TRUE(model.Redo()); |
1204 EXPECT_STR_EQ("ABCDE", model.GetText()); | 1204 EXPECT_STR_EQ("ABCDE", model.GetText()); |
1205 EXPECT_EQ(0U, model.GetCursorPosition()); | 1205 EXPECT_EQ(5U, model.GetCursorPosition()); |
1206 EXPECT_TRUE(model.Redo()); | 1206 EXPECT_TRUE(model.Redo()); |
1207 EXPECT_STR_EQ("ADE", model.GetText()); | 1207 EXPECT_STR_EQ("ADE", model.GetText()); |
1208 EXPECT_EQ(1U, model.GetCursorPosition()); | 1208 EXPECT_EQ(1U, model.GetCursorPosition()); |
1209 EXPECT_FALSE(model.Redo()); // no more redo | 1209 EXPECT_FALSE(model.Redo()); // no more redo |
1210 EXPECT_STR_EQ("ADE", model.GetText()); | 1210 EXPECT_STR_EQ("ADE", model.GetText()); |
1211 | 1211 |
1212 model.Paste(); | 1212 model.Paste(); |
1213 model.Paste(); | 1213 model.Paste(); |
1214 model.Paste(); | 1214 model.Paste(); |
1215 EXPECT_STR_EQ("ABCBCBCDE", model.GetText()); | 1215 EXPECT_STR_EQ("ABCBCBCDE", model.GetText()); |
(...skipping 10 matching lines...) Expand all Loading... |
1226 EXPECT_TRUE(model.Undo()); | 1226 EXPECT_TRUE(model.Undo()); |
1227 EXPECT_STR_EQ("ABCDE", model.GetText()); | 1227 EXPECT_STR_EQ("ABCDE", model.GetText()); |
1228 EXPECT_EQ(3U, model.GetCursorPosition()); | 1228 EXPECT_EQ(3U, model.GetCursorPosition()); |
1229 EXPECT_TRUE(model.Undo()); | 1229 EXPECT_TRUE(model.Undo()); |
1230 EXPECT_STR_EQ("", model.GetText()); | 1230 EXPECT_STR_EQ("", model.GetText()); |
1231 EXPECT_EQ(0U, model.GetCursorPosition()); | 1231 EXPECT_EQ(0U, model.GetCursorPosition()); |
1232 EXPECT_FALSE(model.Undo()); | 1232 EXPECT_FALSE(model.Undo()); |
1233 EXPECT_STR_EQ("", model.GetText()); | 1233 EXPECT_STR_EQ("", model.GetText()); |
1234 EXPECT_TRUE(model.Redo()); | 1234 EXPECT_TRUE(model.Redo()); |
1235 EXPECT_STR_EQ("ABCDE", model.GetText()); // Redoing SetText | 1235 EXPECT_STR_EQ("ABCDE", model.GetText()); // Redoing SetText |
1236 EXPECT_EQ(0U, model.GetCursorPosition()); | 1236 EXPECT_EQ(5U, model.GetCursorPosition()); |
1237 | 1237 |
1238 // Redo | 1238 // Redo |
1239 EXPECT_TRUE(model.Redo()); | 1239 EXPECT_TRUE(model.Redo()); |
1240 EXPECT_STR_EQ("ADE", model.GetText()); | 1240 EXPECT_STR_EQ("ADE", model.GetText()); |
1241 EXPECT_EQ(1U, model.GetCursorPosition()); | 1241 EXPECT_EQ(1U, model.GetCursorPosition()); |
1242 EXPECT_TRUE(model.Redo()); | 1242 EXPECT_TRUE(model.Redo()); |
1243 EXPECT_STR_EQ("ABCDE", model.GetText()); | 1243 EXPECT_STR_EQ("ABCDE", model.GetText()); |
1244 EXPECT_EQ(3U, model.GetCursorPosition()); | 1244 EXPECT_EQ(3U, model.GetCursorPosition()); |
1245 EXPECT_TRUE(model.Redo()); | 1245 EXPECT_TRUE(model.Redo()); |
1246 EXPECT_STR_EQ("ABCBCDE", model.GetText()); | 1246 EXPECT_STR_EQ("ABCBCDE", model.GetText()); |
(...skipping 19 matching lines...) Expand all Loading... |
1266 EXPECT_EQ(7U, model.GetCursorPosition()); | 1266 EXPECT_EQ(7U, model.GetCursorPosition()); |
1267 // empty cut shouldn't create an edit. | 1267 // empty cut shouldn't create an edit. |
1268 EXPECT_TRUE(model.Undo()); | 1268 EXPECT_TRUE(model.Undo()); |
1269 EXPECT_STR_EQ("ABCBCBCDE", model.GetText()); | 1269 EXPECT_STR_EQ("ABCBCBCDE", model.GetText()); |
1270 EXPECT_EQ(3U, model.GetCursorPosition()); | 1270 EXPECT_EQ(3U, model.GetCursorPosition()); |
1271 | 1271 |
1272 // Copy | 1272 // Copy |
1273 ResetModel(&model); | 1273 ResetModel(&model); |
1274 model.SetText(ASCIIToUTF16("12345")); | 1274 model.SetText(ASCIIToUTF16("12345")); |
1275 EXPECT_STR_EQ("12345", model.GetText()); | 1275 EXPECT_STR_EQ("12345", model.GetText()); |
1276 EXPECT_EQ(0U, model.GetCursorPosition()); | 1276 EXPECT_EQ(5U, model.GetCursorPosition()); |
1277 model.SelectRange(ui::Range(1, 3)); | 1277 model.SelectRange(ui::Range(1, 3)); |
1278 model.Copy(); // Copy "23" | 1278 model.Copy(); // Copy "23" |
1279 EXPECT_STR_EQ("12345", model.GetText()); | 1279 EXPECT_STR_EQ("12345", model.GetText()); |
1280 EXPECT_EQ(3U, model.GetCursorPosition()); | 1280 EXPECT_EQ(3U, model.GetCursorPosition()); |
1281 model.Paste(); // Paste "23" into "23". | 1281 model.Paste(); // Paste "23" into "23". |
1282 EXPECT_STR_EQ("12345", model.GetText()); | 1282 EXPECT_STR_EQ("12345", model.GetText()); |
1283 EXPECT_EQ(3U, model.GetCursorPosition()); | 1283 EXPECT_EQ(3U, model.GetCursorPosition()); |
1284 model.Paste(); | 1284 model.Paste(); |
1285 EXPECT_STR_EQ("1232345", model.GetText()); | 1285 EXPECT_STR_EQ("1232345", model.GetText()); |
1286 EXPECT_EQ(5U, model.GetCursorPosition()); | 1286 EXPECT_EQ(5U, model.GetCursorPosition()); |
1287 EXPECT_TRUE(model.Undo()); | 1287 EXPECT_TRUE(model.Undo()); |
1288 EXPECT_STR_EQ("12345", model.GetText()); | 1288 EXPECT_STR_EQ("12345", model.GetText()); |
1289 EXPECT_EQ(3U, model.GetCursorPosition()); | 1289 EXPECT_EQ(3U, model.GetCursorPosition()); |
1290 // TODO(oshima): We need to change the return type from bool to enum. | 1290 // TODO(oshima): We need to change the return type from bool to enum. |
1291 EXPECT_FALSE(model.Undo()); // No text change. | 1291 EXPECT_FALSE(model.Undo()); // No text change. |
1292 EXPECT_STR_EQ("12345", model.GetText()); | 1292 EXPECT_STR_EQ("12345", model.GetText()); |
1293 EXPECT_EQ(3U, model.GetCursorPosition()); | 1293 EXPECT_EQ(3U, model.GetCursorPosition()); |
1294 EXPECT_TRUE(model.Undo()); | 1294 EXPECT_TRUE(model.Undo()); |
1295 EXPECT_STR_EQ("", model.GetText()); | 1295 EXPECT_STR_EQ("", model.GetText()); |
1296 EXPECT_FALSE(model.Undo()); | 1296 EXPECT_FALSE(model.Undo()); |
1297 // Redo | 1297 // Redo |
1298 EXPECT_TRUE(model.Redo()); | 1298 EXPECT_TRUE(model.Redo()); |
1299 EXPECT_STR_EQ("12345", model.GetText()); | 1299 EXPECT_STR_EQ("12345", model.GetText()); |
1300 EXPECT_EQ(0U, model.GetCursorPosition()); | 1300 EXPECT_EQ(5U, model.GetCursorPosition()); |
1301 EXPECT_TRUE(model.Redo()); | 1301 EXPECT_TRUE(model.Redo()); |
1302 EXPECT_STR_EQ("12345", model.GetText()); // For 1st paste | 1302 EXPECT_STR_EQ("12345", model.GetText()); // For 1st paste |
1303 EXPECT_EQ(3U, model.GetCursorPosition()); | 1303 EXPECT_EQ(3U, model.GetCursorPosition()); |
1304 EXPECT_TRUE(model.Redo()); | 1304 EXPECT_TRUE(model.Redo()); |
1305 EXPECT_STR_EQ("1232345", model.GetText()); | 1305 EXPECT_STR_EQ("1232345", model.GetText()); |
1306 EXPECT_EQ(5U, model.GetCursorPosition()); | 1306 EXPECT_EQ(5U, model.GetCursorPosition()); |
1307 EXPECT_FALSE(model.Redo()); | 1307 EXPECT_FALSE(model.Redo()); |
1308 EXPECT_STR_EQ("1232345", model.GetText()); | 1308 EXPECT_STR_EQ("1232345", model.GetText()); |
1309 | 1309 |
1310 // Test using SelectRange | 1310 // Test using SelectRange |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1351 EXPECT_EQ(4U, model.GetCursorPosition()); | 1351 EXPECT_EQ(4U, model.GetCursorPosition()); |
1352 EXPECT_TRUE(model.Undo()); | 1352 EXPECT_TRUE(model.Undo()); |
1353 EXPECT_STR_EQ("abcd", model.GetText()); | 1353 EXPECT_STR_EQ("abcd", model.GetText()); |
1354 EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition()); | 1354 EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition()); |
1355 EXPECT_TRUE(model.Undo()); | 1355 EXPECT_TRUE(model.Undo()); |
1356 EXPECT_STR_EQ("", model.GetText()); | 1356 EXPECT_STR_EQ("", model.GetText()); |
1357 EXPECT_EQ(0U, model.GetCursorPosition()); | 1357 EXPECT_EQ(0U, model.GetCursorPosition()); |
1358 EXPECT_FALSE(model.Undo()); | 1358 EXPECT_FALSE(model.Undo()); |
1359 EXPECT_TRUE(model.Redo()); | 1359 EXPECT_TRUE(model.Redo()); |
1360 EXPECT_STR_EQ("abcd", model.GetText()); | 1360 EXPECT_STR_EQ("abcd", model.GetText()); |
1361 EXPECT_EQ(0U, model.GetCursorPosition()); // By SetText | 1361 EXPECT_EQ(4U, model.GetCursorPosition()); // By SetText |
1362 EXPECT_TRUE(model.Redo()); | 1362 EXPECT_TRUE(model.Redo()); |
1363 EXPECT_STR_EQ("a123d", model.GetText()); | 1363 EXPECT_STR_EQ("a123d", model.GetText()); |
1364 EXPECT_EQ(4U, model.GetCursorPosition()); | 1364 EXPECT_EQ(4U, model.GetCursorPosition()); |
1365 EXPECT_FALSE(model.Redo()); | 1365 EXPECT_FALSE(model.Redo()); |
1366 } | 1366 } |
1367 | 1367 |
1368 void RunOverwriteReplaceTest(TextfieldViewsModel& model) { | 1368 void RunOverwriteReplaceTest(TextfieldViewsModel& model) { |
1369 gfx::SelectionModel sel; | 1369 gfx::SelectionModel sel; |
1370 model.GetSelectionModel(&sel); | 1370 model.GetSelectionModel(&sel); |
1371 bool reverse = sel.selection().is_reversed(); | 1371 bool reverse = sel.selection().is_reversed(); |
1372 | 1372 |
1373 model.ReplaceChar('1'); | 1373 model.ReplaceChar('1'); |
1374 model.ReplaceChar('2'); | 1374 model.ReplaceChar('2'); |
1375 model.ReplaceChar('3'); | 1375 model.ReplaceChar('3'); |
1376 model.ReplaceChar('4'); | 1376 model.ReplaceChar('4'); |
1377 EXPECT_STR_EQ("a1234", model.GetText()); | 1377 EXPECT_STR_EQ("a1234", model.GetText()); |
1378 EXPECT_EQ(5U, model.GetCursorPosition()); | 1378 EXPECT_EQ(5U, model.GetCursorPosition()); |
1379 EXPECT_TRUE(model.Undo()); | 1379 EXPECT_TRUE(model.Undo()); |
1380 EXPECT_STR_EQ("abcd", model.GetText()); | 1380 EXPECT_STR_EQ("abcd", model.GetText()); |
1381 EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition()); | 1381 EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition()); |
1382 EXPECT_TRUE(model.Undo()); | 1382 EXPECT_TRUE(model.Undo()); |
1383 EXPECT_STR_EQ("", model.GetText()); | 1383 EXPECT_STR_EQ("", model.GetText()); |
1384 EXPECT_EQ(0U, model.GetCursorPosition()); | 1384 EXPECT_EQ(0U, model.GetCursorPosition()); |
1385 EXPECT_FALSE(model.Undo()); | 1385 EXPECT_FALSE(model.Undo()); |
1386 EXPECT_TRUE(model.Redo()); | 1386 EXPECT_TRUE(model.Redo()); |
1387 EXPECT_STR_EQ("abcd", model.GetText()); | 1387 EXPECT_STR_EQ("abcd", model.GetText()); |
1388 EXPECT_EQ(0U, model.GetCursorPosition()); | 1388 EXPECT_EQ(4U, model.GetCursorPosition()); |
1389 EXPECT_TRUE(model.Redo()); | 1389 EXPECT_TRUE(model.Redo()); |
1390 EXPECT_STR_EQ("a1234", model.GetText()); | 1390 EXPECT_STR_EQ("a1234", model.GetText()); |
1391 EXPECT_EQ(5U, model.GetCursorPosition()); | 1391 EXPECT_EQ(5U, model.GetCursorPosition()); |
1392 EXPECT_FALSE(model.Redo()); | 1392 EXPECT_FALSE(model.Redo()); |
1393 } | 1393 } |
1394 | 1394 |
1395 TEST_F(TextfieldViewsModelTest, UndoRedo_ReplaceTest) { | 1395 TEST_F(TextfieldViewsModelTest, UndoRedo_ReplaceTest) { |
1396 // By Cursor | 1396 // By Cursor |
1397 { | 1397 { |
1398 SCOPED_TRACE("forward & insert by cursor"); | 1398 SCOPED_TRACE("forward & insert by cursor"); |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1524 EXPECT_TRUE(model.Undo()); | 1524 EXPECT_TRUE(model.Undo()); |
1525 EXPECT_STR_EQ("ABCDE", model.GetText()); | 1525 EXPECT_STR_EQ("ABCDE", model.GetText()); |
1526 EXPECT_TRUE(model.Redo()); | 1526 EXPECT_TRUE(model.Redo()); |
1527 EXPECT_STR_EQ("1234", model.GetText()); | 1527 EXPECT_STR_EQ("1234", model.GetText()); |
1528 EXPECT_FALSE(model.Redo()); | 1528 EXPECT_FALSE(model.Redo()); |
1529 | 1529 |
1530 // TODO(oshima): We need MockInputMethod to test the behavior with IME. | 1530 // TODO(oshima): We need MockInputMethod to test the behavior with IME. |
1531 } | 1531 } |
1532 | 1532 |
1533 } // namespace views | 1533 } // namespace views |
OLD | NEW |