Chromium Code Reviews| Index: webkit/appcache/manifest_parser_unittest.cc |
| =================================================================== |
| --- webkit/appcache/manifest_parser_unittest.cc (revision 112534) |
| +++ webkit/appcache/manifest_parser_unittest.cc (working copy) |
| @@ -10,17 +10,17 @@ |
| namespace appcache { |
| -class ManifestParserTest : public testing::Test { |
| +class AppCacheManifestParserTest : public testing::Test { |
| }; |
| -TEST(ManifestParserTest, NoData) { |
| +TEST(AppCacheManifestParserTest, NoData) { |
| GURL url; |
| Manifest manifest; |
| EXPECT_FALSE(ParseManifest(url, "", 0, manifest)); |
| EXPECT_FALSE(ParseManifest(url, "CACHE MANIFEST\r", 0, manifest)); // 0 len |
| } |
| -TEST(ManifestParserTest, CheckSignature) { |
| +TEST(AppCacheManifestParserTest, CheckSignature) { |
| GURL url; |
| Manifest manifest; |
| @@ -57,7 +57,7 @@ |
| } |
| } |
| -TEST(ManifestParserTest, NoManifestUrl) { |
| +TEST(AppCacheManifestParserTest, NoManifestUrl) { |
| Manifest manifest; |
| const std::string kData("CACHE MANIFEST\r" |
| "relative/tobase.com\r" |
| @@ -70,7 +70,7 @@ |
| EXPECT_FALSE(manifest.online_whitelist_all); |
| } |
| -TEST(ManifestParserTest, ExplicitUrls) { |
| +TEST(AppCacheManifestParserTest, ExplicitUrls) { |
| Manifest manifest; |
| const GURL kUrl("http://www.foo.com"); |
| const std::string kData("CACHE MANIFEST\r" |
| @@ -107,7 +107,7 @@ |
| EXPECT_TRUE(urls.find("http://www.foo.com/*") != urls.end()); |
| } |
| -TEST(ManifestParserTest, WhitelistUrls) { |
| +TEST(AppCacheManifestParserTest, WhitelistUrls) { |
| Manifest manifest; |
| const GURL kUrl("http://www.bar.com"); |
| const std::string kData("CACHE MANIFEST\r" |
| @@ -130,6 +130,7 @@ |
| EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), manifest)); |
| EXPECT_TRUE(manifest.explicit_urls.empty()); |
| EXPECT_TRUE(manifest.fallback_namespaces.empty()); |
| + EXPECT_TRUE(manifest.intercept_namespaces.empty()); |
| EXPECT_FALSE(manifest.online_whitelist_all); |
| std::vector<GURL> online = manifest.online_whitelist_namespaces; |
| @@ -143,7 +144,7 @@ |
| EXPECT_EQ(GURL("http://www.bar.com/*foo"), online[5]); |
| } |
| -TEST(ManifestParserTest, FallbackUrls) { |
| +TEST(AppCacheManifestParserTest, FallbackUrls) { |
| Manifest manifest; |
| const GURL kUrl("http://glorp.com"); |
| const std::string kData("CACHE MANIFEST\r" |
| @@ -174,32 +175,39 @@ |
| EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); |
| EXPECT_FALSE(manifest.online_whitelist_all); |
| - std::vector<FallbackNamespace> fallbacks = manifest.fallback_namespaces; |
| + const NamespaceVector& fallbacks = manifest.fallback_namespaces; |
| const size_t kExpected = 5; |
| ASSERT_EQ(kExpected, fallbacks.size()); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[0].type); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[1].type); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[2].type); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[3].type); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[4].type); |
| EXPECT_EQ(GURL("http://glorp.com/relative/one"), |
| - fallbacks[0].first); |
| + fallbacks[0].namespace_url); |
| EXPECT_EQ(GURL("http://glorp.com/onefb"), |
| - fallbacks[0].second); |
| + fallbacks[0].target_url); |
| EXPECT_EQ(GURL("http://glorp.com/two"), |
| - fallbacks[1].first); |
| + fallbacks[1].namespace_url); |
| EXPECT_EQ(GURL("http://glorp.com/relative/twofb"), |
| - fallbacks[1].second); |
| + fallbacks[1].target_url); |
| EXPECT_EQ(GURL("http://glorp.com/three"), |
| - fallbacks[2].first); |
| + fallbacks[2].namespace_url); |
| EXPECT_EQ(GURL("http://glorp.com/relative/threefb"), |
| - fallbacks[2].second); |
| + fallbacks[2].target_url); |
| EXPECT_EQ(GURL("http://glorp.com/three"), // duplicates are stored |
| - fallbacks[3].first); |
| + fallbacks[3].namespace_url); |
| EXPECT_EQ(GURL("http://glorp.com/three-dup"), |
| - fallbacks[3].second); |
| + fallbacks[3].target_url); |
| EXPECT_EQ(GURL("http://glorp.com/relative/four"), |
| - fallbacks[4].first); |
| + fallbacks[4].namespace_url); |
| EXPECT_EQ(GURL("http://glorp.com/relative/fourfb"), |
| - fallbacks[4].second); |
| + fallbacks[4].target_url); |
| + |
| + EXPECT_TRUE(manifest.intercept_namespaces.empty()); |
| } |
| -TEST(ManifestParserTest, FallbackUrlsWithPort) { |
| +TEST(AppCacheManifestParserTest, FallbackUrlsWithPort) { |
| Manifest manifest; |
| const GURL kUrl("http://www.portme.com:1234"); |
| const std::string kData("CACHE MANIFEST\r" |
| @@ -217,25 +225,72 @@ |
| EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); |
| EXPECT_FALSE(manifest.online_whitelist_all); |
| - std::vector<FallbackNamespace> fallbacks = manifest.fallback_namespaces; |
| + const NamespaceVector& fallbacks = manifest.fallback_namespaces; |
| const size_t kExpected = 3; |
| ASSERT_EQ(kExpected, fallbacks.size()); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[0].type); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[1].type); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[2].type); |
| EXPECT_EQ(GURL("http://www.portme.com:1234/one"), |
| - fallbacks[0].first); |
| + fallbacks[0].namespace_url); |
| EXPECT_EQ(GURL("http://www.portme.com:1234/relative/onefb"), |
| - fallbacks[0].second); |
| + fallbacks[0].target_url); |
| EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"), |
| - fallbacks[1].first); |
| + fallbacks[1].namespace_url); |
| EXPECT_EQ(GURL("http://www.portme.com:1234/relative/twofb"), |
| - fallbacks[1].second); |
| + fallbacks[1].target_url); |
| EXPECT_EQ(GURL("http://www.portme.com:1234/three"), |
| - fallbacks[2].first); |
| + fallbacks[2].namespace_url); |
| EXPECT_EQ(GURL("http://www.portme.com:1234/threefb"), |
| - fallbacks[2].second); |
| + fallbacks[2].target_url); |
| + |
| + EXPECT_TRUE(manifest.intercept_namespaces.empty()); |
| } |
| -TEST(ManifestParserTest, ComboUrls) { |
| +TEST(AppCacheManifestParserTest, InterceptUrls) { |
| Manifest manifest; |
| + const GURL kUrl("http://www.portme.com:1234"); |
| + const std::string kData("CHROMIUM CACHE MANIFEST\r" |
|
jennb
2011/12/05 23:23:07
Do we care if the manifest does not use the CHROMI
michaeln
2011/12/06 02:07:06
I was going to allow the intercept namespaces to w
|
| + "CHROMIUM-INTERCEPT:\r" |
| + "http://www.portme.com:1234/one return relative/onefb\r" |
|
jennb
2011/12/05 23:23:07
the fb in onefb stands for fallback. ;-)
Not tha
michaeln
2011/12/06 02:07:06
oh... its not short for facebook :)
|
| + "HTTP://www.portme.com:9876/wrong return http://www.portme.com:1234/ignore\r" |
| + "http://www.portme.com:1234/stillwrong return http://www.portme.com:42/boo\r" |
| + "relative/two return relative/twofb\r" |
| + "relative/three wrong relative/threefb\r" |
| + "http://www.portme.com:1234/three return HTTP://www.portme.com:1234/threefb\r" |
| + "http://www.portme.com/noport return http://www.portme.com:1234/skipped\r" |
| + "http://www.portme.com:1234/skipme return http://www.portme.com/noport\r" |
| + "relative/wrong/again missing/intercept_type\r"); |
| + |
| + EXPECT_TRUE(ParseManifest(kUrl, kData.c_str(), kData.length(), manifest)); |
| + EXPECT_TRUE(manifest.fallback_namespaces.empty()); |
| + EXPECT_TRUE(manifest.explicit_urls.empty()); |
| + EXPECT_TRUE(manifest.online_whitelist_namespaces.empty()); |
| + EXPECT_FALSE(manifest.online_whitelist_all); |
| + |
| + const NamespaceVector& intercepts = manifest.intercept_namespaces; |
| + const size_t kExpected = 3; |
| + ASSERT_EQ(kExpected, intercepts.size()); |
| + EXPECT_EQ(INTERCEPT_NAMESPACE, intercepts[0].type); |
| + EXPECT_EQ(INTERCEPT_NAMESPACE, intercepts[1].type); |
| + EXPECT_EQ(INTERCEPT_NAMESPACE, intercepts[2].type); |
| + EXPECT_EQ(GURL("http://www.portme.com:1234/one"), |
| + intercepts[0].namespace_url); |
| + EXPECT_EQ(GURL("http://www.portme.com:1234/relative/onefb"), |
| + intercepts[0].target_url); |
| + EXPECT_EQ(GURL("http://www.portme.com:1234/relative/two"), |
| + intercepts[1].namespace_url); |
| + EXPECT_EQ(GURL("http://www.portme.com:1234/relative/twofb"), |
| + intercepts[1].target_url); |
| + EXPECT_EQ(GURL("http://www.portme.com:1234/three"), |
| + intercepts[2].namespace_url); |
| + EXPECT_EQ(GURL("http://www.portme.com:1234/threefb"), |
| + intercepts[2].target_url); |
| + |
| +} |
| + |
| +TEST(AppCacheManifestParserTest, ComboUrls) { |
| + Manifest manifest; |
| const GURL kUrl("http://combo.com:42"); |
| const std::string kData("CACHE MANIFEST\r" |
| "relative/explicit-1\r" |
| @@ -275,20 +330,24 @@ |
| EXPECT_EQ(GURL("http://combo.com:42/relative/whitelist-3"), online[2]); |
| EXPECT_EQ(GURL("http://combo.com:99/whitelist-4"), online[3]); |
| - std::vector<FallbackNamespace> fallbacks = manifest.fallback_namespaces; |
| + const NamespaceVector& fallbacks = manifest.fallback_namespaces; |
| expected = 2; |
| ASSERT_EQ(expected, fallbacks.size()); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[0].type); |
| + EXPECT_EQ(FALLBACK_NAMESPACE, fallbacks[1].type); |
| EXPECT_EQ(GURL("http://combo.com:42/fallback-1"), |
| - fallbacks[0].first); |
| + fallbacks[0].namespace_url); |
| EXPECT_EQ(GURL("http://combo.com:42/fallback-1b"), |
| - fallbacks[0].second); |
| + fallbacks[0].target_url); |
| EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2"), |
| - fallbacks[1].first); |
| + fallbacks[1].namespace_url); |
| EXPECT_EQ(GURL("http://combo.com:42/relative/fallback-2b"), |
| - fallbacks[1].second); |
| + fallbacks[1].target_url); |
| + |
| + EXPECT_TRUE(manifest.intercept_namespaces.empty()); |
| } |
| -TEST(ManifestParserTest, UnusualUtf8) { |
| +TEST(AppCacheManifestParserTest, UnusualUtf8) { |
| Manifest manifest; |
| const GURL kUrl("http://bad.com"); |
| const std::string kData("CACHE MANIFEST\r" |
| @@ -301,7 +360,7 @@ |
| EXPECT_TRUE(urls.find("http://bad.com/nonbmp%F1%84%AB%BC") != urls.end()); |
| } |
| -TEST(ManifestParserTest, IgnoreAfterSpace) { |
| +TEST(AppCacheManifestParserTest, IgnoreAfterSpace) { |
| Manifest manifest; |
| const GURL kUrl("http://smorg.borg"); |
| const std::string kData( |
| @@ -313,7 +372,7 @@ |
| EXPECT_TRUE(urls.find("http://smorg.borg/resource.txt") != urls.end()); |
| } |
| -TEST(ManifestParserTest, DifferentOriginUrlWithSecureScheme) { |
| +TEST(AppCacheManifestParserTest, DifferentOriginUrlWithSecureScheme) { |
| Manifest manifest; |
| const GURL kUrl("https://www.foo.com"); |
| const std::string kData("CACHE MANIFEST\r" |
| @@ -341,4 +400,3 @@ |
| } |
| } // namespace appcache |
| - |