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

Side by Side Diff: webkit/appcache/appcache_update_job_unittest.cc

Issue 16155009: Update webkit/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/appcache/appcache_update_job.cc ('k') | webkit/appcache/appcache_url_request_job.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/threading/thread.h" 10 #include "base/threading/thread.h"
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 event_->Wait(); 617 event_->Wait();
618 } 618 }
619 619
620 void StartCacheAttemptTest() { 620 void StartCacheAttemptTest() {
621 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 621 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
622 622
623 MakeService(); 623 MakeService();
624 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"), 624 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"),
625 service_->storage()->NewGroupId()); 625 service_->storage()->NewGroupId());
626 626
627 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 627 AppCacheUpdateJob* update =
628 new AppCacheUpdateJob(service_.get(), group_.get());
628 group_->update_job_ = update; 629 group_->update_job_ = update;
629 630
630 MockFrontend mock_frontend; 631 MockFrontend mock_frontend;
631 AppCacheHost host(1, &mock_frontend, service_.get()); 632 AppCacheHost host(1, &mock_frontend, service_.get());
632 633
633 update->StartUpdate(&host, GURL()); 634 update->StartUpdate(&host, GURL());
634 635
635 // Verify state. 636 // Verify state.
636 EXPECT_EQ(AppCacheUpdateJob::CACHE_ATTEMPT, update->update_type_); 637 EXPECT_EQ(AppCacheUpdateJob::CACHE_ATTEMPT, update->update_type_);
637 EXPECT_EQ(AppCacheUpdateJob::FETCH_MANIFEST, update->internal_state_); 638 EXPECT_EQ(AppCacheUpdateJob::FETCH_MANIFEST, update->internal_state_);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 host1.AssociateCompleteCache(cache1); 672 host1.AssociateCompleteCache(cache1);
672 673
673 AppCacheHost host2(2, &mock_frontend2, service_.get()); 674 AppCacheHost host2(2, &mock_frontend2, service_.get());
674 host2.AssociateCompleteCache(cache2); 675 host2.AssociateCompleteCache(cache2);
675 676
676 AppCacheHost host3(3, &mock_frontend1, service_.get()); 677 AppCacheHost host3(3, &mock_frontend1, service_.get());
677 host3.AssociateCompleteCache(cache1); 678 host3.AssociateCompleteCache(cache1);
678 679
679 AppCacheHost host4(4, &mock_frontend3, service_.get()); 680 AppCacheHost host4(4, &mock_frontend3, service_.get());
680 681
681 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 682 AppCacheUpdateJob* update =
683 new AppCacheUpdateJob(service_.get(), group_.get());
682 group_->update_job_ = update; 684 group_->update_job_ = update;
683 update->StartUpdate(&host4, GURL()); 685 update->StartUpdate(&host4, GURL());
684 686
685 // Verify state after starting an update. 687 // Verify state after starting an update.
686 EXPECT_EQ(AppCacheUpdateJob::UPGRADE_ATTEMPT, update->update_type_); 688 EXPECT_EQ(AppCacheUpdateJob::UPGRADE_ATTEMPT, update->update_type_);
687 EXPECT_EQ(AppCacheUpdateJob::FETCH_MANIFEST, update->internal_state_); 689 EXPECT_EQ(AppCacheUpdateJob::FETCH_MANIFEST, update->internal_state_);
688 EXPECT_EQ(AppCacheGroup::CHECKING, group_->update_status()); 690 EXPECT_EQ(AppCacheGroup::CHECKING, group_->update_status());
689 691
690 // Verify notifications. 692 // Verify notifications.
691 MockFrontend::RaisedEvents& events = mock_frontend1.raised_events_; 693 MockFrontend::RaisedEvents& events = mock_frontend1.raised_events_;
(...skipping 23 matching lines...) Expand all
715 } 717 }
716 UpdateFinished(); 718 UpdateFinished();
717 } 719 }
718 720
719 void CacheAttemptFetchManifestFailTest() { 721 void CacheAttemptFetchManifestFailTest() {
720 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 722 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
721 723
722 MakeService(); 724 MakeService();
723 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"), 725 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"),
724 service_->storage()->NewGroupId()); 726 service_->storage()->NewGroupId());
725 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 727 AppCacheUpdateJob* update =
728 new AppCacheUpdateJob(service_.get(), group_.get());
726 group_->update_job_ = update; 729 group_->update_job_ = update;
727 730
728 MockFrontend* frontend = MakeMockFrontend(); 731 MockFrontend* frontend = MakeMockFrontend();
729 AppCacheHost* host = MakeHost(1, frontend); 732 AppCacheHost* host = MakeHost(1, frontend);
730 update->StartUpdate(host, GURL()); 733 update->StartUpdate(host, GURL());
731 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 734 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
732 735
733 update->manifest_fetcher_->request()->CancelWithError(-100); 736 update->manifest_fetcher_->request()->CancelWithError(-100);
734 737
735 // Set up checks for when update job finishes. 738 // Set up checks for when update job finishes.
736 do_checks_after_update_finished_ = true; 739 do_checks_after_update_finished_ = true;
737 expect_group_obsolete_ = false; 740 expect_group_obsolete_ = false;
738 expect_group_has_cache_ = false; 741 expect_group_has_cache_ = false;
739 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 742 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
740 CHECKING_EVENT); 743 CHECKING_EVENT);
741 744
742 WaitForUpdateToFinish(); 745 WaitForUpdateToFinish();
743 } 746 }
744 747
745 void UpgradeFetchManifestFailTest() { 748 void UpgradeFetchManifestFailTest() {
746 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 749 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
747 750
748 MakeService(); 751 MakeService();
749 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"), 752 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"),
750 service_->storage()->NewGroupId()); 753 service_->storage()->NewGroupId());
751 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 754 AppCacheUpdateJob* update =
755 new AppCacheUpdateJob(service_.get(), group_.get());
752 group_->update_job_ = update; 756 group_->update_job_ = update;
753 757
754 AppCache* cache = MakeCacheForGroup(1, 111); 758 AppCache* cache = MakeCacheForGroup(1, 111);
755 MockFrontend* frontend1 = MakeMockFrontend(); 759 MockFrontend* frontend1 = MakeMockFrontend();
756 MockFrontend* frontend2 = MakeMockFrontend(); 760 MockFrontend* frontend2 = MakeMockFrontend();
757 AppCacheHost* host1 = MakeHost(1, frontend1); 761 AppCacheHost* host1 = MakeHost(1, frontend1);
758 AppCacheHost* host2 = MakeHost(2, frontend2); 762 AppCacheHost* host2 = MakeHost(2, frontend2);
759 host1->AssociateCompleteCache(cache); 763 host1->AssociateCompleteCache(cache);
760 host2->AssociateCompleteCache(cache); 764 host2->AssociateCompleteCache(cache);
761 765
(...skipping 21 matching lines...) Expand all
783 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 787 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
784 788
785 net::URLRequestJobFactoryImpl* new_factory( 789 net::URLRequestJobFactoryImpl* new_factory(
786 new net::URLRequestJobFactoryImpl); 790 new net::URLRequestJobFactoryImpl);
787 new_factory->SetProtocolHandler("http", new RedirectFactory); 791 new_factory->SetProtocolHandler("http", new RedirectFactory);
788 io_thread_->SetNewJobFactory(new_factory); 792 io_thread_->SetNewJobFactory(new_factory);
789 793
790 MakeService(); 794 MakeService();
791 group_ = new AppCacheGroup(service_->storage(), GURL("http://testme"), 795 group_ = new AppCacheGroup(service_->storage(), GURL("http://testme"),
792 service_->storage()->NewGroupId()); 796 service_->storage()->NewGroupId());
793 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 797 AppCacheUpdateJob* update =
798 new AppCacheUpdateJob(service_.get(), group_.get());
794 group_->update_job_ = update; 799 group_->update_job_ = update;
795 800
796 MockFrontend* frontend = MakeMockFrontend(); 801 MockFrontend* frontend = MakeMockFrontend();
797 AppCacheHost* host = MakeHost(1, frontend); 802 AppCacheHost* host = MakeHost(1, frontend);
798 update->StartUpdate(host, GURL()); 803 update->StartUpdate(host, GURL());
799 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 804 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
800 805
801 // Set up checks for when update job finishes. 806 // Set up checks for when update job finishes.
802 do_checks_after_update_finished_ = true; 807 do_checks_after_update_finished_ = true;
803 expect_group_obsolete_ = false; 808 expect_group_obsolete_ = false;
804 expect_group_has_cache_ = false; // redirect is like a failed request 809 expect_group_has_cache_ = false; // redirect is like a failed request
805 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 810 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
806 CHECKING_EVENT); 811 CHECKING_EVENT);
807 812
808 WaitForUpdateToFinish(); 813 WaitForUpdateToFinish();
809 } 814 }
810 815
811 void ManifestMissingMimeTypeTest() { 816 void ManifestMissingMimeTypeTest() {
812 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 817 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
813 818
814 MakeService(); 819 MakeService();
815 group_ = new AppCacheGroup( 820 group_ = new AppCacheGroup(
816 service_->storage(), 821 service_->storage(),
817 MockHttpServer::GetMockUrl("files/missing-mime-manifest"), 822 MockHttpServer::GetMockUrl("files/missing-mime-manifest"),
818 service_->storage()->NewGroupId()); 823 service_->storage()->NewGroupId());
819 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 824 AppCacheUpdateJob* update =
825 new AppCacheUpdateJob(service_.get(), group_.get());
820 group_->update_job_ = update; 826 group_->update_job_ = update;
821 827
822 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 33); 828 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 33);
823 MockFrontend* frontend = MakeMockFrontend(); 829 MockFrontend* frontend = MakeMockFrontend();
824 AppCacheHost* host = MakeHost(1, frontend); 830 AppCacheHost* host = MakeHost(1, frontend);
825 host->AssociateCompleteCache(cache); 831 host->AssociateCompleteCache(cache);
826 832
827 frontend->SetVerifyProgressEvents(true); 833 frontend->SetVerifyProgressEvents(true);
828 834
829 update->StartUpdate(NULL, GURL()); 835 update->StartUpdate(NULL, GURL());
(...skipping 15 matching lines...) Expand all
845 WaitForUpdateToFinish(); 851 WaitForUpdateToFinish();
846 } 852 }
847 853
848 void ManifestNotFoundTest() { 854 void ManifestNotFoundTest() {
849 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 855 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
850 856
851 MakeService(); 857 MakeService();
852 group_ = new AppCacheGroup( 858 group_ = new AppCacheGroup(
853 service_->storage(), MockHttpServer::GetMockUrl("files/nosuchfile"), 859 service_->storage(), MockHttpServer::GetMockUrl("files/nosuchfile"),
854 service_->storage()->NewGroupId()); 860 service_->storage()->NewGroupId());
855 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 861 AppCacheUpdateJob* update =
862 new AppCacheUpdateJob(service_.get(), group_.get());
856 group_->update_job_ = update; 863 group_->update_job_ = update;
857 864
858 AppCache* cache = MakeCacheForGroup(1, 111); 865 AppCache* cache = MakeCacheForGroup(1, 111);
859 MockFrontend* frontend1 = MakeMockFrontend(); 866 MockFrontend* frontend1 = MakeMockFrontend();
860 MockFrontend* frontend2 = MakeMockFrontend(); 867 MockFrontend* frontend2 = MakeMockFrontend();
861 AppCacheHost* host1 = MakeHost(1, frontend1); 868 AppCacheHost* host1 = MakeHost(1, frontend1);
862 AppCacheHost* host2 = MakeHost(2, frontend2); 869 AppCacheHost* host2 = MakeHost(2, frontend2);
863 host1->AssociateCompleteCache(cache); 870 host1->AssociateCompleteCache(cache);
864 host2->AssociateCompleteCache(cache); 871 host2->AssociateCompleteCache(cache);
865 872
(...skipping 15 matching lines...) Expand all
881 WaitForUpdateToFinish(); 888 WaitForUpdateToFinish();
882 } 889 }
883 890
884 void ManifestGoneTest() { 891 void ManifestGoneTest() {
885 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 892 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
886 893
887 MakeService(); 894 MakeService();
888 group_ = new AppCacheGroup( 895 group_ = new AppCacheGroup(
889 service_->storage(), MockHttpServer::GetMockUrl("files/gone"), 896 service_->storage(), MockHttpServer::GetMockUrl("files/gone"),
890 service_->storage()->NewGroupId()); 897 service_->storage()->NewGroupId());
891 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 898 AppCacheUpdateJob* update =
899 new AppCacheUpdateJob(service_.get(), group_.get());
892 group_->update_job_ = update; 900 group_->update_job_ = update;
893 901
894 MockFrontend* frontend = MakeMockFrontend(); 902 MockFrontend* frontend = MakeMockFrontend();
895 AppCacheHost* host = MakeHost(1, frontend); 903 AppCacheHost* host = MakeHost(1, frontend);
896 update->StartUpdate(host, GURL()); 904 update->StartUpdate(host, GURL());
897 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 905 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
898 906
899 // Set up checks for when update job finishes. 907 // Set up checks for when update job finishes.
900 do_checks_after_update_finished_ = true; 908 do_checks_after_update_finished_ = true;
901 expect_group_obsolete_ = false; 909 expect_group_obsolete_ = false;
902 expect_group_has_cache_ = false; 910 expect_group_has_cache_ = false;
903 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 911 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
904 CHECKING_EVENT); 912 CHECKING_EVENT);
905 913
906 WaitForUpdateToFinish(); 914 WaitForUpdateToFinish();
907 } 915 }
908 916
909 void CacheAttemptNotModifiedTest() { 917 void CacheAttemptNotModifiedTest() {
910 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 918 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
911 919
912 MakeService(); 920 MakeService();
913 group_ = new AppCacheGroup( 921 group_ = new AppCacheGroup(
914 service_->storage(), MockHttpServer::GetMockUrl("files/notmodified"), 922 service_->storage(), MockHttpServer::GetMockUrl("files/notmodified"),
915 service_->storage()->NewGroupId()); 923 service_->storage()->NewGroupId());
916 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 924 AppCacheUpdateJob* update =
925 new AppCacheUpdateJob(service_.get(), group_.get());
917 group_->update_job_ = update; 926 group_->update_job_ = update;
918 927
919 MockFrontend* frontend = MakeMockFrontend(); 928 MockFrontend* frontend = MakeMockFrontend();
920 AppCacheHost* host = MakeHost(1, frontend); 929 AppCacheHost* host = MakeHost(1, frontend);
921 update->StartUpdate(host, GURL()); 930 update->StartUpdate(host, GURL());
922 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 931 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
923 932
924 // Set up checks for when update job finishes. 933 // Set up checks for when update job finishes.
925 do_checks_after_update_finished_ = true; 934 do_checks_after_update_finished_ = true;
926 expect_group_obsolete_ = false; 935 expect_group_obsolete_ = false;
927 expect_group_has_cache_ = false; // treated like cache failure 936 expect_group_has_cache_ = false; // treated like cache failure
928 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 937 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
929 CHECKING_EVENT); 938 CHECKING_EVENT);
930 939
931 WaitForUpdateToFinish(); 940 WaitForUpdateToFinish();
932 } 941 }
933 942
934 void UpgradeNotModifiedTest() { 943 void UpgradeNotModifiedTest() {
935 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 944 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
936 945
937 MakeService(); 946 MakeService();
938 group_ = new AppCacheGroup( 947 group_ = new AppCacheGroup(
939 service_->storage(), MockHttpServer::GetMockUrl("files/notmodified"), 948 service_->storage(), MockHttpServer::GetMockUrl("files/notmodified"),
940 service_->storage()->NewGroupId()); 949 service_->storage()->NewGroupId());
941 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 950 AppCacheUpdateJob* update =
951 new AppCacheUpdateJob(service_.get(), group_.get());
942 group_->update_job_ = update; 952 group_->update_job_ = update;
943 953
944 AppCache* cache = MakeCacheForGroup(1, 111); 954 AppCache* cache = MakeCacheForGroup(1, 111);
945 MockFrontend* frontend1 = MakeMockFrontend(); 955 MockFrontend* frontend1 = MakeMockFrontend();
946 MockFrontend* frontend2 = MakeMockFrontend(); 956 MockFrontend* frontend2 = MakeMockFrontend();
947 AppCacheHost* host1 = MakeHost(1, frontend1); 957 AppCacheHost* host1 = MakeHost(1, frontend1);
948 AppCacheHost* host2 = MakeHost(2, frontend2); 958 AppCacheHost* host2 = MakeHost(2, frontend2);
949 host1->AssociateCompleteCache(cache); 959 host1->AssociateCompleteCache(cache);
950 host2->AssociateCompleteCache(cache); 960 host2->AssociateCompleteCache(cache);
951 961
(...skipping 15 matching lines...) Expand all
967 WaitForUpdateToFinish(); 977 WaitForUpdateToFinish();
968 } 978 }
969 979
970 void UpgradeManifestDataUnchangedTest() { 980 void UpgradeManifestDataUnchangedTest() {
971 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 981 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
972 982
973 MakeService(); 983 MakeService();
974 group_ = new AppCacheGroup( 984 group_ = new AppCacheGroup(
975 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 985 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
976 service_->storage()->NewGroupId()); 986 service_->storage()->NewGroupId());
977 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 987 AppCacheUpdateJob* update =
988 new AppCacheUpdateJob(service_.get(), group_.get());
978 group_->update_job_ = update; 989 group_->update_job_ = update;
979 990
980 // Create response writer to get a response id. 991 // Create response writer to get a response id.
981 response_writer_.reset( 992 response_writer_.reset(
982 service_->storage()->CreateResponseWriter(group_->manifest_url(), 993 service_->storage()->CreateResponseWriter(group_->manifest_url(),
983 group_->group_id())); 994 group_->group_id()));
984 995
985 AppCache* cache = MakeCacheForGroup(1, response_writer_->response_id()); 996 AppCache* cache = MakeCacheForGroup(1, response_writer_->response_id());
986 MockFrontend* frontend1 = MakeMockFrontend(); 997 MockFrontend* frontend1 = MakeMockFrontend();
987 MockFrontend* frontend2 = MakeMockFrontend(); 998 MockFrontend* frontend2 = MakeMockFrontend();
(...skipping 12 matching lines...) Expand all
1000 frontend1->AddExpectedEvent(ids1, NO_UPDATE_EVENT); 1011 frontend1->AddExpectedEvent(ids1, NO_UPDATE_EVENT);
1001 MockFrontend::HostIds ids2(1, host2->host_id()); 1012 MockFrontend::HostIds ids2(1, host2->host_id());
1002 frontend2->AddExpectedEvent(ids2, CHECKING_EVENT); 1013 frontend2->AddExpectedEvent(ids2, CHECKING_EVENT);
1003 frontend2->AddExpectedEvent(ids2, NO_UPDATE_EVENT); 1014 frontend2->AddExpectedEvent(ids2, NO_UPDATE_EVENT);
1004 1015
1005 // Seed storage with expected manifest data. 1016 // Seed storage with expected manifest data.
1006 const std::string seed_data(kManifest1Contents); 1017 const std::string seed_data(kManifest1Contents);
1007 scoped_refptr<net::StringIOBuffer> io_buffer( 1018 scoped_refptr<net::StringIOBuffer> io_buffer(
1008 new net::StringIOBuffer(seed_data)); 1019 new net::StringIOBuffer(seed_data));
1009 response_writer_->WriteData( 1020 response_writer_->WriteData(
1010 io_buffer, seed_data.length(), 1021 io_buffer.get(),
1022 seed_data.length(),
1011 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, 1023 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
1012 base::Unretained(this))); 1024 base::Unretained(this)));
1013 1025
1014 // Start update after data write completes asynchronously. 1026 // Start update after data write completes asynchronously.
1015 } 1027 }
1016 1028
1017 // See http://code.google.com/p/chromium/issues/detail?id=95101 1029 // See http://code.google.com/p/chromium/issues/detail?id=95101
1018 void Bug95101Test() { 1030 void Bug95101Test() {
1019 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1031 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1020 1032
1021 MakeService(); 1033 MakeService();
1022 group_ = new AppCacheGroup( 1034 group_ = new AppCacheGroup(
1023 service_->storage(), MockHttpServer::GetMockUrl("files/empty-manifest"), 1035 service_->storage(), MockHttpServer::GetMockUrl("files/empty-manifest"),
1024 service_->storage()->NewGroupId()); 1036 service_->storage()->NewGroupId());
1025 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1037 AppCacheUpdateJob* update =
1038 new AppCacheUpdateJob(service_.get(), group_.get());
1026 group_->update_job_ = update; 1039 group_->update_job_ = update;
1027 1040
1028 // Create a malformed cache with a missing manifest entry. 1041 // Create a malformed cache with a missing manifest entry.
1029 GURL wrong_manifest_url = 1042 GURL wrong_manifest_url =
1030 MockHttpServer::GetMockUrl("files/missing-mime-manifest"); 1043 MockHttpServer::GetMockUrl("files/missing-mime-manifest");
1031 AppCache* cache = MakeCacheForGroup(1, wrong_manifest_url, 111); 1044 AppCache* cache = MakeCacheForGroup(1, wrong_manifest_url, 111);
1032 MockFrontend* frontend = MakeMockFrontend(); 1045 MockFrontend* frontend = MakeMockFrontend();
1033 AppCacheHost* host = MakeHost(1, frontend); 1046 AppCacheHost* host = MakeHost(1, frontend);
1034 host->AssociateCompleteCache(cache); 1047 host->AssociateCompleteCache(cache);
1035 1048
(...skipping 26 matching lines...) Expand all
1062 1075
1063 void BasicCacheAttemptSuccessTest() { 1076 void BasicCacheAttemptSuccessTest() {
1064 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1077 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1065 1078
1066 GURL manifest_url = MockHttpServer::GetMockUrl("files/manifest1"); 1079 GURL manifest_url = MockHttpServer::GetMockUrl("files/manifest1");
1067 1080
1068 MakeService(); 1081 MakeService();
1069 group_ = new AppCacheGroup( 1082 group_ = new AppCacheGroup(
1070 service_->storage(), manifest_url, 1083 service_->storage(), manifest_url,
1071 service_->storage()->NewGroupId()); 1084 service_->storage()->NewGroupId());
1072 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1085 AppCacheUpdateJob* update =
1086 new AppCacheUpdateJob(service_.get(), group_.get());
1073 group_->update_job_ = update; 1087 group_->update_job_ = update;
1074 1088
1075 MockFrontend* frontend = MakeMockFrontend(); 1089 MockFrontend* frontend = MakeMockFrontend();
1076 AppCacheHost* host = MakeHost(1, frontend); 1090 AppCacheHost* host = MakeHost(1, frontend);
1077 update->StartUpdate(host, GURL()); 1091 update->StartUpdate(host, GURL());
1078 1092
1079 // Set up checks for when update job finishes. 1093 // Set up checks for when update job finishes.
1080 do_checks_after_update_finished_ = true; 1094 do_checks_after_update_finished_ = true;
1081 expect_group_obsolete_ = false; 1095 expect_group_obsolete_ = false;
1082 expect_group_has_cache_ = true; 1096 expect_group_has_cache_ = true;
1083 tested_manifest_ = MANIFEST1; 1097 tested_manifest_ = MANIFEST1;
1084 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 1098 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
1085 CHECKING_EVENT); 1099 CHECKING_EVENT);
1086 1100
1087 WaitForUpdateToFinish(); 1101 WaitForUpdateToFinish();
1088 } 1102 }
1089 1103
1090 void DownloadInterceptEntriesTest() { 1104 void DownloadInterceptEntriesTest() {
1091 // Ensures we download intercept entries too. 1105 // Ensures we download intercept entries too.
1092 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1106 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1093 GURL manifest_url = 1107 GURL manifest_url =
1094 MockHttpServer::GetMockUrl("files/manifest-with-intercept"); 1108 MockHttpServer::GetMockUrl("files/manifest-with-intercept");
1095 MakeService(); 1109 MakeService();
1096 group_ = new AppCacheGroup( 1110 group_ = new AppCacheGroup(
1097 service_->storage(), manifest_url, 1111 service_->storage(), manifest_url,
1098 service_->storage()->NewGroupId()); 1112 service_->storage()->NewGroupId());
1099 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1113 AppCacheUpdateJob* update =
1114 new AppCacheUpdateJob(service_.get(), group_.get());
1100 group_->update_job_ = update; 1115 group_->update_job_ = update;
1101 1116
1102 MockFrontend* frontend = MakeMockFrontend(); 1117 MockFrontend* frontend = MakeMockFrontend();
1103 AppCacheHost* host = MakeHost(1, frontend); 1118 AppCacheHost* host = MakeHost(1, frontend);
1104 update->StartUpdate(host, GURL()); 1119 update->StartUpdate(host, GURL());
1105 1120
1106 // Set up checks for when update job finishes. 1121 // Set up checks for when update job finishes.
1107 do_checks_after_update_finished_ = true; 1122 do_checks_after_update_finished_ = true;
1108 expect_group_obsolete_ = false; 1123 expect_group_obsolete_ = false;
1109 expect_group_has_cache_ = true; 1124 expect_group_has_cache_ = true;
1110 tested_manifest_ = MANIFEST_WITH_INTERCEPT; 1125 tested_manifest_ = MANIFEST_WITH_INTERCEPT;
1111 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 1126 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
1112 CHECKING_EVENT); 1127 CHECKING_EVENT);
1113 1128
1114 WaitForUpdateToFinish(); 1129 WaitForUpdateToFinish();
1115 } 1130 }
1116 1131
1117 void BasicUpgradeSuccessTest() { 1132 void BasicUpgradeSuccessTest() {
1118 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1133 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1119 1134
1120 MakeService(); 1135 MakeService();
1121 group_ = new AppCacheGroup( 1136 group_ = new AppCacheGroup(
1122 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 1137 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
1123 service_->storage()->NewGroupId()); 1138 service_->storage()->NewGroupId());
1124 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1139 AppCacheUpdateJob* update =
1140 new AppCacheUpdateJob(service_.get(), group_.get());
1125 group_->update_job_ = update; 1141 group_->update_job_ = update;
1126 1142
1127 // Create a response writer to get a response id. 1143 // Create a response writer to get a response id.
1128 response_writer_.reset( 1144 response_writer_.reset(
1129 service_->storage()->CreateResponseWriter(group_->manifest_url(), 1145 service_->storage()->CreateResponseWriter(group_->manifest_url(),
1130 group_->group_id())); 1146 group_->group_id()));
1131 1147
1132 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 1148 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(),
1133 response_writer_->response_id()); 1149 response_writer_->response_id());
1134 MockFrontend* frontend1 = MakeMockFrontend(); 1150 MockFrontend* frontend1 = MakeMockFrontend();
(...skipping 24 matching lines...) Expand all
1159 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT); 1175 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT);
1160 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT); 1176 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT);
1161 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT); // final 1177 frontend2->AddExpectedEvent(ids2, PROGRESS_EVENT); // final
1162 frontend2->AddExpectedEvent(ids2, UPDATE_READY_EVENT); 1178 frontend2->AddExpectedEvent(ids2, UPDATE_READY_EVENT);
1163 1179
1164 // Seed storage with expected manifest data different from manifest1. 1180 // Seed storage with expected manifest data different from manifest1.
1165 const std::string seed_data("different"); 1181 const std::string seed_data("different");
1166 scoped_refptr<net::StringIOBuffer> io_buffer( 1182 scoped_refptr<net::StringIOBuffer> io_buffer(
1167 new net::StringIOBuffer(seed_data)); 1183 new net::StringIOBuffer(seed_data));
1168 response_writer_->WriteData( 1184 response_writer_->WriteData(
1169 io_buffer, seed_data.length(), 1185 io_buffer.get(),
1186 seed_data.length(),
1170 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, 1187 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
1171 base::Unretained(this))); 1188 base::Unretained(this)));
1172 1189
1173 // Start update after data write completes asynchronously. 1190 // Start update after data write completes asynchronously.
1174 } 1191 }
1175 1192
1176 void UpgradeLoadFromNewestCacheTest() { 1193 void UpgradeLoadFromNewestCacheTest() {
1177 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1194 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1178 1195
1179 MakeService(); 1196 MakeService();
1180 group_ = new AppCacheGroup( 1197 group_ = new AppCacheGroup(
1181 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 1198 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
1182 service_->storage()->NewGroupId()); 1199 service_->storage()->NewGroupId());
1183 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1200 AppCacheUpdateJob* update =
1201 new AppCacheUpdateJob(service_.get(), group_.get());
1184 group_->update_job_ = update; 1202 group_->update_job_ = update;
1185 1203
1186 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42); 1204 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42);
1187 MockFrontend* frontend = MakeMockFrontend(); 1205 MockFrontend* frontend = MakeMockFrontend();
1188 AppCacheHost* host = MakeHost(1, frontend); 1206 AppCacheHost* host = MakeHost(1, frontend);
1189 host->AssociateCompleteCache(cache); 1207 host->AssociateCompleteCache(cache);
1190 1208
1191 // Give the newest cache an entry that is in storage. 1209 // Give the newest cache an entry that is in storage.
1192 response_writer_.reset( 1210 response_writer_.reset(
1193 service_->storage()->CreateResponseWriter(group_->manifest_url(), 1211 service_->storage()->CreateResponseWriter(group_->manifest_url(),
(...skipping 27 matching lines...) Expand all
1221 "\0"; 1239 "\0";
1222 net::HttpResponseHeaders* headers = 1240 net::HttpResponseHeaders* headers =
1223 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 1241 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
1224 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); 1242 net::HttpResponseInfo* response_info = new net::HttpResponseInfo();
1225 response_info->request_time = base::Time::Now(); 1243 response_info->request_time = base::Time::Now();
1226 response_info->response_time = base::Time::Now(); 1244 response_info->response_time = base::Time::Now();
1227 response_info->headers = headers; // adds ref to headers 1245 response_info->headers = headers; // adds ref to headers
1228 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer( 1246 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer(
1229 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info 1247 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info
1230 response_writer_->WriteInfo( 1248 response_writer_->WriteInfo(
1231 io_buffer, 1249 io_buffer.get(),
1232 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, 1250 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
1233 base::Unretained(this))); 1251 base::Unretained(this)));
1234 1252
1235 // Start update after data write completes asynchronously. 1253 // Start update after data write completes asynchronously.
1236 } 1254 }
1237 1255
1238 void UpgradeNoLoadFromNewestCacheTest() { 1256 void UpgradeNoLoadFromNewestCacheTest() {
1239 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1257 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1240 1258
1241 MakeService(); 1259 MakeService();
1242 group_ = new AppCacheGroup( 1260 group_ = new AppCacheGroup(
1243 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 1261 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
1244 service_->storage()->NewGroupId()); 1262 service_->storage()->NewGroupId());
1245 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1263 AppCacheUpdateJob* update =
1264 new AppCacheUpdateJob(service_.get(), group_.get());
1246 group_->update_job_ = update; 1265 group_->update_job_ = update;
1247 1266
1248 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42); 1267 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42);
1249 MockFrontend* frontend = MakeMockFrontend(); 1268 MockFrontend* frontend = MakeMockFrontend();
1250 AppCacheHost* host = MakeHost(1, frontend); 1269 AppCacheHost* host = MakeHost(1, frontend);
1251 host->AssociateCompleteCache(cache); 1270 host->AssociateCompleteCache(cache);
1252 1271
1253 // Give the newest cache an entry that is in storage. 1272 // Give the newest cache an entry that is in storage.
1254 response_writer_.reset( 1273 response_writer_.reset(
1255 service_->storage()->CreateResponseWriter(group_->manifest_url(), 1274 service_->storage()->CreateResponseWriter(group_->manifest_url(),
(...skipping 24 matching lines...) Expand all
1280 "\0"; 1299 "\0";
1281 net::HttpResponseHeaders* headers = 1300 net::HttpResponseHeaders* headers =
1282 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 1301 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
1283 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); 1302 net::HttpResponseInfo* response_info = new net::HttpResponseInfo();
1284 response_info->request_time = base::Time::Now(); 1303 response_info->request_time = base::Time::Now();
1285 response_info->response_time = base::Time::Now(); 1304 response_info->response_time = base::Time::Now();
1286 response_info->headers = headers; // adds ref to headers 1305 response_info->headers = headers; // adds ref to headers
1287 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer( 1306 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer(
1288 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info 1307 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info
1289 response_writer_->WriteInfo( 1308 response_writer_->WriteInfo(
1290 io_buffer, 1309 io_buffer.get(),
1291 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, 1310 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
1292 base::Unretained(this))); 1311 base::Unretained(this)));
1293 1312
1294 // Start update after data write completes asynchronously. 1313 // Start update after data write completes asynchronously.
1295 } 1314 }
1296 1315
1297 void UpgradeLoadFromNewestCacheVaryHeaderTest() { 1316 void UpgradeLoadFromNewestCacheVaryHeaderTest() {
1298 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1317 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1299 1318
1300 MakeService(); 1319 MakeService();
1301 group_ = new AppCacheGroup( 1320 group_ = new AppCacheGroup(
1302 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 1321 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
1303 service_->storage()->NewGroupId()); 1322 service_->storage()->NewGroupId());
1304 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1323 AppCacheUpdateJob* update =
1324 new AppCacheUpdateJob(service_.get(), group_.get());
1305 group_->update_job_ = update; 1325 group_->update_job_ = update;
1306 1326
1307 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42); 1327 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42);
1308 MockFrontend* frontend = MakeMockFrontend(); 1328 MockFrontend* frontend = MakeMockFrontend();
1309 AppCacheHost* host = MakeHost(1, frontend); 1329 AppCacheHost* host = MakeHost(1, frontend);
1310 host->AssociateCompleteCache(cache); 1330 host->AssociateCompleteCache(cache);
1311 1331
1312 // Give the newest cache an entry that is in storage. 1332 // Give the newest cache an entry that is in storage.
1313 response_writer_.reset( 1333 response_writer_.reset(
1314 service_->storage()->CreateResponseWriter(group_->manifest_url(), 1334 service_->storage()->CreateResponseWriter(group_->manifest_url(),
(...skipping 24 matching lines...) Expand all
1339 "\0"; 1359 "\0";
1340 net::HttpResponseHeaders* headers = 1360 net::HttpResponseHeaders* headers =
1341 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 1361 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
1342 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); 1362 net::HttpResponseInfo* response_info = new net::HttpResponseInfo();
1343 response_info->request_time = base::Time::Now(); 1363 response_info->request_time = base::Time::Now();
1344 response_info->response_time = base::Time::Now(); 1364 response_info->response_time = base::Time::Now();
1345 response_info->headers = headers; // adds ref to headers 1365 response_info->headers = headers; // adds ref to headers
1346 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer( 1366 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer(
1347 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info 1367 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info
1348 response_writer_->WriteInfo( 1368 response_writer_->WriteInfo(
1349 io_buffer, 1369 io_buffer.get(),
1350 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, 1370 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
1351 base::Unretained(this))); 1371 base::Unretained(this)));
1352 1372
1353 // Start update after data write completes asynchronously. 1373 // Start update after data write completes asynchronously.
1354 } 1374 }
1355 1375
1356 void UpgradeSuccessMergedTypesTest() { 1376 void UpgradeSuccessMergedTypesTest() {
1357 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1377 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1358 1378
1359 MakeService(); 1379 MakeService();
1360 group_ = new AppCacheGroup(service_->storage(), 1380 group_ = new AppCacheGroup(service_->storage(),
1361 MockHttpServer::GetMockUrl("files/manifest-merged-types"), 1381 MockHttpServer::GetMockUrl("files/manifest-merged-types"),
1362 service_->storage()->NewGroupId()); 1382 service_->storage()->NewGroupId());
1363 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1383 AppCacheUpdateJob* update =
1384 new AppCacheUpdateJob(service_.get(), group_.get());
1364 group_->update_job_ = update; 1385 group_->update_job_ = update;
1365 1386
1366 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42); 1387 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42);
1367 MockFrontend* frontend1 = MakeMockFrontend(); 1388 MockFrontend* frontend1 = MakeMockFrontend();
1368 MockFrontend* frontend2 = MakeMockFrontend(); 1389 MockFrontend* frontend2 = MakeMockFrontend();
1369 AppCacheHost* host1 = MakeHost(1, frontend1); 1390 AppCacheHost* host1 = MakeHost(1, frontend1);
1370 AppCacheHost* host2 = MakeHost(2, frontend2); 1391 AppCacheHost* host2 = MakeHost(2, frontend2);
1371 host1->AssociateCompleteCache(cache); 1392 host1->AssociateCompleteCache(cache);
1372 host2->AssociateCompleteCache(cache); 1393 host2->AssociateCompleteCache(cache);
1373 1394
(...skipping 29 matching lines...) Expand all
1403 WaitForUpdateToFinish(); 1424 WaitForUpdateToFinish();
1404 } 1425 }
1405 1426
1406 void CacheAttemptFailUrlFetchTest() { 1427 void CacheAttemptFailUrlFetchTest() {
1407 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1428 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1408 1429
1409 MakeService(); 1430 MakeService();
1410 group_ = new AppCacheGroup(service_->storage(), 1431 group_ = new AppCacheGroup(service_->storage(),
1411 MockHttpServer::GetMockUrl("files/manifest-with-404"), 1432 MockHttpServer::GetMockUrl("files/manifest-with-404"),
1412 service_->storage()->NewGroupId()); 1433 service_->storage()->NewGroupId());
1413 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1434 AppCacheUpdateJob* update =
1435 new AppCacheUpdateJob(service_.get(), group_.get());
1414 group_->update_job_ = update; 1436 group_->update_job_ = update;
1415 1437
1416 MockFrontend* frontend = MakeMockFrontend(); 1438 MockFrontend* frontend = MakeMockFrontend();
1417 AppCacheHost* host = MakeHost(1, frontend); 1439 AppCacheHost* host = MakeHost(1, frontend);
1418 update->StartUpdate(host, GURL()); 1440 update->StartUpdate(host, GURL());
1419 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 1441 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
1420 1442
1421 // Set up checks for when update job finishes. 1443 // Set up checks for when update job finishes.
1422 do_checks_after_update_finished_ = true; 1444 do_checks_after_update_finished_ = true;
1423 expect_group_obsolete_ = false; 1445 expect_group_obsolete_ = false;
1424 expect_group_has_cache_ = false; // 404 explicit url is cache failure 1446 expect_group_has_cache_ = false; // 404 explicit url is cache failure
1425 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 1447 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
1426 CHECKING_EVENT); 1448 CHECKING_EVENT);
1427 1449
1428 WaitForUpdateToFinish(); 1450 WaitForUpdateToFinish();
1429 } 1451 }
1430 1452
1431 void UpgradeFailUrlFetchTest() { 1453 void UpgradeFailUrlFetchTest() {
1432 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1454 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1433 1455
1434 MakeService(); 1456 MakeService();
1435 group_ = new AppCacheGroup(service_->storage(), 1457 group_ = new AppCacheGroup(service_->storage(),
1436 MockHttpServer::GetMockUrl("files/manifest-fb-404"), 1458 MockHttpServer::GetMockUrl("files/manifest-fb-404"),
1437 service_->storage()->NewGroupId()); 1459 service_->storage()->NewGroupId());
1438 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1460 AppCacheUpdateJob* update =
1461 new AppCacheUpdateJob(service_.get(), group_.get());
1439 group_->update_job_ = update; 1462 group_->update_job_ = update;
1440 1463
1441 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 99); 1464 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 99);
1442 MockFrontend* frontend1 = MakeMockFrontend(); 1465 MockFrontend* frontend1 = MakeMockFrontend();
1443 MockFrontend* frontend2 = MakeMockFrontend(); 1466 MockFrontend* frontend2 = MakeMockFrontend();
1444 frontend1->SetIgnoreProgressEvents(true); 1467 frontend1->SetIgnoreProgressEvents(true);
1445 frontend2->SetIgnoreProgressEvents(true); 1468 frontend2->SetIgnoreProgressEvents(true);
1446 AppCacheHost* host1 = MakeHost(1, frontend1); 1469 AppCacheHost* host1 = MakeHost(1, frontend1);
1447 AppCacheHost* host2 = MakeHost(2, frontend2); 1470 AppCacheHost* host2 = MakeHost(2, frontend2);
1448 host1->AssociateCompleteCache(cache); 1471 host1->AssociateCompleteCache(cache);
(...skipping 23 matching lines...) Expand all
1472 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1495 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1473 1496
1474 tested_manifest_path_override_ = "files/manifest1-with-notmodified"; 1497 tested_manifest_path_override_ = "files/manifest1-with-notmodified";
1475 1498
1476 MakeService(); 1499 MakeService();
1477 const GURL kManifestUrl = 1500 const GURL kManifestUrl =
1478 MockHttpServer::GetMockUrl(tested_manifest_path_override_); 1501 MockHttpServer::GetMockUrl(tested_manifest_path_override_);
1479 group_ = new AppCacheGroup( 1502 group_ = new AppCacheGroup(
1480 service_->storage(), kManifestUrl, 1503 service_->storage(), kManifestUrl,
1481 service_->storage()->NewGroupId()); 1504 service_->storage()->NewGroupId());
1482 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1505 AppCacheUpdateJob* update =
1506 new AppCacheUpdateJob(service_.get(), group_.get());
1483 group_->update_job_ = update; 1507 group_->update_job_ = update;
1484 1508
1485 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 25); 1509 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 25);
1486 MockFrontend* frontend1 = MakeMockFrontend(); 1510 MockFrontend* frontend1 = MakeMockFrontend();
1487 MockFrontend* frontend2 = MakeMockFrontend(); 1511 MockFrontend* frontend2 = MakeMockFrontend();
1488 AppCacheHost* host1 = MakeHost(1, frontend1); 1512 AppCacheHost* host1 = MakeHost(1, frontend1);
1489 AppCacheHost* host2 = MakeHost(2, frontend2); 1513 AppCacheHost* host2 = MakeHost(2, frontend2);
1490 host1->AssociateCompleteCache(cache); 1514 host1->AssociateCompleteCache(cache);
1491 host2->AssociateCompleteCache(cache); 1515 host2->AssociateCompleteCache(cache);
1492 1516
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 WaitForUpdateToFinish(); 1587 WaitForUpdateToFinish();
1564 } 1588 }
1565 1589
1566 void EmptyManifestTest() { 1590 void EmptyManifestTest() {
1567 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1591 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1568 1592
1569 MakeService(); 1593 MakeService();
1570 group_ = new AppCacheGroup( 1594 group_ = new AppCacheGroup(
1571 service_->storage(), MockHttpServer::GetMockUrl("files/empty-manifest"), 1595 service_->storage(), MockHttpServer::GetMockUrl("files/empty-manifest"),
1572 service_->storage()->NewGroupId()); 1596 service_->storage()->NewGroupId());
1573 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1597 AppCacheUpdateJob* update =
1598 new AppCacheUpdateJob(service_.get(), group_.get());
1574 group_->update_job_ = update; 1599 group_->update_job_ = update;
1575 1600
1576 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 33); 1601 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 33);
1577 MockFrontend* frontend1 = MakeMockFrontend(); 1602 MockFrontend* frontend1 = MakeMockFrontend();
1578 MockFrontend* frontend2 = MakeMockFrontend(); 1603 MockFrontend* frontend2 = MakeMockFrontend();
1579 AppCacheHost* host1 = MakeHost(1, frontend1); 1604 AppCacheHost* host1 = MakeHost(1, frontend1);
1580 AppCacheHost* host2 = MakeHost(2, frontend2); 1605 AppCacheHost* host2 = MakeHost(2, frontend2);
1581 host1->AssociateCompleteCache(cache); 1606 host1->AssociateCompleteCache(cache);
1582 host2->AssociateCompleteCache(cache); 1607 host2->AssociateCompleteCache(cache);
1583 1608
(...skipping 22 matching lines...) Expand all
1606 WaitForUpdateToFinish(); 1631 WaitForUpdateToFinish();
1607 } 1632 }
1608 1633
1609 void EmptyFileTest() { 1634 void EmptyFileTest() {
1610 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1635 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1611 1636
1612 MakeService(); 1637 MakeService();
1613 group_ = new AppCacheGroup(service_->storage(), 1638 group_ = new AppCacheGroup(service_->storage(),
1614 MockHttpServer::GetMockUrl("files/empty-file-manifest"), 1639 MockHttpServer::GetMockUrl("files/empty-file-manifest"),
1615 service_->storage()->NewGroupId()); 1640 service_->storage()->NewGroupId());
1616 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1641 AppCacheUpdateJob* update =
1642 new AppCacheUpdateJob(service_.get(), group_.get());
1617 group_->update_job_ = update; 1643 group_->update_job_ = update;
1618 1644
1619 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 22); 1645 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 22);
1620 MockFrontend* frontend = MakeMockFrontend(); 1646 MockFrontend* frontend = MakeMockFrontend();
1621 AppCacheHost* host = MakeHost(1, frontend); 1647 AppCacheHost* host = MakeHost(1, frontend);
1622 host->AssociateCompleteCache(cache); 1648 host->AssociateCompleteCache(cache);
1623 frontend->SetVerifyProgressEvents(true); 1649 frontend->SetVerifyProgressEvents(true);
1624 1650
1625 update->StartUpdate(host, GURL()); 1651 update->StartUpdate(host, GURL());
1626 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 1652 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
(...skipping 21 matching lines...) Expand all
1648 RetryRequestTestJob::Initialize(5, RetryRequestTestJob::RETRY_AFTER_0, 4); 1674 RetryRequestTestJob::Initialize(5, RetryRequestTestJob::RETRY_AFTER_0, 4);
1649 net::URLRequestJobFactoryImpl* new_factory( 1675 net::URLRequestJobFactoryImpl* new_factory(
1650 new net::URLRequestJobFactoryImpl); 1676 new net::URLRequestJobFactoryImpl);
1651 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory); 1677 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory);
1652 io_thread_->SetNewJobFactory(new_factory); 1678 io_thread_->SetNewJobFactory(new_factory);
1653 1679
1654 MakeService(); 1680 MakeService();
1655 group_ = new AppCacheGroup(service_->storage(), 1681 group_ = new AppCacheGroup(service_->storage(),
1656 RetryRequestTestJob::kRetryUrl, 1682 RetryRequestTestJob::kRetryUrl,
1657 service_->storage()->NewGroupId()); 1683 service_->storage()->NewGroupId());
1658 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1684 AppCacheUpdateJob* update =
1685 new AppCacheUpdateJob(service_.get(), group_.get());
1659 group_->update_job_ = update; 1686 group_->update_job_ = update;
1660 1687
1661 MockFrontend* frontend = MakeMockFrontend(); 1688 MockFrontend* frontend = MakeMockFrontend();
1662 AppCacheHost* host = MakeHost(1, frontend); 1689 AppCacheHost* host = MakeHost(1, frontend);
1663 update->StartUpdate(host, GURL()); 1690 update->StartUpdate(host, GURL());
1664 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 1691 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
1665 1692
1666 // Set up checks for when update job finishes. 1693 // Set up checks for when update job finishes.
1667 do_checks_after_update_finished_ = true; 1694 do_checks_after_update_finished_ = true;
1668 expect_group_obsolete_ = false; 1695 expect_group_obsolete_ = false;
(...skipping 12 matching lines...) Expand all
1681 RetryRequestTestJob::Initialize(5, RetryRequestTestJob::NO_RETRY_AFTER, 1); 1708 RetryRequestTestJob::Initialize(5, RetryRequestTestJob::NO_RETRY_AFTER, 1);
1682 net::URLRequestJobFactoryImpl* new_factory( 1709 net::URLRequestJobFactoryImpl* new_factory(
1683 new net::URLRequestJobFactoryImpl); 1710 new net::URLRequestJobFactoryImpl);
1684 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory); 1711 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory);
1685 io_thread_->SetNewJobFactory(new_factory); 1712 io_thread_->SetNewJobFactory(new_factory);
1686 1713
1687 MakeService(); 1714 MakeService();
1688 group_ = new AppCacheGroup(service_->storage(), 1715 group_ = new AppCacheGroup(service_->storage(),
1689 RetryRequestTestJob::kRetryUrl, 1716 RetryRequestTestJob::kRetryUrl,
1690 service_->storage()->NewGroupId()); 1717 service_->storage()->NewGroupId());
1691 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1718 AppCacheUpdateJob* update =
1719 new AppCacheUpdateJob(service_.get(), group_.get());
1692 group_->update_job_ = update; 1720 group_->update_job_ = update;
1693 1721
1694 MockFrontend* frontend = MakeMockFrontend(); 1722 MockFrontend* frontend = MakeMockFrontend();
1695 AppCacheHost* host = MakeHost(1, frontend); 1723 AppCacheHost* host = MakeHost(1, frontend);
1696 update->StartUpdate(host, GURL()); 1724 update->StartUpdate(host, GURL());
1697 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 1725 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
1698 1726
1699 // Set up checks for when update job finishes. 1727 // Set up checks for when update job finishes.
1700 do_checks_after_update_finished_ = true; 1728 do_checks_after_update_finished_ = true;
1701 expect_group_obsolete_ = false; 1729 expect_group_obsolete_ = false;
(...skipping 13 matching lines...) Expand all
1715 5, RetryRequestTestJob::NONZERO_RETRY_AFTER, 1); 1743 5, RetryRequestTestJob::NONZERO_RETRY_AFTER, 1);
1716 net::URLRequestJobFactoryImpl* new_factory( 1744 net::URLRequestJobFactoryImpl* new_factory(
1717 new net::URLRequestJobFactoryImpl); 1745 new net::URLRequestJobFactoryImpl);
1718 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory); 1746 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory);
1719 io_thread_->SetNewJobFactory(new_factory); 1747 io_thread_->SetNewJobFactory(new_factory);
1720 1748
1721 MakeService(); 1749 MakeService();
1722 group_ = new AppCacheGroup(service_->storage(), 1750 group_ = new AppCacheGroup(service_->storage(),
1723 RetryRequestTestJob::kRetryUrl, 1751 RetryRequestTestJob::kRetryUrl,
1724 service_->storage()->NewGroupId()); 1752 service_->storage()->NewGroupId());
1725 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1753 AppCacheUpdateJob* update =
1754 new AppCacheUpdateJob(service_.get(), group_.get());
1726 group_->update_job_ = update; 1755 group_->update_job_ = update;
1727 1756
1728 MockFrontend* frontend = MakeMockFrontend(); 1757 MockFrontend* frontend = MakeMockFrontend();
1729 AppCacheHost* host = MakeHost(1, frontend); 1758 AppCacheHost* host = MakeHost(1, frontend);
1730 update->StartUpdate(host, GURL()); 1759 update->StartUpdate(host, GURL());
1731 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 1760 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
1732 1761
1733 // Set up checks for when update job finishes. 1762 // Set up checks for when update job finishes.
1734 do_checks_after_update_finished_ = true; 1763 do_checks_after_update_finished_ = true;
1735 expect_group_obsolete_ = false; 1764 expect_group_obsolete_ = false;
(...skipping 12 matching lines...) Expand all
1748 RetryRequestTestJob::Initialize(2, RetryRequestTestJob::RETRY_AFTER_0, 5); 1777 RetryRequestTestJob::Initialize(2, RetryRequestTestJob::RETRY_AFTER_0, 5);
1749 net::URLRequestJobFactoryImpl* new_factory( 1778 net::URLRequestJobFactoryImpl* new_factory(
1750 new net::URLRequestJobFactoryImpl); 1779 new net::URLRequestJobFactoryImpl);
1751 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory); 1780 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory);
1752 io_thread_->SetNewJobFactory(new_factory); 1781 io_thread_->SetNewJobFactory(new_factory);
1753 1782
1754 MakeService(); 1783 MakeService();
1755 group_ = new AppCacheGroup(service_->storage(), 1784 group_ = new AppCacheGroup(service_->storage(),
1756 RetryRequestTestJob::kRetryUrl, 1785 RetryRequestTestJob::kRetryUrl,
1757 service_->storage()->NewGroupId()); 1786 service_->storage()->NewGroupId());
1758 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1787 AppCacheUpdateJob* update =
1788 new AppCacheUpdateJob(service_.get(), group_.get());
1759 group_->update_job_ = update; 1789 group_->update_job_ = update;
1760 1790
1761 MockFrontend* frontend = MakeMockFrontend(); 1791 MockFrontend* frontend = MakeMockFrontend();
1762 AppCacheHost* host = MakeHost(1, frontend); 1792 AppCacheHost* host = MakeHost(1, frontend);
1763 update->StartUpdate(host, GURL()); 1793 update->StartUpdate(host, GURL());
1764 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 1794 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
1765 1795
1766 // Set up checks for when update job finishes. 1796 // Set up checks for when update job finishes.
1767 do_checks_after_update_finished_ = true; 1797 do_checks_after_update_finished_ = true;
1768 expect_group_obsolete_ = false; 1798 expect_group_obsolete_ = false;
(...skipping 11 matching lines...) Expand all
1780 // Expect 1 manifest fetch, 1 url fetch, 1 url retry, 1 manifest refetch. 1810 // Expect 1 manifest fetch, 1 url fetch, 1 url retry, 1 manifest refetch.
1781 RetryRequestTestJob::Initialize(1, RetryRequestTestJob::RETRY_AFTER_0, 4); 1811 RetryRequestTestJob::Initialize(1, RetryRequestTestJob::RETRY_AFTER_0, 4);
1782 net::URLRequestJobFactoryImpl* new_factory( 1812 net::URLRequestJobFactoryImpl* new_factory(
1783 new net::URLRequestJobFactoryImpl); 1813 new net::URLRequestJobFactoryImpl);
1784 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory); 1814 new_factory->SetProtocolHandler("http", new RetryRequestTestJobFactory);
1785 io_thread_->SetNewJobFactory(new_factory); 1815 io_thread_->SetNewJobFactory(new_factory);
1786 1816
1787 MakeService(); 1817 MakeService();
1788 group_ = new AppCacheGroup(service_->storage(), GURL("http://retryurl"), 1818 group_ = new AppCacheGroup(service_->storage(), GURL("http://retryurl"),
1789 service_->storage()->NewGroupId()); 1819 service_->storage()->NewGroupId());
1790 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1820 AppCacheUpdateJob* update =
1821 new AppCacheUpdateJob(service_.get(), group_.get());
1791 group_->update_job_ = update; 1822 group_->update_job_ = update;
1792 1823
1793 MockFrontend* frontend = MakeMockFrontend(); 1824 MockFrontend* frontend = MakeMockFrontend();
1794 AppCacheHost* host = MakeHost(1, frontend); 1825 AppCacheHost* host = MakeHost(1, frontend);
1795 update->StartUpdate(host, GURL()); 1826 update->StartUpdate(host, GURL());
1796 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 1827 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
1797 1828
1798 // Set up checks for when update job finishes. 1829 // Set up checks for when update job finishes.
1799 do_checks_after_update_finished_ = true; 1830 do_checks_after_update_finished_ = true;
1800 expect_group_obsolete_ = false; 1831 expect_group_obsolete_ = false;
1801 expect_group_has_cache_ = true; 1832 expect_group_has_cache_ = true;
1802 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 1833 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
1803 CHECKING_EVENT); 1834 CHECKING_EVENT);
1804 1835
1805 WaitForUpdateToFinish(); 1836 WaitForUpdateToFinish();
1806 } 1837 }
1807 1838
1808 void FailStoreNewestCacheTest() { 1839 void FailStoreNewestCacheTest() {
1809 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1840 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1810 1841
1811 MakeService(); 1842 MakeService();
1812 MockAppCacheStorage* storage = 1843 MockAppCacheStorage* storage =
1813 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); 1844 reinterpret_cast<MockAppCacheStorage*>(service_->storage());
1814 storage->SimulateStoreGroupAndNewestCacheFailure(); 1845 storage->SimulateStoreGroupAndNewestCacheFailure();
1815 1846
1816 group_ = new AppCacheGroup( 1847 group_ = new AppCacheGroup(
1817 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 1848 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
1818 service_->storage()->NewGroupId()); 1849 service_->storage()->NewGroupId());
1819 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1850 AppCacheUpdateJob* update =
1851 new AppCacheUpdateJob(service_.get(), group_.get());
1820 group_->update_job_ = update; 1852 group_->update_job_ = update;
1821 1853
1822 MockFrontend* frontend = MakeMockFrontend(); 1854 MockFrontend* frontend = MakeMockFrontend();
1823 AppCacheHost* host = MakeHost(1, frontend); 1855 AppCacheHost* host = MakeHost(1, frontend);
1824 update->StartUpdate(host, GURL()); 1856 update->StartUpdate(host, GURL());
1825 1857
1826 // Set up checks for when update job finishes. 1858 // Set up checks for when update job finishes.
1827 do_checks_after_update_finished_ = true; 1859 do_checks_after_update_finished_ = true;
1828 expect_group_obsolete_ = false; 1860 expect_group_obsolete_ = false;
1829 expect_group_has_cache_ = false; // storage failed 1861 expect_group_has_cache_ = false; // storage failed
1830 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()), 1862 frontend->AddExpectedEvent(MockFrontend::HostIds(1, host->host_id()),
1831 CHECKING_EVENT); 1863 CHECKING_EVENT);
1832 1864
1833 WaitForUpdateToFinish(); 1865 WaitForUpdateToFinish();
1834 } 1866 }
1835 1867
1836 void UpgradeFailStoreNewestCacheTest() { 1868 void UpgradeFailStoreNewestCacheTest() {
1837 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1869 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1838 1870
1839 MakeService(); 1871 MakeService();
1840 MockAppCacheStorage* storage = 1872 MockAppCacheStorage* storage =
1841 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); 1873 reinterpret_cast<MockAppCacheStorage*>(service_->storage());
1842 storage->SimulateStoreGroupAndNewestCacheFailure(); 1874 storage->SimulateStoreGroupAndNewestCacheFailure();
1843 1875
1844 group_ = new AppCacheGroup( 1876 group_ = new AppCacheGroup(
1845 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 1877 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
1846 service_->storage()->NewGroupId()); 1878 service_->storage()->NewGroupId());
1847 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1879 AppCacheUpdateJob* update =
1880 new AppCacheUpdateJob(service_.get(), group_.get());
1848 group_->update_job_ = update; 1881 group_->update_job_ = update;
1849 1882
1850 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 11); 1883 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 11);
1851 MockFrontend* frontend1 = MakeMockFrontend(); 1884 MockFrontend* frontend1 = MakeMockFrontend();
1852 MockFrontend* frontend2 = MakeMockFrontend(); 1885 MockFrontend* frontend2 = MakeMockFrontend();
1853 AppCacheHost* host1 = MakeHost(1, frontend1); 1886 AppCacheHost* host1 = MakeHost(1, frontend1);
1854 AppCacheHost* host2 = MakeHost(2, frontend2); 1887 AppCacheHost* host2 = MakeHost(2, frontend2);
1855 host1->AssociateCompleteCache(cache); 1888 host1->AssociateCompleteCache(cache);
1856 host2->AssociateCompleteCache(cache); 1889 host2->AssociateCompleteCache(cache);
1857 1890
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1912 host->first_party_url_ = kManifestUrl; 1945 host->first_party_url_ = kManifestUrl;
1913 host->SelectCache(MockHttpServer::GetMockUrl("files/empty1"), 1946 host->SelectCache(MockHttpServer::GetMockUrl("files/empty1"),
1914 kNoCacheId, kManifestUrl); 1947 kNoCacheId, kManifestUrl);
1915 1948
1916 // Set up checks for when update job finishes. 1949 // Set up checks for when update job finishes.
1917 do_checks_after_update_finished_ = true; 1950 do_checks_after_update_finished_ = true;
1918 tested_manifest_ = EMPTY_MANIFEST; 1951 tested_manifest_ = EMPTY_MANIFEST;
1919 tested_manifest_path_override_ = "files/notmodified"; 1952 tested_manifest_path_override_ = "files/notmodified";
1920 expect_group_obsolete_ = false; 1953 expect_group_obsolete_ = false;
1921 expect_group_has_cache_ = true; 1954 expect_group_has_cache_ = true;
1922 expect_newest_cache_ = cache; // unchanged 1955 expect_newest_cache_ = cache.get(); // unchanged
1923 MockFrontend::HostIds ids1(1, host->host_id()); 1956 MockFrontend::HostIds ids1(1, host->host_id());
1924 frontend->AddExpectedEvent(ids1, ERROR_EVENT); 1957 frontend->AddExpectedEvent(ids1, ERROR_EVENT);
1925 frontend->expected_error_message_ = 1958 frontend->expected_error_message_ =
1926 "Failed to commit new cache to storage"; 1959 "Failed to commit new cache to storage";
1927 1960
1928 WaitForUpdateToFinish(); 1961 WaitForUpdateToFinish();
1929 } 1962 }
1930 1963
1931 void UpgradeFailMakeGroupObsoleteTest() { 1964 void UpgradeFailMakeGroupObsoleteTest() {
1932 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 1965 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1933 1966
1934 MakeService(); 1967 MakeService();
1935 MockAppCacheStorage* storage = 1968 MockAppCacheStorage* storage =
1936 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); 1969 reinterpret_cast<MockAppCacheStorage*>(service_->storage());
1937 storage->SimulateMakeGroupObsoleteFailure(); 1970 storage->SimulateMakeGroupObsoleteFailure();
1938 1971
1939 group_ = new AppCacheGroup( 1972 group_ = new AppCacheGroup(
1940 service_->storage(), MockHttpServer::GetMockUrl("files/nosuchfile"), 1973 service_->storage(), MockHttpServer::GetMockUrl("files/nosuchfile"),
1941 service_->storage()->NewGroupId()); 1974 service_->storage()->NewGroupId());
1942 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 1975 AppCacheUpdateJob* update =
1976 new AppCacheUpdateJob(service_.get(), group_.get());
1943 group_->update_job_ = update; 1977 group_->update_job_ = update;
1944 1978
1945 AppCache* cache = MakeCacheForGroup(1, 111); 1979 AppCache* cache = MakeCacheForGroup(1, 111);
1946 MockFrontend* frontend1 = MakeMockFrontend(); 1980 MockFrontend* frontend1 = MakeMockFrontend();
1947 MockFrontend* frontend2 = MakeMockFrontend(); 1981 MockFrontend* frontend2 = MakeMockFrontend();
1948 AppCacheHost* host1 = MakeHost(1, frontend1); 1982 AppCacheHost* host1 = MakeHost(1, frontend1);
1949 AppCacheHost* host2 = MakeHost(2, frontend2); 1983 AppCacheHost* host2 = MakeHost(2, frontend2);
1950 host1->AssociateCompleteCache(cache); 1984 host1->AssociateCompleteCache(cache);
1951 host2->AssociateCompleteCache(cache); 1985 host2->AssociateCompleteCache(cache);
1952 1986
(...skipping 13 matching lines...) Expand all
1966 frontend2->AddExpectedEvent(ids2, ERROR_EVENT); 2000 frontend2->AddExpectedEvent(ids2, ERROR_EVENT);
1967 2001
1968 WaitForUpdateToFinish(); 2002 WaitForUpdateToFinish();
1969 } 2003 }
1970 2004
1971 void MasterEntryFetchManifestFailTest() { 2005 void MasterEntryFetchManifestFailTest() {
1972 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2006 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
1973 2007
1974 MakeService(); 2008 MakeService();
1975 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"), 111); 2009 group_ = new AppCacheGroup(service_->storage(), GURL("http://failme"), 111);
1976 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2010 AppCacheUpdateJob* update =
2011 new AppCacheUpdateJob(service_.get(), group_.get());
1977 group_->update_job_ = update; 2012 group_->update_job_ = update;
1978 2013
1979 MockFrontend* frontend = MakeMockFrontend(); 2014 MockFrontend* frontend = MakeMockFrontend();
1980 AppCacheHost* host = MakeHost(1, frontend); 2015 AppCacheHost* host = MakeHost(1, frontend);
1981 host->new_master_entry_url_ = GURL("http://failme/blah"); 2016 host->new_master_entry_url_ = GURL("http://failme/blah");
1982 update->StartUpdate(host, host->new_master_entry_url_); 2017 update->StartUpdate(host, host->new_master_entry_url_);
1983 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 2018 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
1984 2019
1985 update->manifest_fetcher_->request()->CancelWithError(-100); 2020 update->manifest_fetcher_->request()->CancelWithError(-100);
1986 2021
1987 // Set up checks for when update job finishes. 2022 // Set up checks for when update job finishes.
1988 do_checks_after_update_finished_ = true; 2023 do_checks_after_update_finished_ = true;
1989 expect_group_obsolete_ = false; 2024 expect_group_obsolete_ = false;
1990 expect_group_has_cache_ = false; 2025 expect_group_has_cache_ = false;
1991 MockFrontend::HostIds ids1(1, host->host_id()); 2026 MockFrontend::HostIds ids1(1, host->host_id());
1992 frontend->AddExpectedEvent(ids1, CHECKING_EVENT); 2027 frontend->AddExpectedEvent(ids1, CHECKING_EVENT);
1993 frontend->AddExpectedEvent(ids1, ERROR_EVENT); 2028 frontend->AddExpectedEvent(ids1, ERROR_EVENT);
1994 2029
1995 WaitForUpdateToFinish(); 2030 WaitForUpdateToFinish();
1996 } 2031 }
1997 2032
1998 void MasterEntryBadManifestTest() { 2033 void MasterEntryBadManifestTest() {
1999 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2034 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2000 2035
2001 MakeService(); 2036 MakeService();
2002 group_ = new AppCacheGroup(service_->storage(), 2037 group_ = new AppCacheGroup(service_->storage(),
2003 MockHttpServer::GetMockUrl("files/bad-manifest"), 111); 2038 MockHttpServer::GetMockUrl("files/bad-manifest"), 111);
2004 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2039 AppCacheUpdateJob* update =
2040 new AppCacheUpdateJob(service_.get(), group_.get());
2005 group_->update_job_ = update; 2041 group_->update_job_ = update;
2006 2042
2007 MockFrontend* frontend = MakeMockFrontend(); 2043 MockFrontend* frontend = MakeMockFrontend();
2008 AppCacheHost* host = MakeHost(1, frontend); 2044 AppCacheHost* host = MakeHost(1, frontend);
2009 host->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/blah"); 2045 host->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/blah");
2010 update->StartUpdate(host, host->new_master_entry_url_); 2046 update->StartUpdate(host, host->new_master_entry_url_);
2011 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 2047 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
2012 2048
2013 // Set up checks for when update job finishes. 2049 // Set up checks for when update job finishes.
2014 do_checks_after_update_finished_ = true; 2050 do_checks_after_update_finished_ = true;
2015 expect_group_obsolete_ = false; 2051 expect_group_obsolete_ = false;
2016 expect_group_has_cache_ = false; 2052 expect_group_has_cache_ = false;
2017 MockFrontend::HostIds ids1(1, host->host_id()); 2053 MockFrontend::HostIds ids1(1, host->host_id());
2018 frontend->AddExpectedEvent(ids1, CHECKING_EVENT); 2054 frontend->AddExpectedEvent(ids1, CHECKING_EVENT);
2019 frontend->AddExpectedEvent(ids1, ERROR_EVENT); 2055 frontend->AddExpectedEvent(ids1, ERROR_EVENT);
2020 2056
2021 WaitForUpdateToFinish(); 2057 WaitForUpdateToFinish();
2022 } 2058 }
2023 2059
2024 void MasterEntryManifestNotFoundTest() { 2060 void MasterEntryManifestNotFoundTest() {
2025 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2061 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2026 2062
2027 MakeService(); 2063 MakeService();
2028 group_ = new AppCacheGroup( 2064 group_ = new AppCacheGroup(
2029 service_->storage(), 2065 service_->storage(),
2030 MockHttpServer::GetMockUrl("files/nosuchfile"), 2066 MockHttpServer::GetMockUrl("files/nosuchfile"),
2031 111); 2067 111);
2032 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2068 AppCacheUpdateJob* update =
2069 new AppCacheUpdateJob(service_.get(), group_.get());
2033 group_->update_job_ = update; 2070 group_->update_job_ = update;
2034 2071
2035 MockFrontend* frontend = MakeMockFrontend(); 2072 MockFrontend* frontend = MakeMockFrontend();
2036 AppCacheHost* host = MakeHost(1, frontend); 2073 AppCacheHost* host = MakeHost(1, frontend);
2037 host->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/blah"); 2074 host->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/blah");
2038 2075
2039 update->StartUpdate(host, host->new_master_entry_url_); 2076 update->StartUpdate(host, host->new_master_entry_url_);
2040 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 2077 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
2041 2078
2042 // Set up checks for when update job finishes. 2079 // Set up checks for when update job finishes.
2043 do_checks_after_update_finished_ = true; 2080 do_checks_after_update_finished_ = true;
2044 expect_group_obsolete_ = false; 2081 expect_group_obsolete_ = false;
2045 expect_group_has_cache_ = false; 2082 expect_group_has_cache_ = false;
2046 MockFrontend::HostIds ids1(1, host->host_id()); 2083 MockFrontend::HostIds ids1(1, host->host_id());
2047 frontend->AddExpectedEvent(ids1, CHECKING_EVENT); 2084 frontend->AddExpectedEvent(ids1, CHECKING_EVENT);
2048 frontend->AddExpectedEvent(ids1, ERROR_EVENT); 2085 frontend->AddExpectedEvent(ids1, ERROR_EVENT);
2049 2086
2050 WaitForUpdateToFinish(); 2087 WaitForUpdateToFinish();
2051 } 2088 }
2052 2089
2053 void MasterEntryFailUrlFetchTest() { 2090 void MasterEntryFailUrlFetchTest() {
2054 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2091 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2055 2092
2056 MakeService(); 2093 MakeService();
2057 group_ = new AppCacheGroup(service_->storage(), 2094 group_ = new AppCacheGroup(service_->storage(),
2058 MockHttpServer::GetMockUrl("files/manifest-fb-404"), 111); 2095 MockHttpServer::GetMockUrl("files/manifest-fb-404"), 111);
2059 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2096 AppCacheUpdateJob* update =
2097 new AppCacheUpdateJob(service_.get(), group_.get());
2060 group_->update_job_ = update; 2098 group_->update_job_ = update;
2061 2099
2062 MockFrontend* frontend = MakeMockFrontend(); 2100 MockFrontend* frontend = MakeMockFrontend();
2063 frontend->SetIgnoreProgressEvents(true); 2101 frontend->SetIgnoreProgressEvents(true);
2064 AppCacheHost* host = MakeHost(1, frontend); 2102 AppCacheHost* host = MakeHost(1, frontend);
2065 host->new_master_entry_url_ = 2103 host->new_master_entry_url_ =
2066 MockHttpServer::GetMockUrl("files/explicit1"); 2104 MockHttpServer::GetMockUrl("files/explicit1");
2067 2105
2068 update->StartUpdate(host, host->new_master_entry_url_); 2106 update->StartUpdate(host, host->new_master_entry_url_);
2069 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 2107 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
(...skipping 11 matching lines...) Expand all
2081 } 2119 }
2082 2120
2083 void MasterEntryAllFailTest() { 2121 void MasterEntryAllFailTest() {
2084 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2122 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2085 2123
2086 MakeService(); 2124 MakeService();
2087 group_ = new AppCacheGroup( 2125 group_ = new AppCacheGroup(
2088 service_->storage(), 2126 service_->storage(),
2089 MockHttpServer::GetMockUrl("files/manifest1"), 2127 MockHttpServer::GetMockUrl("files/manifest1"),
2090 111); 2128 111);
2091 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2129 AppCacheUpdateJob* update =
2130 new AppCacheUpdateJob(service_.get(), group_.get());
2092 group_->update_job_ = update; 2131 group_->update_job_ = update;
2093 2132
2094 MockFrontend* frontend1 = MakeMockFrontend(); 2133 MockFrontend* frontend1 = MakeMockFrontend();
2095 frontend1->SetIgnoreProgressEvents(true); 2134 frontend1->SetIgnoreProgressEvents(true);
2096 AppCacheHost* host1 = MakeHost(1, frontend1); 2135 AppCacheHost* host1 = MakeHost(1, frontend1);
2097 host1->new_master_entry_url_ = 2136 host1->new_master_entry_url_ =
2098 MockHttpServer::GetMockUrl("files/nosuchfile"); 2137 MockHttpServer::GetMockUrl("files/nosuchfile");
2099 update->StartUpdate(host1, host1->new_master_entry_url_); 2138 update->StartUpdate(host1, host1->new_master_entry_url_);
2100 2139
2101 MockFrontend* frontend2 = MakeMockFrontend(); 2140 MockFrontend* frontend2 = MakeMockFrontend();
(...skipping 20 matching lines...) Expand all
2122 } 2161 }
2123 2162
2124 void UpgradeMasterEntryAllFailTest() { 2163 void UpgradeMasterEntryAllFailTest() {
2125 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2164 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2126 2165
2127 MakeService(); 2166 MakeService();
2128 group_ = new AppCacheGroup( 2167 group_ = new AppCacheGroup(
2129 service_->storage(), 2168 service_->storage(),
2130 MockHttpServer::GetMockUrl("files/manifest1"), 2169 MockHttpServer::GetMockUrl("files/manifest1"),
2131 111); 2170 111);
2132 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2171 AppCacheUpdateJob* update =
2172 new AppCacheUpdateJob(service_.get(), group_.get());
2133 group_->update_job_ = update; 2173 group_->update_job_ = update;
2134 2174
2135 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42); 2175 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42);
2136 MockFrontend* frontend1 = MakeMockFrontend(); 2176 MockFrontend* frontend1 = MakeMockFrontend();
2137 AppCacheHost* host1 = MakeHost(1, frontend1); 2177 AppCacheHost* host1 = MakeHost(1, frontend1);
2138 host1->AssociateCompleteCache(cache); 2178 host1->AssociateCompleteCache(cache);
2139 2179
2140 MockFrontend* frontend2 = MakeMockFrontend(); 2180 MockFrontend* frontend2 = MakeMockFrontend();
2141 frontend2->SetIgnoreProgressEvents(true); 2181 frontend2->SetIgnoreProgressEvents(true);
2142 AppCacheHost* host2 = MakeHost(2, frontend2); 2182 AppCacheHost* host2 = MakeHost(2, frontend2);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2176 } 2216 }
2177 2217
2178 void MasterEntrySomeFailTest() { 2218 void MasterEntrySomeFailTest() {
2179 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2219 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2180 2220
2181 MakeService(); 2221 MakeService();
2182 group_ = new AppCacheGroup( 2222 group_ = new AppCacheGroup(
2183 service_->storage(), 2223 service_->storage(),
2184 MockHttpServer::GetMockUrl("files/manifest1"), 2224 MockHttpServer::GetMockUrl("files/manifest1"),
2185 111); 2225 111);
2186 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2226 AppCacheUpdateJob* update =
2227 new AppCacheUpdateJob(service_.get(), group_.get());
2187 group_->update_job_ = update; 2228 group_->update_job_ = update;
2188 2229
2189 MockFrontend* frontend1 = MakeMockFrontend(); 2230 MockFrontend* frontend1 = MakeMockFrontend();
2190 frontend1->SetIgnoreProgressEvents(true); 2231 frontend1->SetIgnoreProgressEvents(true);
2191 AppCacheHost* host1 = MakeHost(1, frontend1); 2232 AppCacheHost* host1 = MakeHost(1, frontend1);
2192 host1->new_master_entry_url_ = 2233 host1->new_master_entry_url_ =
2193 MockHttpServer::GetMockUrl("files/nosuchfile"); 2234 MockHttpServer::GetMockUrl("files/nosuchfile");
2194 update->StartUpdate(host1, host1->new_master_entry_url_); 2235 update->StartUpdate(host1, host1->new_master_entry_url_);
2195 2236
2196 MockFrontend* frontend2 = MakeMockFrontend(); 2237 MockFrontend* frontend2 = MakeMockFrontend();
(...skipping 26 matching lines...) Expand all
2223 } 2264 }
2224 2265
2225 void UpgradeMasterEntrySomeFailTest() { 2266 void UpgradeMasterEntrySomeFailTest() {
2226 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2267 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2227 2268
2228 MakeService(); 2269 MakeService();
2229 group_ = new AppCacheGroup( 2270 group_ = new AppCacheGroup(
2230 service_->storage(), 2271 service_->storage(),
2231 MockHttpServer::GetMockUrl("files/manifest1"), 2272 MockHttpServer::GetMockUrl("files/manifest1"),
2232 111); 2273 111);
2233 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2274 AppCacheUpdateJob* update =
2275 new AppCacheUpdateJob(service_.get(), group_.get());
2234 group_->update_job_ = update; 2276 group_->update_job_ = update;
2235 2277
2236 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42); 2278 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42);
2237 MockFrontend* frontend1 = MakeMockFrontend(); 2279 MockFrontend* frontend1 = MakeMockFrontend();
2238 AppCacheHost* host1 = MakeHost(1, frontend1); 2280 AppCacheHost* host1 = MakeHost(1, frontend1);
2239 host1->AssociateCompleteCache(cache); 2281 host1->AssociateCompleteCache(cache);
2240 2282
2241 MockFrontend* frontend2 = MakeMockFrontend(); 2283 MockFrontend* frontend2 = MakeMockFrontend();
2242 frontend2->SetIgnoreProgressEvents(true); 2284 frontend2->SetIgnoreProgressEvents(true);
2243 AppCacheHost* host2 = MakeHost(2, frontend2); 2285 AppCacheHost* host2 = MakeHost(2, frontend2);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2280 2322
2281 WaitForUpdateToFinish(); 2323 WaitForUpdateToFinish();
2282 } 2324 }
2283 2325
2284 void MasterEntryNoUpdateTest() { 2326 void MasterEntryNoUpdateTest() {
2285 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2327 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2286 2328
2287 MakeService(); 2329 MakeService();
2288 group_ = new AppCacheGroup(service_->storage(), 2330 group_ = new AppCacheGroup(service_->storage(),
2289 MockHttpServer::GetMockUrl("files/notmodified"), 111); 2331 MockHttpServer::GetMockUrl("files/notmodified"), 111);
2290 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2332 AppCacheUpdateJob* update =
2333 new AppCacheUpdateJob(service_.get(), group_.get());
2291 group_->update_job_ = update; 2334 group_->update_job_ = update;
2292 2335
2293 AppCache* cache = MakeCacheForGroup(1, 111); 2336 AppCache* cache = MakeCacheForGroup(1, 111);
2294 MockFrontend* frontend1 = MakeMockFrontend(); 2337 MockFrontend* frontend1 = MakeMockFrontend();
2295 AppCacheHost* host1 = MakeHost(1, frontend1); 2338 AppCacheHost* host1 = MakeHost(1, frontend1);
2296 host1->AssociateCompleteCache(cache); 2339 host1->AssociateCompleteCache(cache);
2297 2340
2298 // Give cache an existing entry that can also be fetched. 2341 // Give cache an existing entry that can also be fetched.
2299 cache->AddEntry(MockHttpServer::GetMockUrl("files/explicit2"), 2342 cache->AddEntry(MockHttpServer::GetMockUrl("files/explicit2"),
2300 AppCacheEntry(AppCacheEntry::EXPLICIT, 222)); 2343 AppCacheEntry(AppCacheEntry::EXPLICIT, 222));
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2334 WaitForUpdateToFinish(); 2377 WaitForUpdateToFinish();
2335 } 2378 }
2336 2379
2337 void StartUpdateMidCacheAttemptTest() { 2380 void StartUpdateMidCacheAttemptTest() {
2338 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2381 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2339 2382
2340 MakeService(); 2383 MakeService();
2341 group_ = new AppCacheGroup( 2384 group_ = new AppCacheGroup(
2342 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"), 2385 service_->storage(), MockHttpServer::GetMockUrl("files/manifest1"),
2343 service_->storage()->NewGroupId()); 2386 service_->storage()->NewGroupId());
2344 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2387 AppCacheUpdateJob* update =
2388 new AppCacheUpdateJob(service_.get(), group_.get());
2345 group_->update_job_ = update; 2389 group_->update_job_ = update;
2346 2390
2347 MockFrontend* frontend1 = MakeMockFrontend(); 2391 MockFrontend* frontend1 = MakeMockFrontend();
2348 AppCacheHost* host1 = MakeHost(1, frontend1); 2392 AppCacheHost* host1 = MakeHost(1, frontend1);
2349 host1->new_master_entry_url_ = 2393 host1->new_master_entry_url_ =
2350 MockHttpServer::GetMockUrl("files/explicit2"); 2394 MockHttpServer::GetMockUrl("files/explicit2");
2351 update->StartUpdate(host1, host1->new_master_entry_url_); 2395 update->StartUpdate(host1, host1->new_master_entry_url_);
2352 EXPECT_TRUE(update->manifest_fetcher_ != NULL); 2396 EXPECT_TRUE(update->manifest_fetcher_ != NULL);
2353 2397
2354 // Set up additional updates to be started while update is in progress. 2398 // Set up additional updates to be started while update is in progress.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2420 WaitForUpdateToFinish(); 2464 WaitForUpdateToFinish();
2421 } 2465 }
2422 2466
2423 void StartUpdateMidNoUpdateTest() { 2467 void StartUpdateMidNoUpdateTest() {
2424 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2468 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2425 2469
2426 MakeService(); 2470 MakeService();
2427 group_ = new AppCacheGroup( 2471 group_ = new AppCacheGroup(
2428 service_->storage(), MockHttpServer::GetMockUrl("files/notmodified"), 2472 service_->storage(), MockHttpServer::GetMockUrl("files/notmodified"),
2429 service_->storage()->NewGroupId()); 2473 service_->storage()->NewGroupId());
2430 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2474 AppCacheUpdateJob* update =
2475 new AppCacheUpdateJob(service_.get(), group_.get());
2431 group_->update_job_ = update; 2476 group_->update_job_ = update;
2432 2477
2433 AppCache* cache = MakeCacheForGroup(1, 111); 2478 AppCache* cache = MakeCacheForGroup(1, 111);
2434 MockFrontend* frontend1 = MakeMockFrontend(); 2479 MockFrontend* frontend1 = MakeMockFrontend();
2435 AppCacheHost* host1 = MakeHost(1, frontend1); 2480 AppCacheHost* host1 = MakeHost(1, frontend1);
2436 host1->AssociateCompleteCache(cache); 2481 host1->AssociateCompleteCache(cache);
2437 2482
2438 // Give cache an existing entry. 2483 // Give cache an existing entry.
2439 cache->AddEntry(MockHttpServer::GetMockUrl("files/explicit2"), 2484 cache->AddEntry(MockHttpServer::GetMockUrl("files/explicit2"),
2440 AppCacheEntry(AppCacheEntry::EXPLICIT, 222)); 2485 AppCacheEntry(AppCacheEntry::EXPLICIT, 222));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2501 } 2546 }
2502 2547
2503 void StartUpdateMidDownloadTest() { 2548 void StartUpdateMidDownloadTest() {
2504 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2549 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2505 2550
2506 MakeService(); 2551 MakeService();
2507 group_ = new AppCacheGroup( 2552 group_ = new AppCacheGroup(
2508 service_->storage(), 2553 service_->storage(),
2509 MockHttpServer::GetMockUrl("files/manifest1"), 2554 MockHttpServer::GetMockUrl("files/manifest1"),
2510 111); 2555 111);
2511 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2556 AppCacheUpdateJob* update =
2557 new AppCacheUpdateJob(service_.get(), group_.get());
2512 group_->update_job_ = update; 2558 group_->update_job_ = update;
2513 2559
2514 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42); 2560 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 42);
2515 MockFrontend* frontend1 = MakeMockFrontend(); 2561 MockFrontend* frontend1 = MakeMockFrontend();
2516 AppCacheHost* host1 = MakeHost(1, frontend1); 2562 AppCacheHost* host1 = MakeHost(1, frontend1);
2517 host1->AssociateCompleteCache(cache); 2563 host1->AssociateCompleteCache(cache);
2518 2564
2519 update->StartUpdate(NULL, GURL()); 2565 update->StartUpdate(NULL, GURL());
2520 2566
2521 // Set up additional updates to be started while update is in progress. 2567 // Set up additional updates to be started while update is in progress.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2585 } 2631 }
2586 2632
2587 void QueueMasterEntryTest() { 2633 void QueueMasterEntryTest() {
2588 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2634 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2589 2635
2590 MakeService(); 2636 MakeService();
2591 group_ = new AppCacheGroup( 2637 group_ = new AppCacheGroup(
2592 service_->storage(), 2638 service_->storage(),
2593 MockHttpServer::GetMockUrl("files/manifest1"), 2639 MockHttpServer::GetMockUrl("files/manifest1"),
2594 111); 2640 111);
2595 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2641 AppCacheUpdateJob* update =
2642 new AppCacheUpdateJob(service_.get(), group_.get());
2596 group_->update_job_ = update; 2643 group_->update_job_ = update;
2597 2644
2598 // Pretend update job has been running and is about to terminate. 2645 // Pretend update job has been running and is about to terminate.
2599 group_->update_status_ = AppCacheGroup::DOWNLOADING; 2646 group_->update_status_ = AppCacheGroup::DOWNLOADING;
2600 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST; 2647 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST;
2601 EXPECT_TRUE(update->IsTerminating()); 2648 EXPECT_TRUE(update->IsTerminating());
2602 2649
2603 // Start an update. Should be queued. 2650 // Start an update. Should be queued.
2604 MockFrontend* frontend = MakeMockFrontend(); 2651 MockFrontend* frontend = MakeMockFrontend();
2605 AppCacheHost* host = MakeHost(1, frontend); 2652 AppCacheHost* host = MakeHost(1, frontend);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2637 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2684 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2638 2685
2639 net::URLRequestJobFactoryImpl* new_factory( 2686 net::URLRequestJobFactoryImpl* new_factory(
2640 new net::URLRequestJobFactoryImpl); 2687 new net::URLRequestJobFactoryImpl);
2641 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); 2688 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory);
2642 io_thread_->SetNewJobFactory(new_factory); 2689 io_thread_->SetNewJobFactory(new_factory);
2643 2690
2644 MakeService(); 2691 MakeService();
2645 group_ = new AppCacheGroup( 2692 group_ = new AppCacheGroup(
2646 service_->storage(), GURL("http://headertest"), 111); 2693 service_->storage(), GURL("http://headertest"), 111);
2647 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2694 AppCacheUpdateJob* update =
2695 new AppCacheUpdateJob(service_.get(), group_.get());
2648 group_->update_job_ = update; 2696 group_->update_job_ = update;
2649 2697
2650 // First test against a cache attempt. Will start manifest fetch 2698 // First test against a cache attempt. Will start manifest fetch
2651 // synchronously. 2699 // synchronously.
2652 HttpHeadersRequestTestJob::Initialize(std::string(), std::string()); 2700 HttpHeadersRequestTestJob::Initialize(std::string(), std::string());
2653 MockFrontend mock_frontend; 2701 MockFrontend mock_frontend;
2654 AppCacheHost host(1, &mock_frontend, service_.get()); 2702 AppCacheHost host(1, &mock_frontend, service_.get());
2655 update->StartUpdate(&host, GURL()); 2703 update->StartUpdate(&host, GURL());
2656 HttpHeadersRequestTestJob::Verify(); 2704 HttpHeadersRequestTestJob::Verify();
2657 delete update; 2705 delete update;
2658 2706
2659 // Now simulate a refetch manifest request. Will start fetch request 2707 // Now simulate a refetch manifest request. Will start fetch request
2660 // synchronously. 2708 // synchronously.
2661 const char data[] = 2709 const char data[] =
2662 "HTTP/1.1 200 OK\0" 2710 "HTTP/1.1 200 OK\0"
2663 "\0"; 2711 "\0";
2664 net::HttpResponseHeaders* headers = 2712 net::HttpResponseHeaders* headers =
2665 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 2713 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
2666 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); 2714 net::HttpResponseInfo* response_info = new net::HttpResponseInfo();
2667 response_info->headers = headers; // adds ref to headers 2715 response_info->headers = headers; // adds ref to headers
2668 2716
2669 HttpHeadersRequestTestJob::Initialize(std::string(), std::string()); 2717 HttpHeadersRequestTestJob::Initialize(std::string(), std::string());
2670 update = new AppCacheUpdateJob(service_.get(), group_); 2718 update = new AppCacheUpdateJob(service_.get(), group_.get());
2671 group_->update_job_ = update; 2719 group_->update_job_ = update;
2672 group_->update_status_ = AppCacheGroup::DOWNLOADING; 2720 group_->update_status_ = AppCacheGroup::DOWNLOADING;
2673 update->manifest_response_info_.reset(response_info); 2721 update->manifest_response_info_.reset(response_info);
2674 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST; 2722 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST;
2675 update->FetchManifest(false); // not first request 2723 update->FetchManifest(false); // not first request
2676 HttpHeadersRequestTestJob::Verify(); 2724 HttpHeadersRequestTestJob::Verify();
2677 delete update; 2725 delete update;
2678 2726
2679 // Change the headers to include a Last-Modified header. Manifest refetch 2727 // Change the headers to include a Last-Modified header. Manifest refetch
2680 // should include If-Modified-Since header. 2728 // should include If-Modified-Since header.
2681 const char data2[] = 2729 const char data2[] =
2682 "HTTP/1.1 200 OK\0" 2730 "HTTP/1.1 200 OK\0"
2683 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0" 2731 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0"
2684 "\0"; 2732 "\0";
2685 net::HttpResponseHeaders* headers2 = 2733 net::HttpResponseHeaders* headers2 =
2686 new net::HttpResponseHeaders(std::string(data2, arraysize(data2))); 2734 new net::HttpResponseHeaders(std::string(data2, arraysize(data2)));
2687 response_info = new net::HttpResponseInfo(); 2735 response_info = new net::HttpResponseInfo();
2688 response_info->headers = headers2; 2736 response_info->headers = headers2;
2689 2737
2690 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT", 2738 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT",
2691 std::string()); 2739 std::string());
2692 update = new AppCacheUpdateJob(service_.get(), group_); 2740 update = new AppCacheUpdateJob(service_.get(), group_.get());
2693 group_->update_job_ = update; 2741 group_->update_job_ = update;
2694 group_->update_status_ = AppCacheGroup::DOWNLOADING; 2742 group_->update_status_ = AppCacheGroup::DOWNLOADING;
2695 update->manifest_response_info_.reset(response_info); 2743 update->manifest_response_info_.reset(response_info);
2696 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST; 2744 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST;
2697 update->FetchManifest(false); // not first request 2745 update->FetchManifest(false); // not first request
2698 HttpHeadersRequestTestJob::Verify(); 2746 HttpHeadersRequestTestJob::Verify();
2699 delete update; 2747 delete update;
2700 2748
2701 UpdateFinished(); 2749 UpdateFinished();
2702 } 2750 }
2703 2751
2704 void IfModifiedSinceUpgradeTest() { 2752 void IfModifiedSinceUpgradeTest() {
2705 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2753 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2706 2754
2707 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT", 2755 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT",
2708 std::string()); 2756 std::string());
2709 net::URLRequestJobFactoryImpl* new_factory( 2757 net::URLRequestJobFactoryImpl* new_factory(
2710 new net::URLRequestJobFactoryImpl); 2758 new net::URLRequestJobFactoryImpl);
2711 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); 2759 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory);
2712 io_thread_->SetNewJobFactory(new_factory); 2760 io_thread_->SetNewJobFactory(new_factory);
2713 2761
2714 MakeService(); 2762 MakeService();
2715 group_ =new AppCacheGroup( 2763 group_ =new AppCacheGroup(
2716 service_->storage(), 2764 service_->storage(),
2717 MockHttpServer::GetMockUrl("files/manifest1"), 2765 MockHttpServer::GetMockUrl("files/manifest1"),
2718 111); 2766 111);
2719 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2767 AppCacheUpdateJob* update =
2768 new AppCacheUpdateJob(service_.get(), group_.get());
2720 group_->update_job_ = update; 2769 group_->update_job_ = update;
2721 2770
2722 // Give the newest cache a manifest enry that is in storage. 2771 // Give the newest cache a manifest enry that is in storage.
2723 response_writer_.reset( 2772 response_writer_.reset(
2724 service_->storage()->CreateResponseWriter(group_->manifest_url(), 2773 service_->storage()->CreateResponseWriter(group_->manifest_url(),
2725 group_->group_id())); 2774 group_->group_id()));
2726 2775
2727 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 2776 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(),
2728 response_writer_->response_id()); 2777 response_writer_->response_id());
2729 MockFrontend* frontend = MakeMockFrontend(); 2778 MockFrontend* frontend = MakeMockFrontend();
(...skipping 20 matching lines...) Expand all
2750 "HTTP/1.1 200 OK\0" 2799 "HTTP/1.1 200 OK\0"
2751 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0" 2800 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0"
2752 "\0"; 2801 "\0";
2753 net::HttpResponseHeaders* headers = 2802 net::HttpResponseHeaders* headers =
2754 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 2803 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
2755 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); 2804 net::HttpResponseInfo* response_info = new net::HttpResponseInfo();
2756 response_info->headers = headers; // adds ref to headers 2805 response_info->headers = headers; // adds ref to headers
2757 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer( 2806 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer(
2758 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info 2807 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info
2759 response_writer_->WriteInfo( 2808 response_writer_->WriteInfo(
2760 io_buffer, 2809 io_buffer.get(),
2761 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, 2810 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
2762 base::Unretained(this))); 2811 base::Unretained(this)));
2763 2812
2764 // Start update after data write completes asynchronously. 2813 // Start update after data write completes asynchronously.
2765 } 2814 }
2766 2815
2767 void IfNoneMatchUpgradeTest() { 2816 void IfNoneMatchUpgradeTest() {
2768 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2817 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2769 2818
2770 HttpHeadersRequestTestJob::Initialize(std::string(), "\"LadeDade\""); 2819 HttpHeadersRequestTestJob::Initialize(std::string(), "\"LadeDade\"");
2771 net::URLRequestJobFactoryImpl* new_factory( 2820 net::URLRequestJobFactoryImpl* new_factory(
2772 new net::URLRequestJobFactoryImpl); 2821 new net::URLRequestJobFactoryImpl);
2773 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); 2822 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory);
2774 io_thread_->SetNewJobFactory(new_factory); 2823 io_thread_->SetNewJobFactory(new_factory);
2775 2824
2776 MakeService(); 2825 MakeService();
2777 group_ = new AppCacheGroup( 2826 group_ = new AppCacheGroup(
2778 service_->storage(), 2827 service_->storage(),
2779 MockHttpServer::GetMockUrl("files/manifest1"), 2828 MockHttpServer::GetMockUrl("files/manifest1"),
2780 111); 2829 111);
2781 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2830 AppCacheUpdateJob* update =
2831 new AppCacheUpdateJob(service_.get(), group_.get());
2782 group_->update_job_ = update; 2832 group_->update_job_ = update;
2783 2833
2784 // Give the newest cache a manifest enry that is in storage. 2834 // Give the newest cache a manifest enry that is in storage.
2785 response_writer_.reset( 2835 response_writer_.reset(
2786 service_->storage()->CreateResponseWriter(group_->manifest_url(), 2836 service_->storage()->CreateResponseWriter(group_->manifest_url(),
2787 group_->group_id())); 2837 group_->group_id()));
2788 2838
2789 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), 2839 AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(),
2790 response_writer_->response_id()); 2840 response_writer_->response_id());
2791 MockFrontend* frontend = MakeMockFrontend(); 2841 MockFrontend* frontend = MakeMockFrontend();
(...skipping 20 matching lines...) Expand all
2812 "HTTP/1.1 200 OK\0" 2862 "HTTP/1.1 200 OK\0"
2813 "ETag: \"LadeDade\"\0" 2863 "ETag: \"LadeDade\"\0"
2814 "\0"; 2864 "\0";
2815 net::HttpResponseHeaders* headers = 2865 net::HttpResponseHeaders* headers =
2816 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 2866 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
2817 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); 2867 net::HttpResponseInfo* response_info = new net::HttpResponseInfo();
2818 response_info->headers = headers; // adds ref to headers 2868 response_info->headers = headers; // adds ref to headers
2819 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer( 2869 scoped_refptr<HttpResponseInfoIOBuffer> io_buffer(
2820 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info 2870 new HttpResponseInfoIOBuffer(response_info)); // adds ref to info
2821 response_writer_->WriteInfo( 2871 response_writer_->WriteInfo(
2822 io_buffer, 2872 io_buffer.get(),
2823 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, 2873 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
2824 base::Unretained(this))); 2874 base::Unretained(this)));
2825 2875
2826 // Start update after data write completes asynchronously. 2876 // Start update after data write completes asynchronously.
2827 } 2877 }
2828 2878
2829 void IfNoneMatchRefetchTest() { 2879 void IfNoneMatchRefetchTest() {
2830 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2880 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2831 2881
2832 HttpHeadersRequestTestJob::Initialize(std::string(), "\"LadeDade\""); 2882 HttpHeadersRequestTestJob::Initialize(std::string(), "\"LadeDade\"");
2833 net::URLRequestJobFactoryImpl* new_factory( 2883 net::URLRequestJobFactoryImpl* new_factory(
2834 new net::URLRequestJobFactoryImpl); 2884 new net::URLRequestJobFactoryImpl);
2835 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); 2885 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory);
2836 io_thread_->SetNewJobFactory(new_factory); 2886 io_thread_->SetNewJobFactory(new_factory);
2837 2887
2838 MakeService(); 2888 MakeService();
2839 group_ = new AppCacheGroup( 2889 group_ = new AppCacheGroup(
2840 service_->storage(), GURL("http://headertest"), 111); 2890 service_->storage(), GURL("http://headertest"), 111);
2841 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2891 AppCacheUpdateJob* update =
2892 new AppCacheUpdateJob(service_.get(), group_.get());
2842 group_->update_job_ = update; 2893 group_->update_job_ = update;
2843 2894
2844 // Simulate a refetch manifest request that uses an ETag header. 2895 // Simulate a refetch manifest request that uses an ETag header.
2845 const char data[] = 2896 const char data[] =
2846 "HTTP/1.1 200 OK\0" 2897 "HTTP/1.1 200 OK\0"
2847 "ETag: \"LadeDade\"\0" 2898 "ETag: \"LadeDade\"\0"
2848 "\0"; 2899 "\0";
2849 net::HttpResponseHeaders* headers = 2900 net::HttpResponseHeaders* headers =
2850 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 2901 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
2851 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); 2902 net::HttpResponseInfo* response_info = new net::HttpResponseInfo();
(...skipping 16 matching lines...) Expand all
2868 HttpHeadersRequestTestJob::Initialize( 2919 HttpHeadersRequestTestJob::Initialize(
2869 "Sat, 29 Oct 1994 19:43:31 GMT", "\"LadeDade\""); 2920 "Sat, 29 Oct 1994 19:43:31 GMT", "\"LadeDade\"");
2870 net::URLRequestJobFactoryImpl* new_factory( 2921 net::URLRequestJobFactoryImpl* new_factory(
2871 new net::URLRequestJobFactoryImpl); 2922 new net::URLRequestJobFactoryImpl);
2872 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); 2923 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory);
2873 io_thread_->SetNewJobFactory(new_factory); 2924 io_thread_->SetNewJobFactory(new_factory);
2874 2925
2875 MakeService(); 2926 MakeService();
2876 group_ = new AppCacheGroup( 2927 group_ = new AppCacheGroup(
2877 service_->storage(), GURL("http://headertest"), 111); 2928 service_->storage(), GURL("http://headertest"), 111);
2878 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2929 AppCacheUpdateJob* update =
2930 new AppCacheUpdateJob(service_.get(), group_.get());
2879 group_->update_job_ = update; 2931 group_->update_job_ = update;
2880 2932
2881 // Simulate a refetch manifest request that uses an ETag header. 2933 // Simulate a refetch manifest request that uses an ETag header.
2882 const char data[] = 2934 const char data[] =
2883 "HTTP/1.1 200 OK\0" 2935 "HTTP/1.1 200 OK\0"
2884 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0" 2936 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0"
2885 "ETag: \"LadeDade\"\0" 2937 "ETag: \"LadeDade\"\0"
2886 "\0"; 2938 "\0";
2887 net::HttpResponseHeaders* headers = 2939 net::HttpResponseHeaders* headers =
2888 new net::HttpResponseHeaders(std::string(data, arraysize(data))); 2940 new net::HttpResponseHeaders(std::string(data, arraysize(data)));
(...skipping 12 matching lines...) Expand all
2901 2953
2902 void CrossOriginHttpsSuccessTest() { 2954 void CrossOriginHttpsSuccessTest() {
2903 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2955 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2904 2956
2905 GURL manifest_url = MockHttpServer::GetMockHttpsUrl( 2957 GURL manifest_url = MockHttpServer::GetMockHttpsUrl(
2906 "files/valid_cross_origin_https_manifest"); 2958 "files/valid_cross_origin_https_manifest");
2907 2959
2908 MakeService(); 2960 MakeService();
2909 group_ = new AppCacheGroup( 2961 group_ = new AppCacheGroup(
2910 service_->storage(), manifest_url, service_->storage()->NewGroupId()); 2962 service_->storage(), manifest_url, service_->storage()->NewGroupId());
2911 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2963 AppCacheUpdateJob* update =
2964 new AppCacheUpdateJob(service_.get(), group_.get());
2912 group_->update_job_ = update; 2965 group_->update_job_ = update;
2913 2966
2914 MockFrontend* frontend = MakeMockFrontend(); 2967 MockFrontend* frontend = MakeMockFrontend();
2915 AppCacheHost* host = MakeHost(1, frontend); 2968 AppCacheHost* host = MakeHost(1, frontend);
2916 update->StartUpdate(host, GURL()); 2969 update->StartUpdate(host, GURL());
2917 2970
2918 // Set up checks for when update job finishes. 2971 // Set up checks for when update job finishes.
2919 do_checks_after_update_finished_ = true; 2972 do_checks_after_update_finished_ = true;
2920 expect_group_obsolete_ = false; 2973 expect_group_obsolete_ = false;
2921 expect_group_has_cache_ = true; 2974 expect_group_has_cache_ = true;
2922 tested_manifest_ = NONE; 2975 tested_manifest_ = NONE;
2923 MockFrontend::HostIds host_ids(1, host->host_id()); 2976 MockFrontend::HostIds host_ids(1, host->host_id());
2924 frontend->AddExpectedEvent(host_ids, CHECKING_EVENT); 2977 frontend->AddExpectedEvent(host_ids, CHECKING_EVENT);
2925 2978
2926 WaitForUpdateToFinish(); 2979 WaitForUpdateToFinish();
2927 } 2980 }
2928 2981
2929 void CrossOriginHttpsDeniedTest() { 2982 void CrossOriginHttpsDeniedTest() {
2930 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()); 2983 ASSERT_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type());
2931 2984
2932 GURL manifest_url = MockHttpServer::GetMockHttpsUrl( 2985 GURL manifest_url = MockHttpServer::GetMockHttpsUrl(
2933 "files/invalid_cross_origin_https_manifest"); 2986 "files/invalid_cross_origin_https_manifest");
2934 2987
2935 MakeService(); 2988 MakeService();
2936 group_ = new AppCacheGroup( 2989 group_ = new AppCacheGroup(
2937 service_->storage(), manifest_url, service_->storage()->NewGroupId()); 2990 service_->storage(), manifest_url, service_->storage()->NewGroupId());
2938 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); 2991 AppCacheUpdateJob* update =
2992 new AppCacheUpdateJob(service_.get(), group_.get());
2939 group_->update_job_ = update; 2993 group_->update_job_ = update;
2940 2994
2941 MockFrontend* frontend = MakeMockFrontend(); 2995 MockFrontend* frontend = MakeMockFrontend();
2942 AppCacheHost* host = MakeHost(1, frontend); 2996 AppCacheHost* host = MakeHost(1, frontend);
2943 update->StartUpdate(host, GURL()); 2997 update->StartUpdate(host, GURL());
2944 2998
2945 // Set up checks for when update job finishes. 2999 // Set up checks for when update job finishes.
2946 do_checks_after_update_finished_ = true; 3000 do_checks_after_update_finished_ = true;
2947 expect_group_obsolete_ = false; 3001 expect_group_obsolete_ = false;
2948 expect_group_has_cache_ = false; 3002 expect_group_has_cache_ = false;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
3024 3078
3025 AppCacheResponseInfo* MakeAppCacheResponseInfo( 3079 AppCacheResponseInfo* MakeAppCacheResponseInfo(
3026 const GURL& manifest_url, int64 response_id, 3080 const GURL& manifest_url, int64 response_id,
3027 const std::string& raw_headers) { 3081 const std::string& raw_headers) {
3028 net::HttpResponseInfo* http_info = new net::HttpResponseInfo(); 3082 net::HttpResponseInfo* http_info = new net::HttpResponseInfo();
3029 http_info->headers = new net::HttpResponseHeaders(raw_headers); 3083 http_info->headers = new net::HttpResponseHeaders(raw_headers);
3030 scoped_refptr<AppCacheResponseInfo> info( 3084 scoped_refptr<AppCacheResponseInfo> info(
3031 new AppCacheResponseInfo(service_.get(), manifest_url, 3085 new AppCacheResponseInfo(service_.get(), manifest_url,
3032 response_id, http_info, 0)); 3086 response_id, http_info, 0));
3033 response_infos_.push_back(info); 3087 response_infos_.push_back(info);
3034 return info; 3088 return info.get();
3035 } 3089 }
3036 3090
3037 MockFrontend* MakeMockFrontend() { 3091 MockFrontend* MakeMockFrontend() {
3038 MockFrontend* frontend = new MockFrontend(); 3092 MockFrontend* frontend = new MockFrontend();
3039 frontends_.push_back(frontend); 3093 frontends_.push_back(frontend);
3040 return frontend; 3094 return frontend;
3041 } 3095 }
3042 3096
3043 // Verifies conditions about the group and notifications after an update 3097 // Verifies conditions about the group and notifications after an update
3044 // has finished. Cannot verify update job internals as update is deleted. 3098 // has finished. Cannot verify update job internals as update is deleted.
(...skipping 21 matching lines...) Expand all
3066 EXPECT_TRUE(group_->old_caches().end() == 3120 EXPECT_TRUE(group_->old_caches().end() ==
3067 std::find(group_->old_caches().begin(), 3121 std::find(group_->old_caches().begin(),
3068 group_->old_caches().end(), expect_newest_cache_)); 3122 group_->old_caches().end(), expect_newest_cache_));
3069 } else { 3123 } else {
3070 // Tests that don't know which newest cache to expect contain updates 3124 // Tests that don't know which newest cache to expect contain updates
3071 // that succeed (because the update creates a new cache whose pointer 3125 // that succeed (because the update creates a new cache whose pointer
3072 // is unknown to the test). Check group and newest cache were stored 3126 // is unknown to the test). Check group and newest cache were stored
3073 // when update succeeds. 3127 // when update succeeds.
3074 MockAppCacheStorage* storage = 3128 MockAppCacheStorage* storage =
3075 reinterpret_cast<MockAppCacheStorage*>(service_->storage()); 3129 reinterpret_cast<MockAppCacheStorage*>(service_->storage());
3076 EXPECT_TRUE(storage->IsGroupStored(group_)); 3130 EXPECT_TRUE(storage->IsGroupStored(group_.get()));
3077 EXPECT_TRUE(storage->IsCacheStored(group_->newest_complete_cache())); 3131 EXPECT_TRUE(storage->IsCacheStored(group_->newest_complete_cache()));
3078 3132
3079 // Check that all entries in the newest cache were stored. 3133 // Check that all entries in the newest cache were stored.
3080 const AppCache::EntryMap& entries = 3134 const AppCache::EntryMap& entries =
3081 group_->newest_complete_cache()->entries(); 3135 group_->newest_complete_cache()->entries();
3082 for (AppCache::EntryMap::const_iterator it = entries.begin(); 3136 for (AppCache::EntryMap::const_iterator it = entries.begin();
3083 it != entries.end(); ++it) { 3137 it != entries.end(); ++it) {
3084 EXPECT_NE(kNoResponseId, it->second.response_id()); 3138 EXPECT_NE(kNoResponseId, it->second.response_id());
3085 3139
3086 // Check that any copied entries have the expected response id 3140 // Check that any copied entries have the expected response id
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
3359 AppCache::EntryMap expect_extra_entries_; 3413 AppCache::EntryMap expect_extra_entries_;
3360 std::map<GURL, int64> expect_response_ids_; 3414 std::map<GURL, int64> expect_response_ids_;
3361 }; 3415 };
3362 3416
3363 TEST_F(AppCacheUpdateJobTest, AlreadyChecking) { 3417 TEST_F(AppCacheUpdateJobTest, AlreadyChecking) {
3364 MockAppCacheService service; 3418 MockAppCacheService service;
3365 scoped_refptr<AppCacheGroup> group( 3419 scoped_refptr<AppCacheGroup> group(
3366 new AppCacheGroup(service.storage(), GURL("http://manifesturl.com"), 3420 new AppCacheGroup(service.storage(), GURL("http://manifesturl.com"),
3367 service.storage()->NewGroupId())); 3421 service.storage()->NewGroupId()));
3368 3422
3369 AppCacheUpdateJob update(&service, group); 3423 AppCacheUpdateJob update(&service, group.get());
3370 3424
3371 // Pretend group is in checking state. 3425 // Pretend group is in checking state.
3372 group->update_job_ = &update; 3426 group->update_job_ = &update;
3373 group->update_status_ = AppCacheGroup::CHECKING; 3427 group->update_status_ = AppCacheGroup::CHECKING;
3374 3428
3375 update.StartUpdate(NULL, GURL()); 3429 update.StartUpdate(NULL, GURL());
3376 EXPECT_EQ(AppCacheGroup::CHECKING, group->update_status()); 3430 EXPECT_EQ(AppCacheGroup::CHECKING, group->update_status());
3377 3431
3378 MockFrontend mock_frontend; 3432 MockFrontend mock_frontend;
3379 AppCacheHost host(1, &mock_frontend, &service); 3433 AppCacheHost host(1, &mock_frontend, &service);
3380 update.StartUpdate(&host, GURL()); 3434 update.StartUpdate(&host, GURL());
3381 3435
3382 MockFrontend::RaisedEvents events = mock_frontend.raised_events_; 3436 MockFrontend::RaisedEvents events = mock_frontend.raised_events_;
3383 size_t expected = 1; 3437 size_t expected = 1;
3384 EXPECT_EQ(expected, events.size()); 3438 EXPECT_EQ(expected, events.size());
3385 EXPECT_EQ(expected, events[0].first.size()); 3439 EXPECT_EQ(expected, events[0].first.size());
3386 EXPECT_EQ(host.host_id(), events[0].first[0]); 3440 EXPECT_EQ(host.host_id(), events[0].first[0]);
3387 EXPECT_EQ(CHECKING_EVENT, events[0].second); 3441 EXPECT_EQ(CHECKING_EVENT, events[0].second);
3388 EXPECT_EQ(AppCacheGroup::CHECKING, group->update_status()); 3442 EXPECT_EQ(AppCacheGroup::CHECKING, group->update_status());
3389 } 3443 }
3390 3444
3391 TEST_F(AppCacheUpdateJobTest, AlreadyDownloading) { 3445 TEST_F(AppCacheUpdateJobTest, AlreadyDownloading) {
3392 MockAppCacheService service; 3446 MockAppCacheService service;
3393 scoped_refptr<AppCacheGroup> group( 3447 scoped_refptr<AppCacheGroup> group(
3394 new AppCacheGroup(service.storage(), GURL("http://manifesturl.com"), 3448 new AppCacheGroup(service.storage(), GURL("http://manifesturl.com"),
3395 service.storage()->NewGroupId())); 3449 service.storage()->NewGroupId()));
3396 3450
3397 AppCacheUpdateJob update(&service, group); 3451 AppCacheUpdateJob update(&service, group.get());
3398 3452
3399 // Pretend group is in downloading state. 3453 // Pretend group is in downloading state.
3400 group->update_job_ = &update; 3454 group->update_job_ = &update;
3401 group->update_status_ = AppCacheGroup::DOWNLOADING; 3455 group->update_status_ = AppCacheGroup::DOWNLOADING;
3402 3456
3403 update.StartUpdate(NULL, GURL()); 3457 update.StartUpdate(NULL, GURL());
3404 EXPECT_EQ(AppCacheGroup::DOWNLOADING, group->update_status()); 3458 EXPECT_EQ(AppCacheGroup::DOWNLOADING, group->update_status());
3405 3459
3406 MockFrontend mock_frontend; 3460 MockFrontend mock_frontend;
3407 AppCacheHost host(1, &mock_frontend, &service); 3461 AppCacheHost host(1, &mock_frontend, &service);
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
3630 3684
3631 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsSuccess) { 3685 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsSuccess) {
3632 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsSuccessTest); 3686 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsSuccessTest);
3633 } 3687 }
3634 3688
3635 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsDenied) { 3689 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsDenied) {
3636 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsDeniedTest); 3690 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsDeniedTest);
3637 } 3691 }
3638 3692
3639 } // namespace appcache 3693 } // namespace appcache
OLDNEW
« no previous file with comments | « webkit/appcache/appcache_update_job.cc ('k') | webkit/appcache/appcache_url_request_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698