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

Side by Side Diff: chrome/common/extensions/user_script_unittest.cc

Issue 7229012: Use extension match pattern syntax in content settings extension API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: initialize port Created 9 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/file_path.h" 5 #include "base/file_path.h"
6 #include "base/pickle.h" 6 #include "base/pickle.h"
7 #include "chrome/common/extensions/user_script.h" 7 #include "chrome/common/extensions/user_script.h"
8 #include "googleurl/src/gurl.h" 8 #include "googleurl/src/gurl.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 UserScript script; 66 UserScript script;
67 script.add_glob("*foo*"); 67 script.add_glob("*foo*");
68 EXPECT_TRUE(script.MatchesURL(GURL("http://foo.com/bar"))); 68 EXPECT_TRUE(script.MatchesURL(GURL("http://foo.com/bar")));
69 EXPECT_TRUE(script.MatchesURL(GURL("http://baz.org/foo/bar"))); 69 EXPECT_TRUE(script.MatchesURL(GURL("http://baz.org/foo/bar")));
70 EXPECT_FALSE(script.MatchesURL(GURL("http://baz.org"))); 70 EXPECT_FALSE(script.MatchesURL(GURL("http://baz.org")));
71 } 71 }
72 72
73 TEST(ExtensionUserScriptTest, UrlPattern) { 73 TEST(ExtensionUserScriptTest, UrlPattern) {
74 URLPattern pattern(kAllSchemes); 74 URLPattern pattern(kAllSchemes);
75 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 75 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
76 pattern.Parse("http://*/foo*", URLPattern::PARSE_STRICT)); 76 pattern.Parse("http://*/foo*", URLPattern::ERROR_ON_PORTS));
77 77
78 UserScript script; 78 UserScript script;
79 script.add_url_pattern(pattern); 79 script.add_url_pattern(pattern);
80 EXPECT_TRUE(script.MatchesURL(GURL("http://monkey.com/foobar"))); 80 EXPECT_TRUE(script.MatchesURL(GURL("http://monkey.com/foobar")));
81 EXPECT_FALSE(script.MatchesURL(GURL("http://monkey.com/hotdog"))); 81 EXPECT_FALSE(script.MatchesURL(GURL("http://monkey.com/hotdog")));
82 82
83 // NOTE: URLPattern is tested more extensively in url_pattern_unittest.cc. 83 // NOTE: URLPattern is tested more extensively in url_pattern_unittest.cc.
84 } 84 }
85 85
86 TEST(ExtensionUserScriptTest, ExcludeUrlPattern) { 86 TEST(ExtensionUserScriptTest, ExcludeUrlPattern) {
87 UserScript script; 87 UserScript script;
88 88
89 URLPattern pattern(kAllSchemes); 89 URLPattern pattern(kAllSchemes);
90 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 90 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
91 pattern.Parse("http://*.nytimes.com/*", URLPattern::PARSE_STRICT)); 91 pattern.Parse("http://*.nytimes.com/*", URLPattern::ERROR_ON_PORTS)) ;
92 script.add_url_pattern(pattern); 92 script.add_url_pattern(pattern);
93 93
94 URLPattern exclude(kAllSchemes); 94 URLPattern exclude(kAllSchemes);
95 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 95 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
96 exclude.Parse("*://*/*business*", URLPattern::PARSE_STRICT)); 96 exclude.Parse("*://*/*business*", URLPattern::ERROR_ON_PORTS));
97 script.add_exclude_url_pattern(exclude); 97 script.add_exclude_url_pattern(exclude);
98 98
99 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/health"))); 99 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/health")));
100 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/business"))); 100 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/business")));
101 EXPECT_TRUE(script.MatchesURL(GURL("http://business.nytimes.com"))); 101 EXPECT_TRUE(script.MatchesURL(GURL("http://business.nytimes.com")));
102 } 102 }
103 103
104 TEST(ExtensionUserScriptTest, UrlPatternAndIncludeGlobs) { 104 TEST(ExtensionUserScriptTest, UrlPatternAndIncludeGlobs) {
105 UserScript script; 105 UserScript script;
106 106
107 URLPattern pattern(kAllSchemes); 107 URLPattern pattern(kAllSchemes);
108 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 108 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
109 pattern.Parse("http://*.nytimes.com/*", URLPattern::PARSE_STRICT)); 109 pattern.Parse("http://*.nytimes.com/*", URLPattern::ERROR_ON_PORTS)) ;
110 script.add_url_pattern(pattern); 110 script.add_url_pattern(pattern);
111 111
112 script.add_glob("*nytimes.com/???s/*"); 112 script.add_glob("*nytimes.com/???s/*");
113 113
114 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/arts/1.html"))); 114 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/arts/1.html")));
115 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/jobs/1.html"))); 115 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com/jobs/1.html")));
116 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/sports/1.html"))); 116 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/sports/1.html")));
117 } 117 }
118 118
119 TEST(ExtensionUserScriptTest, UrlPatternAndExcludeGlobs) { 119 TEST(ExtensionUserScriptTest, UrlPatternAndExcludeGlobs) {
120 UserScript script; 120 UserScript script;
121 121
122 URLPattern pattern(kAllSchemes); 122 URLPattern pattern(kAllSchemes);
123 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 123 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
124 pattern.Parse("http://*.nytimes.com/*", URLPattern::PARSE_STRICT)); 124 pattern.Parse("http://*.nytimes.com/*", URLPattern::ERROR_ON_PORTS)) ;
125 script.add_url_pattern(pattern); 125 script.add_url_pattern(pattern);
126 126
127 script.add_exclude_glob("*science*"); 127 script.add_exclude_glob("*science*");
128 128
129 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com"))); 129 EXPECT_TRUE(script.MatchesURL(GURL("http://www.nytimes.com")));
130 EXPECT_FALSE(script.MatchesURL(GURL("http://science.nytimes.com"))); 130 EXPECT_FALSE(script.MatchesURL(GURL("http://science.nytimes.com")));
131 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/science"))); 131 EXPECT_FALSE(script.MatchesURL(GURL("http://www.nytimes.com/science")));
132 } 132 }
133 133
134 TEST(ExtensionUserScriptTest, UrlPatternGlobInteraction) { 134 TEST(ExtensionUserScriptTest, UrlPatternGlobInteraction) {
135 // If there are both, match intersection(union(globs), union(urlpatterns)). 135 // If there are both, match intersection(union(globs), union(urlpatterns)).
136 UserScript script; 136 UserScript script;
137 137
138 URLPattern pattern(kAllSchemes); 138 URLPattern pattern(kAllSchemes);
139 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 139 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
140 pattern.Parse("http://www.google.com/*", 140 pattern.Parse("http://www.google.com/*",
141 URLPattern::PARSE_STRICT)); 141 URLPattern::ERROR_ON_PORTS));
142 script.add_url_pattern(pattern); 142 script.add_url_pattern(pattern);
143 143
144 script.add_glob("*bar*"); 144 script.add_glob("*bar*");
145 145
146 // No match, because it doesn't match the glob. 146 // No match, because it doesn't match the glob.
147 EXPECT_FALSE(script.MatchesURL(GURL("http://www.google.com/foo"))); 147 EXPECT_FALSE(script.MatchesURL(GURL("http://www.google.com/foo")));
148 148
149 script.add_exclude_glob("*baz*"); 149 script.add_exclude_glob("*baz*");
150 150
151 // No match, because it matches the exclude glob. 151 // No match, because it matches the exclude glob.
152 EXPECT_FALSE(script.MatchesURL(GURL("http://www.google.com/baz"))); 152 EXPECT_FALSE(script.MatchesURL(GURL("http://www.google.com/baz")));
153 153
154 // Match, because it matches the glob, doesn't match the exclude glob. 154 // Match, because it matches the glob, doesn't match the exclude glob.
155 EXPECT_TRUE(script.MatchesURL(GURL("http://www.google.com/bar"))); 155 EXPECT_TRUE(script.MatchesURL(GURL("http://www.google.com/bar")));
156 156
157 // Try with just a single exclude glob. 157 // Try with just a single exclude glob.
158 script.clear_globs(); 158 script.clear_globs();
159 EXPECT_TRUE(script.MatchesURL(GURL("http://www.google.com/foo"))); 159 EXPECT_TRUE(script.MatchesURL(GURL("http://www.google.com/foo")));
160 160
161 // Try with no globs or exclude globs. 161 // Try with no globs or exclude globs.
162 script.clear_exclude_globs(); 162 script.clear_exclude_globs();
163 EXPECT_TRUE(script.MatchesURL(GURL("http://www.google.com/foo"))); 163 EXPECT_TRUE(script.MatchesURL(GURL("http://www.google.com/foo")));
164 } 164 }
165 165
166 TEST(ExtensionUserScriptTest, Pickle) { 166 TEST(ExtensionUserScriptTest, Pickle) {
167 URLPattern pattern1(kAllSchemes); 167 URLPattern pattern1(kAllSchemes);
168 URLPattern pattern2(kAllSchemes); 168 URLPattern pattern2(kAllSchemes);
169 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 169 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
170 pattern1.Parse("http://*/foo*", URLPattern::PARSE_STRICT)); 170 pattern1.Parse("http://*/foo*", URLPattern::ERROR_ON_PORTS));
171 ASSERT_EQ(URLPattern::PARSE_SUCCESS, 171 ASSERT_EQ(URLPattern::PARSE_SUCCESS,
172 pattern2.Parse("http://bar/baz*", URLPattern::PARSE_STRICT)); 172 pattern2.Parse("http://bar/baz*", URLPattern::ERROR_ON_PORTS));
173 173
174 UserScript script1; 174 UserScript script1;
175 script1.js_scripts().push_back(UserScript::File( 175 script1.js_scripts().push_back(UserScript::File(
176 FilePath(FILE_PATH_LITERAL("c:\\foo\\")), 176 FilePath(FILE_PATH_LITERAL("c:\\foo\\")),
177 FilePath(FILE_PATH_LITERAL("foo.user.js")), 177 FilePath(FILE_PATH_LITERAL("foo.user.js")),
178 GURL("chrome-extension://abc/foo.user.js"))); 178 GURL("chrome-extension://abc/foo.user.js")));
179 script1.css_scripts().push_back(UserScript::File( 179 script1.css_scripts().push_back(UserScript::File(
180 FilePath(FILE_PATH_LITERAL("c:\\foo\\")), 180 FilePath(FILE_PATH_LITERAL("c:\\foo\\")),
181 FilePath(FILE_PATH_LITERAL("foo.user.css")), 181 FilePath(FILE_PATH_LITERAL("foo.user.css")),
182 GURL("chrome-extension://abc/foo.user.css"))); 182 GURL("chrome-extension://abc/foo.user.css")));
(...skipping 29 matching lines...) Expand all
212 for (size_t i = 0; i < script1.url_patterns().size(); ++i) { 212 for (size_t i = 0; i < script1.url_patterns().size(); ++i) {
213 EXPECT_EQ(script1.url_patterns()[i].GetAsString(), 213 EXPECT_EQ(script1.url_patterns()[i].GetAsString(),
214 script2.url_patterns()[i].GetAsString()); 214 script2.url_patterns()[i].GetAsString());
215 } 215 }
216 } 216 }
217 217
218 TEST(ExtensionUserScriptTest, Defaults) { 218 TEST(ExtensionUserScriptTest, Defaults) {
219 UserScript script; 219 UserScript script;
220 ASSERT_EQ(UserScript::DOCUMENT_IDLE, script.run_location()); 220 ASSERT_EQ(UserScript::DOCUMENT_IDLE, script.run_location());
221 } 221 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698