Index: webkit/appcache/manifest_parser_unittest.cc |
=================================================================== |
--- webkit/appcache/manifest_parser_unittest.cc (revision 113546) |
+++ 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; |
@@ -48,6 +48,7 @@ |
"CACHE MANIFEST\r\n", |
"CACHE MANIFEST\t# ignore me\r", |
"CACHE MANIFEST ignore\r\n", |
+ "CHROMIUM CACHE MANIFEST\r\n", |
"\xEF\xBB\xBF" "CACHE MANIFEST \r\n", // BOM present |
}; |
@@ -57,7 +58,7 @@ |
} |
} |
-TEST(ManifestParserTest, NoManifestUrl) { |
+TEST(AppCacheManifestParserTest, NoManifestUrl) { |
Manifest manifest; |
const std::string kData("CACHE MANIFEST\r" |
"relative/tobase.com\r" |
@@ -70,7 +71,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 +108,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 +131,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 +145,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 +176,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 +226,71 @@ |
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" |
+ "CHROMIUM-INTERCEPT:\r" |
+ "http://www.portme.com:1234/one return relative/int1\r" |
+ "HTTP://www.portme.com:9/wrong return http://www.portme.com:1234/ignore\r" |
+ "http://www.portme.com:1234/wrong return http://www.portme.com:9/boo\r" |
+ "relative/two return relative/int2\r" |
+ "relative/three wrong relative/threefb\r" |
+ "http://www.portme.com:1234/three return HTTP://www.portme.com:1234/int3\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/int1"), |
+ 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/int2"), |
+ 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/int3"), |
+ 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 |
- |