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 "base/memory/memory_pressure_listener.h" | 5 #include "base/memory/memory_pressure_listener.h" |
6 #include "base/prefs/testing_pref_store.h" | 6 #include "base/prefs/testing_pref_store.h" |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "base/test/histogram_tester.h" | 9 #include "base/test/histogram_tester.h" |
10 #include "base/test/simple_test_clock.h" | 10 #include "base/test/simple_test_clock.h" |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 return; | 292 return; |
293 | 293 |
294 base::RunLoop run_loop; | 294 base::RunLoop run_loop; |
295 base::Closure quit_closure(run_loop.QuitClosure()); | 295 base::Closure quit_closure(run_loop.QuitClosure()); |
296 empty_url_request_jobs_callback = &quit_closure; | 296 empty_url_request_jobs_callback = &quit_closure; |
297 run_loop.Run(); | 297 run_loop.Run(); |
298 empty_url_request_jobs_callback = NULL; | 298 empty_url_request_jobs_callback = NULL; |
299 } | 299 } |
300 | 300 |
301 void SignalGetDictionaryAndClearJobs(GURL request_url, GURL dictionary_url) { | 301 void SignalGetDictionaryAndClearJobs(GURL request_url, GURL dictionary_url) { |
302 sdch_owner().OnGetDictionary(&sdch_manager_, request_url, dictionary_url); | 302 sdch_owner().OnGetDictionary(request_url, dictionary_url); |
303 WaitForNoJobs(); | 303 WaitForNoJobs(); |
304 } | 304 } |
305 | 305 |
306 // Create a unique (by hash) dictionary of the given size, | 306 // Create a unique (by hash) dictionary of the given size, |
307 // associate it with a unique URL, add it to the manager through | 307 // associate it with a unique URL, add it to the manager through |
308 // SdchOwner::OnDictionaryFetched(), and return whether that | 308 // SdchOwner::OnDictionaryFetched(), and return whether that |
309 // addition was successful or not. | 309 // addition was successful or not. |
310 bool CreateAndAddDictionary(size_t size, | 310 bool CreateAndAddDictionary(size_t size, |
311 std::string* server_hash_p, | 311 std::string* server_hash_p, |
312 base::Time last_used_time) { | 312 base::Time last_used_time) { |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 stale_newer)); | 554 stale_newer)); |
555 | 555 |
556 EXPECT_TRUE(CreateAndAddDictionary(kMaxSizeForTesting / 4, &server_hash_d3, | 556 EXPECT_TRUE(CreateAndAddDictionary(kMaxSizeForTesting / 4, &server_hash_d3, |
557 stale_older)); | 557 stale_older)); |
558 | 558 |
559 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); | 559 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); |
560 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d2)); | 560 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d2)); |
561 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); | 561 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); |
562 | 562 |
563 // Use the oldest dictionary. | 563 // Use the oldest dictionary. |
564 sdch_owner().OnDictionaryUsed(&sdch_manager(), server_hash_d3); | 564 sdch_owner().OnDictionaryUsed(server_hash_d3); |
565 | 565 |
566 // The addition of a new dictionary should succeed, evicting only the | 566 // The addition of a new dictionary should succeed, evicting only the |
567 // newer stale one. | 567 // newer stale one. |
568 std::string server_hash_d4; | 568 std::string server_hash_d4; |
569 EXPECT_TRUE( | 569 EXPECT_TRUE( |
570 CreateAndAddDictionary(kMaxSizeForTesting / 2, &server_hash_d4, fresh)); | 570 CreateAndAddDictionary(kMaxSizeForTesting / 2, &server_hash_d4, fresh)); |
571 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); | 571 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); |
572 EXPECT_FALSE(DictionaryPresentInManager(server_hash_d2)); | 572 EXPECT_FALSE(DictionaryPresentInManager(server_hash_d2)); |
573 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); | 573 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); |
574 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d4)); | 574 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d4)); |
(...skipping 18 matching lines...) Expand all Loading... |
593 stale_newer)); | 593 stale_newer)); |
594 | 594 |
595 EXPECT_TRUE(CreateAndAddDictionary(kMaxSizeForTesting / 4, &server_hash_d3, | 595 EXPECT_TRUE(CreateAndAddDictionary(kMaxSizeForTesting / 4, &server_hash_d3, |
596 stale_older)); | 596 stale_older)); |
597 | 597 |
598 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); | 598 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); |
599 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d2)); | 599 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d2)); |
600 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); | 600 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); |
601 | 601 |
602 // Use the older dictionaries. | 602 // Use the older dictionaries. |
603 sdch_owner().OnDictionaryUsed(&sdch_manager(), server_hash_d2); | 603 sdch_owner().OnDictionaryUsed(server_hash_d2); |
604 sdch_owner().OnDictionaryUsed(&sdch_manager(), server_hash_d3); | 604 sdch_owner().OnDictionaryUsed(server_hash_d3); |
605 | 605 |
606 // The addition of a new dictionary should fail, not evicting anything. | 606 // The addition of a new dictionary should fail, not evicting anything. |
607 std::string server_hash_d4; | 607 std::string server_hash_d4; |
608 EXPECT_FALSE( | 608 EXPECT_FALSE( |
609 CreateAndAddDictionary(kMaxSizeForTesting / 2, &server_hash_d4, fresh)); | 609 CreateAndAddDictionary(kMaxSizeForTesting / 2, &server_hash_d4, fresh)); |
610 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); | 610 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d1)); |
611 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d2)); | 611 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d2)); |
612 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); | 612 EXPECT_TRUE(DictionaryPresentInManager(server_hash_d3)); |
613 EXPECT_FALSE(DictionaryPresentInManager(server_hash_d4)); | 613 EXPECT_FALSE(DictionaryPresentInManager(server_hash_d4)); |
614 } | 614 } |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
864 int old_count; | 864 int old_count; |
865 { | 865 { |
866 ClearOwner(); | 866 ClearOwner(); |
867 base::DictionaryValue* dict = nullptr; | 867 base::DictionaryValue* dict = nullptr; |
868 ASSERT_TRUE(GetDictionaryForURL(pref_store_.get(), url, &hash, &dict)); | 868 ASSERT_TRUE(GetDictionaryForURL(pref_store_.get(), url, &hash, &dict)); |
869 ASSERT_TRUE(dict->GetInteger("use_count", &old_count)); | 869 ASSERT_TRUE(dict->GetInteger("use_count", &old_count)); |
870 } | 870 } |
871 | 871 |
872 ResetOwner(false); | 872 ResetOwner(false); |
873 ASSERT_TRUE(CompleteLoadFromURL(url, "0", true)); | 873 ASSERT_TRUE(CompleteLoadFromURL(url, "0", true)); |
874 owner_->OnDictionaryUsed(manager_.get(), hash); | 874 owner_->OnDictionaryUsed(hash); |
875 | 875 |
876 int new_count; | 876 int new_count; |
877 { | 877 { |
878 ClearOwner(); | 878 ClearOwner(); |
879 base::DictionaryValue* dict = nullptr; | 879 base::DictionaryValue* dict = nullptr; |
880 ASSERT_TRUE(GetDictionaryForURL(pref_store_.get(), url, nullptr, &dict)); | 880 ASSERT_TRUE(GetDictionaryForURL(pref_store_.get(), url, nullptr, &dict)); |
881 ASSERT_TRUE(dict->GetInteger("use_count", &new_count)); | 881 ASSERT_TRUE(dict->GetInteger("use_count", &new_count)); |
882 } | 882 } |
883 | 883 |
884 EXPECT_EQ(old_count + 1, new_count); | 884 EXPECT_EQ(old_count + 1, new_count); |
(...skipping 28 matching lines...) Expand all Loading... |
913 | 913 |
914 EXPECT_TRUE(CompleteLoadFromURL(url0, "0", true)); | 914 EXPECT_TRUE(CompleteLoadFromURL(url0, "0", true)); |
915 EXPECT_TRUE(CompleteLoadFromURL(url1, "1", false)); | 915 EXPECT_TRUE(CompleteLoadFromURL(url1, "1", false)); |
916 | 916 |
917 tester.ExpectTotalCount("Sdch3.NetworkBytesSpent", 1); | 917 tester.ExpectTotalCount("Sdch3.NetworkBytesSpent", 1); |
918 tester.ExpectUniqueSample("Sdch3.NetworkBytesSpent", | 918 tester.ExpectUniqueSample("Sdch3.NetworkBytesSpent", |
919 CreateDictionary(url1, "1").size(), 1); | 919 CreateDictionary(url1, "1").size(), 1); |
920 } | 920 } |
921 | 921 |
922 } // namespace net | 922 } // namespace net |
OLD | NEW |