| Index: LayoutTests/http/tests/geofencing/apis_not_implemented.html | 
| diff --git a/LayoutTests/http/tests/geofencing/apis_not_implemented.html b/LayoutTests/http/tests/geofencing/apis_not_implemented.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..767a75e74da1c1e7ceb9ea31e8c4c3e4833fe876 | 
| --- /dev/null | 
| +++ b/LayoutTests/http/tests/geofencing/apis_not_implemented.html | 
| @@ -0,0 +1,65 @@ | 
| +<!DOCTYPE html> | 
| +<title>Tests that all geofencing methods exposed on a service worker registration always reject.</title> | 
| +<script src="../resources/testharness.js"></script> | 
| +<script src="../resources/testharnessreport.js"></script> | 
| +<script src="../serviceworker/resources/test-helpers.js"></script> | 
| +<script> | 
| +// Copied from http/tests/serviceworker/resources/worker-test-harness.js, can be | 
| +// removed once this makes it into testharness.js itself. | 
| +function promise_test(func, name, properties) { | 
| +  properties = properties || {}; | 
| +  var test = async_test(name, properties); | 
| +  Promise.resolve(test.step(func, test, test)) | 
| +    .then(function() { test.done(); }) | 
| +    .catch(test.step_func(function(value) { | 
| +        throw value; | 
| +      })); | 
| +} | 
| +function assert_promise_rejects(promise, code, description) { | 
| +  return promise.then( | 
| +    function() { | 
| +      throw 'assert_promise_rejects: ' + description + ' Promise did not throw.'; | 
| +    }, | 
| +    function(e) { | 
| +      if (code !== undefined) { | 
| +        assert_throws(code, function() { throw e; }, description); | 
| +      } | 
| +    }); | 
| +} | 
| + | 
| +var sw_url = 'resources/emptyworker.js'; | 
| +var sw_scope = '/service-worker-scope' + window.location.pathname; | 
| + | 
| +promise_test(function(test) { | 
| +    return assert_promise_rejects( | 
| +      service_worker_unregister_and_register(test, sw_url, sw_scope + '/register') | 
| +        .then(function(r) { | 
| +            return r.geofencing.registerRegion( | 
| +                new CircularGeofencingRegion({latitude: 37.421999, | 
| +                                              longitude: -122.084015})); | 
| +        }), | 
| +      'AbortError', | 
| +      'registerRegion should fail with an AbortError'); | 
| +  }, 'registerRegion should fail'); | 
| + | 
| +promise_test(function(test) { | 
| +    return assert_promise_rejects( | 
| +      service_worker_unregister_and_register(test, sw_url, sw_scope + '/unregister') | 
| +        .then(function(r) { | 
| +          return r.geofencing.unregisterRegion(''); | 
| +        }), | 
| +      'AbortError', | 
| +      'unregisterRegion should fail with an AbortError'); | 
| +  }, 'unregisterRegion should fail'); | 
| + | 
| +promise_test(function(test) { | 
| +    return assert_promise_rejects( | 
| +      service_worker_unregister_and_register(test, sw_url, sw_scope + '/getregions') | 
| +        .then(function(r) { | 
| +          return r.geofencing.getRegisteredRegions(); | 
| +        }), | 
| +      'AbortError', | 
| +      'getRegisteredRegions should fail with an AbortError'); | 
| +  }, 'getRegisteredRegions should fail'); | 
| + | 
| +</script> | 
|  |