| 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..9dee5ec0d5c4707f84363bf8cf9633c8ff0e767e 100644
|
| --- a/extensions/common/url_pattern_set_unittest.cc
|
| +++ b/extensions/common/url_pattern_set_unittest.cc
|
| @@ -17,6 +17,14 @@ void AddPattern(URLPatternSet* set, const std::string& pattern) {
|
| set->AddPattern(URLPattern(schemes, pattern));
|
| }
|
|
|
| +URLPatternSet GetAllURLsPattern() {
|
| + URLPatternSet set;
|
| + URLPattern pattern;
|
| + pattern.SetMatchAllURLs(true);
|
| + set.AddPattern(pattern);
|
| + return set;
|
| +}
|
| +
|
| URLPatternSet Patterns(const std::string& pattern) {
|
| URLPatternSet set;
|
| AddPattern(&set, pattern);
|
| @@ -393,4 +401,108 @@ TEST(URLPatternSetTest, NwayUnion) {
|
| }
|
| }
|
|
|
| +TEST(URLPatternSetTest, AllURLsSpecialCases) {
|
| + URLPatternSet empty;
|
| + URLPatternSet all_urls = GetAllURLsPattern();
|
| + URLPatternSet specific;
|
| + AddPattern(&specific, "http://www.google.com/*");
|
| + AddPattern(&specific, "http://www.yahoo.com/*");
|
| +
|
| + {
|
| + 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);
|
| + }
|
| +}
|
| +
|
| +TEST(URLPatternSetTest, OverlappingURLsSpecialCases) {
|
| + URLPatternSet empty;
|
| + URLPatternSet specific;
|
| + AddPattern(&specific, "http://www.google.com/*");
|
| + AddPattern(&specific, "http://www.yahoo.com/*");
|
| +
|
| + URLPatternSet overlapping;
|
| + AddPattern(&overlapping, "*://www.google.com/*");
|
| + AddPattern(&overlapping, "http://*.google.com/*");
|
| +
|
| + {
|
| + URLPatternSet result;
|
| + result.AddPatterns(overlapping);
|
| + EXPECT_EQ(overlapping, result);
|
| +
|
| + result.AddPatterns(specific);
|
| + URLPatternSet expected;
|
| + expected.AddPatterns(overlapping);
|
| + AddPattern(&expected, "http://www.yahoo.com/*");
|
| + EXPECT_EQ(expected, result);
|
| + }
|
| + {
|
| + URLPatternSet result;
|
| + URLPatternSet::CreateUnion(specific, overlapping, &result);
|
| +
|
| + URLPatternSet expected;
|
| + expected.AddPatterns(overlapping);
|
| + AddPattern(&expected, "http://www.yahoo.com/*");
|
| + EXPECT_EQ(expected, result);
|
| + }
|
| + {
|
| + URLPatternSet result;
|
| + URLPatternSet::CreateIntersection(specific, overlapping, &result);
|
| + URLPatternSet expected;
|
| + AddPattern(&expected, "http://www.google.com/*");
|
| + EXPECT_EQ(expected, result);
|
| + }
|
| + {
|
| + URLPatternSet result;
|
| + URLPatternSet::CreateDifference(specific, overlapping, &result);
|
| + URLPatternSet expected;
|
| + AddPattern(&expected, "http://www.yahoo.com/*");
|
| + EXPECT_EQ(expected, result);
|
| + }
|
| + {
|
| + URLPatternSet result;
|
| + URLPatternSet::CreateDifference(overlapping, specific, &result);
|
| + EXPECT_EQ(overlapping, result);
|
| + }
|
| +}
|
| +
|
| } // namespace extensions
|
|
|