mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 10:18:41 +02:00 
			
		
		
		
	Automatic update from web-platform-tests Geolocation: fix flaky test (#47086) -- wpt-commits: 3f395af126fb4eda1bd47c2a86a9bcc3339a70f4 wpt-pr: 47086
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			2.9 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>
 | 
						|
  promise_setup(async ()=>{
 | 
						|
    await test_driver.set_permission({ name: "geolocation" }, "granted");
 | 
						|
  });
 | 
						|
 | 
						|
  const invalidValues = ["boom", 321, -Infinity, { foo: 5 }];
 | 
						|
 | 
						|
  promise_test(async (t) => {
 | 
						|
    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) => {
 | 
						|
    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) => {
 | 
						|
    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) => {
 | 
						|
    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)");
 | 
						|
 | 
						|
  promise_test(async (t) => {
 | 
						|
    for (const enableHighAccuracy of invalidValues) {
 | 
						|
      navigator.geolocation.getCurrentPosition(() => {}, null, {
 | 
						|
        enableHighAccuracy,
 | 
						|
      });
 | 
						|
    }
 | 
						|
  }, "Call getCurrentPosition with wrong type for enableHighAccuracy. No exception expected.");
 | 
						|
 | 
						|
  promise_test(async (t) => {
 | 
						|
    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.");
 | 
						|
 | 
						|
</script>
 |