Chromium Code Reviews| Index: extensions/common/url_pattern_set_unittest.cc |
| diff --git a/extensions/common/url_pattern_set_unittest.cc b/extensions/common/url_pattern_set_unittest.cc |
| index 89b5435b820dc1fd0937c44c896fe6bda670b0d2..e0b0340090f40581a78ef4856efc316f265ec89f 100644 |
| --- a/extensions/common/url_pattern_set_unittest.cc |
| +++ b/extensions/common/url_pattern_set_unittest.cc |
| @@ -17,6 +17,12 @@ void AddPattern(URLPatternSet* set, const std::string& pattern) { |
| set->AddPattern(URLPattern(schemes, pattern)); |
| } |
| +void AddMatchAllURLsPattern(URLPatternSet* set) { |
| + URLPattern pattern; |
| + pattern.SetMatchAllURLs(true); |
| + set->AddPattern(pattern); |
| +} |
| + |
| URLPatternSet Patterns(const std::string& pattern) { |
| URLPatternSet set; |
| AddPattern(&set, pattern); |
| @@ -393,4 +399,58 @@ TEST(URLPatternSetTest, NwayUnion) { |
| } |
| } |
| +TEST(URLPatternSetTest, SubsetSpecialCases) { |
| + URLPatternSet empty; |
| + URLPatternSet all_urls; |
| + AddMatchAllURLsPattern(&all_urls); |
|
not at google - send to devlin
2014/02/27 21:10:46
presumably these sets are copyable. so you could h
|
| + URLPatternSet specific; |
| + AddPattern(&specific, "http://www.google.com/*"); |
| + AddPattern(&specific, "http://www.yahoo.com/*"); |
| + |
|
not at google - send to devlin
2014/02/27 21:10:46
there are some other cases here that it might be g
|
| + { |
| + URLPatternSet result; |
| + result.AddPatterns(specific); |
| + EXPECT_EQ(specific, result); |
| + result.AddPatterns(all_urls); |
| + EXPECT_EQ(all_urls, result); |
| + } |
| + { |
| + URLPatternSet result; |
| + result.AddPatterns(all_urls); |
| + EXPECT_EQ(all_urls, result); |
| + result.AddPatterns(specific); |
| + EXPECT_EQ(all_urls, result); |
| + } |
| + { |
| + URLPatternSet result; |
| + URLPatternSet::CreateUnion(all_urls, specific, &result); |
| + EXPECT_EQ(all_urls, result); |
| + } |
| + { |
| + URLPatternSet result; |
| + URLPatternSet::CreateUnion(specific, all_urls, &result); |
| + EXPECT_EQ(all_urls, result); |
| + } |
| + { |
| + URLPatternSet result; |
| + URLPatternSet::CreateIntersection(all_urls, specific, &result); |
| + EXPECT_EQ(specific, result); |
| + } |
| + { |
| + URLPatternSet result; |
| + URLPatternSet::CreateIntersection(specific, all_urls, &result); |
| + EXPECT_EQ(specific, result); |
| + } |
| + { |
| + URLPatternSet result; |
| + URLPatternSet::CreateDifference(all_urls, specific, &result); |
| + EXPECT_EQ(all_urls, result); |
| + } |
| + { |
| + URLPatternSet result; |
| + URLPatternSet::CreateDifference(specific, all_urls, &result); |
| + EXPECT_EQ(empty, result); |
| + } |
| +} |
| + |
| } // namespace extensions |