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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 dictionary_text, GURL("https://" + dictionary_domain))); | 185 dictionary_text, GURL("https://" + dictionary_domain))); |
186 | 186 |
187 GURL target_url("https://" + dictionary_domain + "/test"); | 187 GURL target_url("https://" + dictionary_domain + "/test"); |
188 std::string dictionary_list; | 188 std::string dictionary_list; |
189 // HTTPS target URL should advertise dictionary if secure scheme support is | 189 // HTTPS target URL should advertise dictionary if secure scheme support is |
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 SdchManager::Dictionary* dictionary = NULL; | 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 != 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 SdchManager::Dictionary* dictionary = NULL; | 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 == NULL); |
224 } | 224 } |
225 | 225 |
226 TEST_F(SdchManagerTest, FailToSetDomainMismatchDictionary) { | 226 TEST_F(SdchManagerTest, FailToSetDomainMismatchDictionary) { |
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)); |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 std::string server_hash_1; | 394 std::string server_hash_1; |
395 std::string server_hash_2; | 395 std::string server_hash_2; |
396 | 396 |
397 SdchManager::GenerateHash(dictionary_text_1, &tmp_hash, &server_hash_1); | 397 SdchManager::GenerateHash(dictionary_text_1, &tmp_hash, &server_hash_1); |
398 SdchManager::GenerateHash(dictionary_text_2, &tmp_hash, &server_hash_2); | 398 SdchManager::GenerateHash(dictionary_text_2, &tmp_hash, &server_hash_2); |
399 | 399 |
400 // Confirm that if you add directories to one manager, you | 400 // Confirm that if you add directories to one manager, you |
401 // can't get them from the other. | 401 // can't get them from the other. |
402 EXPECT_TRUE(sdch_manager()->AddSdchDictionary( | 402 EXPECT_TRUE(sdch_manager()->AddSdchDictionary( |
403 dictionary_text_1, GURL("http://" + dictionary_domain_1))); | 403 dictionary_text_1, GURL("http://" + dictionary_domain_1))); |
404 SdchManager::Dictionary* dictionary = NULL; | 404 scoped_refptr<SdchManager::Dictionary> dictionary; |
405 sdch_manager()->GetVcdiffDictionary( | 405 sdch_manager()->GetVcdiffDictionary( |
406 server_hash_1, | 406 server_hash_1, |
407 GURL("http://" + dictionary_domain_1 + "/random_url"), | 407 GURL("http://" + dictionary_domain_1 + "/random_url"), |
408 &dictionary); | 408 &dictionary); |
409 EXPECT_TRUE(dictionary); | 409 EXPECT_TRUE(dictionary); |
410 | 410 |
411 EXPECT_TRUE(second_manager.AddSdchDictionary( | 411 EXPECT_TRUE(second_manager.AddSdchDictionary( |
412 dictionary_text_2, GURL("http://" + dictionary_domain_2))); | 412 dictionary_text_2, GURL("http://" + dictionary_domain_2))); |
413 second_manager.GetVcdiffDictionary( | 413 second_manager.GetVcdiffDictionary( |
414 server_hash_2, | 414 server_hash_2, |
(...skipping 19 matching lines...) Expand all Loading... |
434 GURL secure_url("https://www.google.com"); | 434 GURL secure_url("https://www.google.com"); |
435 | 435 |
436 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(url)); | 436 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(url)); |
437 EXPECT_FALSE(sdch_manager()->IsInSupportedDomain(secure_url)); | 437 EXPECT_FALSE(sdch_manager()->IsInSupportedDomain(secure_url)); |
438 | 438 |
439 SdchManager::EnableSecureSchemeSupport(true); | 439 SdchManager::EnableSecureSchemeSupport(true); |
440 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(url)); | 440 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(url)); |
441 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(secure_url)); | 441 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(secure_url)); |
442 } | 442 } |
443 | 443 |
| 444 TEST_F(SdchManagerTest, ClearDictionaryData) { |
| 445 std::string dictionary_domain("x.y.z.google.com"); |
| 446 GURL blacklist_url("http://bad.chromium.org"); |
| 447 |
| 448 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); |
| 449 std::string tmp_hash; |
| 450 std::string server_hash; |
| 451 |
| 452 SdchManager::GenerateHash(dictionary_text, &tmp_hash, &server_hash); |
| 453 |
| 454 EXPECT_TRUE(sdch_manager()->AddSdchDictionary( |
| 455 dictionary_text, GURL("http://" + dictionary_domain))); |
| 456 scoped_refptr<SdchManager::Dictionary> dictionary; |
| 457 sdch_manager()->GetVcdiffDictionary( |
| 458 server_hash, |
| 459 GURL("http://" + dictionary_domain + "/random_url"), |
| 460 &dictionary); |
| 461 EXPECT_TRUE(dictionary); |
| 462 |
| 463 sdch_manager()->BlacklistDomain(GURL(blacklist_url)); |
| 464 EXPECT_FALSE(sdch_manager()->IsInSupportedDomain(blacklist_url)); |
| 465 |
| 466 sdch_manager()->ClearData(); |
| 467 |
| 468 dictionary = NULL; |
| 469 sdch_manager()->GetVcdiffDictionary( |
| 470 server_hash, |
| 471 GURL("http://" + dictionary_domain + "/random_url"), |
| 472 &dictionary); |
| 473 EXPECT_FALSE(dictionary); |
| 474 EXPECT_TRUE(sdch_manager()->IsInSupportedDomain(blacklist_url)); |
| 475 } |
| 476 |
444 } // namespace net | 477 } // namespace net |
445 | 478 |
OLD | NEW |