Chromium Code Reviews| Index: chrome/browser/extensions/service_worker_apitest.cc | 
| diff --git a/chrome/browser/extensions/service_worker_apitest.cc b/chrome/browser/extensions/service_worker_apitest.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..5c0d2c6e16c78858dfa86dd969424c75427d001d | 
| --- /dev/null | 
| +++ b/chrome/browser/extensions/service_worker_apitest.cc | 
| @@ -0,0 +1,50 @@ | 
| +// Copyright 2015 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#include "chrome/browser/extensions/extension_apitest.h" | 
| +#include "extensions/test/extension_test_message_listener.h" | 
| + | 
| +namespace extensions { | 
| + | 
| +class ServiceWorkerTest : public ExtensionApiTest { | 
| + public: | 
| + // Set the channel to "trunk" since service workers are restricted to trunk. | 
| + ServiceWorkerTest() | 
| + : current_channel_(chrome::VersionInfo::CHANNEL_UNKNOWN) {} | 
| + | 
| + ~ServiceWorkerTest() override {} | 
| + | 
| + private: | 
| + ScopedCurrentChannel current_channel_; | 
| + DISALLOW_COPY_AND_ASSIGN(ServiceWorkerTest); | 
| +}; | 
| + | 
| +// This should fail because there are changes to be made to | 
| 
 
Devlin
2015/07/13 21:22:11
nit: The "this should fail" almost looks like it's
 
annekao
2015/07/13 22:21:29
Done.
 
 | 
| +// successfully register a service worker. | 
| +IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, RegisterServiceWorkersOnTrunk) { | 
| + ExtensionTestMessageListener listener(false); | 
| + ASSERT_FALSE(RunExtensionTest("service_worker/register")) << message_; | 
| + ASSERT_TRUE(listener.WaitUntilSatisfied()); | 
| + ASSERT_EQ( | 
| + "SecurityError: Failed to register a ServiceWorker: No URL is " | 
| + "associated with the caller's document.", | 
| + listener.message()); | 
| +} | 
| + | 
| +// This feature is restricted to trunk, so on dev it should have existing | 
| +// behavior - which is for it to fail. | 
| +IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, CannotRegisterServiceWorkersOnDev) { | 
| + ScopedCurrentChannel current_channel_override( | 
| + chrome::VersionInfo::CHANNEL_DEV); | 
| + ExtensionTestMessageListener listener(false); | 
| + ASSERT_FALSE(RunExtensionTest("service_worker/register")) << message_; | 
| + ASSERT_TRUE(listener.WaitUntilSatisfied()); | 
| + ASSERT_EQ( | 
| + "SecurityError: Failed to register a ServiceWorker: The URL " | 
| + "protocol of the current origin ('chrome-extension://" + | 
| + GetSingleLoadedExtension()->id() + "') is not supported.", | 
| + listener.message()); | 
| +} | 
| + | 
| +} // namespace extensions |