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

Unified Diff: net/base/sdch_filter_unittest.cc

Issue 123383002: Enable SDCH support over HTTPS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address codereview comments. Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chrome_browser_main.cc ('k') | net/base/sdch_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/sdch_filter_unittest.cc
diff --git a/net/base/sdch_filter_unittest.cc b/net/base/sdch_filter_unittest.cc
index 1cc70cb58be4b4df9929ff1381e2c6ed94328003..ca73923869cc4bb8ef9bf68776a55d89574e3746 100644
--- a/net/base/sdch_filter_unittest.cc
+++ b/net/base/sdch_filter_unittest.cc
@@ -1232,6 +1232,83 @@ TEST_F(SdchFilterTest, CanSetExactMatchDictionary) {
GURL("http://" + dictionary_domain)));
}
+TEST_F(SdchFilterTest, CanAdvertiseDictionaryOverHTTP) {
+ std::string dictionary_domain("x.y.z.google.com");
+ std::string dictionary_text(NewSdchDictionary(dictionary_domain));
+
+ EXPECT_TRUE(sdch_manager_->AddSdchDictionary(dictionary_text,
+ GURL("http://" + dictionary_domain)));
+
+ std::string dictionary_list;
+ // HTTP target URL can advertise dictionary.
+ sdch_manager_->GetAvailDictionaryList(
+ GURL("http://" + dictionary_domain + "/test"),
+ &dictionary_list);
+ EXPECT_FALSE(dictionary_list.empty());
+}
+
+TEST_F(SdchFilterTest, CanNotAdvertiseDictionaryOverHTTPS) {
+ std::string dictionary_domain("x.y.z.google.com");
+ std::string dictionary_text(NewSdchDictionary(dictionary_domain));
+
+ EXPECT_TRUE(sdch_manager_->AddSdchDictionary(dictionary_text,
+ GURL("http://" + dictionary_domain)));
+
+ std::string dictionary_list;
+ // HTTPS target URL should NOT advertise dictionary.
+ sdch_manager_->GetAvailDictionaryList(
+ GURL("https://" + dictionary_domain + "/test"),
+ &dictionary_list);
+ EXPECT_TRUE(dictionary_list.empty());
+}
+
+TEST_F(SdchFilterTest, CanUseHTTPSDictionaryOverHTTPSIfEnabled) {
+ std::string dictionary_domain("x.y.z.google.com");
+ std::string dictionary_text(NewSdchDictionary(dictionary_domain));
+
+ EXPECT_TRUE(sdch_manager_->AddSdchDictionary(dictionary_text,
+ GURL("https://" + dictionary_domain)));
+
+ GURL target_url("https://" + dictionary_domain + "/test");
+ std::string dictionary_list;
+ // HTTPS target URL should advertise dictionary if secure scheme support is
+ // enabled.
+ sdch_manager_->EnableSecureSchemeSupport(true);
+ sdch_manager_->GetAvailDictionaryList(target_url, &dictionary_list);
+ EXPECT_FALSE(dictionary_list.empty());
+
+ // Dictionary should be available.
+ SdchManager::Dictionary* dictionary = NULL;
+ std::string client_hash;
+ std::string server_hash;
+ sdch_manager_->GenerateHash(dictionary_text, &client_hash, &server_hash);
+ sdch_manager_->GetVcdiffDictionary(server_hash, target_url, &dictionary);
+ EXPECT_TRUE(dictionary != NULL);
+}
+
+TEST_F(SdchFilterTest, CanNotUseHTTPDictionaryOverHTTPS) {
+ std::string dictionary_domain("x.y.z.google.com");
+ std::string dictionary_text(NewSdchDictionary(dictionary_domain));
+
+ EXPECT_TRUE(sdch_manager_->AddSdchDictionary(dictionary_text,
+ GURL("http://" + dictionary_domain)));
+
+ GURL target_url("https://" + dictionary_domain + "/test");
+ std::string dictionary_list;
+ // HTTPS target URL should not advertise dictionary acquired over HTTP even if
+ // secure scheme support is enabled.
+ sdch_manager_->EnableSecureSchemeSupport(true);
+ sdch_manager_->GetAvailDictionaryList(target_url, &dictionary_list);
+ EXPECT_TRUE(dictionary_list.empty());
+
+ SdchManager::Dictionary* dictionary = NULL;
+ std::string client_hash;
+ std::string server_hash;
+ sdch_manager_->GenerateHash(dictionary_text, &client_hash, &server_hash);
+ sdch_manager_->GetVcdiffDictionary(server_hash, target_url, &dictionary);
+ EXPECT_TRUE(dictionary == NULL);
+}
+
TEST_F(SdchFilterTest, FailToSetDomainMismatchDictionary) {
std::string dictionary_domain("x.y.z.google.com");
std::string dictionary_text(NewSdchDictionary(dictionary_domain));
« no previous file with comments | « chrome/browser/chrome_browser_main.cc ('k') | net/base/sdch_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698