Index: LayoutTests/fast/dom/Geolocation/script-tests/maximum-age.js |
diff --git a/LayoutTests/fast/dom/Geolocation/script-tests/maximum-age.js b/LayoutTests/fast/dom/Geolocation/script-tests/maximum-age.js |
index 928370894499bdcd5923fd9bcdc349ce7f643a15..4ce320e5c2d0b5a11af6105baa1aa4446335f153 100644 |
--- a/LayoutTests/fast/dom/Geolocation/script-tests/maximum-age.js |
+++ b/LayoutTests/fast/dom/Geolocation/script-tests/maximum-age.js |
@@ -59,13 +59,52 @@ function testNonZeroMaximumAge() { |
// The maximumAge is non-zero, so we expect the cached position, not the error from the service. |
navigator.geolocation.getCurrentPosition(function(p) { |
checkPosition(p); |
- testZeroMaximumAgeError(); |
+ testNegativeValueMaximumAge(); |
}, function(e) { |
testFailed('Error callback invoked unexpectedly'); |
finishJSTest(); |
}, {maximumAge: 1000}); |
} |
+function testNegativeValueMaximumAge() { |
+ // Update the position provided by the mock service. |
+ internals.setGeolocationPosition(document, ++mockLatitude, ++mockLongitude, ++mockAccuracy); |
+ // The maximumAge is same as zero, so we expect the updated position from the service. |
+ navigator.geolocation.getCurrentPosition(function(p) { |
+ checkPosition(p); |
+ testOverSignedIntMaximumAge(); |
+ }, function(e) { |
+ testFailed('Error callback invoked unexpectedly'); |
+ finishJSTest(); |
+ }, {maximumAge: -1000}); |
+} |
+ |
+function testOverSignedIntMaximumAge() { |
+ // Update the mock service to report an error. |
+ internals.setGeolocationPositionUnavailableError(document, mockMessage); |
+ // The maximumAge is non-zero, so we expect the cached position, not the error from the service. |
+ navigator.geolocation.getCurrentPosition(function(p) { |
+ checkPosition(p); |
+ testOverUnsignedIntMaximumAge(); |
+ }, function(e) { |
+ testFailed('Error callback invoked unexpectedly'); |
+ finishJSTest(); |
+ }, {maximumAge: 2147483648}); |
+} |
+ |
+function testOverUnsignedIntMaximumAge() { |
+ // Update the mock service to report an error. |
+ internals.setGeolocationPositionUnavailableError(document, mockMessage); |
+ // The maximumAge is max-value of unsigned, so we expect the cached position, not the error from the service. |
+ navigator.geolocation.getCurrentPosition(function(p) { |
+ checkPosition(p); |
+ testZeroMaximumAgeError(); |
+ }, function(e) { |
+ testFailed('Error callback invoked unexpectedly'); |
+ finishJSTest(); |
+ }, {maximumAge: 4294967296}); |
+} |
+ |
function testZeroMaximumAgeError() { |
// The default maximumAge is zero, so we expect the error from the service. |
navigator.geolocation.getCurrentPosition(function(p) { |