summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/geolocation-API/getCurrentPosition_permission_allow.html
blob: dfadcb09d197ec192826285373f6c38f8011c9aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE HTML>
<meta charset='utf-8'>
<title>Geolocation Test: getCurrentPosition location access allowed</title>
<link rel='help' href='http://www.w3.org/TR/geolocation-API/#get-current-position'>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='support.js'></script>

<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p>
<div id='log'></div>

<script>
// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00002
var t = async_test('User allows access, check that success callback is called or error callback is called with correct code.'),
    onSuccess, onError, hasMethodReturned = false;

onSuccess = t.step_func(function(pos) {
  // Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00031
  test(function() {
    assert_true(hasMethodReturned);
  }, 'Check that getCurrentPosition returns synchronously before any callbacks are invoked.');

  done();
});

onError = t.step_func(function(err) {
  // Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00031
  test(function() {
    assert_true(hasMethodReturned);
  }, 'Check that getCurrentPosition returns synchronously before any callbacks are invoked.');

  assert_true(!isUsingPreemptivePermission && err.code === err.POSITION_UNAVAILABLE);
  done();
});

try {
  geo.getCurrentPosition(onSuccess, onError);
  hasMethodReturned = true;
} catch(e) {
  t.step(function() {
    assert_unreached('An exception was thrown unexpectedly: ' + e.message);
  });
}
</script>