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

Side by Side Diff: base/wide_string_piece_unittest.cc

Issue 7549003: Optimize phishing page term feature extraction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unnecesary macros in wide_string_piece_unittest.cc Created 9 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 | Annotate | Revision Log
OLDNEW
(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/wide_string_piece.h"
6
7 #include "base/logging.h"
8 #include "base/string16.h"
9 #include "base/utf_string_conversions.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace base {
13
14 TEST(WideStringPieceTest, CheckComparisonOperators) {
15 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("")) ==
Paweł Hajdan Jr. 2011/08/02 22:03:18 How about ASSERT_EQ? Up to you.
16 WideStringPiece(ASCIIToUTF16("")));
17 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) ==
18 WideStringPiece(ASCIIToUTF16("a")));
19 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) ==
20 WideStringPiece(ASCIIToUTF16("aa")));
21 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) ==
22 WideStringPiece(ASCIIToUTF16("")));
23 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("")) ==
24 WideStringPiece(ASCIIToUTF16("a")));
25 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) ==
26 WideStringPiece(ASCIIToUTF16("b")));
27 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) ==
28 WideStringPiece(ASCIIToUTF16("aa")));
29 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) ==
30 WideStringPiece(ASCIIToUTF16("a")));
31
32 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("")) !=
33 WideStringPiece(ASCIIToUTF16("")));
34 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) !=
35 WideStringPiece(ASCIIToUTF16("a")));
36 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) !=
37 WideStringPiece(ASCIIToUTF16("aa")));
38 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) !=
39 WideStringPiece(ASCIIToUTF16("")));
40 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("")) !=
41 WideStringPiece(ASCIIToUTF16("a")));
42 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) !=
43 WideStringPiece(ASCIIToUTF16("b")));
44 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) !=
45 WideStringPiece(ASCIIToUTF16("aa")));
46 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) !=
47 WideStringPiece(ASCIIToUTF16("a")));
48
49 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <
50 WideStringPiece(ASCIIToUTF16("b")));
51 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <
52 WideStringPiece(ASCIIToUTF16("aa")));
53 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <
54 WideStringPiece(ASCIIToUTF16("b")));
55 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <
56 WideStringPiece(ASCIIToUTF16("bb")));
57 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) <
58 WideStringPiece(ASCIIToUTF16("a")));
59 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <
60 WideStringPiece(ASCIIToUTF16("a")));
61 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) <
62 WideStringPiece(ASCIIToUTF16("a")));
63 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <
64 WideStringPiece(ASCIIToUTF16("aa")));
65 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("bb")) <
66 WideStringPiece(ASCIIToUTF16("aa")));
67
68 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
69 WideStringPiece(ASCIIToUTF16("a")));
70 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
71 WideStringPiece(ASCIIToUTF16("b")));
72 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
73 WideStringPiece(ASCIIToUTF16("aa")));
74 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
75 WideStringPiece(ASCIIToUTF16("b")));
76 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
77 WideStringPiece(ASCIIToUTF16("bb")));
78 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
79 WideStringPiece(ASCIIToUTF16("a")));
80 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) <=
81 WideStringPiece(ASCIIToUTF16("a")));
82 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
83 WideStringPiece(ASCIIToUTF16("aa")));
84 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("bb")) <=
85 WideStringPiece(ASCIIToUTF16("aa")));
86
87 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
88 WideStringPiece(ASCIIToUTF16("a")));
89 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
90 WideStringPiece(ASCIIToUTF16("b")));
91 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
92 WideStringPiece(ASCIIToUTF16("aa")));
93 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
94 WideStringPiece(ASCIIToUTF16("b")));
95 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
96 WideStringPiece(ASCIIToUTF16("bb")));
97 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
98 WideStringPiece(ASCIIToUTF16("a")));
99 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) <=
100 WideStringPiece(ASCIIToUTF16("a")));
101 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
102 WideStringPiece(ASCIIToUTF16("aa")));
103 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("bb")) <=
104 WideStringPiece(ASCIIToUTF16("aa")));
105
106 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >=
107 WideStringPiece(ASCIIToUTF16("b")));
108 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >=
109 WideStringPiece(ASCIIToUTF16("aa")));
110 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >=
111 WideStringPiece(ASCIIToUTF16("b")));
112 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >=
113 WideStringPiece(ASCIIToUTF16("bb")));
114 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) >=
115 WideStringPiece(ASCIIToUTF16("a")));
116 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >=
117 WideStringPiece(ASCIIToUTF16("a")));
118 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) >=
119 WideStringPiece(ASCIIToUTF16("a")));
120 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >=
121 WideStringPiece(ASCIIToUTF16("aa")));
122 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("bb")) >=
123 WideStringPiece(ASCIIToUTF16("aa")));
124
125 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >
126 WideStringPiece(ASCIIToUTF16("a")));
127 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >
128 WideStringPiece(ASCIIToUTF16("b")));
129 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >
130 WideStringPiece(ASCIIToUTF16("aa")));
131 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >
132 WideStringPiece(ASCIIToUTF16("b")));
133 ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >
134 WideStringPiece(ASCIIToUTF16("bb")));
135 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >
136 WideStringPiece(ASCIIToUTF16("a")));
137 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) >
138 WideStringPiece(ASCIIToUTF16("a")));
139 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >
140 WideStringPiece(ASCIIToUTF16("aa")));
141 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("bb")) >
142 WideStringPiece(ASCIIToUTF16("aa")));
143
144 string16 x;
145 for (int i = 0; i < 256; i++) {
146 x += 'a';
147 string16 y = x;
148 ASSERT_EQ(WideStringPiece(x), WideStringPiece(y));
149 for (int j = 0; j < i; j++) {
150 string16 z = x;
151 z[j] = 'b'; // Differs in position 'j'
152 ASSERT_NE(WideStringPiece(x), WideStringPiece(y));
153 }
154 }
155 }
156
157 TEST(WideStringPieceTest, CheckSTL) {
158 string16 first = ASCIIToUTF16("abcdefghijklmnopqrstuvwxyz");
159 WideStringPiece a(first);
160 string16 second = ASCIIToUTF16("abc");
161 WideStringPiece b(second.c_str());
162 string16 third = ASCIIToUTF16("xyz");
163 WideStringPiece c(third.c_str(), third.size());
164 string16 fourth = ASCIIToUTF16("foobarrandomstuff");
165 WideStringPiece d(fourth.c_str(), 6);
166 WideStringPiece e;
167 // Check some non-ascii characters.
168 string16 fifth(ASCIIToUTF16("123"));
169 fifth.push_back(0x0000);
170 fifth.push_back(0xd8c5);
171 fifth.push_back(0xdffe);
172 WideStringPiece f(fifth);
173
174 ASSERT_EQ(a[6], 'g');
175 ASSERT_EQ(b[0], 'a');
176 ASSERT_EQ(c[2], 'z');
177 ASSERT_EQ(f[3], '\0');
178 ASSERT_EQ(f[5], static_cast<char16>(0xdffe));
179
180 ASSERT_EQ(*d.data(), 'f');
181 ASSERT_EQ(d.data()[5], 'r');
182 ASSERT_TRUE(e.data() == NULL);
183
184 ASSERT_EQ(*a.begin(), 'a');
185 ASSERT_EQ(*(b.begin() + 2), 'c');
186 ASSERT_EQ(*(c.end() - 1), 'z');
187
188 ASSERT_EQ(*a.rbegin(), 'z');
189 ASSERT_EQ(*(b.rbegin() + 2), 'a');
190 ASSERT_EQ(*(c.rend() - 1), 'x');
191 ASSERT_TRUE(a.rbegin() + 26 == a.rend());
192
193 ASSERT_EQ(a.size(), 26U);
194 ASSERT_EQ(b.size(), 3U);
195 ASSERT_EQ(c.size(), 3U);
196 ASSERT_EQ(d.size(), 6U);
197 ASSERT_EQ(e.size(), 0U);
198 ASSERT_EQ(f.size(), 6U);
199
200 ASSERT_TRUE(!d.empty());
201 ASSERT_TRUE(d.begin() != d.end());
202 ASSERT_TRUE(d.begin() + 6 == d.end());
203
204 ASSERT_TRUE(e.empty());
205 ASSERT_TRUE(e.begin() == e.end());
206
207 d.clear();
208 ASSERT_EQ(d.size(), 0U);
209 ASSERT_TRUE(d.empty());
210 ASSERT_TRUE(d.data() == NULL);
211 ASSERT_TRUE(d.begin() == d.end());
212
213 ASSERT_GE(a.max_size(), a.capacity());
214 ASSERT_GE(a.capacity(), a.size());
215 }
216
217 TEST(WideStringPieceTest, CheckNULL) {
218 WideStringPiece s(NULL);
219 ASSERT_EQ(s.data(), (const char16*)NULL);
220 ASSERT_EQ(s.size(), 0U);
221
222 s.set(NULL);
223 ASSERT_EQ(s.data(), (const char16*)NULL);
224 ASSERT_EQ(s.size(), 0U);
225
226 string16 str = s.as_string16();
227 ASSERT_EQ(s.data(), (const char16*)NULL);
228 ASSERT_EQ(s.size(), 0U);
229 }
230
231 TEST(WideStringPieceTest, HeterogenousStringPieceEquals) {
232 ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("hello")) == ASCIIToUTF16("hello"));
233 }
234
235 TEST(WideStringPieceTest, CheckConversion) {
236 // Make sure that we can convert from UTF8 to UTF16 and back. We use a two
237 // byte character (G clef) to test this.
238 ASSERT_EQ(
239 UTF16ToUTF8(WideStringPiece(UTF8ToUTF16("\u1d11e")).as_string16()),
240 "\u1d11e");
241 }
242
243 } // namespace base
OLDNEW
« no previous file with comments | « base/wide_string_piece.h ('k') | chrome/renderer/safe_browsing/phishing_term_feature_extractor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698