Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / serviceworker / registration.html
index b1459e9..fdd83b3 100644 (file)
@@ -1,48 +1,80 @@
-<html>
-<head>
-<script src="/js-test-resources/js-test.js"></script>
-</head>
-<body>
+<!DOCTYPE html>
+<title>Service Worker: Registration</title>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
 <script>
-      description("Tests if ServiceWorker registration is working")
+(function() {
+    var t = async_test('Registering normal pattern');
+    t.step(function() {
+        navigator.serviceWorker.register(
+            'resources/registration-worker.js',
+            {scope: '/registration/*'}
+        ).then(
+            t.step_func(function(worker) {
+                assert_true(worker instanceof ServiceWorker,
+                            'Successfully registered.');
+                t.done();
+            }),
+            t.step_func(function(reason) {
+                assert_unreached('Registration should succeed, but failed: ' + reason.name);
+            })
+        );
+    });
+}());
+
+(function() {
+    var t = async_test('Registering scope outside domain');
+    t.step(function() {
+        navigator.serviceWorker.register(
+            'resources/registration-worker.js',
+            {scope: 'http://example.com/*'}
+        ).then(
+            t.step_func(function(worker) {
+                assert_unreached('Registration scope outside domain should fail.');
+            }),
+            t.step_func(function(reason) {
+                assert_equals(reason.name, 'SecurityError',
+                              'Registration scope outside domain should fail with SecurityError.');
+                t.done();
+            })
+        );
+    });
+}());
+
+(function() {
+    var t = async_test('Registering script outside domain');
+    t.step(function() {
+        navigator.serviceWorker.register(
+            'http://example.com/worker.js'
+        ).then(
+            t.step_func(function(worker) {
+                assert_unreached('Registration script outside domain should fail.');
+            }),
+            t.step_func(function(reason) {
+                assert_equals(reason.name, 'SecurityError',
+                             'Registration script outside domain should fail with SecurityError.');
+                t.done();
+            })
+        );
+    });
+}());
+
+(function() {
+    var t = async_test('Registering non-existent script');
+    t.step(function() {
+        navigator.serviceWorker.register(
+            'resources/no-such-worker.js'
+        ).then(
+            t.step_func(function(worker) {
+                assert_unreached('Registration of non-existent script should fail.');
+            }),
+            t.step_func(function(reason) {
+                assert_equals(reason.name, 'AbortError',
+                             'Registration of non-existent script should fail.');
+                t.done();
+            })
+        );
+    });
+}());
 
-      function test_registerBasics() {
-          debug("Registering normal pattern");
-          return navigator.serviceWorker.register("serviceworker.js", {scope:"/*"}).then(
-              function(worker) {
-                  debug("Successfully registered");
-                  return worker;
-              },
-              function(e) {
-                  regError = e;
-                  shouldBe("'DisabledError'", "regError.name");
-              });
-      }
-      function test_registerPatternOutsideDomain() {
-          debug("Registering pattern outside domain");
-          return navigator.serviceWorker.register("serviceworker.js", {scope:"http://foo.com/*"})
-              .catch(function(e) {
-                  regError = e;
-                  shouldBe("'SecurityError'", "regError.name");
-              });
-      }
-      function test_registerScriptOutsideDomain() {
-          debug("Registering pattern outside domain");
-          return navigator.serviceWorker.register("http://foo.com/serviceworker.js")
-              .catch(function(e) {
-                  regError = e;
-                  shouldBe("'SecurityError'", "regError.name");
-              });
-      }
-      var jsTestIsAsync = true;
-      test_registerBasics()
-      .then(test_registerPatternOutsideDomain)
-      .then(test_registerScriptOutsideDomain)
-      .then(finishJSTest, function(e) {
-          testFailed("Tests failed, exited with error:" + e.name + ": " + e.message);
-          finishJSTest();
-      });
 </script>
-<script src="/js-test-resources/js-test-post.js"></script>
-</body>
-</html>