| Index: chrome/common/extensions/url_pattern_unittest.cc
|
| diff --git a/chrome/common/extensions/url_pattern_unittest.cc b/chrome/common/extensions/url_pattern_unittest.cc
|
| index 8686a0f924986a78f426c0b41a1fd01586e0c5f4..4554f1efd5dc095b6e4d086de8d5abc119d7ff8d 100644
|
| --- a/chrome/common/extensions/url_pattern_unittest.cc
|
| +++ b/chrome/common/extensions/url_pattern_unittest.cc
|
| @@ -2,6 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/scoped_ptr.h"
|
| #include "chrome/common/extensions/url_pattern.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -132,3 +133,34 @@ TEST(URLPatternTest, Match9) {
|
| EXPECT_TRUE(pattern.MatchesUrl(GURL("chrome://favicon/https://google.com")));
|
| EXPECT_FALSE(pattern.MatchesUrl(GURL("chrome://history")));
|
| };
|
| +
|
| +void TestPatternOverlap(URLPattern* pattern1, URLPattern* pattern2,
|
| + bool expect_overlap) {
|
| + EXPECT_EQ(expect_overlap, pattern1->OverlapsWith(*pattern2))
|
| + << pattern1->GetAsString() << ", " << pattern2->GetAsString();
|
| + EXPECT_EQ(expect_overlap, pattern2->OverlapsWith(*pattern1))
|
| + << pattern2->GetAsString() << ", " << pattern1->GetAsString();
|
| +}
|
| +
|
| +TEST(URLPatternTest, OverlapsWith) {
|
| + scoped_ptr<URLPattern> pattern1(
|
| + URLPattern::CreateFromString("http://www.google.com/foo/*"));
|
| + scoped_ptr<URLPattern> pattern2(
|
| + URLPattern::CreateFromString("https://www.google.com/foo/*"));
|
| + scoped_ptr<URLPattern> pattern3(
|
| + URLPattern::CreateFromString("http://*.google.com/foo/*"));
|
| + scoped_ptr<URLPattern> pattern4(
|
| + URLPattern::CreateFromString("http://*.yahooo.com/foo/*"));
|
| + scoped_ptr<URLPattern> pattern5(
|
| + URLPattern::CreateFromString("http://www.yahooo.com/bar/*"));
|
| + scoped_ptr<URLPattern> pattern6(
|
| + URLPattern::CreateFromString("http://www.yahooo.com/bar/baz/*"));
|
| +
|
| + TestPatternOverlap(pattern1.get(), pattern1.get(), true);
|
| + TestPatternOverlap(pattern1.get(), pattern2.get(), false);
|
| + TestPatternOverlap(pattern1.get(), pattern3.get(), true);
|
| + TestPatternOverlap(pattern1.get(), pattern4.get(), false);
|
| + TestPatternOverlap(pattern3.get(), pattern4.get(), false);
|
| + TestPatternOverlap(pattern4.get(), pattern5.get(), false);
|
| + TestPatternOverlap(pattern5.get(), pattern6.get(), true);
|
| +}
|
|
|