OLD | NEW |
1 description("Tests that the PositionOptions.maximumAge parameter is correctly ap
plied."); | 1 description("Tests that the PositionOptions.maximumAge parameter is correctly ap
plied."); |
2 | 2 |
3 var mockLatitude = 51.478; | 3 var mockLatitude = 51.478; |
4 var mockLongitude = -0.166; | 4 var mockLongitude = -0.166; |
5 var mockAccuracy = 100.0; | 5 var mockAccuracy = 100.0; |
6 | 6 |
7 var mockMessage = 'test'; | 7 var mockMessage = 'test'; |
8 | 8 |
9 var position; | 9 var position; |
10 var error; | 10 var error; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 finishJSTest(); | 52 finishJSTest(); |
53 }); | 53 }); |
54 } | 54 } |
55 | 55 |
56 function testNonZeroMaximumAge() { | 56 function testNonZeroMaximumAge() { |
57 // Update the mock service to report an error. | 57 // Update the mock service to report an error. |
58 internals.setGeolocationPositionUnavailableError(document, mockMessage); | 58 internals.setGeolocationPositionUnavailableError(document, mockMessage); |
59 // The maximumAge is non-zero, so we expect the cached position, not the err
or from the service. | 59 // The maximumAge is non-zero, so we expect the cached position, not the err
or from the service. |
60 navigator.geolocation.getCurrentPosition(function(p) { | 60 navigator.geolocation.getCurrentPosition(function(p) { |
61 checkPosition(p); | 61 checkPosition(p); |
| 62 testNegativeValueMaximumAge(); |
| 63 }, function(e) { |
| 64 testFailed('Error callback invoked unexpectedly'); |
| 65 finishJSTest(); |
| 66 }, {maximumAge: 1000}); |
| 67 } |
| 68 |
| 69 function testNegativeValueMaximumAge() { |
| 70 // Update the position provided by the mock service. |
| 71 internals.setGeolocationPosition(document, ++mockLatitude, ++mockLongitude,
++mockAccuracy); |
| 72 // The maximumAge is same as zero, so we expect the updated position from th
e service. |
| 73 navigator.geolocation.getCurrentPosition(function(p) { |
| 74 checkPosition(p); |
| 75 testOverSignedIntMaximumAge(); |
| 76 }, function(e) { |
| 77 testFailed('Error callback invoked unexpectedly'); |
| 78 finishJSTest(); |
| 79 }, {maximumAge: -1000}); |
| 80 } |
| 81 |
| 82 function testOverSignedIntMaximumAge() { |
| 83 // Update the mock service to report an error. |
| 84 internals.setGeolocationPositionUnavailableError(document, mockMessage); |
| 85 // The maximumAge is non-zero, so we expect the cached position, not the err
or from the service. |
| 86 navigator.geolocation.getCurrentPosition(function(p) { |
| 87 checkPosition(p); |
| 88 testOverUnsignedIntMaximumAge(); |
| 89 }, function(e) { |
| 90 testFailed('Error callback invoked unexpectedly'); |
| 91 finishJSTest(); |
| 92 }, {maximumAge: 2147483648}); |
| 93 } |
| 94 |
| 95 function testOverUnsignedIntMaximumAge() { |
| 96 // Update the mock service to report an error. |
| 97 internals.setGeolocationPositionUnavailableError(document, mockMessage); |
| 98 // The maximumAge is max-value of unsigned, so we expect the cached position
, not the error from the service. |
| 99 navigator.geolocation.getCurrentPosition(function(p) { |
| 100 checkPosition(p); |
62 testZeroMaximumAgeError(); | 101 testZeroMaximumAgeError(); |
63 }, function(e) { | 102 }, function(e) { |
64 testFailed('Error callback invoked unexpectedly'); | 103 testFailed('Error callback invoked unexpectedly'); |
65 finishJSTest(); | 104 finishJSTest(); |
66 }, {maximumAge: 1000}); | 105 }, {maximumAge: 4294967296}); |
67 } | 106 } |
68 | 107 |
69 function testZeroMaximumAgeError() { | 108 function testZeroMaximumAgeError() { |
70 // The default maximumAge is zero, so we expect the error from the service. | 109 // The default maximumAge is zero, so we expect the error from the service. |
71 navigator.geolocation.getCurrentPosition(function(p) { | 110 navigator.geolocation.getCurrentPosition(function(p) { |
72 testFailed('Success callback invoked unexpectedly'); | 111 testFailed('Success callback invoked unexpectedly'); |
73 finishJSTest(); | 112 finishJSTest(); |
74 }, function(e) { | 113 }, function(e) { |
75 checkError(e); | 114 checkError(e); |
76 finishJSTest(); | 115 finishJSTest(); |
77 }); | 116 }); |
78 } | 117 } |
79 | 118 |
80 window.jsTestIsAsync = true; | 119 window.jsTestIsAsync = true; |
OLD | NEW |