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

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: Updated Khmer tests and ASCII-fied comments. 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 // A string containing the English word "foo", followed by two Khmer
376 // characters, the English word "Can", and then two Russian characters and
377 // punctuation.
378 base::string16 text(
379 base::WideToUTF16(L"foo \x1791\x17C1 \nCan \x041C\x0438..."));
380 BreakIterator iter(text, BreakIterator::BREAK_LINE);
381 ASSERT_TRUE(iter.Init());
382
383 EXPECT_TRUE(iter.Advance());
384 // Finds "foo" and the space.
385 EXPECT_EQ(base::UTF8ToUTF16("foo "), iter.GetString());
386 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_LINE_OR_CHAR_BREAK);
387 EXPECT_TRUE(iter.Advance());
388 // Finds the Khmer characters, the next space, and the newline.
389 EXPECT_EQ(base::WideToUTF16(L"\x1791\x17C1 \n"), iter.GetString());
390 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_LINE_OR_CHAR_BREAK);
391 EXPECT_TRUE(iter.Advance());
392 // Finds "Can" and the space.
393 EXPECT_EQ(base::UTF8ToUTF16("Can "), iter.GetString());
394 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_LINE_OR_CHAR_BREAK);
395 EXPECT_TRUE(iter.Advance());
396 // Finds the Russian characters and periods.
397 EXPECT_EQ(base::WideToUTF16(L"\x041C\x0438..."), iter.GetString());
398 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_LINE_OR_CHAR_BREAK);
399 EXPECT_FALSE(iter.Advance());
400 }
401
402 // Make sure that in BREAK_WORD mode we're getting IS_WORD_BREAK and
403 // IS_SKIPPABLE_WORD when we should be. IS_WORD_BREAK should be returned when we
404 // finish going over non-punctuation characters while IS_SKIPPABLE_WORD should
405 // be returned on punctuation and spaces.
406 TEST(BreakIteratorTest, GetWordBreakStatusBreakWord) {
407 // A string containing the English word "foo", followed by two Khmer
408 // characters, the English word "Can", and then two Russian characters and
409 // punctuation.
410 base::string16 text(
411 base::WideToUTF16(L"foo \x1791\x17C1 \nCan \x041C\x0438..."));
412 BreakIterator iter(text, BreakIterator::BREAK_WORD);
413 ASSERT_TRUE(iter.Init());
414
415 EXPECT_TRUE(iter.Advance());
416 // Finds "foo".
417 EXPECT_EQ(base::UTF8ToUTF16("foo"), iter.GetString());
418 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_WORD_BREAK);
419 EXPECT_TRUE(iter.Advance());
420 // Finds the space, and the Khmer characters.
421 EXPECT_EQ(base::UTF8ToUTF16(" "), iter.GetString());
422 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
423 EXPECT_TRUE(iter.Advance());
424 EXPECT_EQ(base::WideToUTF16(L"\x1791\x17C1"), iter.GetString());
425 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_WORD_BREAK);
426 EXPECT_TRUE(iter.Advance());
427 // Finds the space and the newline.
428 EXPECT_EQ(base::UTF8ToUTF16(" "), iter.GetString());
429 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
430 EXPECT_TRUE(iter.Advance());
431 EXPECT_EQ(base::UTF8ToUTF16("\n"), iter.GetString());
432 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
433 EXPECT_TRUE(iter.Advance());
434 // Finds "Can".
435 EXPECT_EQ(base::UTF8ToUTF16("Can"), iter.GetString());
436 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_WORD_BREAK);
437 EXPECT_TRUE(iter.Advance());
438 // Finds the space and the Russian characters.
439 EXPECT_EQ(base::UTF8ToUTF16(" "), iter.GetString());
440 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
441 EXPECT_TRUE(iter.Advance());
442 EXPECT_EQ(base::WideToUTF16(L"\x041C\x0438"), iter.GetString());
443 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_WORD_BREAK);
444 EXPECT_TRUE(iter.Advance());
445 // Finds the trailing periods.
446 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString());
447 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
448 EXPECT_TRUE(iter.Advance());
449 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString());
450 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
451 EXPECT_TRUE(iter.Advance());
452 EXPECT_EQ(base::UTF8ToUTF16("."), iter.GetString());
453 EXPECT_EQ(iter.GetWordBreakStatus(), BreakIterator::IS_SKIPPABLE_WORD);
454 EXPECT_FALSE(iter.Advance());
455 }
456
372 } // namespace i18n 457 } // namespace i18n
373 } // namespace base 458 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698