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/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 : ViewsTestBase(), | 49 : ViewsTestBase(), |
50 composition_text_confirmed_or_cleared_(false) { | 50 composition_text_confirmed_or_cleared_(false) { |
51 } | 51 } |
52 | 52 |
53 virtual void OnCompositionTextConfirmedOrCleared() OVERRIDE { | 53 virtual void OnCompositionTextConfirmedOrCleared() OVERRIDE { |
54 composition_text_confirmed_or_cleared_ = true; | 54 composition_text_confirmed_or_cleared_ = true; |
55 } | 55 } |
56 | 56 |
57 protected: | 57 protected: |
58 void ResetModel(TextfieldViewsModel* model) const { | 58 void ResetModel(TextfieldViewsModel* model) const { |
59 model->SetText(string16()); | 59 model->SetText(base::string16()); |
60 model->ClearEditHistory(); | 60 model->ClearEditHistory(); |
61 } | 61 } |
62 | 62 |
63 bool composition_text_confirmed_or_cleared_; | 63 bool composition_text_confirmed_or_cleared_; |
64 | 64 |
65 private: | 65 private: |
66 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModelTest); | 66 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModelTest); |
67 }; | 67 }; |
68 | 68 |
69 TEST_F(TextfieldViewsModelTest, EditString) { | 69 TEST_F(TextfieldViewsModelTest, EditString) { |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 // The first 2 characters are not strong directionality characters. | 236 // The first 2 characters are not strong directionality characters. |
237 model.SetText(WideToUTF16(L"\x002C\x0020\x05D1\x05BC\x05B7\x05E9\x05BC")); | 237 model.SetText(WideToUTF16(L"\x002C\x0020\x05D1\x05BC\x05B7\x05E9\x05BC")); |
238 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, false); | 238 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, false); |
239 EXPECT_TRUE(model.Backspace()); | 239 EXPECT_TRUE(model.Backspace()); |
240 EXPECT_EQ(WideToUTF16(L"\x002C\x0020\x05D1\x05BC\x05B7\x05E9"), | 240 EXPECT_EQ(WideToUTF16(L"\x002C\x0020\x05D1\x05BC\x05B7\x05E9"), |
241 model.GetText()); | 241 model.GetText()); |
242 } | 242 } |
243 | 243 |
244 TEST_F(TextfieldViewsModelTest, EmptyString) { | 244 TEST_F(TextfieldViewsModelTest, EmptyString) { |
245 TextfieldViewsModel model(NULL); | 245 TextfieldViewsModel model(NULL); |
246 EXPECT_EQ(string16(), model.GetText()); | 246 EXPECT_EQ(base::string16(), model.GetText()); |
247 EXPECT_EQ(string16(), model.GetSelectedText()); | 247 EXPECT_EQ(base::string16(), model.GetSelectedText()); |
248 | 248 |
249 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); | 249 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); |
250 EXPECT_EQ(0U, model.GetCursorPosition()); | 250 EXPECT_EQ(0U, model.GetCursorPosition()); |
251 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 251 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
252 EXPECT_EQ(0U, model.GetCursorPosition()); | 252 EXPECT_EQ(0U, model.GetCursorPosition()); |
253 | 253 |
254 EXPECT_EQ(string16(), model.GetSelectedText()); | 254 EXPECT_EQ(base::string16(), model.GetSelectedText()); |
255 | 255 |
256 EXPECT_FALSE(model.Delete()); | 256 EXPECT_FALSE(model.Delete()); |
257 EXPECT_FALSE(model.Backspace()); | 257 EXPECT_FALSE(model.Backspace()); |
258 } | 258 } |
259 | 259 |
260 TEST_F(TextfieldViewsModelTest, Selection) { | 260 TEST_F(TextfieldViewsModelTest, Selection) { |
261 TextfieldViewsModel model(NULL); | 261 TextfieldViewsModel model(NULL); |
262 model.Append(ASCIIToUTF16("HELLO")); | 262 model.Append(ASCIIToUTF16("HELLO")); |
263 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false); | 263 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false); |
264 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 264 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
265 EXPECT_STR_EQ("E", model.GetSelectedText()); | 265 EXPECT_STR_EQ("E", model.GetSelectedText()); |
266 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 266 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
267 EXPECT_STR_EQ("EL", model.GetSelectedText()); | 267 EXPECT_STR_EQ("EL", model.GetSelectedText()); |
268 | 268 |
269 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, true); | 269 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, true); |
270 EXPECT_STR_EQ("H", model.GetSelectedText()); | 270 EXPECT_STR_EQ("H", model.GetSelectedText()); |
271 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, true); | 271 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, true); |
272 EXPECT_STR_EQ("ELLO", model.GetSelectedText()); | 272 EXPECT_STR_EQ("ELLO", model.GetSelectedText()); |
273 model.ClearSelection(); | 273 model.ClearSelection(); |
274 EXPECT_EQ(string16(), model.GetSelectedText()); | 274 EXPECT_EQ(base::string16(), model.GetSelectedText()); |
275 | 275 |
276 // SelectAll(false) selects towards the end. | 276 // SelectAll(false) selects towards the end. |
277 model.SelectAll(false); | 277 model.SelectAll(false); |
278 EXPECT_STR_EQ("HELLO", model.GetSelectedText()); | 278 EXPECT_STR_EQ("HELLO", model.GetSelectedText()); |
279 EXPECT_EQ(gfx::Range(0, 5), model.render_text()->selection()); | 279 EXPECT_EQ(gfx::Range(0, 5), model.render_text()->selection()); |
280 | 280 |
281 // SelectAll(true) selects towards the beginning. | 281 // SelectAll(true) selects towards the beginning. |
282 model.SelectAll(true); | 282 model.SelectAll(true); |
283 EXPECT_STR_EQ("HELLO", model.GetSelectedText()); | 283 EXPECT_STR_EQ("HELLO", model.GetSelectedText()); |
284 EXPECT_EQ(gfx::Range(5, 0), model.render_text()->selection()); | 284 EXPECT_EQ(gfx::Range(5, 0), model.render_text()->selection()); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 329 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
330 EXPECT_EQ(gfx::Range(2, 3), model.render_text()->selection()); | 330 EXPECT_EQ(gfx::Range(2, 3), model.render_text()->selection()); |
331 EXPECT_EQ(WideToUTF16(L"c"), model.GetSelectedText()); | 331 EXPECT_EQ(WideToUTF16(L"c"), model.GetSelectedText()); |
332 | 332 |
333 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 333 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
334 EXPECT_EQ(gfx::Range(2, 10), model.render_text()->selection()); | 334 EXPECT_EQ(gfx::Range(2, 10), model.render_text()->selection()); |
335 EXPECT_EQ(WideToUTF16(L"c\x05E9\x05BC\x05C1\x05B8\x05E0\x05B8" L"d"), | 335 EXPECT_EQ(WideToUTF16(L"c\x05E9\x05BC\x05C1\x05B8\x05E0\x05B8" L"d"), |
336 model.GetSelectedText()); | 336 model.GetSelectedText()); |
337 | 337 |
338 model.ClearSelection(); | 338 model.ClearSelection(); |
339 EXPECT_EQ(string16(), model.GetSelectedText()); | 339 EXPECT_EQ(base::string16(), model.GetSelectedText()); |
340 model.SelectAll(false); | 340 model.SelectAll(false); |
341 EXPECT_EQ(WideToUTF16(L"abc\x05E9\x05BC\x05C1\x05B8\x05E0\x05B8" L"def"), | 341 EXPECT_EQ(WideToUTF16(L"abc\x05E9\x05BC\x05C1\x05B8\x05E0\x05B8" L"def"), |
342 model.GetSelectedText()); | 342 model.GetSelectedText()); |
343 #endif | 343 #endif |
344 | 344 |
345 // In case of "aBc", this test shows how to select "aB" or "Bc", assume 'B' is | 345 // In case of "aBc", this test shows how to select "aB" or "Bc", assume 'B' is |
346 // an RTL character. | 346 // an RTL character. |
347 model.SetText(WideToUTF16(L"a\x05E9" L"b")); | 347 model.SetText(WideToUTF16(L"a\x05E9" L"b")); |
348 MoveCursorTo(model, 0); | 348 MoveCursorTo(model, 0); |
349 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 349 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
(...skipping 22 matching lines...) Expand all Loading... |
372 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); | 372 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); |
373 EXPECT_EQ(WideToUTF16(L"a\x05E9"), model.GetSelectedText()); | 373 EXPECT_EQ(WideToUTF16(L"a\x05E9"), model.GetSelectedText()); |
374 | 374 |
375 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 375 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
376 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); | 376 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); |
377 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); | 377 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); |
378 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 378 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
379 EXPECT_EQ(WideToUTF16(L"\x05E9" L"b"), model.GetSelectedText()); | 379 EXPECT_EQ(WideToUTF16(L"\x05E9" L"b"), model.GetSelectedText()); |
380 | 380 |
381 model.ClearSelection(); | 381 model.ClearSelection(); |
382 EXPECT_EQ(string16(), model.GetSelectedText()); | 382 EXPECT_EQ(base::string16(), model.GetSelectedText()); |
383 model.SelectAll(false); | 383 model.SelectAll(false); |
384 EXPECT_EQ(WideToUTF16(L"a\x05E9" L"b"), model.GetSelectedText()); | 384 EXPECT_EQ(WideToUTF16(L"a\x05E9" L"b"), model.GetSelectedText()); |
385 } | 385 } |
386 | 386 |
387 TEST_F(TextfieldViewsModelTest, SelectionAndEdit) { | 387 TEST_F(TextfieldViewsModelTest, SelectionAndEdit) { |
388 TextfieldViewsModel model(NULL); | 388 TextfieldViewsModel model(NULL); |
389 model.Append(ASCIIToUTF16("HELLO")); | 389 model.Append(ASCIIToUTF16("HELLO")); |
390 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false); | 390 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false); |
391 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); | 391 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); |
392 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); // "EL" | 392 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); // "EL" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); | 449 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); |
450 EXPECT_STR_EQ("to Life", model.GetSelectedText()); | 450 EXPECT_STR_EQ("to Life", model.GetSelectedText()); |
451 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); | 451 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); |
452 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); | 452 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); |
453 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); // Now at start. | 453 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); // Now at start. |
454 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText()); | 454 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText()); |
455 // Should be safe to go to the previous word at the beginning. | 455 // Should be safe to go to the previous word at the beginning. |
456 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); | 456 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); |
457 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText()); | 457 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText()); |
458 model.ReplaceChar('4'); | 458 model.ReplaceChar('4'); |
459 EXPECT_EQ(string16(), model.GetSelectedText()); | 459 EXPECT_EQ(base::string16(), model.GetSelectedText()); |
460 EXPECT_STR_EQ("42", model.GetText()); | 460 EXPECT_STR_EQ("42", model.GetText()); |
461 } | 461 } |
462 | 462 |
463 TEST_F(TextfieldViewsModelTest, SetText) { | 463 TEST_F(TextfieldViewsModelTest, SetText) { |
464 TextfieldViewsModel model(NULL); | 464 TextfieldViewsModel model(NULL); |
465 model.Append(ASCIIToUTF16("HELLO")); | 465 model.Append(ASCIIToUTF16("HELLO")); |
466 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 466 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
467 model.SetText(ASCIIToUTF16("GOODBYE")); | 467 model.SetText(ASCIIToUTF16("GOODBYE")); |
468 EXPECT_STR_EQ("GOODBYE", model.GetText()); | 468 EXPECT_STR_EQ("GOODBYE", model.GetText()); |
469 // SetText move the cursor to the end of the new text. | 469 // SetText move the cursor to the end of the new text. |
470 EXPECT_EQ(7U, model.GetCursorPosition()); | 470 EXPECT_EQ(7U, model.GetCursorPosition()); |
471 model.SelectAll(false); | 471 model.SelectAll(false); |
472 EXPECT_STR_EQ("GOODBYE", model.GetSelectedText()); | 472 EXPECT_STR_EQ("GOODBYE", model.GetSelectedText()); |
473 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 473 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
474 EXPECT_EQ(7U, model.GetCursorPosition()); | 474 EXPECT_EQ(7U, model.GetCursorPosition()); |
475 | 475 |
476 model.SetText(ASCIIToUTF16("BYE")); | 476 model.SetText(ASCIIToUTF16("BYE")); |
477 // Setting shorter string moves the cursor to the end of the new string. | 477 // Setting shorter string moves the cursor to the end of the new string. |
478 EXPECT_EQ(3U, model.GetCursorPosition()); | 478 EXPECT_EQ(3U, model.GetCursorPosition()); |
479 EXPECT_EQ(string16(), model.GetSelectedText()); | 479 EXPECT_EQ(base::string16(), model.GetSelectedText()); |
480 model.SetText(string16()); | 480 model.SetText(base::string16()); |
481 EXPECT_EQ(0U, model.GetCursorPosition()); | 481 EXPECT_EQ(0U, model.GetCursorPosition()); |
482 } | 482 } |
483 | 483 |
484 TEST_F(TextfieldViewsModelTest, Clipboard) { | 484 TEST_F(TextfieldViewsModelTest, Clipboard) { |
485 ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); | 485 ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); |
486 const string16 initial_clipboard_text = ASCIIToUTF16("initial text"); | 486 const base::string16 initial_clipboard_text = ASCIIToUTF16("initial text"); |
487 ui::ScopedClipboardWriter(clipboard, ui::CLIPBOARD_TYPE_COPY_PASTE). | 487 ui::ScopedClipboardWriter(clipboard, ui::CLIPBOARD_TYPE_COPY_PASTE). |
488 WriteText(initial_clipboard_text); | 488 WriteText(initial_clipboard_text); |
489 | 489 |
490 string16 clipboard_text; | 490 base::string16 clipboard_text; |
491 TextfieldViewsModel model(NULL); | 491 TextfieldViewsModel model(NULL); |
492 model.Append(ASCIIToUTF16("HELLO WORLD")); | 492 model.Append(ASCIIToUTF16("HELLO WORLD")); |
493 | 493 |
494 // Cut with an empty selection should do nothing. | 494 // Cut with an empty selection should do nothing. |
495 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 495 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
496 EXPECT_FALSE(model.Cut()); | 496 EXPECT_FALSE(model.Cut()); |
497 clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); | 497 clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); |
498 EXPECT_EQ(initial_clipboard_text, clipboard_text); | 498 EXPECT_EQ(initial_clipboard_text, clipboard_text); |
499 EXPECT_STR_EQ("HELLO WORLD", model.GetText()); | 499 EXPECT_STR_EQ("HELLO WORLD", model.GetText()); |
500 EXPECT_EQ(11U, model.GetCursorPosition()); | 500 EXPECT_EQ(11U, model.GetCursorPosition()); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); | 545 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, false); |
546 EXPECT_TRUE(model.Paste()); | 546 EXPECT_TRUE(model.Paste()); |
547 EXPECT_STR_EQ("HELLO HELLO ", model.GetText()); | 547 EXPECT_STR_EQ("HELLO HELLO ", model.GetText()); |
548 EXPECT_EQ(12U, model.GetCursorPosition()); | 548 EXPECT_EQ(12U, model.GetCursorPosition()); |
549 model.render_text()->SetObscured(true); | 549 model.render_text()->SetObscured(true); |
550 EXPECT_TRUE(model.Paste()); | 550 EXPECT_TRUE(model.Paste()); |
551 EXPECT_STR_EQ("HELLO HELLO HELLO ", model.GetText()); | 551 EXPECT_STR_EQ("HELLO HELLO HELLO ", model.GetText()); |
552 EXPECT_EQ(18U, model.GetCursorPosition()); | 552 EXPECT_EQ(18U, model.GetCursorPosition()); |
553 } | 553 } |
554 | 554 |
555 static void SelectWordTestVerifier(const TextfieldViewsModel& model, | 555 static void SelectWordTestVerifier( |
556 const string16 &expected_selected_string, size_t expected_cursor_pos) { | 556 const TextfieldViewsModel& model, |
| 557 const base::string16 &expected_selected_string, |
| 558 size_t expected_cursor_pos) { |
557 EXPECT_EQ(expected_selected_string, model.GetSelectedText()); | 559 EXPECT_EQ(expected_selected_string, model.GetSelectedText()); |
558 EXPECT_EQ(expected_cursor_pos, model.GetCursorPosition()); | 560 EXPECT_EQ(expected_cursor_pos, model.GetCursorPosition()); |
559 } | 561 } |
560 | 562 |
561 TEST_F(TextfieldViewsModelTest, SelectWordTest) { | 563 TEST_F(TextfieldViewsModelTest, SelectWordTest) { |
562 TextfieldViewsModel model(NULL); | 564 TextfieldViewsModel model(NULL); |
563 model.Append(ASCIIToUTF16(" HELLO !! WO RLD ")); | 565 model.Append(ASCIIToUTF16(" HELLO !! WO RLD ")); |
564 | 566 |
565 // Test when cursor is at the beginning. | 567 // Test when cursor is at the beginning. |
566 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, false); | 568 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, false); |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
906 EXPECT_TRUE(composition_text_confirmed_or_cleared_); | 908 EXPECT_TRUE(composition_text_confirmed_or_cleared_); |
907 composition_text_confirmed_or_cleared_ = false; | 909 composition_text_confirmed_or_cleared_ = false; |
908 EXPECT_STR_EQ("1234567890-678-", model.GetText()); | 910 EXPECT_STR_EQ("1234567890-678-", model.GetText()); |
909 | 911 |
910 model.SetCompositionText(composition); | 912 model.SetCompositionText(composition); |
911 model.Backspace(); | 913 model.Backspace(); |
912 EXPECT_TRUE(composition_text_confirmed_or_cleared_); | 914 EXPECT_TRUE(composition_text_confirmed_or_cleared_); |
913 composition_text_confirmed_or_cleared_ = false; | 915 composition_text_confirmed_or_cleared_ = false; |
914 EXPECT_STR_EQ("1234567890-678-", model.GetText()); | 916 EXPECT_STR_EQ("1234567890-678-", model.GetText()); |
915 | 917 |
916 model.SetText(string16()); | 918 model.SetText(base::string16()); |
917 model.SetCompositionText(composition); | 919 model.SetCompositionText(composition); |
918 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, false); | 920 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, false); |
919 EXPECT_TRUE(composition_text_confirmed_or_cleared_); | 921 EXPECT_TRUE(composition_text_confirmed_or_cleared_); |
920 composition_text_confirmed_or_cleared_ = false; | 922 composition_text_confirmed_or_cleared_ = false; |
921 EXPECT_STR_EQ("678", model.GetText()); | 923 EXPECT_STR_EQ("678", model.GetText()); |
922 EXPECT_EQ(2U, model.GetCursorPosition()); | 924 EXPECT_EQ(2U, model.GetCursorPosition()); |
923 | 925 |
924 model.SetCompositionText(composition); | 926 model.SetCompositionText(composition); |
925 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false); | 927 model.MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false); |
926 EXPECT_TRUE(composition_text_confirmed_or_cleared_); | 928 EXPECT_TRUE(composition_text_confirmed_or_cleared_); |
927 composition_text_confirmed_or_cleared_ = false; | 929 composition_text_confirmed_or_cleared_ = false; |
928 EXPECT_STR_EQ("676788", model.GetText()); | 930 EXPECT_STR_EQ("676788", model.GetText()); |
929 EXPECT_EQ(6U, model.GetCursorPosition()); | 931 EXPECT_EQ(6U, model.GetCursorPosition()); |
930 | 932 |
931 model.SetCompositionText(composition); | 933 model.SetCompositionText(composition); |
932 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, false); | 934 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, false); |
933 EXPECT_TRUE(composition_text_confirmed_or_cleared_); | 935 EXPECT_TRUE(composition_text_confirmed_or_cleared_); |
934 composition_text_confirmed_or_cleared_ = false; | 936 composition_text_confirmed_or_cleared_ = false; |
935 EXPECT_STR_EQ("676788678", model.GetText()); | 937 EXPECT_STR_EQ("676788678", model.GetText()); |
936 | 938 |
937 model.SetText(string16()); | 939 model.SetText(base::string16()); |
938 model.SetCompositionText(composition); | 940 model.SetCompositionText(composition); |
939 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_RIGHT, false); | 941 model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_RIGHT, false); |
940 EXPECT_TRUE(composition_text_confirmed_or_cleared_); | 942 EXPECT_TRUE(composition_text_confirmed_or_cleared_); |
941 composition_text_confirmed_or_cleared_ = false; | 943 composition_text_confirmed_or_cleared_ = false; |
942 | 944 |
943 model.SetCompositionText(composition); | 945 model.SetCompositionText(composition); |
944 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, true); | 946 model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_LEFT, true); |
945 EXPECT_TRUE(composition_text_confirmed_or_cleared_); | 947 EXPECT_TRUE(composition_text_confirmed_or_cleared_); |
946 composition_text_confirmed_or_cleared_ = false; | 948 composition_text_confirmed_or_cleared_ = false; |
947 EXPECT_STR_EQ("678678", model.GetText()); | 949 EXPECT_STR_EQ("678678", model.GetText()); |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1507 EXPECT_TRUE(model.Undo()); | 1509 EXPECT_TRUE(model.Undo()); |
1508 EXPECT_STR_EQ("ABCDE", model.GetText()); | 1510 EXPECT_STR_EQ("ABCDE", model.GetText()); |
1509 EXPECT_TRUE(model.Redo()); | 1511 EXPECT_TRUE(model.Redo()); |
1510 EXPECT_STR_EQ("1234", model.GetText()); | 1512 EXPECT_STR_EQ("1234", model.GetText()); |
1511 EXPECT_FALSE(model.Redo()); | 1513 EXPECT_FALSE(model.Redo()); |
1512 | 1514 |
1513 // TODO(oshima): We need MockInputMethod to test the behavior with IME. | 1515 // TODO(oshima): We need MockInputMethod to test the behavior with IME. |
1514 } | 1516 } |
1515 | 1517 |
1516 } // namespace views | 1518 } // namespace views |
OLD | NEW |