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

Side by Side Diff: content/browser/appcache/appcache_manifest_parser_unittest.cc

Issue 548373002: Rename AppCache's Manifest to AppCacheManifest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <string> 5 #include <string>
6 6
7 #include "content/browser/appcache/appcache_manifest_parser.h" 7 #include "content/browser/appcache/appcache_manifest_parser.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "url/gurl.h" 9 #include "url/gurl.h"
10 10
11 namespace content { 11 namespace content {
12 12
13 class AppCacheManifestParserTest : public testing::Test { 13 class AppCacheManifestParserTest : public testing::Test {
14 }; 14 };
15 15
16 TEST(AppCacheManifestParserTest, NoData) { 16 TEST(AppCacheManifestParserTest, NoData) {
17 GURL url; 17 GURL url;
18 Manifest manifest; 18 AppCacheManifest manifest;
19 EXPECT_FALSE(ParseManifest(url, "", 0, 19 EXPECT_FALSE(ParseManifest(url, "", 0,
20 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 20 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
21 EXPECT_FALSE(ParseManifest(url, "CACHE MANIFEST\r", 0, // Len is 0. 21 EXPECT_FALSE(ParseManifest(url, "CACHE MANIFEST\r", 0, // Len is 0.
22 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 22 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
23 } 23 }
24 24
25 TEST(AppCacheManifestParserTest, CheckSignature) { 25 TEST(AppCacheManifestParserTest, CheckSignature) {
26 GURL url; 26 GURL url;
27 Manifest manifest; 27 AppCacheManifest manifest;
28 28
29 const std::string kBadSignatures[] = { 29 const std::string kBadSignatures[] = {
30 "foo", 30 "foo",
31 "CACHE MANIFEST;V2\r", // not followed by whitespace 31 "CACHE MANIFEST;V2\r", // not followed by whitespace
32 "CACHE MANIFEST#bad\r", // no whitespace before comment 32 "CACHE MANIFEST#bad\r", // no whitespace before comment
33 "cache manifest ", // wrong case 33 "cache manifest ", // wrong case
34 "#CACHE MANIFEST\r", // comment 34 "#CACHE MANIFEST\r", // comment
35 "xCACHE MANIFEST\n", // bad first char 35 "xCACHE MANIFEST\n", // bad first char
36 " CACHE MANIFEST\r", // begins with whitespace 36 " CACHE MANIFEST\r", // begins with whitespace
37 "\xEF\xBE\xBF" "CACHE MANIFEST\r", // bad UTF-8 BOM value 37 "\xEF\xBE\xBF" "CACHE MANIFEST\r", // bad UTF-8 BOM value
(...skipping 18 matching lines...) Expand all
56 }; 56 };
57 57
58 for (size_t i = 0; i < arraysize(kGoodSignatures); ++i) { 58 for (size_t i = 0; i < arraysize(kGoodSignatures); ++i) {
59 const std::string good = kGoodSignatures[i]; 59 const std::string good = kGoodSignatures[i];
60 EXPECT_TRUE(ParseManifest(url, good.c_str(), good.length(), 60 EXPECT_TRUE(ParseManifest(url, good.c_str(), good.length(),
61 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 61 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
62 } 62 }
63 } 63 }
64 64
65 TEST(AppCacheManifestParserTest, NoManifestUrl) { 65 TEST(AppCacheManifestParserTest, NoManifestUrl) {
66 Manifest manifest; 66 AppCacheManifest manifest;
67 const std::string kData("CACHE MANIFEST\r" 67 const std::string kData("CACHE MANIFEST\r"
68 "relative/tobase.com\r" 68 "relative/tobase.com\r"
69 "http://absolute.com/addme.com"); 69 "http://absolute.com/addme.com");
70 const GURL kUrl; 70 const GURL kUrl;
71 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), 71 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(),
72 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 72 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
73 EXPECT_TRUE(manifest.explicit_urls.empty()); 73 EXPECT_TRUE(manifest.explicit_urls.empty());
74 EXPECT_TRUE(manifest.fallback_namespaces.empty()); 74 EXPECT_TRUE(manifest.fallback_namespaces.empty());
75 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); 75 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty());
76 EXPECT_FALSE(manifest.online_whitelist_all); 76 EXPECT_FALSE(manifest.online_whitelist_all);
77 } 77 }
78 78
79 TEST(AppCacheManifestParserTest, ExplicitUrls) { 79 TEST(AppCacheManifestParserTest, ExplicitUrls) {
80 Manifest manifest; 80 AppCacheManifest manifest;
81 const GURL kUrl("http://www.foo.com"); 81 const GURL kUrl("http://www.foo.com");
82 const std::string kData("CACHE MANIFEST\r" 82 const std::string kData("CACHE MANIFEST\r"
83 "relative/one\r" 83 "relative/one\r"
84 "# some comment\r" 84 "# some comment\r"
85 "http://www.foo.com/two#strip\r\n" 85 "http://www.foo.com/two#strip\r\n"
86 "NETWORK:\r" 86 "NETWORK:\r"
87 " \t CACHE:\r" 87 " \t CACHE:\r"
88 "HTTP://www.diff.com/three\r" 88 "HTTP://www.diff.com/three\r"
89 "FALLBACK:\r" 89 "FALLBACK:\r"
90 " \t # another comment with leading whitespace\n" 90 " \t # another comment with leading whitespace\n"
(...skipping 16 matching lines...) Expand all
107 ASSERT_EQ(kExpected, urls.size()); 107 ASSERT_EQ(kExpected, urls.size());
108 EXPECT_TRUE(urls.find("http://www.foo.com/relative/one") != urls.end()); 108 EXPECT_TRUE(urls.find("http://www.foo.com/relative/one") != urls.end());
109 EXPECT_TRUE(urls.find("http://www.foo.com/two") != urls.end()); 109 EXPECT_TRUE(urls.find("http://www.foo.com/two") != urls.end());
110 EXPECT_TRUE(urls.find("http://www.diff.com/three") != urls.end()); 110 EXPECT_TRUE(urls.find("http://www.diff.com/three") != urls.end());
111 EXPECT_TRUE(urls.find("http://www.foo.com/relative/four") != urls.end()); 111 EXPECT_TRUE(urls.find("http://www.foo.com/relative/four") != urls.end());
112 112
113 // Wildcard is treated as a relative URL in explicit section. 113 // Wildcard is treated as a relative URL in explicit section.
114 EXPECT_TRUE(urls.find("http://www.foo.com/*") != urls.end()); 114 EXPECT_TRUE(urls.find("http://www.foo.com/*") != urls.end());
115 115
116 // We should get the same results with intercepts disallowed. 116 // We should get the same results with intercepts disallowed.
117 manifest = Manifest(); 117 manifest = AppCacheManifest();
118 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), 118 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(),
119 PARSE_MANIFEST_PER_STANDARD, manifest)); 119 PARSE_MANIFEST_PER_STANDARD, manifest));
120 EXPECT_TRUE(manifest.fallback_namespaces.empty()); 120 EXPECT_TRUE(manifest.fallback_namespaces.empty());
121 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); 121 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty());
122 EXPECT_FALSE(manifest.online_whitelist_all); 122 EXPECT_FALSE(manifest.online_whitelist_all);
123 123
124 urls = manifest.explicit_urls; 124 urls = manifest.explicit_urls;
125 ASSERT_EQ(kExpected, urls.size()); 125 ASSERT_EQ(kExpected, urls.size());
126 EXPECT_TRUE(urls.find("http://www.foo.com/relative/one") != urls.end()); 126 EXPECT_TRUE(urls.find("http://www.foo.com/relative/one") != urls.end());
127 EXPECT_TRUE(urls.find("http://www.foo.com/two") != urls.end()); 127 EXPECT_TRUE(urls.find("http://www.foo.com/two") != urls.end());
128 EXPECT_TRUE(urls.find("http://www.diff.com/three") != urls.end()); 128 EXPECT_TRUE(urls.find("http://www.diff.com/three") != urls.end());
129 EXPECT_TRUE(urls.find("http://www.foo.com/relative/four") != urls.end()); 129 EXPECT_TRUE(urls.find("http://www.foo.com/relative/four") != urls.end());
130 130
131 // Wildcard is treated as a relative URL in explicit section. 131 // Wildcard is treated as a relative URL in explicit section.
132 EXPECT_TRUE(urls.find("http://www.foo.com/*") != urls.end()); 132 EXPECT_TRUE(urls.find("http://www.foo.com/*") != urls.end());
133 } 133 }
134 134
135 TEST(AppCacheManifestParserTest, WhitelistUrls) { 135 TEST(AppCacheManifestParserTest, WhitelistUrls) {
136 Manifest manifest; 136 AppCacheManifest manifest;
137 const GURL kUrl("http://www.bar.com"); 137 const GURL kUrl("http://www.bar.com");
138 const std::string kData("CACHE MANIFEST\r" 138 const std::string kData("CACHE MANIFEST\r"
139 "NETWORK:\r" 139 "NETWORK:\r"
140 "relative/one\r" 140 "relative/one\r"
141 "# a comment\r" 141 "# a comment\r"
142 "http://www.bar.com/two\r" 142 "http://www.bar.com/two\r"
143 "HTTP://www.diff.com/three#strip\n\r" 143 "HTTP://www.diff.com/three#strip\n\r"
144 "FALLBACK:\r" 144 "FALLBACK:\r"
145 "garbage\r" 145 "garbage\r"
146 "UNKNOWN:\r" 146 "UNKNOWN:\r"
(...skipping 20 matching lines...) Expand all
167 EXPECT_TRUE(online[0].target_url.is_empty()); 167 EXPECT_TRUE(online[0].target_url.is_empty());
168 EXPECT_EQ(GURL("http://www.bar.com/relative/one"), online[0].namespace_url); 168 EXPECT_EQ(GURL("http://www.bar.com/relative/one"), online[0].namespace_url);
169 EXPECT_EQ(GURL("http://www.bar.com/two"), online[1].namespace_url); 169 EXPECT_EQ(GURL("http://www.bar.com/two"), online[1].namespace_url);
170 EXPECT_EQ(GURL("http://www.diff.com/three"), online[2].namespace_url); 170 EXPECT_EQ(GURL("http://www.diff.com/three"), online[2].namespace_url);
171 EXPECT_EQ(GURL("http://www.bar.com/relative/four"), online[3].namespace_url); 171 EXPECT_EQ(GURL("http://www.bar.com/relative/four"), online[3].namespace_url);
172 EXPECT_EQ(GURL("http://www.five.com"), online[4].namespace_url); 172 EXPECT_EQ(GURL("http://www.five.com"), online[4].namespace_url);
173 EXPECT_EQ(GURL("http://www.bar.com/*foo"), online[5].namespace_url); 173 EXPECT_EQ(GURL("http://www.bar.com/*foo"), online[5].namespace_url);
174 } 174 }
175 175
176 TEST(AppCacheManifestParserTest, FallbackUrls) { 176 TEST(AppCacheManifestParserTest, FallbackUrls) {
177 Manifest manifest; 177 AppCacheManifest manifest;
178 const GURL kUrl("http://glorp.com"); 178 const GURL kUrl("http://glorp.com");
179 const std::string kData("CACHE MANIFEST\r" 179 const std::string kData("CACHE MANIFEST\r"
180 "# a comment\r" 180 "# a comment\r"
181 "CACHE:\r" 181 "CACHE:\r"
182 "NETWORK:\r" 182 "NETWORK:\r"
183 "UNKNOWN:\r" 183 "UNKNOWN:\r"
184 "FALLBACK:\r" 184 "FALLBACK:\r"
185 "relative/one \t \t http://glorp.com/onefb \t \r" 185 "relative/one \t \t http://glorp.com/onefb \t \r"
186 "*\r" 186 "*\r"
187 "https://glorp.com/wrong http://glorp.com/wrongfb\r" 187 "https://glorp.com/wrong http://glorp.com/wrongfb\r"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 fallbacks[3].target_url); 231 fallbacks[3].target_url);
232 EXPECT_EQ(GURL("http://glorp.com/relative/four"), 232 EXPECT_EQ(GURL("http://glorp.com/relative/four"),
233 fallbacks[4].namespace_url); 233 fallbacks[4].namespace_url);
234 EXPECT_EQ(GURL("http://glorp.com/relative/fourfb"), 234 EXPECT_EQ(GURL("http://glorp.com/relative/fourfb"),
235 fallbacks[4].target_url); 235 fallbacks[4].target_url);
236 236
237 EXPECT_TRUE(manifest.intercept_namespaces.empty()); 237 EXPECT_TRUE(manifest.intercept_namespaces.empty());
238 } 238 }
239 239
240 TEST(AppCacheManifestParserTest, FallbackUrlsWithPort) { 240 TEST(AppCacheManifestParserTest, FallbackUrlsWithPort) {
241 Manifest manifest; 241 AppCacheManifest manifest;
242 const GURL kUrl("http://www.portme.com:1234"); 242 const GURL kUrl("http://www.portme.com:1234");
243 const std::string kData("CACHE MANIFEST\r" 243 const std::string kData("CACHE MANIFEST\r"
244 "FALLBACK:\r" 244 "FALLBACK:\r"
245 "http://www.portme.com:1234/one relative/onefb\r" 245 "http://www.portme.com:1234/one relative/onefb\r"
246 "HTTP://www.portme.com:9876/wrong http://www.portme.com:1234/ignore\r" 246 "HTTP://www.portme.com:9876/wrong http://www.portme.com:1234/ignore\r"
247 "http://www.portme.com:1234/stillwrong http://www.portme.com:42/boo\r" 247 "http://www.portme.com:1234/stillwrong http://www.portme.com:42/boo\r"
248 "relative/two relative/twofb\r" 248 "relative/two relative/twofb\r"
249 "http://www.portme.com:1234/three HTTP://www.portme.com:1234/threefb\r" 249 "http://www.portme.com:1234/three HTTP://www.portme.com:1234/threefb\r"
250 "http://www.portme.com/noport http://www.portme.com:1234/skipped\r" 250 "http://www.portme.com/noport http://www.portme.com:1234/skipped\r"
251 "http://www.portme.com:1234/skipme http://www.portme.com/noport\r"); 251 "http://www.portme.com:1234/skipme http://www.portme.com/noport\r");
(...skipping 20 matching lines...) Expand all
272 fallbacks[1].target_url); 272 fallbacks[1].target_url);
273 EXPECT_EQ(GURL("http://www.portme.com:1234/three"), 273 EXPECT_EQ(GURL("http://www.portme.com:1234/three"),
274 fallbacks[2].namespace_url); 274 fallbacks[2].namespace_url);
275 EXPECT_EQ(GURL("http://www.portme.com:1234/threefb"), 275 EXPECT_EQ(GURL("http://www.portme.com:1234/threefb"),
276 fallbacks[2].target_url); 276 fallbacks[2].target_url);
277 277
278 EXPECT_TRUE(manifest.intercept_namespaces.empty()); 278 EXPECT_TRUE(manifest.intercept_namespaces.empty());
279 } 279 }
280 280
281 TEST(AppCacheManifestParserTest, InterceptUrls) { 281 TEST(AppCacheManifestParserTest, InterceptUrls) {
282 Manifest manifest; 282 AppCacheManifest manifest;
283 const GURL kUrl("http://www.portme.com:1234"); 283 const GURL kUrl("http://www.portme.com:1234");
284 const std::string kData("CHROMIUM CACHE MANIFEST\r" 284 const std::string kData("CHROMIUM CACHE MANIFEST\r"
285 "CHROMIUM-INTERCEPT:\r" 285 "CHROMIUM-INTERCEPT:\r"
286 "http://www.portme.com:1234/one return relative/int1\r" 286 "http://www.portme.com:1234/one return relative/int1\r"
287 "HTTP://www.portme.com:9/wrong return http://www.portme.com:1234/ignore\r" 287 "HTTP://www.portme.com:9/wrong return http://www.portme.com:1234/ignore\r"
288 "http://www.portme.com:1234/wrong return http://www.portme.com:9/boo\r" 288 "http://www.portme.com:1234/wrong return http://www.portme.com:9/boo\r"
289 "relative/two return relative/int2\r" 289 "relative/two return relative/int2\r"
290 "relative/three wrong relative/threefb\r" 290 "relative/three wrong relative/threefb\r"
291 "http://www.portme.com:1234/three return HTTP://www.portme.com:1234/int3\r" 291 "http://www.portme.com:1234/three return HTTP://www.portme.com:1234/int3\r"
292 "http://www.portme.com/noport return http://www.portme.com:1234/skipped\r" 292 "http://www.portme.com/noport return http://www.portme.com:1234/skipped\r"
(...skipping 20 matching lines...) Expand all
313 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"), 313 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"),
314 intercepts[1].namespace_url); 314 intercepts[1].namespace_url);
315 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/int2"), 315 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/int2"),
316 intercepts[1].target_url); 316 intercepts[1].target_url);
317 EXPECT_EQ(GURL("http://www.portme.com:1234/three"), 317 EXPECT_EQ(GURL("http://www.portme.com:1234/three"),
318 intercepts[2].namespace_url); 318 intercepts[2].namespace_url);
319 EXPECT_EQ(GURL("http://www.portme.com:1234/int3"), 319 EXPECT_EQ(GURL("http://www.portme.com:1234/int3"),
320 intercepts[2].target_url); 320 intercepts[2].target_url);
321 321
322 // Disallow intercepts ths time. 322 // Disallow intercepts ths time.
323 manifest = Manifest(); 323 manifest = AppCacheManifest();
324 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), 324 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(),
325 PARSE_MANIFEST_PER_STANDARD, manifest)); 325 PARSE_MANIFEST_PER_STANDARD, manifest));
326 EXPECT_TRUE(manifest.fallback_namespaces.empty()); 326 EXPECT_TRUE(manifest.fallback_namespaces.empty());
327 EXPECT_TRUE(manifest.explicit_urls.empty()); 327 EXPECT_TRUE(manifest.explicit_urls.empty());
328 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); 328 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty());
329 EXPECT_TRUE(manifest.intercept_namespaces.empty()); 329 EXPECT_TRUE(manifest.intercept_namespaces.empty());
330 EXPECT_FALSE(manifest.online_whitelist_all); 330 EXPECT_FALSE(manifest.online_whitelist_all);
331 } 331 }
332 332
333 TEST(AppCacheManifestParserTest, ComboUrls) { 333 TEST(AppCacheManifestParserTest, ComboUrls) {
334 Manifest manifest; 334 AppCacheManifest manifest;
335 const GURL kUrl("http://combo.com:42"); 335 const GURL kUrl("http://combo.com:42");
336 const std::string kData("CACHE MANIFEST\r" 336 const std::string kData("CACHE MANIFEST\r"
337 "relative/explicit-1\r" 337 "relative/explicit-1\r"
338 "# some comment\r" 338 "# some comment\r"
339 "http://combo.com:99/explicit-2#strip\r" 339 "http://combo.com:99/explicit-2#strip\r"
340 "NETWORK:\r" 340 "NETWORK:\r"
341 "http://combo.com/whitelist-1\r" 341 "http://combo.com/whitelist-1\r"
342 "HTTP://www.diff.com/whitelist-2#strip\r" 342 "HTTP://www.diff.com/whitelist-2#strip\r"
343 "*\r" 343 "*\r"
344 "CACHE:\n\r" 344 "CACHE:\n\r"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 fallbacks[0].target_url); 387 fallbacks[0].target_url);
388 EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2"), 388 EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2"),
389 fallbacks[1].namespace_url); 389 fallbacks[1].namespace_url);
390 EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2b"), 390 EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2b"),
391 fallbacks[1].target_url); 391 fallbacks[1].target_url);
392 392
393 EXPECT_TRUE(manifest.intercept_namespaces.empty()); 393 EXPECT_TRUE(manifest.intercept_namespaces.empty());
394 } 394 }
395 395
396 TEST(AppCacheManifestParserTest, UnusualUtf8) { 396 TEST(AppCacheManifestParserTest, UnusualUtf8) {
397 Manifest manifest; 397 AppCacheManifest manifest;
398 const GURL kUrl("http://bad.com"); 398 const GURL kUrl("http://bad.com");
399 const std::string kData("CACHE MANIFEST\r" 399 const std::string kData("CACHE MANIFEST\r"
400 "\xC0" "invalidutf8\r" 400 "\xC0" "invalidutf8\r"
401 "nonbmp" "\xF1\x84\xAB\xBC\r"); 401 "nonbmp" "\xF1\x84\xAB\xBC\r");
402 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), 402 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(),
403 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 403 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
404 base::hash_set<std::string> urls = manifest.explicit_urls; 404 base::hash_set<std::string> urls = manifest.explicit_urls;
405 EXPECT_TRUE(urls.find("http://bad.com/%EF%BF%BDinvalidutf8") != urls.end()); 405 EXPECT_TRUE(urls.find("http://bad.com/%EF%BF%BDinvalidutf8") != urls.end());
406 EXPECT_TRUE(urls.find("http://bad.com/nonbmp%F1%84%AB%BC") != urls.end()); 406 EXPECT_TRUE(urls.find("http://bad.com/nonbmp%F1%84%AB%BC") != urls.end());
407 } 407 }
408 408
409 TEST(AppCacheManifestParserTest, IgnoreAfterSpace) { 409 TEST(AppCacheManifestParserTest, IgnoreAfterSpace) {
410 Manifest manifest; 410 AppCacheManifest manifest;
411 const GURL kUrl("http://smorg.borg"); 411 const GURL kUrl("http://smorg.borg");
412 const std::string kData( 412 const std::string kData(
413 "CACHE MANIFEST\r" 413 "CACHE MANIFEST\r"
414 "resource.txt this stuff after the white space should be ignored\r"); 414 "resource.txt this stuff after the white space should be ignored\r");
415 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), 415 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(),
416 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 416 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
417 417
418 base::hash_set<std::string> urls = manifest.explicit_urls; 418 base::hash_set<std::string> urls = manifest.explicit_urls;
419 EXPECT_TRUE(urls.find("http://smorg.borg/resource.txt") != urls.end()); 419 EXPECT_TRUE(urls.find("http://smorg.borg/resource.txt") != urls.end());
420 } 420 }
421 421
422 TEST(AppCacheManifestParserTest, DifferentOriginUrlWithSecureScheme) { 422 TEST(AppCacheManifestParserTest, DifferentOriginUrlWithSecureScheme) {
423 Manifest manifest; 423 AppCacheManifest manifest;
424 const GURL kUrl("https://www.foo.com"); 424 const GURL kUrl("https://www.foo.com");
425 const std::string kData("CACHE MANIFEST\r" 425 const std::string kData("CACHE MANIFEST\r"
426 "CACHE: \r" 426 "CACHE: \r"
427 "relative/secureschemesameorigin\r" 427 "relative/secureschemesameorigin\r"
428 "https://www.foo.com/secureschemesameorigin\r" 428 "https://www.foo.com/secureschemesameorigin\r"
429 "http://www.xyz.com/secureschemedifforigin\r" 429 "http://www.xyz.com/secureschemedifforigin\r"
430 "https://www.xyz.com/secureschemedifforigin\r"); 430 "https://www.xyz.com/secureschemedifforigin\r");
431 431
432 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), 432 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(),
433 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 433 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
(...skipping 25 matching lines...) Expand all
459 "http://foo.com/*/intercept_pattern?query return /pattern isPattern\r" 459 "http://foo.com/*/intercept_pattern?query return /pattern isPattern\r"
460 "FALLBACK:\r" 460 "FALLBACK:\r"
461 "http://foo.com/fallback_prefix /prefix wrongAnnotation\r" 461 "http://foo.com/fallback_prefix /prefix wrongAnnotation\r"
462 "http://foo.com/fallback_pattern* /pattern\tisPattern \r" 462 "http://foo.com/fallback_pattern* /pattern\tisPattern \r"
463 "NETWORK:\r" 463 "NETWORK:\r"
464 "*\r" 464 "*\r"
465 "isPattern\r" // should not be interpretted as a pattern 465 "isPattern\r" // should not be interpretted as a pattern
466 "http://foo.com/network_pattern* isPattern\r"); 466 "http://foo.com/network_pattern* isPattern\r");
467 467
468 468
469 Manifest manifest; 469 AppCacheManifest manifest;
470 EXPECT_TRUE(ParseManifest(kUrl, kManifestBody.c_str(), 470 EXPECT_TRUE(ParseManifest(kUrl, kManifestBody.c_str(),
471 kManifestBody.length(), 471 kManifestBody.length(),
472 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); 472 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest));
473 EXPECT_TRUE(manifest.online_whitelist_all); 473 EXPECT_TRUE(manifest.online_whitelist_all);
474 EXPECT_EQ(1u, manifest.explicit_urls.size()); 474 EXPECT_EQ(1u, manifest.explicit_urls.size());
475 EXPECT_EQ(3u, manifest.intercept_namespaces.size()); 475 EXPECT_EQ(3u, manifest.intercept_namespaces.size());
476 EXPECT_EQ(2u, manifest.fallback_namespaces.size()); 476 EXPECT_EQ(2u, manifest.fallback_namespaces.size());
477 EXPECT_EQ(2u, manifest.online_whitelist_namespaces.size()); 477 EXPECT_EQ(2u, manifest.online_whitelist_namespaces.size());
478 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE, 478 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE,
479 manifest.intercept_namespaces[0].type); 479 manifest.intercept_namespaces[0].type);
(...skipping 27 matching lines...) Expand all
507 manifest.online_whitelist_namespaces[0].target_url); 507 manifest.online_whitelist_namespaces[0].target_url);
508 EXPECT_EQ( 508 EXPECT_EQ(
509 GURL("http://foo.com/network_pattern*"), 509 GURL("http://foo.com/network_pattern*"),
510 manifest.online_whitelist_namespaces[1].namespace_url); 510 manifest.online_whitelist_namespaces[1].namespace_url);
511 EXPECT_EQ( 511 EXPECT_EQ(
512 GURL(), 512 GURL(),
513 manifest.online_whitelist_namespaces[1].target_url); 513 manifest.online_whitelist_namespaces[1].target_url);
514 } 514 }
515 515
516 } // namespace content 516 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/appcache/appcache_manifest_parser.cc ('k') | content/browser/appcache/appcache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698