| 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 <limits.h> | 5 #include <limits.h> |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 // enabled. | 190 // enabled. |
| 191 sdch_manager()->GetAvailDictionaryList(target_url, &dictionary_list); | 191 sdch_manager()->GetAvailDictionaryList(target_url, &dictionary_list); |
| 192 EXPECT_FALSE(dictionary_list.empty()); | 192 EXPECT_FALSE(dictionary_list.empty()); |
| 193 | 193 |
| 194 // Dictionary should be available. | 194 // Dictionary should be available. |
| 195 scoped_refptr<SdchManager::Dictionary> dictionary; | 195 scoped_refptr<SdchManager::Dictionary> dictionary; |
| 196 std::string client_hash; | 196 std::string client_hash; |
| 197 std::string server_hash; | 197 std::string server_hash; |
| 198 sdch_manager()->GenerateHash(dictionary_text, &client_hash, &server_hash); | 198 sdch_manager()->GenerateHash(dictionary_text, &client_hash, &server_hash); |
| 199 sdch_manager()->GetVcdiffDictionary(server_hash, target_url, &dictionary); | 199 sdch_manager()->GetVcdiffDictionary(server_hash, target_url, &dictionary); |
| 200 EXPECT_TRUE(dictionary != NULL); | 200 EXPECT_TRUE(dictionary.get() != NULL); |
| 201 } | 201 } |
| 202 | 202 |
| 203 TEST_F(SdchManagerTest, CanNotUseHTTPDictionaryOverHTTPS) { | 203 TEST_F(SdchManagerTest, CanNotUseHTTPDictionaryOverHTTPS) { |
| 204 std::string dictionary_domain("x.y.z.google.com"); | 204 std::string dictionary_domain("x.y.z.google.com"); |
| 205 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); | 205 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); |
| 206 | 206 |
| 207 EXPECT_TRUE(sdch_manager()->AddSdchDictionary(dictionary_text, | 207 EXPECT_TRUE(sdch_manager()->AddSdchDictionary(dictionary_text, |
| 208 GURL("http://" + dictionary_domain))); | 208 GURL("http://" + dictionary_domain))); |
| 209 | 209 |
| 210 GURL target_url("https://" + dictionary_domain + "/test"); | 210 GURL target_url("https://" + dictionary_domain + "/test"); |
| 211 std::string dictionary_list; | 211 std::string dictionary_list; |
| 212 // HTTPS target URL should not advertise dictionary acquired over HTTP even if | 212 // HTTPS target URL should not advertise dictionary acquired over HTTP even if |
| 213 // secure scheme support is enabled. | 213 // secure scheme support is enabled. |
| 214 SdchManager::EnableSecureSchemeSupport(true); | 214 SdchManager::EnableSecureSchemeSupport(true); |
| 215 sdch_manager()->GetAvailDictionaryList(target_url, &dictionary_list); | 215 sdch_manager()->GetAvailDictionaryList(target_url, &dictionary_list); |
| 216 EXPECT_TRUE(dictionary_list.empty()); | 216 EXPECT_TRUE(dictionary_list.empty()); |
| 217 | 217 |
| 218 scoped_refptr<SdchManager::Dictionary> dictionary; | 218 scoped_refptr<SdchManager::Dictionary> dictionary; |
| 219 std::string client_hash; | 219 std::string client_hash; |
| 220 std::string server_hash; | 220 std::string server_hash; |
| 221 sdch_manager()->GenerateHash(dictionary_text, &client_hash, &server_hash); | 221 sdch_manager()->GenerateHash(dictionary_text, &client_hash, &server_hash); |
| 222 sdch_manager()->GetVcdiffDictionary(server_hash, target_url, &dictionary); | 222 sdch_manager()->GetVcdiffDictionary(server_hash, target_url, &dictionary); |
| 223 EXPECT_TRUE(dictionary == NULL); | 223 EXPECT_TRUE(dictionary.get() == NULL); |
| 224 } | 224 } |
| 225 | 225 |
| 226 TEST_F(SdchManagerTest, CanNotUseHTTPSDictionaryOverHTTP) { | 226 TEST_F(SdchManagerTest, CanNotUseHTTPSDictionaryOverHTTP) { |
| 227 std::string dictionary_domain("x.y.z.google.com"); | 227 std::string dictionary_domain("x.y.z.google.com"); |
| 228 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); | 228 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); |
| 229 | 229 |
| 230 SdchManager::EnableSecureSchemeSupport(true); | 230 SdchManager::EnableSecureSchemeSupport(true); |
| 231 EXPECT_TRUE(sdch_manager()->AddSdchDictionary(dictionary_text, | 231 EXPECT_TRUE(sdch_manager()->AddSdchDictionary(dictionary_text, |
| 232 GURL("https://" + dictionary_domain))); | 232 GURL("https://" + dictionary_domain))); |
| 233 | 233 |
| 234 GURL target_url("http://" + dictionary_domain + "/test"); | 234 GURL target_url("http://" + dictionary_domain + "/test"); |
| 235 std::string dictionary_list; | 235 std::string dictionary_list; |
| 236 // HTTP target URL should not advertise dictionary acquired over HTTPS even if | 236 // HTTP target URL should not advertise dictionary acquired over HTTPS even if |
| 237 // secure scheme support is enabled. | 237 // secure scheme support is enabled. |
| 238 sdch_manager()->GetAvailDictionaryList(target_url, &dictionary_list); | 238 sdch_manager()->GetAvailDictionaryList(target_url, &dictionary_list); |
| 239 EXPECT_TRUE(dictionary_list.empty()); | 239 EXPECT_TRUE(dictionary_list.empty()); |
| 240 | 240 |
| 241 scoped_refptr<SdchManager::Dictionary> dictionary; | 241 scoped_refptr<SdchManager::Dictionary> dictionary; |
| 242 std::string client_hash; | 242 std::string client_hash; |
| 243 std::string server_hash; | 243 std::string server_hash; |
| 244 sdch_manager()->GenerateHash(dictionary_text, &client_hash, &server_hash); | 244 sdch_manager()->GenerateHash(dictionary_text, &client_hash, &server_hash); |
| 245 sdch_manager()->GetVcdiffDictionary(server_hash, target_url, &dictionary); | 245 sdch_manager()->GetVcdiffDictionary(server_hash, target_url, &dictionary); |
| 246 EXPECT_TRUE(dictionary == NULL); | 246 EXPECT_TRUE(dictionary.get() == NULL); |
| 247 } | 247 } |
| 248 | 248 |
| 249 TEST_F(SdchManagerTest, FailToSetDomainMismatchDictionary) { | 249 TEST_F(SdchManagerTest, FailToSetDomainMismatchDictionary) { |
| 250 std::string dictionary_domain("x.y.z.google.com"); | 250 std::string dictionary_domain("x.y.z.google.com"); |
| 251 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); | 251 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); |
| 252 | 252 |
| 253 // Fail the "domain match" requirement. | 253 // Fail the "domain match" requirement. |
| 254 EXPECT_FALSE(sdch_manager()->AddSdchDictionary(dictionary_text, | 254 EXPECT_FALSE(sdch_manager()->AddSdchDictionary(dictionary_text, |
| 255 GURL("http://y.z.google.com"))); | 255 GURL("http://y.z.google.com"))); |
| 256 } | 256 } |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 | 422 |
| 423 // Confirm that if you add directories to one manager, you | 423 // Confirm that if you add directories to one manager, you |
| 424 // can't get them from the other. | 424 // can't get them from the other. |
| 425 EXPECT_TRUE(sdch_manager()->AddSdchDictionary( | 425 EXPECT_TRUE(sdch_manager()->AddSdchDictionary( |
| 426 dictionary_text_1, GURL("http://" + dictionary_domain_1))); | 426 dictionary_text_1, GURL("http://" + dictionary_domain_1))); |
| 427 scoped_refptr<SdchManager::Dictionary> dictionary; | 427 scoped_refptr<SdchManager::Dictionary> dictionary; |
| 428 sdch_manager()->GetVcdiffDictionary( | 428 sdch_manager()->GetVcdiffDictionary( |
| 429 server_hash_1, | 429 server_hash_1, |
| 430 GURL("http://" + dictionary_domain_1 + "/random_url"), | 430 GURL("http://" + dictionary_domain_1 + "/random_url"), |
| 431 &dictionary); | 431 &dictionary); |
| 432 EXPECT_TRUE(dictionary); | 432 EXPECT_TRUE(dictionary.get()); |
| 433 | 433 |
| 434 EXPECT_TRUE(second_manager.AddSdchDictionary( | 434 EXPECT_TRUE(second_manager.AddSdchDictionary( |
| 435 dictionary_text_2, GURL("http://" + dictionary_domain_2))); | 435 dictionary_text_2, GURL("http://" + dictionary_domain_2))); |
| 436 second_manager.GetVcdiffDictionary( | 436 second_manager.GetVcdiffDictionary( |
| 437 server_hash_2, | 437 server_hash_2, |
| 438 GURL("http://" + dictionary_domain_2 + "/random_url"), | 438 GURL("http://" + dictionary_domain_2 + "/random_url"), |
| 439 &dictionary); | 439 &dictionary); |
| 440 EXPECT_TRUE(dictionary); | 440 EXPECT_TRUE(dictionary.get()); |
| 441 | 441 |
| 442 sdch_manager()->GetVcdiffDictionary( | 442 sdch_manager()->GetVcdiffDictionary( |
| 443 server_hash_2, | 443 server_hash_2, |
| 444 GURL("http://" + dictionary_domain_2 + "/random_url"), | 444 GURL("http://" + dictionary_domain_2 + "/random_url"), |
| 445 &dictionary); | 445 &dictionary); |
| 446 EXPECT_FALSE(dictionary); | 446 EXPECT_FALSE(dictionary.get()); |
| 447 | 447 |
| 448 second_manager.GetVcdiffDictionary( | 448 second_manager.GetVcdiffDictionary( |
| 449 server_hash_1, | 449 server_hash_1, |
| 450 GURL("http://" + dictionary_domain_1 + "/random_url"), | 450 GURL("http://" + dictionary_domain_1 + "/random_url"), |
| 451 &dictionary); | 451 &dictionary); |
| 452 EXPECT_FALSE(dictionary); | 452 EXPECT_FALSE(dictionary.get()); |
| 453 } | 453 } |
| 454 | 454 |
| 455 TEST_F(SdchManagerTest, HttpsCorrectlySupported) { | 455 TEST_F(SdchManagerTest, HttpsCorrectlySupported) { |
| 456 GURL url("http://www.google.com"); | 456 GURL url("http://www.google.com"); |
| 457 GURL secure_url("https://www.google.com"); | 457 GURL secure_url("https://www.google.com"); |
| 458 | 458 |
| 459 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(url)); | 459 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(url)); |
| 460 EXPECT_FALSE(sdch_manager()->IsInSupportedDomain(secure_url)); | 460 EXPECT_FALSE(sdch_manager()->IsInSupportedDomain(secure_url)); |
| 461 | 461 |
| 462 SdchManager::EnableSecureSchemeSupport(true); | 462 SdchManager::EnableSecureSchemeSupport(true); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 474 | 474 |
| 475 SdchManager::GenerateHash(dictionary_text, &tmp_hash, &server_hash); | 475 SdchManager::GenerateHash(dictionary_text, &tmp_hash, &server_hash); |
| 476 | 476 |
| 477 EXPECT_TRUE(sdch_manager()->AddSdchDictionary( | 477 EXPECT_TRUE(sdch_manager()->AddSdchDictionary( |
| 478 dictionary_text, GURL("http://" + dictionary_domain))); | 478 dictionary_text, GURL("http://" + dictionary_domain))); |
| 479 scoped_refptr<SdchManager::Dictionary> dictionary; | 479 scoped_refptr<SdchManager::Dictionary> dictionary; |
| 480 sdch_manager()->GetVcdiffDictionary( | 480 sdch_manager()->GetVcdiffDictionary( |
| 481 server_hash, | 481 server_hash, |
| 482 GURL("http://" + dictionary_domain + "/random_url"), | 482 GURL("http://" + dictionary_domain + "/random_url"), |
| 483 &dictionary); | 483 &dictionary); |
| 484 EXPECT_TRUE(dictionary); | 484 EXPECT_TRUE(dictionary.get()); |
| 485 | 485 |
| 486 sdch_manager()->BlacklistDomain(GURL(blacklist_url), | 486 sdch_manager()->BlacklistDomain(GURL(blacklist_url), |
| 487 SdchManager::MIN_PROBLEM_CODE); | 487 SdchManager::MIN_PROBLEM_CODE); |
| 488 EXPECT_FALSE(sdch_manager()->IsInSupportedDomain(blacklist_url)); | 488 EXPECT_FALSE(sdch_manager()->IsInSupportedDomain(blacklist_url)); |
| 489 | 489 |
| 490 sdch_manager()->ClearData(); | 490 sdch_manager()->ClearData(); |
| 491 | 491 |
| 492 dictionary = NULL; | 492 dictionary = NULL; |
| 493 sdch_manager()->GetVcdiffDictionary( | 493 sdch_manager()->GetVcdiffDictionary( |
| 494 server_hash, | 494 server_hash, |
| 495 GURL("http://" + dictionary_domain + "/random_url"), | 495 GURL("http://" + dictionary_domain + "/random_url"), |
| 496 &dictionary); | 496 &dictionary); |
| 497 EXPECT_FALSE(dictionary); | 497 EXPECT_FALSE(dictionary.get()); |
| 498 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(blacklist_url)); | 498 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(blacklist_url)); |
| 499 } | 499 } |
| 500 | 500 |
| 501 } // namespace net | 501 } // namespace net |
| 502 | 502 |
| OLD | NEW |