| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/auto_reset.h" | 5 #include "base/auto_reset.h" |
| 6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
| 7 #include "base/scoped_ptr.h" | 7 #include "base/scoped_ptr.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "ui/base/clipboard/clipboard.h" | 10 #include "ui/base/clipboard/clipboard.h" |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 model.ClearSelection(); | 354 model.ClearSelection(); |
| 355 model.MoveCursorToEnd(false); | 355 model.MoveCursorToEnd(false); |
| 356 model.MoveCursorToPreviousWord(true); | 356 model.MoveCursorToPreviousWord(true); |
| 357 EXPECT_TRUE(model.Paste()); | 357 EXPECT_TRUE(model.Paste()); |
| 358 clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); | 358 clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); |
| 359 EXPECT_STR_EQ("HELLO HELLO WORLD", clipboard_text); | 359 EXPECT_STR_EQ("HELLO HELLO WORLD", clipboard_text); |
| 360 EXPECT_STR_EQ("HELLO HELLO HELLO HELLO WORLD", model.text()); | 360 EXPECT_STR_EQ("HELLO HELLO HELLO HELLO WORLD", model.text()); |
| 361 EXPECT_EQ(29U, model.cursor_pos()); | 361 EXPECT_EQ(29U, model.cursor_pos()); |
| 362 } | 362 } |
| 363 | 363 |
| 364 void SelectWordTestVerifier(TextfieldViewsModel &model, |
| 365 const std::string &expected_selected_string, size_t expected_cursor_pos) { |
| 366 EXPECT_STR_EQ(expected_selected_string, model.GetSelectedText()); |
| 367 EXPECT_EQ(expected_cursor_pos, model.cursor_pos()); |
| 368 } |
| 369 |
| 370 TEST_F(TextfieldViewsModelTest, SelectWordTest) { |
| 371 TextfieldViewsModel model; |
| 372 model.Append(ASCIIToUTF16(" HELLO !! WO RLD ")); |
| 373 |
| 374 // Test when cursor is at the beginning. |
| 375 model.MoveCursorToStart(false); |
| 376 model.SelectWord(); |
| 377 SelectWordTestVerifier(model, " ", 2U); |
| 378 |
| 379 // Test when cursor is at the beginning of a word. |
| 380 model.MoveCursorTo(2U, false); |
| 381 model.SelectWord(); |
| 382 SelectWordTestVerifier(model, "HELLO", 7U); |
| 383 |
| 384 // Test when cursor is at the end of a word. |
| 385 model.MoveCursorTo(15U, false); |
| 386 model.SelectWord(); |
| 387 SelectWordTestVerifier(model, "WO", 15U); |
| 388 |
| 389 // Test when cursor is somewhere in a non-alph-numeric fragment. |
| 390 for (size_t cursor_pos = 8; cursor_pos < 13U; cursor_pos++) { |
| 391 model.MoveCursorTo(cursor_pos, false); |
| 392 model.SelectWord(); |
| 393 SelectWordTestVerifier(model, " !! ", 13U); |
| 394 } |
| 395 |
| 396 // Test when cursor is somewhere in a whitespace fragment. |
| 397 model.MoveCursorTo(17U, false); |
| 398 model.SelectWord(); |
| 399 SelectWordTestVerifier(model, " ", 20U); |
| 400 |
| 401 // Test when cursor is at the end. |
| 402 model.MoveCursorToEnd(false); |
| 403 model.SelectWord(); |
| 404 SelectWordTestVerifier(model, " ", 24U); |
| 405 } |
| 406 |
| 364 TEST_F(TextfieldViewsModelTest, RangeTest) { | 407 TEST_F(TextfieldViewsModelTest, RangeTest) { |
| 365 TextfieldViewsModel model; | 408 TextfieldViewsModel model; |
| 366 model.Append(ASCIIToUTF16("HELLO WORLD")); | 409 model.Append(ASCIIToUTF16("HELLO WORLD")); |
| 367 model.MoveCursorToStart(false); | 410 model.MoveCursorToStart(false); |
| 368 TextRange range; | 411 TextRange range; |
| 369 model.GetSelectedRange(&range); | 412 model.GetSelectedRange(&range); |
| 370 EXPECT_TRUE(range.is_empty()); | 413 EXPECT_TRUE(range.is_empty()); |
| 371 EXPECT_EQ(0U, range.start()); | 414 EXPECT_EQ(0U, range.start()); |
| 372 EXPECT_EQ(0U, range.end()); | 415 EXPECT_EQ(0U, range.end()); |
| 373 | 416 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 model.SelectRange(range); | 507 model.SelectRange(range); |
| 465 EXPECT_TRUE(model.GetSelectedText().empty()); | 508 EXPECT_TRUE(model.GetSelectedText().empty()); |
| 466 | 509 |
| 467 range.SetRange(1000, 1000); | 510 range.SetRange(1000, 1000); |
| 468 EXPECT_TRUE(range.is_empty()); | 511 EXPECT_TRUE(range.is_empty()); |
| 469 model.SelectRange(range); | 512 model.SelectRange(range); |
| 470 EXPECT_TRUE(model.GetSelectedText().empty()); | 513 EXPECT_TRUE(model.GetSelectedText().empty()); |
| 471 } | 514 } |
| 472 | 515 |
| 473 } // namespace views | 516 } // namespace views |
| OLD | NEW |