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

Unified Diff: extensions/common/url_pattern_set_unittest.cc

Issue 181043006: Implement correct logic for URLPatternSet set operators. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
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
« extensions/common/url_pattern_set.cc ('K') | « extensions/common/url_pattern_set.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698