| Index: chrome/common/extensions/url_pattern_set_unittest.cc
|
| diff --git a/chrome/common/extensions/url_pattern_set_unittest.cc b/chrome/common/extensions/url_pattern_set_unittest.cc
|
| deleted file mode 100644
|
| index 56dc518d233c7267cc3320f7d3c929b8a5a127be..0000000000000000000000000000000000000000
|
| --- a/chrome/common/extensions/url_pattern_set_unittest.cc
|
| +++ /dev/null
|
| @@ -1,392 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/common/extensions/extension.h"
|
| -
|
| -#include "base/values.h"
|
| -#include "googleurl/src/gurl.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace {
|
| -
|
| -void AddPattern(URLPatternSet* set, const std::string& pattern) {
|
| - int schemes = URLPattern::SCHEME_ALL;
|
| - set->AddPattern(URLPattern(schemes, pattern));
|
| -}
|
| -
|
| -URLPatternSet Patterns(const std::string& pattern) {
|
| - URLPatternSet set;
|
| - AddPattern(&set, pattern);
|
| - return set;
|
| -}
|
| -
|
| -URLPatternSet Patterns(const std::string& pattern1,
|
| - const std::string& pattern2) {
|
| - URLPatternSet set;
|
| - AddPattern(&set, pattern1);
|
| - AddPattern(&set, pattern2);
|
| - return set;
|
| -}
|
| -
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, Empty) {
|
| - URLPatternSet set;
|
| - EXPECT_FALSE(set.MatchesURL(GURL("http://www.foo.com/bar")));
|
| - EXPECT_FALSE(set.MatchesURL(GURL()));
|
| - EXPECT_FALSE(set.MatchesURL(GURL("invalid")));
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, One) {
|
| - URLPatternSet set;
|
| - AddPattern(&set, "http://www.google.com/*");
|
| -
|
| - EXPECT_TRUE(set.MatchesURL(GURL("http://www.google.com/")));
|
| - EXPECT_TRUE(set.MatchesURL(GURL("http://www.google.com/monkey")));
|
| - EXPECT_FALSE(set.MatchesURL(GURL("https://www.google.com/")));
|
| - EXPECT_FALSE(set.MatchesURL(GURL("https://www.microsoft.com/")));
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, Two) {
|
| - URLPatternSet set;
|
| - AddPattern(&set, "http://www.google.com/*");
|
| - AddPattern(&set, "http://www.yahoo.com/*");
|
| -
|
| - EXPECT_TRUE(set.MatchesURL(GURL("http://www.google.com/monkey")));
|
| - EXPECT_TRUE(set.MatchesURL(GURL("http://www.yahoo.com/monkey")));
|
| - EXPECT_FALSE(set.MatchesURL(GURL("https://www.apple.com/monkey")));
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, OverlapsWith) {
|
| - URLPatternSet set1;
|
| - AddPattern(&set1, "http://www.google.com/f*");
|
| - AddPattern(&set1, "http://www.yahoo.com/b*");
|
| -
|
| - URLPatternSet set2;
|
| - AddPattern(&set2, "http://www.reddit.com/f*");
|
| - AddPattern(&set2, "http://www.yahoo.com/z*");
|
| -
|
| - URLPatternSet set3;
|
| - AddPattern(&set3, "http://www.google.com/q/*");
|
| - AddPattern(&set3, "http://www.yahoo.com/b/*");
|
| -
|
| - EXPECT_FALSE(set1.OverlapsWith(set2));
|
| - EXPECT_FALSE(set2.OverlapsWith(set1));
|
| -
|
| - EXPECT_TRUE(set1.OverlapsWith(set3));
|
| - EXPECT_TRUE(set3.OverlapsWith(set1));
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, CreateDifference) {
|
| - URLPatternSet expected;
|
| - URLPatternSet set1;
|
| - URLPatternSet set2;
|
| - AddPattern(&set1, "http://www.google.com/f*");
|
| - AddPattern(&set1, "http://www.yahoo.com/b*");
|
| -
|
| - // Subtract an empty set.
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateDifference(set1, set2, &result);
|
| - EXPECT_EQ(set1, result);
|
| -
|
| - // Subtract a real set.
|
| - AddPattern(&set2, "http://www.reddit.com/f*");
|
| - AddPattern(&set2, "http://www.yahoo.com/z*");
|
| - AddPattern(&set2, "http://www.google.com/f*");
|
| -
|
| - AddPattern(&expected, "http://www.yahoo.com/b*");
|
| -
|
| - result.ClearPatterns();
|
| - URLPatternSet::CreateDifference(set1, set2, &result);
|
| - EXPECT_EQ(expected, result);
|
| - EXPECT_FALSE(result.is_empty());
|
| - EXPECT_TRUE(set1.Contains(result));
|
| - EXPECT_FALSE(result.Contains(set2));
|
| - EXPECT_FALSE(set2.Contains(result));
|
| -
|
| - URLPatternSet intersection;
|
| - URLPatternSet::CreateIntersection(result, set2, &intersection);
|
| - EXPECT_TRUE(intersection.is_empty());
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, CreateIntersection) {
|
| - URLPatternSet empty_set;
|
| - URLPatternSet expected;
|
| - URLPatternSet set1;
|
| - AddPattern(&set1, "http://www.google.com/f*");
|
| - AddPattern(&set1, "http://www.yahoo.com/b*");
|
| -
|
| - // Intersection with an empty set.
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateIntersection(set1, empty_set, &result);
|
| - EXPECT_EQ(expected, result);
|
| - EXPECT_TRUE(result.is_empty());
|
| - EXPECT_TRUE(empty_set.Contains(result));
|
| - EXPECT_TRUE(result.Contains(empty_set));
|
| - EXPECT_TRUE(set1.Contains(result));
|
| -
|
| - // Intersection with a real set.
|
| - URLPatternSet set2;
|
| - AddPattern(&set2, "http://www.reddit.com/f*");
|
| - AddPattern(&set2, "http://www.yahoo.com/z*");
|
| - AddPattern(&set2, "http://www.google.com/f*");
|
| -
|
| - AddPattern(&expected, "http://www.google.com/f*");
|
| -
|
| - result.ClearPatterns();
|
| - URLPatternSet::CreateIntersection(set1, set2, &result);
|
| - EXPECT_EQ(expected, result);
|
| - EXPECT_FALSE(result.is_empty());
|
| - EXPECT_TRUE(set1.Contains(result));
|
| - EXPECT_TRUE(set2.Contains(result));
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, CreateUnion) {
|
| - URLPatternSet empty_set;
|
| -
|
| - URLPatternSet set1;
|
| - AddPattern(&set1, "http://www.google.com/f*");
|
| - AddPattern(&set1, "http://www.yahoo.com/b*");
|
| -
|
| - URLPatternSet expected;
|
| - AddPattern(&expected, "http://www.google.com/f*");
|
| - AddPattern(&expected, "http://www.yahoo.com/b*");
|
| -
|
| - // Union with an empty set.
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(set1, empty_set, &result);
|
| - EXPECT_EQ(expected, result);
|
| -
|
| - // Union with a real set.
|
| - URLPatternSet set2;
|
| - AddPattern(&set2, "http://www.reddit.com/f*");
|
| - AddPattern(&set2, "http://www.yahoo.com/z*");
|
| - AddPattern(&set2, "http://www.google.com/f*");
|
| -
|
| - AddPattern(&expected, "http://www.reddit.com/f*");
|
| - AddPattern(&expected, "http://www.yahoo.com/z*");
|
| -
|
| - result.ClearPatterns();
|
| - URLPatternSet::CreateUnion(set1, set2, &result);
|
| - EXPECT_EQ(expected, result);
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, Contains) {
|
| - URLPatternSet set1;
|
| - URLPatternSet set2;
|
| - URLPatternSet empty_set;
|
| -
|
| - AddPattern(&set1, "http://www.google.com/*");
|
| - AddPattern(&set1, "http://www.yahoo.com/*");
|
| -
|
| - AddPattern(&set2, "http://www.reddit.com/*");
|
| -
|
| - EXPECT_FALSE(set1.Contains(set2));
|
| - EXPECT_TRUE(set1.Contains(empty_set));
|
| - EXPECT_FALSE(empty_set.Contains(set1));
|
| -
|
| - AddPattern(&set2, "http://www.yahoo.com/*");
|
| -
|
| - EXPECT_FALSE(set1.Contains(set2));
|
| - EXPECT_FALSE(set2.Contains(set1));
|
| -
|
| - AddPattern(&set2, "http://www.google.com/*");
|
| -
|
| - EXPECT_FALSE(set1.Contains(set2));
|
| - EXPECT_TRUE(set2.Contains(set1));
|
| -
|
| - // Note that this just checks pattern equality, and not if individual patterns
|
| - // contain other patterns. For example:
|
| - AddPattern(&set1, "http://*.reddit.com/*");
|
| - EXPECT_FALSE(set1.Contains(set2));
|
| - EXPECT_FALSE(set2.Contains(set1));
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, Duplicates) {
|
| - URLPatternSet set1;
|
| - URLPatternSet set2;
|
| -
|
| - AddPattern(&set1, "http://www.google.com/*");
|
| - AddPattern(&set2, "http://www.google.com/*");
|
| -
|
| - AddPattern(&set1, "http://www.google.com/*");
|
| -
|
| - // The sets should still be equal after adding a duplicate.
|
| - EXPECT_EQ(set2, set1);
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, ToValueAndPopulate) {
|
| - URLPatternSet set1;
|
| - URLPatternSet set2;
|
| -
|
| - std::vector<std::string> patterns;
|
| - patterns.push_back("http://www.google.com/*");
|
| - patterns.push_back("http://www.yahoo.com/*");
|
| -
|
| - for (size_t i = 0; i < patterns.size(); ++i)
|
| - AddPattern(&set1, patterns[i]);
|
| -
|
| - std::string error;
|
| - bool allow_file_access = false;
|
| - scoped_ptr<base::ListValue> value(set1.ToValue());
|
| - set2.Populate(*value, URLPattern::SCHEME_ALL, allow_file_access, &error);
|
| - EXPECT_EQ(set1, set2);
|
| -
|
| - set2.ClearPatterns();
|
| - set2.Populate(patterns, URLPattern::SCHEME_ALL, allow_file_access, &error);
|
| - EXPECT_EQ(set1, set2);
|
| -}
|
| -
|
| -TEST(URLPatternSetTest, NwayUnion) {
|
| - std::string google_a = "http://www.google.com/a*";
|
| - std::string google_b = "http://www.google.com/b*";
|
| - std::string google_c = "http://www.google.com/c*";
|
| - std::string yahoo_a = "http://www.yahoo.com/a*";
|
| - std::string yahoo_b = "http://www.yahoo.com/b*";
|
| - std::string yahoo_c = "http://www.yahoo.com/c*";
|
| - std::string reddit_a = "http://www.reddit.com/a*";
|
| - std::string reddit_b = "http://www.reddit.com/b*";
|
| - std::string reddit_c = "http://www.reddit.com/c*";
|
| -
|
| - // Empty list.
|
| - {
|
| - std::vector<URLPatternSet> empty;
|
| -
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(empty, &result);
|
| -
|
| - URLPatternSet expected;
|
| - EXPECT_EQ(expected, result);
|
| - }
|
| -
|
| - // Singleton list.
|
| - {
|
| - std::vector<URLPatternSet> test;
|
| - test.push_back(Patterns(google_a));
|
| -
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(test, &result);
|
| -
|
| - URLPatternSet expected = Patterns(google_a);
|
| - EXPECT_EQ(expected, result);
|
| - }
|
| -
|
| - // List with 2 elements.
|
| - {
|
| -
|
| - std::vector<URLPatternSet> test;
|
| - test.push_back(Patterns(google_a, google_b));
|
| - test.push_back(Patterns(google_b, google_c));
|
| -
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(test, &result);
|
| -
|
| - URLPatternSet expected;
|
| - AddPattern(&expected, google_a);
|
| - AddPattern(&expected, google_b);
|
| - AddPattern(&expected, google_c);
|
| - EXPECT_EQ(expected, result);
|
| - }
|
| -
|
| - // List with 3 elements.
|
| - {
|
| - std::vector<URLPatternSet> test;
|
| - test.push_back(Patterns(google_a, google_b));
|
| - test.push_back(Patterns(google_b, google_c));
|
| - test.push_back(Patterns(yahoo_a, yahoo_b));
|
| -
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(test, &result);
|
| -
|
| - URLPatternSet expected;
|
| - AddPattern(&expected, google_a);
|
| - AddPattern(&expected, google_b);
|
| - AddPattern(&expected, google_c);
|
| - AddPattern(&expected, yahoo_a);
|
| - AddPattern(&expected, yahoo_b);
|
| - EXPECT_EQ(expected, result);
|
| - }
|
| -
|
| - // List with 7 elements.
|
| - {
|
| - std::vector<URLPatternSet> test;
|
| - test.push_back(Patterns(google_a));
|
| - test.push_back(Patterns(google_b));
|
| - test.push_back(Patterns(google_c));
|
| - test.push_back(Patterns(yahoo_a));
|
| - test.push_back(Patterns(yahoo_b));
|
| - test.push_back(Patterns(yahoo_c));
|
| - test.push_back(Patterns(reddit_a));
|
| -
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(test, &result);
|
| -
|
| - URLPatternSet expected;
|
| - AddPattern(&expected, google_a);
|
| - AddPattern(&expected, google_b);
|
| - AddPattern(&expected, google_c);
|
| - AddPattern(&expected, yahoo_a);
|
| - AddPattern(&expected, yahoo_b);
|
| - AddPattern(&expected, yahoo_c);
|
| - AddPattern(&expected, reddit_a);
|
| - EXPECT_EQ(expected, result);
|
| - }
|
| -
|
| - // List with 8 elements.
|
| - {
|
| - std::vector<URLPatternSet> test;
|
| - test.push_back(Patterns(google_a));
|
| - test.push_back(Patterns(google_b));
|
| - test.push_back(Patterns(google_c));
|
| - test.push_back(Patterns(yahoo_a));
|
| - test.push_back(Patterns(yahoo_b));
|
| - test.push_back(Patterns(yahoo_c));
|
| - test.push_back(Patterns(reddit_a));
|
| - test.push_back(Patterns(reddit_b));
|
| -
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(test, &result);
|
| -
|
| - URLPatternSet expected;
|
| - AddPattern(&expected, google_a);
|
| - AddPattern(&expected, google_b);
|
| - AddPattern(&expected, google_c);
|
| - AddPattern(&expected, yahoo_a);
|
| - AddPattern(&expected, yahoo_b);
|
| - AddPattern(&expected, yahoo_c);
|
| - AddPattern(&expected, reddit_a);
|
| - AddPattern(&expected, reddit_b);
|
| - EXPECT_EQ(expected, result);
|
| - }
|
| -
|
| - // List with 9 elements.
|
| - {
|
| -
|
| - std::vector<URLPatternSet> test;
|
| - test.push_back(Patterns(google_a));
|
| - test.push_back(Patterns(google_b));
|
| - test.push_back(Patterns(google_c));
|
| - test.push_back(Patterns(yahoo_a));
|
| - test.push_back(Patterns(yahoo_b));
|
| - test.push_back(Patterns(yahoo_c));
|
| - test.push_back(Patterns(reddit_a));
|
| - test.push_back(Patterns(reddit_b));
|
| - test.push_back(Patterns(reddit_c));
|
| -
|
| - URLPatternSet result;
|
| - URLPatternSet::CreateUnion(test, &result);
|
| -
|
| - URLPatternSet expected;
|
| - AddPattern(&expected, google_a);
|
| - AddPattern(&expected, google_b);
|
| - AddPattern(&expected, google_c);
|
| - AddPattern(&expected, yahoo_a);
|
| - AddPattern(&expected, yahoo_b);
|
| - AddPattern(&expected, yahoo_c);
|
| - AddPattern(&expected, reddit_a);
|
| - AddPattern(&expected, reddit_b);
|
| - AddPattern(&expected, reddit_c);
|
| - EXPECT_EQ(expected, result);
|
| - }
|
| -}
|
|
|