OLD | NEW |
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/manifest_parser.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 #include "webkit/browser/appcache/manifest_parser.h" | |
10 | |
11 using appcache::Manifest; | |
12 using appcache::NamespaceVector; | |
13 using appcache::APPCACHE_FALLBACK_NAMESPACE; | |
14 using appcache::APPCACHE_INTERCEPT_NAMESPACE; | |
15 using appcache::APPCACHE_NETWORK_NAMESPACE; | |
16 using appcache::PARSE_MANIFEST_ALLOWING_INTERCEPTS; | |
17 using appcache::PARSE_MANIFEST_PER_STANDARD; | |
18 | 10 |
19 namespace content { | 11 namespace content { |
20 | 12 |
21 class AppCacheManifestParserTest : public testing::Test { | 13 class AppCacheManifestParserTest : public testing::Test { |
22 }; | 14 }; |
23 | 15 |
24 TEST(AppCacheManifestParserTest, NoData) { | 16 TEST(AppCacheManifestParserTest, NoData) { |
25 GURL url; | 17 GURL url; |
26 Manifest manifest; | 18 Manifest manifest; |
27 EXPECT_FALSE(ParseManifest(url, "", 0, | 19 EXPECT_FALSE(ParseManifest(url, "", 0, |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 "http://www.five.com\r\n" | 152 "http://www.five.com\r\n" |
161 "*foo\r"); | 153 "*foo\r"); |
162 | 154 |
163 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), | 155 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), |
164 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); | 156 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); |
165 EXPECT_TRUE(manifest.explicit_urls.empty()); | 157 EXPECT_TRUE(manifest.explicit_urls.empty()); |
166 EXPECT_TRUE(manifest.fallback_namespaces.empty()); | 158 EXPECT_TRUE(manifest.fallback_namespaces.empty()); |
167 EXPECT_TRUE(manifest.intercept_namespaces.empty()); | 159 EXPECT_TRUE(manifest.intercept_namespaces.empty()); |
168 EXPECT_FALSE(manifest.online_whitelist_all); | 160 EXPECT_FALSE(manifest.online_whitelist_all); |
169 | 161 |
170 const NamespaceVector& online = manifest.online_whitelist_namespaces; | 162 const AppCacheNamespaceVector& online = manifest.online_whitelist_namespaces; |
171 const size_t kExpected = 6; | 163 const size_t kExpected = 6; |
172 ASSERT_EQ(kExpected, online.size()); | 164 ASSERT_EQ(kExpected, online.size()); |
173 EXPECT_EQ(APPCACHE_NETWORK_NAMESPACE, online[0].type); | 165 EXPECT_EQ(APPCACHE_NETWORK_NAMESPACE, online[0].type); |
174 EXPECT_FALSE(online[0].is_pattern); | 166 EXPECT_FALSE(online[0].is_pattern); |
175 EXPECT_TRUE(online[0].target_url.is_empty()); | 167 EXPECT_TRUE(online[0].target_url.is_empty()); |
176 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); |
177 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); |
178 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); |
179 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); |
180 EXPECT_EQ(GURL("http://www.five.com"), online[4].namespace_url); | 172 EXPECT_EQ(GURL("http://www.five.com"), online[4].namespace_url); |
(...skipping 25 matching lines...) Expand all Loading... |
206 "FALLBACK:\n" | 198 "FALLBACK:\n" |
207 "relative/four#strip relative/fourfb#strip\r" | 199 "relative/four#strip relative/fourfb#strip\r" |
208 "http://www.glorp.com/notsame relative/skipped\r"); | 200 "http://www.glorp.com/notsame relative/skipped\r"); |
209 | 201 |
210 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), | 202 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), |
211 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); | 203 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); |
212 EXPECT_TRUE(manifest.explicit_urls.empty()); | 204 EXPECT_TRUE(manifest.explicit_urls.empty()); |
213 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); | 205 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); |
214 EXPECT_FALSE(manifest.online_whitelist_all); | 206 EXPECT_FALSE(manifest.online_whitelist_all); |
215 | 207 |
216 const NamespaceVector& fallbacks = manifest.fallback_namespaces; | 208 const AppCacheNamespaceVector& fallbacks = manifest.fallback_namespaces; |
217 const size_t kExpected = 5; | 209 const size_t kExpected = 5; |
218 ASSERT_EQ(kExpected, fallbacks.size()); | 210 ASSERT_EQ(kExpected, fallbacks.size()); |
219 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[0].type); | 211 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[0].type); |
220 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[1].type); | 212 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[1].type); |
221 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[2].type); | 213 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[2].type); |
222 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[3].type); | 214 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[3].type); |
223 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[4].type); | 215 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[4].type); |
224 EXPECT_EQ(GURL("http://glorp.com/relative/one"), | 216 EXPECT_EQ(GURL("http://glorp.com/relative/one"), |
225 fallbacks[0].namespace_url); | 217 fallbacks[0].namespace_url); |
226 EXPECT_EQ(GURL("http://glorp.com/onefb"), | 218 EXPECT_EQ(GURL("http://glorp.com/onefb"), |
(...skipping 30 matching lines...) Expand all Loading... |
257 "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" |
258 "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" |
259 "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"); |
260 | 252 |
261 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), | 253 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), |
262 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); | 254 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); |
263 EXPECT_TRUE(manifest.explicit_urls.empty()); | 255 EXPECT_TRUE(manifest.explicit_urls.empty()); |
264 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); | 256 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); |
265 EXPECT_FALSE(manifest.online_whitelist_all); | 257 EXPECT_FALSE(manifest.online_whitelist_all); |
266 | 258 |
267 const NamespaceVector& fallbacks = manifest.fallback_namespaces; | 259 const AppCacheNamespaceVector& fallbacks = manifest.fallback_namespaces; |
268 const size_t kExpected = 3; | 260 const size_t kExpected = 3; |
269 ASSERT_EQ(kExpected, fallbacks.size()); | 261 ASSERT_EQ(kExpected, fallbacks.size()); |
270 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[0].type); | 262 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[0].type); |
271 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[1].type); | 263 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[1].type); |
272 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[2].type); | 264 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[2].type); |
273 EXPECT_EQ(GURL("http://www.portme.com:1234/one"), | 265 EXPECT_EQ(GURL("http://www.portme.com:1234/one"), |
274 fallbacks[0].namespace_url); | 266 fallbacks[0].namespace_url); |
275 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/onefb"), | 267 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/onefb"), |
276 fallbacks[0].target_url); | 268 fallbacks[0].target_url); |
277 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"), | 269 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"), |
(...skipping 23 matching lines...) Expand all Loading... |
301 "http://www.portme.com:1234/skipme return http://www.portme.com/noport\r" | 293 "http://www.portme.com:1234/skipme return http://www.portme.com/noport\r" |
302 "relative/wrong/again missing/intercept_type\r"); | 294 "relative/wrong/again missing/intercept_type\r"); |
303 | 295 |
304 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), | 296 EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), |
305 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); | 297 PARSE_MANIFEST_ALLOWING_INTERCEPTS, manifest)); |
306 EXPECT_TRUE(manifest.fallback_namespaces.empty()); | 298 EXPECT_TRUE(manifest.fallback_namespaces.empty()); |
307 EXPECT_TRUE(manifest.explicit_urls.empty()); | 299 EXPECT_TRUE(manifest.explicit_urls.empty()); |
308 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); | 300 EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); |
309 EXPECT_FALSE(manifest.online_whitelist_all); | 301 EXPECT_FALSE(manifest.online_whitelist_all); |
310 | 302 |
311 const NamespaceVector& intercepts = manifest.intercept_namespaces; | 303 const AppCacheNamespaceVector& intercepts = manifest.intercept_namespaces; |
312 const size_t kExpected = 3; | 304 const size_t kExpected = 3; |
313 ASSERT_EQ(kExpected, intercepts.size()); | 305 ASSERT_EQ(kExpected, intercepts.size()); |
314 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE, intercepts[0].type); | 306 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE, intercepts[0].type); |
315 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE, intercepts[1].type); | 307 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE, intercepts[1].type); |
316 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE, intercepts[2].type); | 308 EXPECT_EQ(APPCACHE_INTERCEPT_NAMESPACE, intercepts[2].type); |
317 EXPECT_EQ(GURL("http://www.portme.com:1234/one"), | 309 EXPECT_EQ(GURL("http://www.portme.com:1234/one"), |
318 intercepts[0].namespace_url); | 310 intercepts[0].namespace_url); |
319 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/int1"), | 311 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/int1"), |
320 intercepts[0].target_url); | 312 intercepts[0].target_url); |
321 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"), | 313 EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"), |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 EXPECT_TRUE(manifest.online_whitelist_all); | 357 EXPECT_TRUE(manifest.online_whitelist_all); |
366 | 358 |
367 base::hash_set<std::string> urls = manifest.explicit_urls; | 359 base::hash_set<std::string> urls = manifest.explicit_urls; |
368 size_t expected = 3; | 360 size_t expected = 3; |
369 ASSERT_EQ(expected, urls.size()); | 361 ASSERT_EQ(expected, urls.size()); |
370 EXPECT_TRUE(urls.find("http://combo.com:42/relative/explicit-1") != | 362 EXPECT_TRUE(urls.find("http://combo.com:42/relative/explicit-1") != |
371 urls.end()); | 363 urls.end()); |
372 EXPECT_TRUE(urls.find("http://combo.com:99/explicit-2") != urls.end()); | 364 EXPECT_TRUE(urls.find("http://combo.com:99/explicit-2") != urls.end()); |
373 EXPECT_TRUE(urls.find("http://www.diff.com/explicit-3") != urls.end()); | 365 EXPECT_TRUE(urls.find("http://www.diff.com/explicit-3") != urls.end()); |
374 | 366 |
375 const NamespaceVector& online = manifest.online_whitelist_namespaces; | 367 const AppCacheNamespaceVector& online = manifest.online_whitelist_namespaces; |
376 expected = 4; | 368 expected = 4; |
377 ASSERT_EQ(expected, online.size()); | 369 ASSERT_EQ(expected, online.size()); |
378 EXPECT_EQ(GURL("http://combo.com/whitelist-1"), | 370 EXPECT_EQ(GURL("http://combo.com/whitelist-1"), |
379 online[0].namespace_url); | 371 online[0].namespace_url); |
380 EXPECT_EQ(GURL("http://www.diff.com/whitelist-2"), | 372 EXPECT_EQ(GURL("http://www.diff.com/whitelist-2"), |
381 online[1].namespace_url); | 373 online[1].namespace_url); |
382 EXPECT_EQ(GURL("http://combo.com:42/relative/whitelist-3"), | 374 EXPECT_EQ(GURL("http://combo.com:42/relative/whitelist-3"), |
383 online[2].namespace_url); | 375 online[2].namespace_url); |
384 EXPECT_EQ(GURL("http://combo.com:99/whitelist-4"), | 376 EXPECT_EQ(GURL("http://combo.com:99/whitelist-4"), |
385 online[3].namespace_url); | 377 online[3].namespace_url); |
386 | 378 |
387 const NamespaceVector& fallbacks = manifest.fallback_namespaces; | 379 const AppCacheNamespaceVector& fallbacks = manifest.fallback_namespaces; |
388 expected = 2; | 380 expected = 2; |
389 ASSERT_EQ(expected, fallbacks.size()); | 381 ASSERT_EQ(expected, fallbacks.size()); |
390 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[0].type); | 382 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[0].type); |
391 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[1].type); | 383 EXPECT_EQ(APPCACHE_FALLBACK_NAMESPACE, fallbacks[1].type); |
392 EXPECT_EQ(GURL("http://combo.com:42/fallback-1"), | 384 EXPECT_EQ(GURL("http://combo.com:42/fallback-1"), |
393 fallbacks[0].namespace_url); | 385 fallbacks[0].namespace_url); |
394 EXPECT_EQ(GURL("http://combo.com:42/fallback-1b"), | 386 EXPECT_EQ(GURL("http://combo.com:42/fallback-1b"), |
395 fallbacks[0].target_url); | 387 fallbacks[0].target_url); |
396 EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2"), | 388 EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2"), |
397 fallbacks[1].namespace_url); | 389 fallbacks[1].namespace_url); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 manifest.online_whitelist_namespaces[0].target_url); | 507 manifest.online_whitelist_namespaces[0].target_url); |
516 EXPECT_EQ( | 508 EXPECT_EQ( |
517 GURL("http://foo.com/network_pattern*"), | 509 GURL("http://foo.com/network_pattern*"), |
518 manifest.online_whitelist_namespaces[1].namespace_url); | 510 manifest.online_whitelist_namespaces[1].namespace_url); |
519 EXPECT_EQ( | 511 EXPECT_EQ( |
520 GURL(), | 512 GURL(), |
521 manifest.online_whitelist_namespaces[1].target_url); | 513 manifest.online_whitelist_namespaces[1].target_url); |
522 } | 514 } |
523 | 515 |
524 } // namespace content | 516 } // namespace content |
OLD | NEW |