Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: base/i18n/break_iterator_unittest.cc

Issue 1272683002: Creates BreakIterator::GetWordBreakStatus. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment clarifications and using EXPECT_EQ. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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, GetWordBreakStatusBreakLine) {
375 // The string "foo ទេ \nCan Ми..." which contains English, Khmer, and Russian
jungshik at Google 2015/08/11 21:43:50 Due to an issue with Visual Studio, we cannot use
Julius 2015/08/12 01:22:21 I got rid of the non-ASCII characters in the comme
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_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_LINE_OR_CHAR_BREAK);
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_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_LINE_OR_CHAR_BREAK);
390 EXPECT_TRUE(iter.Advance());
391 // Finds "Can" and the space.
392 EXPECT_EQ(base::UTF8ToUTF16("Can "), iter.GetString());
393 EXPECT_EQ(iter.GetWordBreakStatus(), 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_EQ(iter.GetWordBreakStatus(), 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, GetWordBreakStatusBreakWord) {
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_EQ(iter.GetWordBreakStatus(), 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_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
421 EXPECT_TRUE(iter.Advance());
422 EXPECT_EQ(base::WideToUTF16(L"\x1791\x17c1"), iter.GetString());
423 EXPECT_EQ(iter.GetWordBreakStatus(), 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_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
428 EXPECT_TRUE(iter.Advance());
429 EXPECT_EQ(base::UTF8ToUTF16("\n"), iter.GetString());
430 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
431 EXPECT_TRUE(iter.Advance());
432 // Finds "Can".
433 EXPECT_EQ(base::UTF8ToUTF16("Can"), iter.GetString());
434 EXPECT_EQ(iter.GetWordBreakStatus(), 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_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
439 EXPECT_TRUE(iter.Advance());
440 EXPECT_EQ(base::WideToUTF16(L"\x041C\x0438"), iter.GetString());
441 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_WORD_BREAK);
442 EXPECT_TRUE(iter.Advance());
443 // Finds the trailing periods.
444 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString());
445 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
446 EXPECT_TRUE(iter.Advance());
447 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString());
448 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
449 EXPECT_TRUE(iter.Advance());
450 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString());
451 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
452 EXPECT_FALSE(iter.Advance());
453 }
454
372 } // namespace i18n 455 } // namespace i18n
373 } // namespace base 456 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698