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

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

Issue 1304263010: (Merge to M46) Fix crash with null ServiceWorkerProviderHost in DidDispatchFetchEvent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2490
Patch Set: Created 5 years, 4 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
« no previous file with comments | « content/browser/service_worker/service_worker_url_request_job.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 149c524e7435ff456ec21f97d7853a80878eb02f..cb2e0c61966bdb859471467d8867d8fdce859edc 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
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <vector>
+
#include "base/basictypes.h"
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
@@ -199,9 +201,30 @@ class ServiceWorkerURLRequestJobTest : public testing::Test {
helper_.reset();
}
+ void TestRequestResult(int expected_status_code,
+ const std::string& expected_status_text,
+ const std::string& expected_response,
+ bool expect_valid_ssl) {
+ EXPECT_TRUE(request_->status().is_success());
+ EXPECT_EQ(expected_status_code,
+ request_->response_headers()->response_code());
+ EXPECT_EQ(expected_status_text,
+ request_->response_headers()->GetStatusText());
+ EXPECT_EQ(expected_response, url_request_delegate_.response_data());
+ const net::SSLInfo& ssl_info = request_->response_info().ssl_info;
+ if (expect_valid_ssl) {
+ EXPECT_TRUE(ssl_info.is_valid());
+ EXPECT_EQ(ssl_info.security_bits, 0x100);
+ EXPECT_EQ(ssl_info.connection_status, 0x300039);
+ } else {
+ EXPECT_FALSE(ssl_info.is_valid());
+ }
+ }
+
void TestRequest(int expected_status_code,
const std::string& expected_status_text,
- const std::string& expected_response) {
+ const std::string& expected_response,
+ bool expect_valid_ssl) {
request_ = url_request_context_.CreateRequest(
GURL("http://example.com/foo.html"), net::DEFAULT_PRIORITY,
&url_request_delegate_);
@@ -209,16 +232,8 @@ class ServiceWorkerURLRequestJobTest : public testing::Test {
request_->set_method("GET");
request_->Start();
base::RunLoop().RunUntilIdle();
- EXPECT_TRUE(request_->status().is_success());
- EXPECT_EQ(expected_status_code,
- request_->response_headers()->response_code());
- EXPECT_EQ(expected_status_text,
- request_->response_headers()->GetStatusText());
- EXPECT_EQ(expected_response, url_request_delegate_.response_data());
- const net::SSLInfo& ssl_info = request_->response_info().ssl_info;
- EXPECT_TRUE(ssl_info.is_valid());
- EXPECT_EQ(ssl_info.security_bits, 0x100);
- EXPECT_EQ(ssl_info.connection_status, 0x300039);
+ TestRequestResult(expected_status_code, expected_status_text,
+ expected_response, expect_valid_ssl);
}
bool HasInflightRequests() {
@@ -245,12 +260,12 @@ class ServiceWorkerURLRequestJobTest : public testing::Test {
TEST_F(ServiceWorkerURLRequestJobTest, Simple) {
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
- TestRequest(200, "OK", std::string());
+ TestRequest(200, "OK", std::string(), true /* expect_valid_ssl */);
}
class ProviderDeleteHelper : public EmbeddedWorkerTestHelper {
public:
- ProviderDeleteHelper(int mock_render_process_id)
+ explicit ProviderDeleteHelper(int mock_render_process_id)
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id) {}
~ProviderDeleteHelper() override {}
@@ -279,7 +294,8 @@ TEST_F(ServiceWorkerURLRequestJobTest, DeletedProviderHostOnFetchEvent) {
SetUpWithHelper(new ProviderDeleteHelper(kProcessID));
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
- TestRequest(200, "OK", std::string());
+ TestRequest(500, "Service Worker Response Error", std::string(),
+ false /* expect_valid_ssl */);
}
TEST_F(ServiceWorkerURLRequestJobTest, DeletedProviderHostBeforeFetchEvent) {
@@ -292,11 +308,8 @@ TEST_F(ServiceWorkerURLRequestJobTest, DeletedProviderHostBeforeFetchEvent) {
request_->Start();
helper_->context()->RemoveProviderHost(kProcessID, kProviderID);
base::RunLoop().RunUntilIdle();
- EXPECT_TRUE(request_->status().is_success());
- EXPECT_EQ(500, request_->response_headers()->response_code());
- EXPECT_EQ("Service Worker Response Error",
- request_->response_headers()->GetStatusText());
- EXPECT_EQ(std::string(), url_request_delegate_.response_data());
+ TestRequestResult(500, "Service Worker Response Error", std::string(),
+ false /* expect_valid_ssl */);
}
// Responds to fetch events with a blob.
@@ -345,13 +358,14 @@ TEST_F(ServiceWorkerURLRequestJobTest, BlobResponse) {
kProcessID, blob_handle->uuid(), expected_response.size()));
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
- TestRequest(200, "OK", expected_response);
+ TestRequest(200, "OK", expected_response, true /* expect_valid_ssl */);
}
TEST_F(ServiceWorkerURLRequestJobTest, NonExistentBlobUUIDResponse) {
SetUpWithHelper(new BlobResponder(kProcessID, "blob-id:nothing-is-here", 0));
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
- TestRequest(500, "Service Worker Response Error", std::string());
+ TestRequest(500, "Service Worker Response Error", std::string(),
+ true /* expect_valid_ssl */);
}
// Responds to fetch events with a stream.
@@ -601,7 +615,7 @@ TEST_F(ServiceWorkerURLRequestJobTest,
// Helper to simulate failing to dispatch a fetch event to a worker.
class FailFetchHelper : public EmbeddedWorkerTestHelper {
public:
- FailFetchHelper(int mock_render_process_id)
+ explicit FailFetchHelper(int mock_render_process_id)
: EmbeddedWorkerTestHelper(base::FilePath(), mock_render_process_id) {}
~FailFetchHelper() override {}
« no previous file with comments | « content/browser/service_worker/service_worker_url_request_job.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698