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 |