OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/logging.h" | |
6 #include "base/utf_string_conversions.h" | |
7 #include "chrome/browser/ui/title_prefix_matcher.h" | |
8 #include "googleurl/src/gurl.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 namespace { | |
12 const GURL kUrlA1("http://a.b.c/123"); | |
13 const GURL kUrlA2("http://a.b.c/alphabits"); | |
14 const GURL kUrlB1("http://www.here.com/here/and/there"); | |
15 const GURL kUrlB2("http://www.here.com/elsewhere"); | |
16 const GURL kUrlC1("http://www.here.ca/far/far/away"); | |
17 const string16 kFoofooAbcdef(ASCIIToUTF16("Foofoo abcdef")); | |
18 const string16 kFoofooAbcdeg(ASCIIToUTF16("Foofoo abcdeg")); | |
19 const string16 kFooAbcdef(ASCIIToUTF16("Foo abcdef")); | |
20 const string16 kFooAbcdeg(ASCIIToUTF16("Foo abcdeg")); | |
21 const string16 kBarAbcDef(ASCIIToUTF16("Bar abc def")); | |
22 const string16 kBarAbcDeg(ASCIIToUTF16("Bar abc deg")); | |
23 const string16 kBarAbdDef(ASCIIToUTF16("Bar abd def")); | |
24 const string16 kBar(ASCIIToUTF16("Bar")); | |
25 const string16 kFoo(ASCIIToUTF16("Foo")); | |
26 | |
27 } | |
28 | |
29 TEST(TitlePrefixMatcherTest, BasicTests) { | |
30 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos; | |
31 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, | |
32 kUrlA1, 0)); | |
33 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg, | |
34 kUrlA1, 1)); | |
35 | |
36 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); | |
37 EXPECT_EQ(0, tab_title_infos[0].caller_value); | |
38 EXPECT_EQ(7U, tab_title_infos[0].prefix_length); | |
39 | |
40 EXPECT_EQ(1, tab_title_infos[1].caller_value); | |
41 EXPECT_EQ(7U, tab_title_infos[1].prefix_length); | |
42 | |
43 tab_title_infos.clear(); | |
44 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, | |
45 kUrlA1, 0)); | |
46 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg, | |
47 kUrlA1, 1)); | |
48 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef, | |
49 kUrlA1, 2)); | |
50 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg, | |
51 kUrlA1, 3)); | |
52 | |
53 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); | |
54 EXPECT_EQ(0, tab_title_infos[0].caller_value); | |
55 EXPECT_EQ(7U, tab_title_infos[0].prefix_length); | |
56 | |
57 EXPECT_EQ(1, tab_title_infos[1].caller_value); | |
58 EXPECT_EQ(7U, tab_title_infos[1].prefix_length); | |
59 | |
60 EXPECT_EQ(2, tab_title_infos[2].caller_value); | |
61 EXPECT_EQ(4U, tab_title_infos[2].prefix_length); | |
62 | |
63 EXPECT_EQ(3, tab_title_infos[3].caller_value); | |
64 EXPECT_EQ(4U, tab_title_infos[3].prefix_length); | |
65 } | |
66 | |
67 TEST(TitlePrefixMatcherTest, Duplicates) { | |
68 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos; | |
69 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, | |
70 kUrlA1, 0)); | |
71 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg, | |
72 kUrlA1, 1)); | |
73 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef, | |
74 kUrlA1, 2)); | |
75 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg, | |
76 kUrlA1, 3)); | |
77 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, | |
78 kUrlA1, 4)); | |
79 | |
80 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); | |
81 EXPECT_EQ(0, tab_title_infos[0].caller_value); | |
82 EXPECT_EQ(0U, tab_title_infos[0].prefix_length); | |
83 | |
84 EXPECT_EQ(1, tab_title_infos[1].caller_value); | |
85 EXPECT_EQ(0U, tab_title_infos[1].prefix_length); | |
86 | |
87 EXPECT_EQ(2, tab_title_infos[2].caller_value); | |
88 EXPECT_EQ(4U, tab_title_infos[2].prefix_length); | |
89 | |
90 EXPECT_EQ(3, tab_title_infos[3].caller_value); | |
91 EXPECT_EQ(4U, tab_title_infos[3].prefix_length); | |
92 | |
93 EXPECT_EQ(4, tab_title_infos[4].caller_value); | |
94 EXPECT_EQ(0U, tab_title_infos[4].prefix_length); | |
95 } | |
96 | |
97 TEST(TitlePrefixMatcherTest, MultiplePrefixes) { | |
98 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos; | |
99 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef, | |
100 kUrlA1, 0)); | |
101 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg, | |
102 kUrlA1, 1)); | |
103 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDef, | |
104 kUrlA1, 2)); | |
105 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDeg, | |
106 kUrlA1, 3)); | |
107 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbdDef, | |
108 kUrlA1, 4)); | |
109 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBar, | |
110 kUrlA1, 5)); | |
111 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoo, | |
112 kUrlA1, 6)); | |
113 | |
114 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); | |
115 EXPECT_EQ(0, tab_title_infos[0].caller_value); | |
116 EXPECT_EQ(4U, tab_title_infos[0].prefix_length); | |
117 | |
118 EXPECT_EQ(1, tab_title_infos[1].caller_value); | |
119 EXPECT_EQ(4U, tab_title_infos[1].prefix_length); | |
120 | |
121 EXPECT_EQ(2, tab_title_infos[2].caller_value); | |
122 EXPECT_EQ(8U, tab_title_infos[2].prefix_length); | |
123 | |
124 EXPECT_EQ(3, tab_title_infos[3].caller_value); | |
125 EXPECT_EQ(8U, tab_title_infos[3].prefix_length); | |
126 | |
127 EXPECT_EQ(4, tab_title_infos[4].caller_value); | |
128 EXPECT_EQ(4U, tab_title_infos[4].prefix_length); | |
129 | |
130 EXPECT_EQ(5, tab_title_infos[5].caller_value); | |
131 EXPECT_EQ(0U, tab_title_infos[5].prefix_length); | |
132 | |
133 EXPECT_EQ(6, tab_title_infos[6].caller_value); | |
134 EXPECT_EQ(0U, tab_title_infos[6].prefix_length); | |
135 } | |
136 | |
137 TEST(TitlePrefixMatcherTest, DifferentHosts) { | |
138 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos; | |
139 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, | |
140 kUrlA1, 0)); | |
141 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg, | |
142 kUrlA2, 1)); | |
143 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef, | |
144 kUrlB1, 2)); | |
145 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbdDef, | |
146 kUrlC1, 3)); | |
147 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDef, | |
148 kUrlA1, 4)); | |
149 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDeg, | |
150 kUrlA2, 5)); | |
151 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg, | |
152 kUrlB2, 6)); | |
153 | |
154 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); | |
155 EXPECT_EQ(0, tab_title_infos[0].caller_value); | |
156 EXPECT_EQ(7U, tab_title_infos[0].prefix_length); | |
157 | |
158 EXPECT_EQ(1, tab_title_infos[1].caller_value); | |
159 EXPECT_EQ(7U, tab_title_infos[1].prefix_length); | |
160 | |
161 EXPECT_EQ(2, tab_title_infos[2].caller_value); | |
162 EXPECT_EQ(4U, tab_title_infos[2].prefix_length); | |
163 | |
164 EXPECT_EQ(3, tab_title_infos[3].caller_value); | |
165 EXPECT_EQ(0U, tab_title_infos[3].prefix_length); | |
166 | |
167 EXPECT_EQ(4, tab_title_infos[4].caller_value); | |
168 EXPECT_EQ(8U, tab_title_infos[4].prefix_length); | |
169 | |
170 EXPECT_EQ(5, tab_title_infos[5].caller_value); | |
171 EXPECT_EQ(8U, tab_title_infos[5].prefix_length); | |
172 | |
173 EXPECT_EQ(6, tab_title_infos[6].caller_value); | |
174 EXPECT_EQ(4U, tab_title_infos[6].prefix_length); | |
175 } | |
OLD | NEW |