- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / app_list / search / term_break_iterator_unittest.cc
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/app_list/search/term_break_iterator.h"
6
7 #include "base/strings/utf_string_conversions.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace app_list {
11 namespace test {
12
13 TEST(TermBreakIteratorTest, EmptyWord) {
14   string16 empty;
15   TermBreakIterator iter(empty);
16   EXPECT_FALSE(iter.Advance());
17 }
18
19 TEST(TermBreakIteratorTest, Simple) {
20   string16 word(UTF8ToUTF16("simple"));
21   TermBreakIterator iter(word);
22   EXPECT_TRUE(iter.Advance());
23   EXPECT_EQ(UTF8ToUTF16("simple"), iter.GetCurrentTerm());
24   EXPECT_FALSE(iter.Advance());  // Test unexpected advance after end.
25 }
26
27 TEST(TermBreakIteratorTest, CamelCase) {
28   string16 word(UTF8ToUTF16("CamelCase"));
29   TermBreakIterator iter(word);
30   EXPECT_TRUE(iter.Advance());
31   EXPECT_EQ(UTF8ToUTF16("Camel"), iter.GetCurrentTerm());
32   EXPECT_TRUE(iter.Advance());
33   EXPECT_EQ(UTF8ToUTF16("Case"), iter.GetCurrentTerm());
34   EXPECT_FALSE(iter.Advance());  // Test unexpected advance after end.
35 }
36
37 TEST(TermBreakIteratorTest, LowerToUpper) {
38   string16 word(UTF8ToUTF16("lowerToUpper"));
39   TermBreakIterator iter(word);
40   EXPECT_TRUE(iter.Advance());
41   EXPECT_EQ(UTF8ToUTF16("lower"), iter.GetCurrentTerm());
42   EXPECT_TRUE(iter.Advance());
43   EXPECT_EQ(UTF8ToUTF16("To"), iter.GetCurrentTerm());
44   EXPECT_TRUE(iter.Advance());
45   EXPECT_EQ(UTF8ToUTF16("Upper"), iter.GetCurrentTerm());
46   EXPECT_FALSE(iter.Advance());  // Test unexpected advance after end.
47 }
48
49 TEST(TermBreakIteratorTest, AlphaNumber) {
50   string16 word(UTF8ToUTF16("Chromium26.0.0.0"));
51   TermBreakIterator iter(word);
52   EXPECT_TRUE(iter.Advance());
53   EXPECT_EQ(UTF8ToUTF16("Chromium"), iter.GetCurrentTerm());
54   EXPECT_TRUE(iter.Advance());
55   EXPECT_EQ(UTF8ToUTF16("26.0.0.0"), iter.GetCurrentTerm());
56   EXPECT_FALSE(iter.Advance());  // Test unexpected advance after end.
57 }
58
59 TEST(TermBreakIteratorTest, StartsWithNumber) {
60   string16 word(UTF8ToUTF16("123startWithNumber"));
61   TermBreakIterator iter(word);
62   EXPECT_TRUE(iter.Advance());
63   EXPECT_EQ(UTF8ToUTF16("123"), iter.GetCurrentTerm());
64   EXPECT_TRUE(iter.Advance());
65   EXPECT_EQ(UTF8ToUTF16("start"), iter.GetCurrentTerm());
66   EXPECT_TRUE(iter.Advance());
67   EXPECT_EQ(UTF8ToUTF16("With"), iter.GetCurrentTerm());
68   EXPECT_TRUE(iter.Advance());
69   EXPECT_EQ(UTF8ToUTF16("Number"), iter.GetCurrentTerm());
70   EXPECT_FALSE(iter.Advance());  // Test unexpected advance after end.
71 }
72
73 TEST(TermBreakIteratorTest, CaseAndNoCase) {
74   // "English" + two Chinese chars U+4E2D U+6587 + "Word"
75   string16 word(UTF8ToUTF16("English\xe4\xb8\xad\xe6\x96\x87Word"));
76   TermBreakIterator iter(word);
77   EXPECT_TRUE(iter.Advance());
78   EXPECT_EQ(UTF8ToUTF16("English"), iter.GetCurrentTerm());
79   EXPECT_TRUE(iter.Advance());
80   EXPECT_EQ(UTF8ToUTF16("\xe4\xb8\xad\xe6\x96\x87"), iter.GetCurrentTerm());
81   EXPECT_TRUE(iter.Advance());
82   EXPECT_EQ(UTF8ToUTF16("Word"), iter.GetCurrentTerm());
83   EXPECT_FALSE(iter.Advance());  // Test unexpected advance after end.
84 }
85
86 }  // namespace test
87 }  // namespace app_list