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

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

Issue 625533002: Respect content settings for Service Worker registration (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@testing
Patch Set: sync Created 6 years, 2 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_dispatcher_host_unittest.cc
diff --git a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc
index 428c86178d03389e5e68cd4410b51278d6ebfe9c..f79cf31d8337f94c551b9f904a36eb4e4b6c45cb 100644
--- a/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc
+++ b/content/browser/service_worker/service_worker_dispatcher_host_unittest.cc
@@ -16,7 +16,9 @@
#include "content/common/service_worker/embedded_worker_messages.h"
#include "content/common/service_worker/service_worker_messages.h"
#include "content/public/common/content_switches.h"
+#include "content/public/test/mock_resource_context.h"
#include "content/public/test/test_browser_thread_bundle.h"
+#include "content/test/test_content_browser_client.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
@@ -28,8 +30,9 @@ class TestingServiceWorkerDispatcherHost : public ServiceWorkerDispatcherHost {
TestingServiceWorkerDispatcherHost(
int process_id,
ServiceWorkerContextWrapper* context_wrapper,
+ ResourceContext* resource_context,
EmbeddedWorkerTestHelper* helper)
- : ServiceWorkerDispatcherHost(process_id, NULL),
+ : ServiceWorkerDispatcherHost(process_id, NULL, resource_context),
bad_messages_received_count_(0),
helper_(helper) {
Init(context_wrapper);
@@ -60,7 +63,7 @@ class ServiceWorkerDispatcherHostTest : public testing::Test {
virtual void SetUp() {
helper_.reset(new EmbeddedWorkerTestHelper(kRenderProcessId));
dispatcher_host_ = new TestingServiceWorkerDispatcherHost(
- kRenderProcessId, context_wrapper(), helper_.get());
+ kRenderProcessId, context_wrapper(), &resource_context_, helper_.get());
}
virtual void TearDown() {
@@ -120,10 +123,47 @@ class ServiceWorkerDispatcherHostTest : public testing::Test {
}
TestBrowserThreadBundle browser_thread_bundle_;
+ content::MockResourceContext resource_context_;
scoped_ptr<EmbeddedWorkerTestHelper> helper_;
scoped_refptr<TestingServiceWorkerDispatcherHost> dispatcher_host_;
};
+class ServiceWorkerTestContentBrowserClient : public TestContentBrowserClient {
+ public:
+ ServiceWorkerTestContentBrowserClient() {}
+ virtual bool AllowServiceWorker(const GURL& scope,
+ const GURL& first_party,
+ content::ResourceContext* context) OVERRIDE {
+ return false;
+ }
+};
+
+TEST_F(ServiceWorkerDispatcherHostTest,
+ Register_ContentSettingsDisallowsServiceWorker) {
+ ServiceWorkerTestContentBrowserClient test_browser_client;
+ ContentBrowserClient* old_browser_client =
+ SetBrowserClientForTesting(&test_browser_client);
+
+ const int64 kProviderId = 99; // Dummy value
+ scoped_ptr<ServiceWorkerProviderHost> host(new ServiceWorkerProviderHost(
+ kRenderProcessId, kProviderId, context()->AsWeakPtr(), NULL));
+ host->SetDocumentUrl(GURL("https://www.example.com/foo"));
+ context()->AddProviderHost(host.Pass());
+
+ Register(kProviderId,
+ GURL("https://www.example.com/"),
+ GURL("https://www.example.com/bar"),
+ ServiceWorkerMsg_ServiceWorkerRegistrationError::ID);
+ Unregister(kProviderId,
+ GURL("https://www.example.com/"),
+ ServiceWorkerMsg_ServiceWorkerUnregistrationError::ID);
+ GetRegistration(kProviderId,
+ GURL("https://www.example.com/"),
+ ServiceWorkerMsg_ServiceWorkerGetRegistrationError::ID);
+
+ SetBrowserClientForTesting(old_browser_client);
+}
+
TEST_F(ServiceWorkerDispatcherHostTest, Register_HTTPS) {
const int64 kProviderId = 99; // Dummy value
scoped_ptr<ServiceWorkerProviderHost> host(new ServiceWorkerProviderHost(

Powered by Google App Engine
This is Rietveld 408576698