OLD | NEW |
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 2631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2642 io_thread_->SetNewJobFactory(new_factory); | 2642 io_thread_->SetNewJobFactory(new_factory); |
2643 | 2643 |
2644 MakeService(); | 2644 MakeService(); |
2645 group_ = new AppCacheGroup( | 2645 group_ = new AppCacheGroup( |
2646 service_->storage(), GURL("http://headertest"), 111); | 2646 service_->storage(), GURL("http://headertest"), 111); |
2647 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); | 2647 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); |
2648 group_->update_job_ = update; | 2648 group_->update_job_ = update; |
2649 | 2649 |
2650 // First test against a cache attempt. Will start manifest fetch | 2650 // First test against a cache attempt. Will start manifest fetch |
2651 // synchronously. | 2651 // synchronously. |
2652 HttpHeadersRequestTestJob::Initialize("", ""); | 2652 HttpHeadersRequestTestJob::Initialize(std::string(), std::string()); |
2653 MockFrontend mock_frontend; | 2653 MockFrontend mock_frontend; |
2654 AppCacheHost host(1, &mock_frontend, service_.get()); | 2654 AppCacheHost host(1, &mock_frontend, service_.get()); |
2655 update->StartUpdate(&host, GURL()); | 2655 update->StartUpdate(&host, GURL()); |
2656 HttpHeadersRequestTestJob::Verify(); | 2656 HttpHeadersRequestTestJob::Verify(); |
2657 delete update; | 2657 delete update; |
2658 | 2658 |
2659 // Now simulate a refetch manifest request. Will start fetch request | 2659 // Now simulate a refetch manifest request. Will start fetch request |
2660 // synchronously. | 2660 // synchronously. |
2661 const char data[] = | 2661 const char data[] = |
2662 "HTTP/1.1 200 OK\0" | 2662 "HTTP/1.1 200 OK\0" |
2663 "\0"; | 2663 "\0"; |
2664 net::HttpResponseHeaders* headers = | 2664 net::HttpResponseHeaders* headers = |
2665 new net::HttpResponseHeaders(std::string(data, arraysize(data))); | 2665 new net::HttpResponseHeaders(std::string(data, arraysize(data))); |
2666 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); | 2666 net::HttpResponseInfo* response_info = new net::HttpResponseInfo(); |
2667 response_info->headers = headers; // adds ref to headers | 2667 response_info->headers = headers; // adds ref to headers |
2668 | 2668 |
2669 HttpHeadersRequestTestJob::Initialize("", ""); | 2669 HttpHeadersRequestTestJob::Initialize(std::string(), std::string()); |
2670 update = new AppCacheUpdateJob(service_.get(), group_); | 2670 update = new AppCacheUpdateJob(service_.get(), group_); |
2671 group_->update_job_ = update; | 2671 group_->update_job_ = update; |
2672 group_->update_status_ = AppCacheGroup::DOWNLOADING; | 2672 group_->update_status_ = AppCacheGroup::DOWNLOADING; |
2673 update->manifest_response_info_.reset(response_info); | 2673 update->manifest_response_info_.reset(response_info); |
2674 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST; | 2674 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST; |
2675 update->FetchManifest(false); // not first request | 2675 update->FetchManifest(false); // not first request |
2676 HttpHeadersRequestTestJob::Verify(); | 2676 HttpHeadersRequestTestJob::Verify(); |
2677 delete update; | 2677 delete update; |
2678 | 2678 |
2679 // Change the headers to include a Last-Modified header. Manifest refetch | 2679 // Change the headers to include a Last-Modified header. Manifest refetch |
2680 // should include If-Modified-Since header. | 2680 // should include If-Modified-Since header. |
2681 const char data2[] = | 2681 const char data2[] = |
2682 "HTTP/1.1 200 OK\0" | 2682 "HTTP/1.1 200 OK\0" |
2683 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0" | 2683 "Last-Modified: Sat, 29 Oct 1994 19:43:31 GMT\0" |
2684 "\0"; | 2684 "\0"; |
2685 net::HttpResponseHeaders* headers2 = | 2685 net::HttpResponseHeaders* headers2 = |
2686 new net::HttpResponseHeaders(std::string(data2, arraysize(data2))); | 2686 new net::HttpResponseHeaders(std::string(data2, arraysize(data2))); |
2687 response_info = new net::HttpResponseInfo(); | 2687 response_info = new net::HttpResponseInfo(); |
2688 response_info->headers = headers2; | 2688 response_info->headers = headers2; |
2689 | 2689 |
2690 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT", ""); | 2690 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT", |
| 2691 std::string()); |
2691 update = new AppCacheUpdateJob(service_.get(), group_); | 2692 update = new AppCacheUpdateJob(service_.get(), group_); |
2692 group_->update_job_ = update; | 2693 group_->update_job_ = update; |
2693 group_->update_status_ = AppCacheGroup::DOWNLOADING; | 2694 group_->update_status_ = AppCacheGroup::DOWNLOADING; |
2694 update->manifest_response_info_.reset(response_info); | 2695 update->manifest_response_info_.reset(response_info); |
2695 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST; | 2696 update->internal_state_ = AppCacheUpdateJob::REFETCH_MANIFEST; |
2696 update->FetchManifest(false); // not first request | 2697 update->FetchManifest(false); // not first request |
2697 HttpHeadersRequestTestJob::Verify(); | 2698 HttpHeadersRequestTestJob::Verify(); |
2698 delete update; | 2699 delete update; |
2699 | 2700 |
2700 UpdateFinished(); | 2701 UpdateFinished(); |
2701 } | 2702 } |
2702 | 2703 |
2703 void IfModifiedSinceUpgradeTest() { | 2704 void IfModifiedSinceUpgradeTest() { |
2704 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); | 2705 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
2705 | 2706 |
2706 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT", ""); | 2707 HttpHeadersRequestTestJob::Initialize("Sat, 29 Oct 1994 19:43:31 GMT", |
| 2708 std::string()); |
2707 net::URLRequestJobFactoryImpl* new_factory( | 2709 net::URLRequestJobFactoryImpl* new_factory( |
2708 new net::URLRequestJobFactoryImpl); | 2710 new net::URLRequestJobFactoryImpl); |
2709 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); | 2711 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); |
2710 io_thread_->SetNewJobFactory(new_factory); | 2712 io_thread_->SetNewJobFactory(new_factory); |
2711 | 2713 |
2712 MakeService(); | 2714 MakeService(); |
2713 group_ =new AppCacheGroup( | 2715 group_ =new AppCacheGroup( |
2714 service_->storage(), | 2716 service_->storage(), |
2715 MockHttpServer::GetMockUrl("files/manifest1"), | 2717 MockHttpServer::GetMockUrl("files/manifest1"), |
2716 111); | 2718 111); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2758 io_buffer, | 2760 io_buffer, |
2759 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, | 2761 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, |
2760 base::Unretained(this))); | 2762 base::Unretained(this))); |
2761 | 2763 |
2762 // Start update after data write completes asynchronously. | 2764 // Start update after data write completes asynchronously. |
2763 } | 2765 } |
2764 | 2766 |
2765 void IfNoneMatchUpgradeTest() { | 2767 void IfNoneMatchUpgradeTest() { |
2766 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); | 2768 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
2767 | 2769 |
2768 HttpHeadersRequestTestJob::Initialize("", "\"LadeDade\""); | 2770 HttpHeadersRequestTestJob::Initialize(std::string(), "\"LadeDade\""); |
2769 net::URLRequestJobFactoryImpl* new_factory( | 2771 net::URLRequestJobFactoryImpl* new_factory( |
2770 new net::URLRequestJobFactoryImpl); | 2772 new net::URLRequestJobFactoryImpl); |
2771 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); | 2773 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); |
2772 io_thread_->SetNewJobFactory(new_factory); | 2774 io_thread_->SetNewJobFactory(new_factory); |
2773 | 2775 |
2774 MakeService(); | 2776 MakeService(); |
2775 group_ = new AppCacheGroup( | 2777 group_ = new AppCacheGroup( |
2776 service_->storage(), | 2778 service_->storage(), |
2777 MockHttpServer::GetMockUrl("files/manifest1"), | 2779 MockHttpServer::GetMockUrl("files/manifest1"), |
2778 111); | 2780 111); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2820 io_buffer, | 2822 io_buffer, |
2821 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, | 2823 base::Bind(&AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData, |
2822 base::Unretained(this))); | 2824 base::Unretained(this))); |
2823 | 2825 |
2824 // Start update after data write completes asynchronously. | 2826 // Start update after data write completes asynchronously. |
2825 } | 2827 } |
2826 | 2828 |
2827 void IfNoneMatchRefetchTest() { | 2829 void IfNoneMatchRefetchTest() { |
2828 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); | 2830 ASSERT_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()); |
2829 | 2831 |
2830 HttpHeadersRequestTestJob::Initialize("", "\"LadeDade\""); | 2832 HttpHeadersRequestTestJob::Initialize(std::string(), "\"LadeDade\""); |
2831 net::URLRequestJobFactoryImpl* new_factory( | 2833 net::URLRequestJobFactoryImpl* new_factory( |
2832 new net::URLRequestJobFactoryImpl); | 2834 new net::URLRequestJobFactoryImpl); |
2833 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); | 2835 new_factory->SetProtocolHandler("http", new IfModifiedSinceJobFactory); |
2834 io_thread_->SetNewJobFactory(new_factory); | 2836 io_thread_->SetNewJobFactory(new_factory); |
2835 | 2837 |
2836 MakeService(); | 2838 MakeService(); |
2837 group_ = new AppCacheGroup( | 2839 group_ = new AppCacheGroup( |
2838 service_->storage(), GURL("http://headertest"), 111); | 2840 service_->storage(), GURL("http://headertest"), 111); |
2839 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); | 2841 AppCacheUpdateJob* update = new AppCacheUpdateJob(service_.get(), group_); |
2840 group_->update_job_ = update; | 2842 group_->update_job_ = update; |
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3627 | 3629 |
3628 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsSuccess) { | 3630 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsSuccess) { |
3629 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsSuccessTest); | 3631 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsSuccessTest); |
3630 } | 3632 } |
3631 | 3633 |
3632 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsDenied) { | 3634 TEST_F(AppCacheUpdateJobTest, CrossOriginHttpsDenied) { |
3633 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsDeniedTest); | 3635 RunTestOnIOThread(&AppCacheUpdateJobTest::CrossOriginHttpsDeniedTest); |
3634 } | 3636 } |
3635 | 3637 |
3636 } // namespace appcache | 3638 } // namespace appcache |
OLD | NEW |