forked from mirrors/gecko-dev
		
	 cac1881be2
			
		
	
	
		cac1881be2
		
	
	
	
	
		
			
			Automatic update from web-platform-tests Rewrite geolocation-API/PositionOptions.https.html (#32880) -- wpt-commits: 3846acf0493925663eadfd73614041ae4366e7d7 wpt-pr: 32880
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <meta charset="utf-8" />
 | |
| <title>Geolocation Test: PositionOptions tests</title>
 | |
| <link
 | |
|   rel="help"
 | |
|   href="http://www.w3.org/TR/geolocation-API/#position_options_interface"
 | |
| />
 | |
| <script src="/resources/testharness.js"></script>
 | |
| <script src="/resources/testharnessreport.js"></script>
 | |
| <script src="/resources/testdriver.js"></script>
 | |
| <script src="/resources/testdriver-vendor.js"></script>
 | |
| 
 | |
| <script>
 | |
|   const resetPermission = () => {
 | |
|     return test_driver.set_permission({ name: "geolocation" }, "prompt");
 | |
|   };
 | |
|   const invalidValues = ["boom", 321, -Infinity, { foo: 5 }];
 | |
| 
 | |
|   promise_test(async (t) => {
 | |
|     t.add_cleanup(resetPermission);
 | |
|     await test_driver.set_permission({ name: "geolocation" }, "granted");
 | |
|     for (const enableHighAccuracy of invalidValues) {
 | |
|       navigator.geolocation.getCurrentPosition(() => {}, null, {
 | |
|         enableHighAccuracy,
 | |
|       });
 | |
|     }
 | |
|   }, "Call getCurrentPosition with wrong type for enableHighAccuracy. No exception expected.");
 | |
| 
 | |
|   promise_test(async (t) => {
 | |
|     t.add_cleanup(resetPermission);
 | |
|     await test_driver.set_permission({ name: "geolocation" }, "granted");
 | |
|     for (const enableHighAccuracy of invalidValues) {
 | |
|       const id = navigator.geolocation.watchPosition(() => {}, null, {
 | |
|         enableHighAccuracy,
 | |
|       });
 | |
|       navigator.geolocation.clearWatch(id);
 | |
|     }
 | |
|   }, "Call watchPosition with wrong type for enableHighAccuracy. No exception expected.");
 | |
| 
 | |
|   promise_test(async (t) => {
 | |
|     t.add_cleanup(resetPermission);
 | |
|     await test_driver.set_permission({ name: "geolocation" }, "granted");
 | |
|     const error = await new Promise((resolve, reject) => {
 | |
|       navigator.geolocation.getCurrentPosition(reject, resolve, {
 | |
|         timeout: 0,
 | |
|         maxAge: 0,
 | |
|       });
 | |
|     });
 | |
|     assert_equals(error.code, GeolocationPositionError.TIMEOUT);
 | |
|   }, "Set timeout and maximumAge to 0, check that timeout error raised (getCurrentPosition)");
 | |
| 
 | |
|   promise_test(async (t) => {
 | |
|     t.add_cleanup(resetPermission);
 | |
|     await test_driver.set_permission({ name: "geolocation" }, "granted");
 | |
|     let watchId;
 | |
|     const error = await new Promise((resolve, reject) => {
 | |
|       watchId = navigator.geolocation.watchPosition(reject, resolve, {
 | |
|         timeout: 0,
 | |
|         maxAge: 0,
 | |
|       });
 | |
|     });
 | |
|     assert_equals(error.code, GeolocationPositionError.TIMEOUT);
 | |
|     navigator.geolocation.clearWatch(watchId);
 | |
|   }, "Set timeout and maximumAge to 0, check that timeout error raised (watchPosition)");
 | |
| 
 | |
|   promise_test(async (t) => {
 | |
|     t.add_cleanup(resetPermission);
 | |
|     await test_driver.set_permission({ name: "geolocation" }, "granted");
 | |
|     let watchId;
 | |
|     const error = await new Promise((resolve, reject) => {
 | |
|       watchId = navigator.geolocation.getCurrentPosition(reject, resolve, {
 | |
|         timeout: -100,
 | |
|         maxAge: -100,
 | |
|       });
 | |
|     });
 | |
|     assert_equals(error.code, GeolocationPositionError.TIMEOUT);
 | |
|     navigator.geolocation.clearWatch(watchId);
 | |
|   }, "Check that a negative timeout and maxAge values are clamped to 0 (getCurrentPosition)");
 | |
| 
 | |
|   promise_test(async (t) => {
 | |
|     t.add_cleanup(resetPermission);
 | |
|     await test_driver.set_permission({ name: "geolocation" }, "granted");
 | |
|     let watchId;
 | |
|     const error = await new Promise((resolve, reject) => {
 | |
|       watchId = navigator.geolocation.watchPosition(reject, resolve, {
 | |
|         timeout: -100,
 | |
|         maxAge: -100,
 | |
|       });
 | |
|     });
 | |
|     assert_equals(error.code, GeolocationPositionError.TIMEOUT);
 | |
|     navigator.geolocation.clearWatch(watchId);
 | |
|   }, "Check that a negative timeout and maxAge values are clamped to 0 (watchPosition)");
 | |
| </script>
 |