mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	Automatic update from web-platform-tests Geolocaiton: rename to match repo and shortname (#46750) -- wpt-commits: d804e212807639bcfae5808c76f9a2fc65fb4069 wpt-pr: 46750
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<meta charset="utf-8" />
 | 
						|
<title>Geolocation Test: getCurrentPosition() location access</title>
 | 
						|
<link
 | 
						|
  rel="help"
 | 
						|
  href="https://www.w3.org/TR/geolocation/#getcurrentposition-method"
 | 
						|
/>
 | 
						|
<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_test(async (t) => {
 | 
						|
    t.add_cleanup(() => {
 | 
						|
      return test_driver.set_permission({ name: "geolocation" }, "prompt");
 | 
						|
    });
 | 
						|
    await test_driver.set_permission({ name: "geolocation" }, "granted");
 | 
						|
    const position = await new Promise((resolve, reject) => {
 | 
						|
      let calledAsync = false;
 | 
						|
      navigator.geolocation.getCurrentPosition(
 | 
						|
        t.step_func((position) => {
 | 
						|
          assert_true(
 | 
						|
            calledAsync,
 | 
						|
            "Expected callback to be called asynchronously"
 | 
						|
          );
 | 
						|
          resolve(position);
 | 
						|
        }),
 | 
						|
        reject
 | 
						|
      );
 | 
						|
      calledAsync = true;
 | 
						|
    });
 | 
						|
    assert_true(
 | 
						|
      position instanceof GeolocationPosition,
 | 
						|
      "Expected GeolocationPosition"
 | 
						|
    );
 | 
						|
  }, "User allows access, check that success callback is called.");
 | 
						|
 | 
						|
  promise_test(async (t) => {
 | 
						|
    t.add_cleanup(() => {
 | 
						|
      return test_driver.set_permission({ name: "geolocation" }, "prompt");
 | 
						|
    });
 | 
						|
    await test_driver.set_permission({ name: "geolocation" }, "granted");
 | 
						|
    const position = await new Promise((resolve, reject) => {
 | 
						|
      try {
 | 
						|
        navigator.geolocation.getCurrentPosition(resolve, null);
 | 
						|
      } catch (err) {
 | 
						|
        reject(err);
 | 
						|
      }
 | 
						|
    });
 | 
						|
    assert_true(
 | 
						|
      position instanceof GeolocationPosition,
 | 
						|
      "Expected GeolocationPosition"
 | 
						|
    );
 | 
						|
  }, "Error callback is nullable for getCurrentPosition().");
 | 
						|
</script>
 |