| Index: content/browser/service_worker/service_worker_url_request_job_unittest.cc
|
| diff --git a/content/browser/service_worker/service_worker_url_request_job_unittest.cc b/content/browser/service_worker/service_worker_url_request_job_unittest.cc
|
| index 88ed182f957356a8b19f540798cdc7bc0e8bcb50..f6cca3442fac43b29aacb9cef245938aa517257d 100644
|
| --- a/content/browser/service_worker/service_worker_url_request_job_unittest.cc
|
| +++ b/content/browser/service_worker/service_worker_url_request_job_unittest.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "base/run_loop.h"
|
| #include "base/single_thread_task_runner.h"
|
| +#include "base/test/simple_test_tick_clock.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/time/time.h"
|
| #include "content/browser/blob_storage/chrome_blob_storage_context.h"
|
| @@ -83,6 +84,9 @@ class MockHttpProtocolHandler
|
| ~MockHttpProtocolHandler() override {}
|
|
|
| void set_resource_type(ResourceType type) { resource_type_ = type; }
|
| + void set_custom_timeout(base::Optional<base::TimeDelta> timeout) {
|
| + custom_timeout_ = timeout;
|
| + }
|
|
|
| net::URLRequestJob* MaybeCreateJob(
|
| net::URLRequest* request,
|
| @@ -101,7 +105,7 @@ class MockHttpProtocolHandler
|
| resource_type_, REQUEST_CONTEXT_TYPE_HYPERLINK,
|
| REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL,
|
| scoped_refptr<ResourceRequestBodyImpl>(), ServiceWorkerFetchType::FETCH,
|
| - delegate_);
|
| + custom_timeout_, delegate_);
|
| job_->ForwardToServiceWorker();
|
| return job_;
|
| }
|
| @@ -114,6 +118,7 @@ class MockHttpProtocolHandler
|
| mutable ServiceWorkerURLRequestJob* job_;
|
| ServiceWorkerURLRequestJob::Delegate* delegate_;
|
| ResourceType resource_type_;
|
| + base::Optional<base::TimeDelta> custom_timeout_;
|
| };
|
|
|
| // Returns a BlobProtocolHandler that uses |blob_storage_context|. Caller owns
|
| @@ -359,6 +364,19 @@ TEST_P(ServiceWorkerURLRequestJobTestP, Simple) {
|
| EXPECT_EQ(std::string(), info->response_cache_storage_cache_name());
|
| }
|
|
|
| +TEST_P(ServiceWorkerURLRequestJobTestP, CustomTimeout) {
|
| + version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
|
| +
|
| + // Set mock clock on version_ to check timeout behavior.
|
| + base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock();
|
| + tick_clock->SetNowTicks(base::TimeTicks::Now());
|
| + version_->SetTickClockForTesting(base::WrapUnique(tick_clock));
|
| +
|
| + http_protocol_handler_->set_custom_timeout(base::TimeDelta::FromSeconds(5));
|
| + TestRequest(200, "OK", std::string(), true /* expect_valid_ssl */);
|
| + EXPECT_EQ(base::TimeDelta::FromSeconds(5), version_->remaining_timeout());
|
| +}
|
| +
|
| class ProviderDeleteHelper : public EmbeddedWorkerTestHelper {
|
| public:
|
| ProviderDeleteHelper() : EmbeddedWorkerTestHelper(base::FilePath()) {}
|
|
|