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

Unified Diff: content/browser/service_worker/service_worker_url_request_job_unittest.cc

Issue 832813002: [ServiceWorker] Keep ServiceWorker alive while streaming the response for FetchEvent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
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 5987b5c721bebf356b90c4bd12570e19a36f7f67..4199dd9c988b952bf4cb4b6c5978c8354fa65199 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
@@ -182,6 +182,10 @@ class ServiceWorkerURLRequestJobTest : public testing::Test {
EXPECT_EQ(expected_response, url_request_delegate_.response_data());
}
+ bool HasInflightRequests() {
+ return version_->HasInflightRequests();
+ }
+
TestBrowserThreadBundle thread_bundle_;
scoped_ptr<TestBrowserContext> browser_context_;
@@ -306,7 +310,6 @@ TEST_F(ServiceWorkerURLRequestJobTest, StreamResponse) {
scoped_refptr<Stream> stream =
new Stream(stream_context->registry(), nullptr, stream_url);
SetUpWithHelper(new StreamResponder(kProcessID, stream_url));
-
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
request_ = url_request_context_.CreateRequest(
GURL("http://example.com/foo.html"),
@@ -324,13 +327,17 @@ TEST_F(ServiceWorkerURLRequestJobTest, StreamResponse) {
}
stream->Finalize();
+ EXPECT_FALSE(HasInflightRequests());
base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(HasInflightRequests());
EXPECT_TRUE(request_->status().is_success());
EXPECT_EQ(200,
request_->response_headers()->response_code());
EXPECT_EQ("OK",
request_->response_headers()->GetStatusText());
EXPECT_EQ(expected_response, url_request_delegate_.response_data());
+ request_.reset();
+ EXPECT_FALSE(HasInflightRequests());
}
TEST_F(ServiceWorkerURLRequestJobTest, StreamResponse_DelayedRegistration) {
@@ -359,13 +366,17 @@ TEST_F(ServiceWorkerURLRequestJobTest, StreamResponse_DelayedRegistration) {
}
stream->Finalize();
+ EXPECT_FALSE(HasInflightRequests());
base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(HasInflightRequests());
EXPECT_TRUE(request_->status().is_success());
EXPECT_EQ(200,
request_->response_headers()->response_code());
EXPECT_EQ("OK",
request_->response_headers()->GetStatusText());
EXPECT_EQ(expected_response, url_request_delegate_.response_data());
+ request_.reset();
+ EXPECT_FALSE(HasInflightRequests());
}
@@ -393,13 +404,17 @@ TEST_F(ServiceWorkerURLRequestJobTest, StreamResponse_QuickFinalize) {
nullptr);
request_->set_method("GET");
request_->Start();
+ EXPECT_FALSE(HasInflightRequests());
base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(HasInflightRequests());
EXPECT_TRUE(request_->status().is_success());
EXPECT_EQ(200,
request_->response_headers()->response_code());
EXPECT_EQ("OK",
request_->response_headers()->GetStatusText());
EXPECT_EQ(expected_response, url_request_delegate_.response_data());
+ request_.reset();
+ EXPECT_FALSE(HasInflightRequests());
}
@@ -458,7 +473,9 @@ TEST_F(ServiceWorkerURLRequestJobTest, StreamResponseAndCancel) {
nullptr);
request_->set_method("GET");
request_->Start();
+ EXPECT_FALSE(HasInflightRequests());
base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(HasInflightRequests());
std::string expected_response;
expected_response.reserve((sizeof(kTestData) - 1) * 1024);
@@ -468,6 +485,7 @@ TEST_F(ServiceWorkerURLRequestJobTest, StreamResponseAndCancel) {
}
ASSERT_TRUE(stream_context->registry()->GetStream(stream_url).get());
request_->Cancel();
+ EXPECT_FALSE(HasInflightRequests());
ASSERT_FALSE(stream_context->registry()->GetStream(stream_url).get());
for (int i = 0; i < 512; ++i) {
expected_response += kTestData;
@@ -495,8 +513,11 @@ TEST_F(ServiceWorkerURLRequestJobTest,
nullptr);
request_->set_method("GET");
request_->Start();
+ EXPECT_FALSE(HasInflightRequests());
base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(HasInflightRequests());
request_->Cancel();
+ EXPECT_FALSE(HasInflightRequests());
scoped_refptr<Stream> stream =
new Stream(stream_context->registry(), nullptr, stream_url);

Powered by Google App Engine
This is Rietveld 408576698