Chromium Code Reviews| 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/i18n/break_iterator.h" | 5 #include "base/i18n/break_iterator.h" |
| 6 | 6 |
| 7 #include "base/strings/string_piece.h" | 7 #include "base/strings/string_piece.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 362 EXPECT_TRUE(iter.Advance()); | 362 EXPECT_TRUE(iter.Advance()); |
| 363 EXPECT_EQ(iter.GetString(), iter.GetStringPiece().as_string()); | 363 EXPECT_EQ(iter.GetString(), iter.GetStringPiece().as_string()); |
| 364 EXPECT_EQ(StringPiece16(ASCIIToUTF16("some")), iter.GetStringPiece()); | 364 EXPECT_EQ(StringPiece16(ASCIIToUTF16("some")), iter.GetStringPiece()); |
| 365 | 365 |
| 366 EXPECT_TRUE(iter.Advance()); | 366 EXPECT_TRUE(iter.Advance()); |
| 367 EXPECT_TRUE(iter.Advance()); | 367 EXPECT_TRUE(iter.Advance()); |
| 368 EXPECT_EQ(iter.GetString(), iter.GetStringPiece().as_string()); | 368 EXPECT_EQ(iter.GetString(), iter.GetStringPiece().as_string()); |
| 369 EXPECT_EQ(StringPiece16(ASCIIToUTF16("string")), iter.GetStringPiece()); | 369 EXPECT_EQ(StringPiece16(ASCIIToUTF16("string")), iter.GetStringPiece()); |
| 370 } | 370 } |
| 371 | 371 |
| 372 // Make sure that when not in RULE_BASED or BREAK_WORD mode we're getting | |
| 373 // IS_LINE_OR_CHAR_BREAK. | |
| 374 TEST(BreakIteratorTest, IsWordBreakBreakLine) { | |
| 375 // The string "foo ទេ \nCan Ми..." which contains English, Khmer, and Russian | |
| 376 // characters, in that order. | |
| 377 base::string16 text( | |
| 378 base::WideToUTF16(L"foo \x1791\x17c1 \nCan \x041C\x0438...")); | |
| 379 BreakIterator iter(text, BreakIterator::BREAK_LINE); | |
| 380 ASSERT_TRUE(iter.Init()); | |
| 381 | |
| 382 EXPECT_TRUE(iter.Advance()); | |
| 383 // Finds "foo" and the space. | |
| 384 EXPECT_EQ(base::UTF8ToUTF16("foo "), iter.GetString()); | |
| 385 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_LINE_OR_CHAR_BREAK); | |
|
please use gerrit instead
2015/08/10 17:24:42
Here and below, use EXPECT_EQ(item1, item2) instea
Julius
2015/08/10 18:56:19
Done.
| |
| 386 EXPECT_TRUE(iter.Advance()); | |
| 387 // Finds the Khmer characters, the next space, and the newline. | |
| 388 EXPECT_EQ(base::WideToUTF16(L"\x1791\x17c1 \n"), iter.GetString()); | |
| 389 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_LINE_OR_CHAR_BREAK); | |
| 390 EXPECT_TRUE(iter.Advance()); | |
| 391 // Finds "Can" and the sapce. | |
| 392 EXPECT_EQ(base::UTF8ToUTF16("Can "), iter.GetString()); | |
| 393 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_LINE_OR_CHAR_BREAK); | |
| 394 EXPECT_TRUE(iter.Advance()); | |
| 395 // Finds the Russian characters and periods. | |
| 396 EXPECT_EQ(base::WideToUTF16(L"\x041C\x0438..."), iter.GetString()); | |
| 397 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_LINE_OR_CHAR_BREAK); | |
| 398 EXPECT_FALSE(iter.Advance()); | |
| 399 } | |
| 400 | |
| 401 // Make sure that in BREAK_WORD mode we're getting IS_WORD_BREAK and | |
| 402 // IS_SKIPPABLE_WORD when we should be. IS_WORD_BREAK should be returned when we | |
| 403 // finish going over non-punctuation characters while IS_SKIPPABLE_WORD should | |
| 404 // be returned on punctuation and spaces. | |
| 405 TEST(BreakIteratorTest, IsWordBreakBreakWord) { | |
| 406 // The string "foo ទេ \nCan Ми..." which contains English, Khmer, and Russian | |
| 407 // characters, in that order. | |
| 408 base::string16 text( | |
| 409 base::WideToUTF16(L"foo \x1791\x17c1 \nCan \x041C\x0438...")); | |
| 410 BreakIterator iter(text, BreakIterator::BREAK_WORD); | |
| 411 ASSERT_TRUE(iter.Init()); | |
| 412 | |
| 413 EXPECT_TRUE(iter.Advance()); | |
| 414 // Finds "foo". | |
| 415 EXPECT_EQ(base::UTF8ToUTF16("foo"), iter.GetString()); | |
| 416 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_WORD_BREAK); | |
| 417 EXPECT_TRUE(iter.Advance()); | |
| 418 // Finds the space, and the Khmer characters. | |
| 419 EXPECT_EQ(base::UTF8ToUTF16(" "), iter.GetString()); | |
| 420 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_SKIPPABLE_WORD); | |
| 421 EXPECT_TRUE(iter.Advance()); | |
| 422 EXPECT_EQ(base::WideToUTF16(L"\x1791\x17c1"), iter.GetString()); | |
| 423 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_WORD_BREAK); | |
| 424 EXPECT_TRUE(iter.Advance()); | |
| 425 // Finds the space and the newline. | |
| 426 EXPECT_EQ(base::UTF8ToUTF16(" "), iter.GetString()); | |
| 427 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_SKIPPABLE_WORD); | |
| 428 EXPECT_TRUE(iter.Advance()); | |
| 429 EXPECT_EQ(base::UTF8ToUTF16("\n"), iter.GetString()); | |
| 430 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_SKIPPABLE_WORD); | |
| 431 EXPECT_TRUE(iter.Advance()); | |
| 432 // Finds "Can". | |
| 433 EXPECT_EQ(base::UTF8ToUTF16("Can"), iter.GetString()); | |
| 434 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_WORD_BREAK); | |
| 435 EXPECT_TRUE(iter.Advance()); | |
| 436 // Finds the space and the Russian characters. | |
| 437 EXPECT_EQ(base::UTF8ToUTF16(" "), iter.GetString()); | |
| 438 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_SKIPPABLE_WORD); | |
| 439 EXPECT_TRUE(iter.Advance()); | |
| 440 EXPECT_EQ(base::WideToUTF16(L"\x041C\x0438"), iter.GetString()); | |
| 441 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_WORD_BREAK); | |
| 442 EXPECT_TRUE(iter.Advance()); | |
| 443 // Finds the trailing periods. | |
| 444 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString()); | |
| 445 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_SKIPPABLE_WORD); | |
| 446 EXPECT_TRUE(iter.Advance()); | |
| 447 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString()); | |
| 448 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_SKIPPABLE_WORD); | |
| 449 EXPECT_TRUE(iter.Advance()); | |
| 450 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString()); | |
| 451 EXPECT_TRUE(iter.IsWordBreak() == BreakIterator::IS_SKIPPABLE_WORD); | |
| 452 EXPECT_FALSE(iter.Advance()); | |
| 453 } | |
| 454 | |
| 372 } // namespace i18n | 455 } // namespace i18n |
| 373 } // namespace base | 456 } // namespace base |
| OLD | NEW |