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

Side by Side Diff: chrome/common/extensions/url_pattern_set_unittest.cc

Issue 10443105: Take 2 at implementing activeTab. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: aa comments, revert XHR stuff Created 8 years, 6 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
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 "chrome/common/extensions/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #include "googleurl/src/gurl.h" 7 #include "googleurl/src/gurl.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace { 10 namespace {
11 11
12 static void AddPattern(URLPatternSet* set, const std::string& pattern) { 12 void AddPattern(URLPatternSet* set, const std::string& pattern) {
13 int schemes = URLPattern::SCHEME_ALL; 13 int schemes = URLPattern::SCHEME_ALL;
14 set->AddPattern(URLPattern(schemes, pattern)); 14 set->AddPattern(URLPattern(schemes, pattern));
15 } 15 }
16 16
17 URLPatternSet Patterns(const std::string& pattern) {
18 URLPatternSet set;
19 AddPattern(&set, pattern);
20 return set;
17 } 21 }
22
23 URLPatternSet Patterns(const std::string& pattern1,
24 const std::string& pattern2) {
25 URLPatternSet set;
26 AddPattern(&set, pattern1);
27 AddPattern(&set, pattern2);
28 return set;
29 }
30
31 }
32
18 TEST(URLPatternSetTest, Empty) { 33 TEST(URLPatternSetTest, Empty) {
19 URLPatternSet set; 34 URLPatternSet set;
20 EXPECT_FALSE(set.MatchesURL(GURL("http://www.foo.com/bar"))); 35 EXPECT_FALSE(set.MatchesURL(GURL("http://www.foo.com/bar")));
21 EXPECT_FALSE(set.MatchesURL(GURL())); 36 EXPECT_FALSE(set.MatchesURL(GURL()));
22 EXPECT_FALSE(set.MatchesURL(GURL("invalid"))); 37 EXPECT_FALSE(set.MatchesURL(GURL("invalid")));
23 } 38 }
24 39
25 TEST(URLPatternSetTest, One) { 40 TEST(URLPatternSetTest, One) {
26 URLPatternSet set; 41 URLPatternSet set;
27 AddPattern(&set, "http://www.google.com/*"); 42 AddPattern(&set, "http://www.google.com/*");
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 AddPattern(&expected, "http://www.google.com/f*"); 134 AddPattern(&expected, "http://www.google.com/f*");
120 135
121 result.ClearPatterns(); 136 result.ClearPatterns();
122 URLPatternSet::CreateIntersection(set1, set2, &result); 137 URLPatternSet::CreateIntersection(set1, set2, &result);
123 EXPECT_EQ(expected, result); 138 EXPECT_EQ(expected, result);
124 EXPECT_FALSE(result.is_empty()); 139 EXPECT_FALSE(result.is_empty());
125 EXPECT_TRUE(set1.Contains(result)); 140 EXPECT_TRUE(set1.Contains(result));
126 EXPECT_TRUE(set2.Contains(result)); 141 EXPECT_TRUE(set2.Contains(result));
127 } 142 }
128 143
129 TEST(URLPatternSetTest, CreateUnion) {
not at google - send to devlin 2012/06/12 20:40:51 oops
130 URLPatternSet empty_set;
131
132 URLPatternSet set1;
133 AddPattern(&set1, "http://www.google.com/f*");
134 AddPattern(&set1, "http://www.yahoo.com/b*");
135
136 URLPatternSet expected;
137 AddPattern(&expected, "http://www.google.com/f*");
138 AddPattern(&expected, "http://www.yahoo.com/b*");
139
140 // Union with an empty set.
141 URLPatternSet result;
142 URLPatternSet::CreateUnion(set1, empty_set, &result);
143 EXPECT_EQ(expected, result);
144
145 // Union with a real set.
146 URLPatternSet set2;
147 AddPattern(&set2, "http://www.reddit.com/f*");
148 AddPattern(&set2, "http://www.yahoo.com/z*");
149 AddPattern(&set2, "http://www.google.com/f*");
150
151 AddPattern(&expected, "http://www.reddit.com/f*");
152 AddPattern(&expected, "http://www.yahoo.com/z*");
153
154 result.ClearPatterns();
155 URLPatternSet::CreateUnion(set1, set2, &result);
156 EXPECT_EQ(expected, result);
157 }
158
159 TEST(URLPatternSetTest, Contains) { 144 TEST(URLPatternSetTest, Contains) {
160 URLPatternSet set1; 145 URLPatternSet set1;
161 URLPatternSet set2; 146 URLPatternSet set2;
162 URLPatternSet empty_set; 147 URLPatternSet empty_set;
163 148
164 AddPattern(&set1, "http://www.google.com/*"); 149 AddPattern(&set1, "http://www.google.com/*");
165 AddPattern(&set1, "http://www.yahoo.com/*"); 150 AddPattern(&set1, "http://www.yahoo.com/*");
166 151
167 AddPattern(&set2, "http://www.reddit.com/*"); 152 AddPattern(&set2, "http://www.reddit.com/*");
168 153
(...skipping 23 matching lines...) Expand all
192 URLPatternSet set2; 177 URLPatternSet set2;
193 178
194 AddPattern(&set1, "http://www.google.com/*"); 179 AddPattern(&set1, "http://www.google.com/*");
195 AddPattern(&set2, "http://www.google.com/*"); 180 AddPattern(&set2, "http://www.google.com/*");
196 181
197 AddPattern(&set1, "http://www.google.com/*"); 182 AddPattern(&set1, "http://www.google.com/*");
198 183
199 // The sets should still be equal after adding a duplicate. 184 // The sets should still be equal after adding a duplicate.
200 EXPECT_EQ(set2, set1); 185 EXPECT_EQ(set2, set1);
201 } 186 }
187
188 TEST(URLPatternSetTest, CreateUnion) {
189 URLPatternSet empty_set;
190
191 URLPatternSet set1;
192 AddPattern(&set1, "http://www.google.com/f*");
193 AddPattern(&set1, "http://www.yahoo.com/b*");
194
195 URLPatternSet expected;
196 AddPattern(&expected, "http://www.google.com/f*");
197 AddPattern(&expected, "http://www.yahoo.com/b*");
198
199 // Union with an empty set.
200 URLPatternSet result;
201 URLPatternSet::CreateUnion(set1, empty_set, &result);
202 EXPECT_EQ(expected, result);
203
204 // Union with a real set.
205 URLPatternSet set2;
206 AddPattern(&set2, "http://www.reddit.com/f*");
207 AddPattern(&set2, "http://www.yahoo.com/z*");
208 AddPattern(&set2, "http://www.google.com/f*");
209
210 AddPattern(&expected, "http://www.reddit.com/f*");
211 AddPattern(&expected, "http://www.yahoo.com/z*");
212
213 result.ClearPatterns();
214 URLPatternSet::CreateUnion(set1, set2, &result);
215 EXPECT_EQ(expected, result);
216 }
217
218 TEST(URLPatternSetTest, NwayUnion) {
219 std::string google_a = "http://www.google.com/a*";
220 std::string google_b = "http://www.google.com/b*";
221 std::string google_c = "http://www.google.com/c*";
222 std::string yahoo_a = "http://www.yahoo.com/a*";
223 std::string yahoo_b = "http://www.yahoo.com/b*";
224 std::string yahoo_c = "http://www.yahoo.com/c*";
225 std::string reddit_a = "http://www.reddit.com/a*";
226 std::string reddit_b = "http://www.reddit.com/b*";
227 std::string reddit_c = "http://www.reddit.com/c*";
228
229 // Empty list.
230 {
231 std::vector<URLPatternSet> empty;
232
233 URLPatternSet result;
234 URLPatternSet::CreateUnion(empty, &result);
235
236 URLPatternSet expected;
237 EXPECT_EQ(expected, result);
238 }
239
240 // Singleton list.
241 {
242 std::vector<URLPatternSet> test;
243 test.push_back(Patterns(google_a));
244
245 URLPatternSet result;
246 URLPatternSet::CreateUnion(test, &result);
247
248 URLPatternSet expected = Patterns(google_a);
249 EXPECT_EQ(expected, result);
250 }
251
252 // List with 2 elements.
253 {
254
255 std::vector<URLPatternSet> test;
256 test.push_back(Patterns(google_a, google_b));
257 test.push_back(Patterns(google_b, google_c));
258
259 URLPatternSet result;
260 URLPatternSet::CreateUnion(test, &result);
261
262 URLPatternSet expected;
263 AddPattern(&expected, google_a);
264 AddPattern(&expected, google_b);
265 AddPattern(&expected, google_c);
266 EXPECT_EQ(expected, result);
267 }
268
269 // List with 3 elements.
270 {
271 std::vector<URLPatternSet> test;
272 test.push_back(Patterns(google_a, google_b));
273 test.push_back(Patterns(google_b, google_c));
274 test.push_back(Patterns(yahoo_a, yahoo_b));
275
276 URLPatternSet result;
277 URLPatternSet::CreateUnion(test, &result);
278
279 URLPatternSet expected;
280 AddPattern(&expected, google_a);
281 AddPattern(&expected, google_b);
282 AddPattern(&expected, google_c);
283 AddPattern(&expected, yahoo_a);
284 AddPattern(&expected, yahoo_b);
285 EXPECT_EQ(expected, result);
286 }
287
288 // List with 7 elements.
289 {
290 std::vector<URLPatternSet> test;
291 test.push_back(Patterns(google_a));
292 test.push_back(Patterns(google_b));
293 test.push_back(Patterns(google_c));
294 test.push_back(Patterns(yahoo_a));
295 test.push_back(Patterns(yahoo_b));
296 test.push_back(Patterns(yahoo_c));
297 test.push_back(Patterns(reddit_a));
298
299 URLPatternSet result;
300 URLPatternSet::CreateUnion(test, &result);
301
302 URLPatternSet expected;
303 AddPattern(&expected, google_a);
304 AddPattern(&expected, google_b);
305 AddPattern(&expected, google_c);
306 AddPattern(&expected, yahoo_a);
307 AddPattern(&expected, yahoo_b);
308 AddPattern(&expected, yahoo_c);
309 AddPattern(&expected, reddit_a);
310 EXPECT_EQ(expected, result);
311 }
312
313 // List with 8 elements.
314 {
315 std::vector<URLPatternSet> test;
316 test.push_back(Patterns(google_a));
317 test.push_back(Patterns(google_b));
318 test.push_back(Patterns(google_c));
319 test.push_back(Patterns(yahoo_a));
320 test.push_back(Patterns(yahoo_b));
321 test.push_back(Patterns(yahoo_c));
322 test.push_back(Patterns(reddit_a));
323 test.push_back(Patterns(reddit_b));
324
325 URLPatternSet result;
326 URLPatternSet::CreateUnion(test, &result);
327
328 URLPatternSet expected;
329 AddPattern(&expected, google_a);
330 AddPattern(&expected, google_b);
331 AddPattern(&expected, google_c);
332 AddPattern(&expected, yahoo_a);
333 AddPattern(&expected, yahoo_b);
334 AddPattern(&expected, yahoo_c);
335 AddPattern(&expected, reddit_a);
336 AddPattern(&expected, reddit_b);
337 EXPECT_EQ(expected, result);
338 }
339
340 // List with 9 elements.
341 {
342
343 std::vector<URLPatternSet> test;
344 test.push_back(Patterns(google_a));
345 test.push_back(Patterns(google_b));
346 test.push_back(Patterns(google_c));
347 test.push_back(Patterns(yahoo_a));
348 test.push_back(Patterns(yahoo_b));
349 test.push_back(Patterns(yahoo_c));
350 test.push_back(Patterns(reddit_a));
351 test.push_back(Patterns(reddit_b));
352 test.push_back(Patterns(reddit_c));
353
354 URLPatternSet result;
355 URLPatternSet::CreateUnion(test, &result);
356
357 URLPatternSet expected;
358 AddPattern(&expected, google_a);
359 AddPattern(&expected, google_b);
360 AddPattern(&expected, google_c);
361 AddPattern(&expected, yahoo_a);
362 AddPattern(&expected, yahoo_b);
363 AddPattern(&expected, yahoo_c);
364 AddPattern(&expected, reddit_a);
365 AddPattern(&expected, reddit_b);
366 AddPattern(&expected, reddit_c);
367 EXPECT_EQ(expected, result);
368 }
369 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698