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 |