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/content_settings_pattern_unittest.cc

Issue 440423003: Clean content_settings_pattern_parser.* from unnecessary dependencies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/common/content_settings_pattern.h" 5 #include "chrome/common/content_settings_pattern.h"
6 6
7 #include "chrome/common/chrome_content_settings_client.h"
7 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
8 #include "url/gurl.h" 9 #include "url/gurl.h"
9 10
10 namespace { 11 namespace {
11 12
12 ContentSettingsPattern Pattern(const std::string& str) { 13 ContentSettingsPattern Pattern(const std::string& str) {
13 return ContentSettingsPattern::FromString(str); 14 content_settings::ChromeContentSettingsClient client;
15 return ContentSettingsPattern::FromString(&client, str);
16 }
17
18 std::string ToString(const ContentSettingsPattern& pattern) {
19 content_settings::ChromeContentSettingsClient client;
20 return pattern.ToString(&client);
14 } 21 }
15 22
16 } // namespace 23 } // namespace
17 24
18 TEST(ContentSettingsPatternTest, RealWorldPatterns) { 25 TEST(ContentSettingsPatternTest, RealWorldPatterns) {
19 // This is the place for real world patterns that unveiled bugs. 26 // This is the place for real world patterns that unveiled bugs.
20 EXPECT_STREQ("[*.]ikea.com", 27 EXPECT_STREQ("[*.]ikea.com",
21 Pattern("[*.]ikea.com").ToString().c_str()); 28 ToString(Pattern("[*.]ikea.com")).c_str());
22 } 29 }
23 30
24 TEST(ContentSettingsPatternTest, GURL) { 31 TEST(ContentSettingsPatternTest, GURL) {
25 // Document and verify GURL behavior. 32 // Document and verify GURL behavior.
26 GURL url("http://mail.google.com:80"); 33 GURL url("http://mail.google.com:80");
27 EXPECT_EQ(-1, url.IntPort()); 34 EXPECT_EQ(-1, url.IntPort());
28 EXPECT_EQ("", url.port()); 35 EXPECT_EQ("", url.port());
29 36
30 url = GURL("http://mail.google.com"); 37 url = GURL("http://mail.google.com");
31 EXPECT_EQ(-1, url.IntPort()); 38 EXPECT_EQ(-1, url.IntPort());
(...skipping 16 matching lines...) Expand all
48 // NOTICE: When content settings pattern are created from a GURL the following 55 // NOTICE: When content settings pattern are created from a GURL the following
49 // happens: 56 // happens:
50 // - If the GURL scheme is "http" the scheme wildcard is used. Otherwise the 57 // - If the GURL scheme is "http" the scheme wildcard is used. Otherwise the
51 // GURL scheme is used. 58 // GURL scheme is used.
52 // - A domain wildcard is added to the GURL host. 59 // - A domain wildcard is added to the GURL host.
53 // - A port wildcard is used instead of the schemes default port. 60 // - A port wildcard is used instead of the schemes default port.
54 // In case of non-default ports the specific GURL port is used. 61 // In case of non-default ports the specific GURL port is used.
55 ContentSettingsPattern pattern = ContentSettingsPattern::FromURL( 62 ContentSettingsPattern pattern = ContentSettingsPattern::FromURL(
56 GURL("http://www.youtube.com")); 63 GURL("http://www.youtube.com"));
57 EXPECT_TRUE(pattern.IsValid()); 64 EXPECT_TRUE(pattern.IsValid());
58 EXPECT_STREQ("[*.]www.youtube.com", pattern.ToString().c_str()); 65 EXPECT_STREQ("[*.]www.youtube.com", ToString(pattern).c_str());
59 66
60 // Patterns created from a URL. 67 // Patterns created from a URL.
61 pattern = ContentSettingsPattern::FromURL(GURL("http://www.google.com")); 68 pattern = ContentSettingsPattern::FromURL(GURL("http://www.google.com"));
62 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com"))); 69 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com")));
63 EXPECT_TRUE(pattern.Matches(GURL("http://foo.www.google.com"))); 70 EXPECT_TRUE(pattern.Matches(GURL("http://foo.www.google.com")));
64 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:80"))); 71 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:80")));
65 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:81"))); 72 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:81")));
66 EXPECT_FALSE(pattern.Matches(GURL("https://mail.google.com"))); 73 EXPECT_FALSE(pattern.Matches(GURL("https://mail.google.com")));
67 EXPECT_TRUE(pattern.Matches(GURL("https://www.google.com"))); 74 EXPECT_TRUE(pattern.Matches(GURL("https://www.google.com")));
68 75
69 pattern = ContentSettingsPattern::FromURL(GURL("http://www.google.com:80")); 76 pattern = ContentSettingsPattern::FromURL(GURL("http://www.google.com:80"));
70 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com"))); 77 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com")));
71 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:80"))); 78 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:80")));
72 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:81"))); 79 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com:81")));
73 80
74 pattern = ContentSettingsPattern::FromURL(GURL("https://www.google.com:443")); 81 pattern = ContentSettingsPattern::FromURL(GURL("https://www.google.com:443"));
75 EXPECT_TRUE(pattern.Matches(GURL("https://www.google.com"))); 82 EXPECT_TRUE(pattern.Matches(GURL("https://www.google.com")));
76 EXPECT_TRUE(pattern.Matches(GURL("https://foo.www.google.com"))); 83 EXPECT_TRUE(pattern.Matches(GURL("https://foo.www.google.com")));
77 EXPECT_TRUE(pattern.Matches(GURL("https://www.google.com:443"))); 84 EXPECT_TRUE(pattern.Matches(GURL("https://www.google.com:443")));
78 EXPECT_FALSE(pattern.Matches(GURL("https://www.google.com:444"))); 85 EXPECT_FALSE(pattern.Matches(GURL("https://www.google.com:444")));
79 EXPECT_FALSE(pattern.Matches(GURL("http://www.google.com:443"))); 86 EXPECT_FALSE(pattern.Matches(GURL("http://www.google.com:443")));
80 87
81 pattern = ContentSettingsPattern::FromURL(GURL("https://127.0.0.1")); 88 pattern = ContentSettingsPattern::FromURL(GURL("https://127.0.0.1"));
82 EXPECT_TRUE(pattern.IsValid()); 89 EXPECT_TRUE(pattern.IsValid());
83 EXPECT_STREQ("https://127.0.0.1:443", pattern.ToString().c_str()); 90 EXPECT_STREQ("https://127.0.0.1:443", ToString(pattern).c_str());
84 91
85 pattern = ContentSettingsPattern::FromURL(GURL("http://[::1]")); 92 pattern = ContentSettingsPattern::FromURL(GURL("http://[::1]"));
86 EXPECT_TRUE(pattern.IsValid()); 93 EXPECT_TRUE(pattern.IsValid());
87 94
88 pattern = ContentSettingsPattern::FromURL(GURL("file:///foo/bar.html")); 95 pattern = ContentSettingsPattern::FromURL(GURL("file:///foo/bar.html"));
89 EXPECT_TRUE(pattern.IsValid()); 96 EXPECT_TRUE(pattern.IsValid());
90 EXPECT_EQ("file:///foo/bar.html", pattern.ToString()); 97 EXPECT_EQ("file:///foo/bar.html", ToString(pattern));
91 } 98 }
92 99
93 TEST(ContentSettingsPatternTest, FilesystemUrls) { 100 TEST(ContentSettingsPatternTest, FilesystemUrls) {
94 ContentSettingsPattern pattern = 101 ContentSettingsPattern pattern =
95 ContentSettingsPattern::FromURL(GURL("http://www.google.com")); 102 ContentSettingsPattern::FromURL(GURL("http://www.google.com"));
96 EXPECT_TRUE(pattern.Matches( 103 EXPECT_TRUE(pattern.Matches(
97 GURL("filesystem:http://www.google.com/temporary/"))); 104 GURL("filesystem:http://www.google.com/temporary/")));
98 EXPECT_TRUE(pattern.Matches( 105 EXPECT_TRUE(pattern.Matches(
99 GURL("filesystem:http://foo.www.google.com/temporary/"))); 106 GURL("filesystem:http://foo.www.google.com/temporary/")));
100 EXPECT_TRUE(pattern.Matches( 107 EXPECT_TRUE(pattern.Matches(
(...skipping 10 matching lines...) Expand all
111 GURL("filesystem:https://foo.www.google.com/temporary/"))); 118 GURL("filesystem:https://foo.www.google.com/temporary/")));
112 EXPECT_FALSE(pattern.Matches( 119 EXPECT_FALSE(pattern.Matches(
113 GURL("filesystem:https://www.google.com:81/temporary/"))); 120 GURL("filesystem:https://www.google.com:81/temporary/")));
114 121
115 // A pattern from a filesystem URLs is equivalent to a pattern from the inner 122 // A pattern from a filesystem URLs is equivalent to a pattern from the inner
116 // URL of the filesystem URL. 123 // URL of the filesystem URL.
117 ContentSettingsPattern pattern2 = ContentSettingsPattern::FromURL( 124 ContentSettingsPattern pattern2 = ContentSettingsPattern::FromURL(
118 GURL("filesystem:https://www.google.com/temporary/")); 125 GURL("filesystem:https://www.google.com/temporary/"));
119 EXPECT_EQ(ContentSettingsPattern::IDENTITY, pattern.Compare(pattern2)); 126 EXPECT_EQ(ContentSettingsPattern::IDENTITY, pattern.Compare(pattern2));
120 127
121 EXPECT_STREQ("https://[*.]www.google.com:443", pattern2.ToString().c_str()); 128 EXPECT_STREQ("https://[*.]www.google.com:443", ToString(pattern2).c_str());
122 129
123 pattern = 130 pattern =
124 ContentSettingsPattern::FromURL( 131 ContentSettingsPattern::FromURL(
125 GURL("filesystem:file:///temporary/foo/bar")); 132 GURL("filesystem:file:///temporary/foo/bar"));
126 EXPECT_TRUE(pattern.Matches(GURL("filesystem:file:///temporary/"))); 133 EXPECT_TRUE(pattern.Matches(GURL("filesystem:file:///temporary/")));
127 EXPECT_TRUE(pattern.Matches(GURL("filesystem:file:///temporary/test.txt"))); 134 EXPECT_TRUE(pattern.Matches(GURL("filesystem:file:///temporary/test.txt")));
128 EXPECT_TRUE(pattern.Matches(GURL("file:///temporary"))); 135 EXPECT_TRUE(pattern.Matches(GURL("file:///temporary")));
129 EXPECT_FALSE(pattern.Matches(GURL("file://foo/bar"))); 136 EXPECT_FALSE(pattern.Matches(GURL("file://foo/bar")));
130 pattern2 = 137 pattern2 =
131 ContentSettingsPattern::FromURL( 138 ContentSettingsPattern::FromURL(
132 GURL("filesystem:file:///persistent/foo2/bar2")); 139 GURL("filesystem:file:///persistent/foo2/bar2"));
133 EXPECT_EQ(ContentSettingsPattern::IDENTITY, pattern.Compare(pattern2)); 140 EXPECT_EQ(ContentSettingsPattern::IDENTITY, pattern.Compare(pattern2));
134 } 141 }
135 142
136 TEST(ContentSettingsPatternTest, FromURLNoWildcard) { 143 TEST(ContentSettingsPatternTest, FromURLNoWildcard) {
137 // If no port is specifed GURLs always use the default port for the schemes 144 // If no port is specifed GURLs always use the default port for the schemes
138 // HTTP and HTTPS. Hence a GURL always carries a port specification either 145 // HTTP and HTTPS. Hence a GURL always carries a port specification either
139 // explicitly or implicitly. Therefore if a content settings pattern is 146 // explicitly or implicitly. Therefore if a content settings pattern is
140 // created from a GURL with no wildcard, specific values are used for the 147 // created from a GURL with no wildcard, specific values are used for the
141 // scheme, host and port part of the pattern. 148 // scheme, host and port part of the pattern.
142 // Creating content settings patterns from strings behaves different. Pattern 149 // Creating content settings patterns from strings behaves different. Pattern
143 // parts that are omitted in pattern specifications (strings), are completed 150 // parts that are omitted in pattern specifications (strings), are completed
144 // with a wildcard. 151 // with a wildcard.
145 ContentSettingsPattern pattern = ContentSettingsPattern::FromURLNoWildcard( 152 ContentSettingsPattern pattern = ContentSettingsPattern::FromURLNoWildcard(
146 GURL("http://www.example.com")); 153 GURL("http://www.example.com"));
147 EXPECT_TRUE(pattern.IsValid()); 154 EXPECT_TRUE(pattern.IsValid());
148 EXPECT_STREQ("http://www.example.com:80", pattern.ToString().c_str()); 155 EXPECT_STREQ("http://www.example.com:80", ToString(pattern).c_str());
149 EXPECT_TRUE(pattern.Matches(GURL("http://www.example.com"))); 156 EXPECT_TRUE(pattern.Matches(GURL("http://www.example.com")));
150 EXPECT_FALSE(pattern.Matches(GURL("https://www.example.com"))); 157 EXPECT_FALSE(pattern.Matches(GURL("https://www.example.com")));
151 EXPECT_FALSE(pattern.Matches(GURL("http://foo.www.example.com"))); 158 EXPECT_FALSE(pattern.Matches(GURL("http://foo.www.example.com")));
152 159
153 pattern = ContentSettingsPattern::FromURLNoWildcard( 160 pattern = ContentSettingsPattern::FromURLNoWildcard(
154 GURL("https://www.example.com")); 161 GURL("https://www.example.com"));
155 EXPECT_TRUE(pattern.IsValid()); 162 EXPECT_TRUE(pattern.IsValid());
156 EXPECT_STREQ("https://www.example.com:443", pattern.ToString().c_str()); 163 EXPECT_STREQ("https://www.example.com:443", ToString(pattern).c_str());
157 EXPECT_FALSE(pattern.Matches(GURL("http://www.example.com"))); 164 EXPECT_FALSE(pattern.Matches(GURL("http://www.example.com")));
158 EXPECT_TRUE(pattern.Matches(GURL("https://www.example.com"))); 165 EXPECT_TRUE(pattern.Matches(GURL("https://www.example.com")));
159 EXPECT_FALSE(pattern.Matches(GURL("http://foo.www.example.com"))); 166 EXPECT_FALSE(pattern.Matches(GURL("http://foo.www.example.com")));
160 167
161 // Pattern for filesystem URLs 168 // Pattern for filesystem URLs
162 pattern = 169 pattern =
163 ContentSettingsPattern::FromURLNoWildcard( 170 ContentSettingsPattern::FromURLNoWildcard(
164 GURL("filesystem:http://www.google.com/temporary/")); 171 GURL("filesystem:http://www.google.com/temporary/"));
165 EXPECT_TRUE(pattern.IsValid()); 172 EXPECT_TRUE(pattern.IsValid());
166 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com"))); 173 EXPECT_TRUE(pattern.Matches(GURL("http://www.google.com")));
(...skipping 13 matching lines...) Expand all
180 187
181 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches( 188 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches(
182 GURL("http://www.google.com"))); 189 GURL("http://www.google.com")));
183 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches( 190 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches(
184 GURL("https://www.google.com"))); 191 GURL("https://www.google.com")));
185 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches( 192 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches(
186 GURL("https://myhost:8080"))); 193 GURL("https://myhost:8080")));
187 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches( 194 EXPECT_TRUE(ContentSettingsPattern::Wildcard().Matches(
188 GURL("file:///foo/bar.txt"))); 195 GURL("file:///foo/bar.txt")));
189 196
190 EXPECT_STREQ("*", ContentSettingsPattern::Wildcard().ToString().c_str()); 197 EXPECT_STREQ("*", ToString(ContentSettingsPattern::Wildcard()).c_str());
191 198
192 EXPECT_EQ(ContentSettingsPattern::IDENTITY, 199 EXPECT_EQ(ContentSettingsPattern::IDENTITY,
193 ContentSettingsPattern::Wildcard().Compare( 200 ContentSettingsPattern::Wildcard().Compare(
194 ContentSettingsPattern::Wildcard())); 201 ContentSettingsPattern::Wildcard()));
195 } 202 }
196 203
197 TEST(ContentSettingsPatternTest, TrimEndingDotFromHost) { 204 TEST(ContentSettingsPatternTest, TrimEndingDotFromHost) {
198 EXPECT_TRUE(Pattern("www.example.com").IsValid()); 205 EXPECT_TRUE(Pattern("www.example.com").IsValid());
199 EXPECT_TRUE(Pattern("www.example.com").Matches( 206 EXPECT_TRUE(Pattern("www.example.com").Matches(
200 GURL("http://www.example.com"))); 207 GURL("http://www.example.com")));
201 EXPECT_TRUE(Pattern("www.example.com").Matches( 208 EXPECT_TRUE(Pattern("www.example.com").Matches(
202 GURL("http://www.example.com."))); 209 GURL("http://www.example.com.")));
203 210
204 EXPECT_TRUE(Pattern("www.example.com.").IsValid()); 211 EXPECT_TRUE(Pattern("www.example.com.").IsValid());
205 EXPECT_STREQ("www.example.com", 212 EXPECT_STREQ("www.example.com",
206 Pattern("www.example.com.").ToString().c_str()); 213 ToString(Pattern("www.example.com.")).c_str());
207 214
208 EXPECT_TRUE(Pattern("www.example.com.") == Pattern("www.example.com")); 215 EXPECT_TRUE(Pattern("www.example.com.") == Pattern("www.example.com"));
209 216
210 EXPECT_TRUE(Pattern(".").IsValid()); 217 EXPECT_TRUE(Pattern(".").IsValid());
211 EXPECT_STREQ(".", Pattern(".").ToString().c_str()); 218 EXPECT_STREQ(".", ToString(Pattern(".")).c_str());
212 } 219 }
213 220
214 TEST(ContentSettingsPatternTest, FromString_WithNoWildcards) { 221 TEST(ContentSettingsPatternTest, FromString_WithNoWildcards) {
215 // HTTP patterns with default port. 222 // HTTP patterns with default port.
216 EXPECT_TRUE(Pattern("http://www.example.com:80").IsValid()); 223 EXPECT_TRUE(Pattern("http://www.example.com:80").IsValid());
217 EXPECT_STREQ("http://www.example.com:80", 224 EXPECT_STREQ("http://www.example.com:80",
218 Pattern("http://www.example.com:80").ToString().c_str()); 225 ToString(Pattern("http://www.example.com:80")).c_str());
219 // HTTP patterns with none default port. 226 // HTTP patterns with none default port.
220 EXPECT_TRUE(Pattern("http://www.example.com:81").IsValid()); 227 EXPECT_TRUE(Pattern("http://www.example.com:81").IsValid());
221 EXPECT_STREQ("http://www.example.com:81", 228 EXPECT_STREQ("http://www.example.com:81",
222 Pattern("http://www.example.com:81").ToString().c_str()); 229 ToString(Pattern("http://www.example.com:81")).c_str());
223 230
224 // HTTPS patterns with default port. 231 // HTTPS patterns with default port.
225 EXPECT_TRUE(Pattern("https://www.example.com:443").IsValid()); 232 EXPECT_TRUE(Pattern("https://www.example.com:443").IsValid());
226 EXPECT_STREQ("https://www.example.com:443", 233 EXPECT_STREQ("https://www.example.com:443",
227 Pattern("https://www.example.com:443").ToString().c_str()); 234 ToString(Pattern("https://www.example.com:443")).c_str());
228 // HTTPS patterns with none default port. 235 // HTTPS patterns with none default port.
229 EXPECT_TRUE(Pattern("https://www.example.com:8080").IsValid()); 236 EXPECT_TRUE(Pattern("https://www.example.com:8080").IsValid());
230 EXPECT_STREQ("https://www.example.com:8080", 237 EXPECT_STREQ("https://www.example.com:8080",
231 Pattern("https://www.example.com:8080").ToString().c_str()); 238 ToString(Pattern("https://www.example.com:8080")).c_str());
232 } 239 }
233 240
234 TEST(ContentSettingsPatternTest, FromString_FilePatterns) { 241 TEST(ContentSettingsPatternTest, FromString_FilePatterns) {
235 // "/" is an invalid file path. 242 // "/" is an invalid file path.
236 EXPECT_FALSE(Pattern("file:///").IsValid()); 243 EXPECT_FALSE(Pattern("file:///").IsValid());
237 244
238 // Non-empty domains aren't allowed in file patterns. 245 // Non-empty domains aren't allowed in file patterns.
239 EXPECT_FALSE(Pattern("file://foo/").IsValid()); 246 EXPECT_FALSE(Pattern("file://foo/").IsValid());
240 EXPECT_FALSE(Pattern("file://localhost/foo/bar/test.html").IsValid()); 247 EXPECT_FALSE(Pattern("file://localhost/foo/bar/test.html").IsValid());
241 EXPECT_FALSE(Pattern("file://*").IsValid()); 248 EXPECT_FALSE(Pattern("file://*").IsValid());
242 EXPECT_FALSE(Pattern("file://*/").IsValid()); 249 EXPECT_FALSE(Pattern("file://*/").IsValid());
243 EXPECT_FALSE(Pattern("file://*/*").IsValid()); 250 EXPECT_FALSE(Pattern("file://*/*").IsValid());
244 EXPECT_FALSE(Pattern("file://*/foo/bar/test.html").IsValid()); 251 EXPECT_FALSE(Pattern("file://*/foo/bar/test.html").IsValid());
245 EXPECT_FALSE(Pattern("file://[*.]/").IsValid()); 252 EXPECT_FALSE(Pattern("file://[*.]/").IsValid());
246 253
247 // This is the only valid file path wildcard format. 254 // This is the only valid file path wildcard format.
248 EXPECT_TRUE(Pattern("file:///*").IsValid()); 255 EXPECT_TRUE(Pattern("file:///*").IsValid());
249 EXPECT_EQ("file:///*", Pattern("file:///*").ToString()); 256 EXPECT_EQ("file:///*", ToString(Pattern("file:///*")));
250 257
251 // Wildcards are not allowed anywhere in the file path. 258 // Wildcards are not allowed anywhere in the file path.
252 EXPECT_FALSE(Pattern("file:///f*o/bar/file.html").IsValid()); 259 EXPECT_FALSE(Pattern("file:///f*o/bar/file.html").IsValid());
253 EXPECT_FALSE(Pattern("file:///*/bar/file.html").IsValid()); 260 EXPECT_FALSE(Pattern("file:///*/bar/file.html").IsValid());
254 EXPECT_FALSE(Pattern("file:///foo/*").IsValid()); 261 EXPECT_FALSE(Pattern("file:///foo/*").IsValid());
255 EXPECT_FALSE(Pattern("file:///foo/bar/*").IsValid()); 262 EXPECT_FALSE(Pattern("file:///foo/bar/*").IsValid());
256 EXPECT_FALSE(Pattern("file:///foo/*/file.html").IsValid()); 263 EXPECT_FALSE(Pattern("file:///foo/*/file.html").IsValid());
257 EXPECT_FALSE(Pattern("file:///foo/bar/*.html").IsValid()); 264 EXPECT_FALSE(Pattern("file:///foo/bar/*.html").IsValid());
258 EXPECT_FALSE(Pattern("file:///foo/bar/file.*").IsValid()); 265 EXPECT_FALSE(Pattern("file:///foo/bar/file.*").IsValid());
259 266
260 EXPECT_TRUE(Pattern("file:///tmp/test.html").IsValid()); 267 EXPECT_TRUE(Pattern("file:///tmp/test.html").IsValid());
261 EXPECT_EQ("file:///tmp/file.html", 268 EXPECT_EQ("file:///tmp/file.html",
262 Pattern("file:///tmp/file.html").ToString()); 269 ToString(Pattern("file:///tmp/file.html")));
263 EXPECT_TRUE(Pattern("file:///tmp/test.html").Matches( 270 EXPECT_TRUE(Pattern("file:///tmp/test.html").Matches(
264 GURL("file:///tmp/test.html"))); 271 GURL("file:///tmp/test.html")));
265 EXPECT_FALSE(Pattern("file:///tmp/test.html").Matches( 272 EXPECT_FALSE(Pattern("file:///tmp/test.html").Matches(
266 GURL("file:///tmp/other.html"))); 273 GURL("file:///tmp/other.html")));
267 EXPECT_FALSE(Pattern("file:///tmp/test.html").Matches( 274 EXPECT_FALSE(Pattern("file:///tmp/test.html").Matches(
268 GURL("http://example.org/"))); 275 GURL("http://example.org/")));
269 276
270 EXPECT_TRUE(Pattern("file:///*").Matches(GURL("file:///tmp/test.html"))); 277 EXPECT_TRUE(Pattern("file:///*").Matches(GURL("file:///tmp/test.html")));
271 EXPECT_TRUE(Pattern("file:///*").Matches( 278 EXPECT_TRUE(Pattern("file:///*").Matches(
272 GURL("file://localhost/tmp/test.html"))); 279 GURL("file://localhost/tmp/test.html")));
273 } 280 }
274 281
275 TEST(ContentSettingsPatternTest, FromString_ExtensionPatterns) { 282 TEST(ContentSettingsPatternTest, FromString_ExtensionPatterns) {
276 EXPECT_TRUE(Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/") 283 EXPECT_TRUE(Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/")
277 .IsValid()); 284 .IsValid());
278 EXPECT_EQ("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/", 285 EXPECT_EQ("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/",
279 Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/") 286 ToString(Pattern(
280 .ToString()); 287 "chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/")));
281 EXPECT_TRUE(Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/") 288 EXPECT_TRUE(Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/")
282 .Matches(GURL("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/"))); 289 .Matches(GURL("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/")));
283 } 290 }
284 291
285 TEST(ContentSettingsPatternTest, FromString_WithIPAdresses) { 292 TEST(ContentSettingsPatternTest, FromString_WithIPAdresses) {
286 // IPv4 293 // IPv4
287 EXPECT_TRUE(Pattern("192.168.0.1").IsValid()); 294 EXPECT_TRUE(Pattern("192.168.0.1").IsValid());
288 EXPECT_STREQ("192.168.1.1", Pattern("192.168.1.1").ToString().c_str()); 295 EXPECT_STREQ("192.168.1.1", ToString(Pattern("192.168.1.1")).c_str());
289 EXPECT_TRUE(Pattern("https://192.168.0.1:8080").IsValid()); 296 EXPECT_TRUE(Pattern("https://192.168.0.1:8080").IsValid());
290 EXPECT_STREQ("https://192.168.0.1:8080", 297 EXPECT_STREQ("https://192.168.0.1:8080",
291 Pattern("https://192.168.0.1:8080").ToString().c_str()); 298 ToString(Pattern("https://192.168.0.1:8080")).c_str());
292 299
293 // Subdomain wildcards should be only valid for hosts, not for IP addresses. 300 // Subdomain wildcards should be only valid for hosts, not for IP addresses.
294 EXPECT_FALSE(Pattern("[*.]127.0.0.1").IsValid()); 301 EXPECT_FALSE(Pattern("[*.]127.0.0.1").IsValid());
295 302
296 // IPv6 303 // IPv6
297 EXPECT_TRUE(Pattern("[::1]").IsValid()); 304 EXPECT_TRUE(Pattern("[::1]").IsValid());
298 EXPECT_STREQ("[::1]", Pattern("[::1]").ToString().c_str()); 305 EXPECT_STREQ("[::1]", ToString(Pattern("[::1]")).c_str());
299 EXPECT_TRUE(Pattern("https://[::1]:8080").IsValid()); 306 EXPECT_TRUE(Pattern("https://[::1]:8080").IsValid());
300 EXPECT_STREQ("https://[::1]:8080", 307 EXPECT_STREQ("https://[::1]:8080",
301 Pattern("https://[::1]:8080").ToString().c_str()); 308 ToString(Pattern("https://[::1]:8080")).c_str());
302 } 309 }
303 310
304 TEST(ContentSettingsPatternTest, FromString_WithWildcards) { 311 TEST(ContentSettingsPatternTest, FromString_WithWildcards) {
305 // Creating content settings patterns from strings completes pattern parts 312 // Creating content settings patterns from strings completes pattern parts
306 // that are omitted in pattern specifications (strings) with a wildcard. 313 // that are omitted in pattern specifications (strings) with a wildcard.
307 314
308 // The wildcard pattern. 315 // The wildcard pattern.
309 EXPECT_TRUE(Pattern("*").IsValid()); 316 EXPECT_TRUE(Pattern("*").IsValid());
310 EXPECT_STREQ("*", Pattern("*").ToString().c_str()); 317 EXPECT_STREQ("*", ToString(Pattern("*")).c_str());
311 EXPECT_EQ(ContentSettingsPattern::IDENTITY, 318 EXPECT_EQ(ContentSettingsPattern::IDENTITY,
312 Pattern("*").Compare(ContentSettingsPattern::Wildcard())); 319 Pattern("*").Compare(ContentSettingsPattern::Wildcard()));
313 320
314 // Patterns with port wildcard. 321 // Patterns with port wildcard.
315 EXPECT_TRUE(Pattern("http://example.com:*").IsValid()); 322 EXPECT_TRUE(Pattern("http://example.com:*").IsValid());
316 EXPECT_STREQ("http://example.com", 323 EXPECT_STREQ("http://example.com",
317 Pattern("http://example.com:*").ToString().c_str()); 324 ToString(Pattern("http://example.com:*")).c_str());
318 325
319 EXPECT_TRUE(Pattern("https://example.com").IsValid()); 326 EXPECT_TRUE(Pattern("https://example.com").IsValid());
320 EXPECT_STREQ("https://example.com", 327 EXPECT_STREQ("https://example.com",
321 Pattern("https://example.com").ToString().c_str()); 328 ToString(Pattern("https://example.com")).c_str());
322 329
323 EXPECT_TRUE(Pattern("*://www.google.com.com:8080").IsValid()); 330 EXPECT_TRUE(Pattern("*://www.google.com.com:8080").IsValid());
324 EXPECT_STREQ("www.google.com:8080", 331 EXPECT_STREQ("www.google.com:8080",
325 Pattern("*://www.google.com:8080").ToString().c_str()); 332 ToString(Pattern("*://www.google.com:8080")).c_str());
326 EXPECT_TRUE(Pattern("*://www.google.com:8080").Matches( 333 EXPECT_TRUE(Pattern("*://www.google.com:8080").Matches(
327 GURL("http://www.google.com:8080"))); 334 GURL("http://www.google.com:8080")));
328 EXPECT_TRUE(Pattern("*://www.google.com:8080").Matches( 335 EXPECT_TRUE(Pattern("*://www.google.com:8080").Matches(
329 GURL("https://www.google.com:8080"))); 336 GURL("https://www.google.com:8080")));
330 EXPECT_FALSE( 337 EXPECT_FALSE(
331 Pattern("*://www.google.com").Matches(GURL("file:///foo/bar.html"))); 338 Pattern("*://www.google.com").Matches(GURL("file:///foo/bar.html")));
332 339
333 EXPECT_TRUE(Pattern("www.example.com:8080").IsValid()); 340 EXPECT_TRUE(Pattern("www.example.com:8080").IsValid());
334 341
335 // Patterns with port and scheme wildcard. 342 // Patterns with port and scheme wildcard.
336 EXPECT_TRUE(Pattern("*://www.example.com:*").IsValid()); 343 EXPECT_TRUE(Pattern("*://www.example.com:*").IsValid());
337 EXPECT_STREQ("www.example.com", 344 EXPECT_STREQ("www.example.com",
338 Pattern("*://www.example.com:*").ToString().c_str()); 345 ToString(Pattern("*://www.example.com:*")).c_str());
339 346
340 EXPECT_TRUE(Pattern("*://www.example.com").IsValid()); 347 EXPECT_TRUE(Pattern("*://www.example.com").IsValid());
341 EXPECT_STREQ("www.example.com", 348 EXPECT_STREQ("www.example.com",
342 Pattern("*://www.example.com").ToString().c_str()); 349 ToString(Pattern("*://www.example.com")).c_str());
343 350
344 EXPECT_TRUE(Pattern("www.example.com:*").IsValid()); 351 EXPECT_TRUE(Pattern("www.example.com:*").IsValid());
345 EXPECT_STREQ("www.example.com", 352 EXPECT_STREQ("www.example.com",
346 Pattern("www.example.com:*").ToString().c_str()); 353 ToString(Pattern("www.example.com:*")).c_str());
347 354
348 EXPECT_TRUE(Pattern("www.example.com").IsValid()); 355 EXPECT_TRUE(Pattern("www.example.com").IsValid());
349 EXPECT_STREQ("www.example.com", 356 EXPECT_STREQ("www.example.com",
350 Pattern("www.example.com").ToString().c_str()); 357 ToString(Pattern("www.example.com")).c_str());
351 EXPECT_TRUE(Pattern("www.example.com").Matches( 358 EXPECT_TRUE(Pattern("www.example.com").Matches(
352 GURL("http://www.example.com/"))); 359 GURL("http://www.example.com/")));
353 EXPECT_FALSE(Pattern("example.com").Matches( 360 EXPECT_FALSE(Pattern("example.com").Matches(
354 GURL("http://example.org/"))); 361 GURL("http://example.org/")));
355 362
356 // Patterns with domain wildcard. 363 // Patterns with domain wildcard.
357 EXPECT_TRUE(Pattern("[*.]example.com").IsValid()); 364 EXPECT_TRUE(Pattern("[*.]example.com").IsValid());
358 EXPECT_STREQ("[*.]example.com", 365 EXPECT_STREQ("[*.]example.com",
359 Pattern("[*.]example.com").ToString().c_str()); 366 ToString(Pattern("[*.]example.com")).c_str());
360 EXPECT_TRUE(Pattern("[*.]example.com").Matches( 367 EXPECT_TRUE(Pattern("[*.]example.com").Matches(
361 GURL("http://example.com/"))); 368 GURL("http://example.com/")));
362 EXPECT_TRUE(Pattern("[*.]example.com").Matches( 369 EXPECT_TRUE(Pattern("[*.]example.com").Matches(
363 GURL("http://foo.example.com/"))); 370 GURL("http://foo.example.com/")));
364 EXPECT_FALSE(Pattern("[*.]example.com").Matches( 371 EXPECT_FALSE(Pattern("[*.]example.com").Matches(
365 GURL("http://example.org/"))); 372 GURL("http://example.org/")));
366 373
367 EXPECT_TRUE(Pattern("[*.]google.com:80").Matches( 374 EXPECT_TRUE(Pattern("[*.]google.com:80").Matches(
368 GURL("http://mail.google.com:80"))); 375 GURL("http://mail.google.com:80")));
369 EXPECT_FALSE(Pattern("[*.]google.com:80").Matches( 376 EXPECT_FALSE(Pattern("[*.]google.com:80").Matches(
(...skipping 13 matching lines...) Expand all
383 GURL("https://mail.google.com:4321"))); 390 GURL("https://mail.google.com:4321")));
384 EXPECT_TRUE(Pattern("[*.]example.com").Matches( 391 EXPECT_TRUE(Pattern("[*.]example.com").Matches(
385 GURL("http://example.com/"))); 392 GURL("http://example.com/")));
386 EXPECT_TRUE(Pattern("[*.]example.com").Matches( 393 EXPECT_TRUE(Pattern("[*.]example.com").Matches(
387 GURL("http://www.example.com/"))); 394 GURL("http://www.example.com/")));
388 395
389 // Patterns with host wildcard 396 // Patterns with host wildcard
390 EXPECT_TRUE(Pattern("[*.]").IsValid()); 397 EXPECT_TRUE(Pattern("[*.]").IsValid());
391 EXPECT_TRUE(Pattern("http://*").IsValid()); 398 EXPECT_TRUE(Pattern("http://*").IsValid());
392 EXPECT_TRUE(Pattern("http://[*.]").IsValid()); 399 EXPECT_TRUE(Pattern("http://[*.]").IsValid());
393 EXPECT_EQ(std::string("http://*"), Pattern("http://[*.]").ToString()); 400 EXPECT_EQ(std::string("http://*"), ToString(Pattern("http://[*.]")));
394 EXPECT_TRUE(Pattern("http://*:8080").IsValid()); 401 EXPECT_TRUE(Pattern("http://*:8080").IsValid());
395 EXPECT_TRUE(Pattern("*://*").IsValid()); 402 EXPECT_TRUE(Pattern("*://*").IsValid());
396 EXPECT_STREQ("*", Pattern("*://*").ToString().c_str()); 403 EXPECT_STREQ("*", ToString(Pattern("*://*")).c_str());
397 } 404 }
398 405
399 TEST(ContentSettingsPatternTest, FromString_Canonicalized) { 406 TEST(ContentSettingsPatternTest, FromString_Canonicalized) {
400 // UTF-8 patterns. 407 // UTF-8 patterns.
401 EXPECT_TRUE(Pattern("[*.]\xC4\x87ira.com").IsValid()); 408 EXPECT_TRUE(Pattern("[*.]\xC4\x87ira.com").IsValid());
402 EXPECT_STREQ("[*.]xn--ira-ppa.com", 409 EXPECT_STREQ("[*.]xn--ira-ppa.com",
403 Pattern("[*.]\xC4\x87ira.com").ToString().c_str()); 410 ToString(Pattern("[*.]\xC4\x87ira.com")).c_str());
404 EXPECT_TRUE(Pattern("\xC4\x87ira.com").IsValid()); 411 EXPECT_TRUE(Pattern("\xC4\x87ira.com").IsValid());
405 EXPECT_STREQ("xn--ira-ppa.com", 412 EXPECT_STREQ("xn--ira-ppa.com",
406 Pattern("\xC4\x87ira.com").ToString().c_str()); 413 ToString(Pattern("\xC4\x87ira.com")).c_str());
407 EXPECT_TRUE(Pattern("file:///\xC4\x87ira.html").IsValid()); 414 EXPECT_TRUE(Pattern("file:///\xC4\x87ira.html").IsValid());
408 EXPECT_STREQ("file:///%C4%87ira.html", 415 EXPECT_STREQ("file:///%C4%87ira.html",
409 Pattern("file:///\xC4\x87ira.html").ToString().c_str()); 416 ToString(Pattern("file:///\xC4\x87ira.html")).c_str());
410 417
411 // File path normalization. 418 // File path normalization.
412 EXPECT_TRUE(Pattern("file:///tmp/bar/../test.html").IsValid()); 419 EXPECT_TRUE(Pattern("file:///tmp/bar/../test.html").IsValid());
413 EXPECT_STREQ("file:///tmp/test.html", 420 EXPECT_STREQ("file:///tmp/test.html",
414 Pattern("file:///tmp/bar/../test.html").ToString().c_str()); 421 ToString(Pattern("file:///tmp/bar/../test.html")).c_str());
415 } 422 }
416 423
417 TEST(ContentSettingsPatternTest, InvalidPatterns) { 424 TEST(ContentSettingsPatternTest, InvalidPatterns) {
418 // StubObserver expects an empty pattern top be returned as empty string. 425 // StubObserver expects an empty pattern top be returned as empty string.
419 EXPECT_FALSE(ContentSettingsPattern().IsValid()); 426 EXPECT_FALSE(ContentSettingsPattern().IsValid());
420 EXPECT_STREQ("", ContentSettingsPattern().ToString().c_str()); 427 EXPECT_STREQ("", ToString(ContentSettingsPattern()).c_str());
421 428
422 // Empty pattern string 429 // Empty pattern string
423 EXPECT_FALSE(Pattern(std::string()).IsValid()); 430 EXPECT_FALSE(Pattern(std::string()).IsValid());
424 EXPECT_STREQ("", Pattern(std::string()).ToString().c_str()); 431 EXPECT_STREQ("", ToString(Pattern(std::string())).c_str());
425 432
426 // Pattern strings with invalid scheme part. 433 // Pattern strings with invalid scheme part.
427 EXPECT_FALSE(Pattern("ftp://myhost.org").IsValid()); 434 EXPECT_FALSE(Pattern("ftp://myhost.org").IsValid());
428 EXPECT_STREQ("", Pattern("ftp://myhost.org").ToString().c_str()); 435 EXPECT_STREQ("", ToString(Pattern("ftp://myhost.org")).c_str());
429 436
430 // Pattern strings with invalid host part. 437 // Pattern strings with invalid host part.
431 EXPECT_FALSE(Pattern("*example.com").IsValid()); 438 EXPECT_FALSE(Pattern("*example.com").IsValid());
432 EXPECT_STREQ("", Pattern("*example.com").ToString().c_str()); 439 EXPECT_STREQ("", ToString(Pattern("*example.com")).c_str());
433 EXPECT_FALSE(Pattern("example.*").IsValid()); 440 EXPECT_FALSE(Pattern("example.*").IsValid());
434 EXPECT_STREQ("", Pattern("example.*").ToString().c_str()); 441 EXPECT_STREQ("", ToString(Pattern("example.*")).c_str());
435 EXPECT_FALSE(Pattern("*\xC4\x87ira.com").IsValid()); 442 EXPECT_FALSE(Pattern("*\xC4\x87ira.com").IsValid());
436 EXPECT_STREQ("", Pattern("*\xC4\x87ira.com").ToString().c_str()); 443 EXPECT_STREQ("", ToString(Pattern("*\xC4\x87ira.com")).c_str());
437 EXPECT_FALSE(Pattern("\xC4\x87ira.*").IsValid()); 444 EXPECT_FALSE(Pattern("\xC4\x87ira.*").IsValid());
438 EXPECT_STREQ("", Pattern("\xC4\x87ira.*").ToString().c_str()); 445 EXPECT_STREQ("", ToString(Pattern("\xC4\x87ira.*")).c_str());
439 446
440 // Pattern strings with invalid port parts. 447 // Pattern strings with invalid port parts.
441 EXPECT_FALSE(Pattern("example.com:abc").IsValid()); 448 EXPECT_FALSE(Pattern("example.com:abc").IsValid());
442 EXPECT_STREQ("", Pattern("example.com:abc").ToString().c_str()); 449 EXPECT_STREQ("", ToString(Pattern("example.com:abc")).c_str());
443 450
444 // Invalid file pattern strings. 451 // Invalid file pattern strings.
445 EXPECT_FALSE(Pattern("file://").IsValid()); 452 EXPECT_FALSE(Pattern("file://").IsValid());
446 EXPECT_STREQ("", Pattern("file://").ToString().c_str()); 453 EXPECT_STREQ("", ToString(Pattern("file://")).c_str());
447 EXPECT_FALSE(Pattern("file:///foo/bar.html:8080").IsValid()); 454 EXPECT_FALSE(Pattern("file:///foo/bar.html:8080").IsValid());
448 EXPECT_STREQ("", Pattern("file:///foo/bar.html:8080").ToString().c_str()); 455 EXPECT_STREQ("", ToString(Pattern("file:///foo/bar.html:8080")).c_str());
449 456
450 // Host having multiple ending dots. 457 // Host having multiple ending dots.
451 EXPECT_FALSE(Pattern("www.example.com..").IsValid()); 458 EXPECT_FALSE(Pattern("www.example.com..").IsValid());
452 EXPECT_STREQ("", Pattern("www.example.com..").ToString().c_str()); 459 EXPECT_STREQ("", ToString(Pattern("www.example.com..")).c_str());
453 } 460 }
454 461
455 TEST(ContentSettingsPatternTest, UnequalOperator) { 462 TEST(ContentSettingsPatternTest, UnequalOperator) {
456 EXPECT_TRUE(Pattern("http://www.foo.com") != Pattern("http://www.foo.com*")); 463 EXPECT_TRUE(Pattern("http://www.foo.com") != Pattern("http://www.foo.com*"));
457 EXPECT_TRUE(Pattern("http://www.foo.com*") != 464 EXPECT_TRUE(Pattern("http://www.foo.com*") !=
458 ContentSettingsPattern::Wildcard()); 465 ContentSettingsPattern::Wildcard());
459 466
460 EXPECT_TRUE(Pattern("http://www.foo.com") != 467 EXPECT_TRUE(Pattern("http://www.foo.com") !=
461 ContentSettingsPattern::Wildcard()); 468 ContentSettingsPattern::Wildcard());
462 469
(...skipping 11 matching lines...) Expand all
474 Pattern("http://www.google.com"); 481 Pattern("http://www.google.com");
475 EXPECT_EQ(ContentSettingsPattern::IDENTITY, pattern1.Compare(pattern1)); 482 EXPECT_EQ(ContentSettingsPattern::IDENTITY, pattern1.Compare(pattern1));
476 EXPECT_EQ(ContentSettingsPattern::IDENTITY, 483 EXPECT_EQ(ContentSettingsPattern::IDENTITY,
477 Pattern("http://www.google.com:80").Compare( 484 Pattern("http://www.google.com:80").Compare(
478 Pattern("http://www.google.com:80"))); 485 Pattern("http://www.google.com:80")));
479 EXPECT_EQ(ContentSettingsPattern::IDENTITY, 486 EXPECT_EQ(ContentSettingsPattern::IDENTITY,
480 Pattern("*://[*.]google.com:*").Compare( 487 Pattern("*://[*.]google.com:*").Compare(
481 Pattern("*://[*.]google.com:*"))); 488 Pattern("*://[*.]google.com:*")));
482 489
483 ContentSettingsPattern invalid_pattern1; 490 ContentSettingsPattern invalid_pattern1;
484 ContentSettingsPattern invalid_pattern2 = 491 ContentSettingsPattern invalid_pattern2 = Pattern("google.com*");
485 ContentSettingsPattern::FromString("google.com*");
486 492
487 // Compare invalid patterns. 493 // Compare invalid patterns.
488 EXPECT_TRUE(!invalid_pattern1.IsValid()); 494 EXPECT_TRUE(!invalid_pattern1.IsValid());
489 EXPECT_TRUE(!invalid_pattern2.IsValid()); 495 EXPECT_TRUE(!invalid_pattern2.IsValid());
490 EXPECT_EQ(ContentSettingsPattern::IDENTITY, 496 EXPECT_EQ(ContentSettingsPattern::IDENTITY,
491 invalid_pattern1.Compare(invalid_pattern2)); 497 invalid_pattern1.Compare(invalid_pattern2));
492 EXPECT_TRUE(invalid_pattern1 == invalid_pattern2); 498 EXPECT_TRUE(invalid_pattern1 == invalid_pattern2);
493 499
494 // Compare a pattern with an IPv4 addresse to a pattern with a domain name. 500 // Compare a pattern with an IPv4 addresse to a pattern with a domain name.
495 EXPECT_EQ(ContentSettingsPattern::DISJOINT_ORDER_POST, 501 EXPECT_EQ(ContentSettingsPattern::DISJOINT_ORDER_POST,
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 EXPECT_FALSE( 644 EXPECT_FALSE(
639 Pattern("file:///tmp/test.html").Matches( 645 Pattern("file:///tmp/test.html").Matches(
640 GURL("file:///tmp/other.html"))); 646 GURL("file:///tmp/other.html")));
641 EXPECT_FALSE( 647 EXPECT_FALSE(
642 Pattern("file:///tmp/test.html").Matches( 648 Pattern("file:///tmp/test.html").Matches(
643 GURL("http://example.org/"))); 649 GURL("http://example.org/")));
644 } 650 }
645 651
646 TEST(ContentSettingsPatternTest, CanonicalizePattern_Legacy) { 652 TEST(ContentSettingsPatternTest, CanonicalizePattern_Legacy) {
647 // Basic patterns. 653 // Basic patterns.
648 EXPECT_STREQ("[*.]ikea.com", Pattern("[*.]ikea.com").ToString().c_str()); 654 EXPECT_STREQ("[*.]ikea.com", ToString(Pattern("[*.]ikea.com")).c_str());
649 EXPECT_STREQ("example.com", Pattern("example.com").ToString().c_str()); 655 EXPECT_STREQ("example.com", ToString(Pattern("example.com")).c_str());
650 EXPECT_STREQ("192.168.1.1", Pattern("192.168.1.1").ToString().c_str()); 656 EXPECT_STREQ("192.168.1.1", ToString(Pattern("192.168.1.1")).c_str());
651 EXPECT_STREQ("[::1]", Pattern("[::1]").ToString().c_str()); 657 EXPECT_STREQ("[::1]", ToString(Pattern("[::1]")).c_str());
652 EXPECT_STREQ("file:///tmp/file.html", 658 EXPECT_STREQ("file:///tmp/file.html",
653 Pattern("file:///tmp/file.html").ToString().c_str()); 659 ToString(Pattern("file:///tmp/file.html")).c_str());
654 660
655 // UTF-8 patterns. 661 // UTF-8 patterns.
656 EXPECT_STREQ("[*.]xn--ira-ppa.com", 662 EXPECT_STREQ("[*.]xn--ira-ppa.com",
657 Pattern("[*.]\xC4\x87ira.com").ToString().c_str()); 663 ToString(Pattern("[*.]\xC4\x87ira.com")).c_str());
658 EXPECT_STREQ("xn--ira-ppa.com", 664 EXPECT_STREQ("xn--ira-ppa.com",
659 Pattern("\xC4\x87ira.com").ToString().c_str()); 665 ToString(Pattern("\xC4\x87ira.com")).c_str());
660 EXPECT_STREQ("file:///%C4%87ira.html", 666 EXPECT_STREQ("file:///%C4%87ira.html",
661 Pattern("file:///\xC4\x87ira.html").ToString().c_str()); 667 ToString(Pattern("file:///\xC4\x87ira.html")).c_str());
662 668
663 // file:/// normalization. 669 // file:/// normalization.
664 EXPECT_STREQ("file:///tmp/test.html", 670 EXPECT_STREQ("file:///tmp/test.html",
665 Pattern("file:///tmp/bar/../test.html").ToString().c_str()); 671 ToString(Pattern("file:///tmp/bar/../test.html")).c_str());
666 672
667 // Invalid patterns. 673 // Invalid patterns.
668 EXPECT_STREQ("", Pattern("*example.com").ToString().c_str()); 674 EXPECT_STREQ("", ToString(Pattern("*example.com")).c_str());
669 EXPECT_STREQ("", Pattern("example.*").ToString().c_str()); 675 EXPECT_STREQ("", ToString(Pattern("example.*")).c_str());
670 EXPECT_STREQ("", Pattern("*\xC4\x87ira.com").ToString().c_str()); 676 EXPECT_STREQ("", ToString(Pattern("*\xC4\x87ira.com")).c_str());
671 EXPECT_STREQ("", Pattern("\xC4\x87ira.*").ToString().c_str()); 677 EXPECT_STREQ("", ToString(Pattern("\xC4\x87ira.*")).c_str());
672 } 678 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698