diff options
Diffstat (limited to 'dom/tests/mochitest/chrome/test_geolocation.xhtml')
-rw-r--r-- | dom/tests/mochitest/chrome/test_geolocation.xhtml | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/dom/tests/mochitest/chrome/test_geolocation.xhtml b/dom/tests/mochitest/chrome/test_geolocation.xhtml new file mode 100644 index 0000000000..482b36ea20 --- /dev/null +++ b/dom/tests/mochitest/chrome/test_geolocation.xhtml @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?> +<!-- + Test for Geolocation in chrome + --> +<window + id="sample-window" + width="400" + height="400" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" +> + <script + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" + ></script> + + <script> + SimpleTest.waitForExplicitFinish(); + async function test() { + /** @type {Geolocation} */ + const geolocation = Cc["@mozilla.org/geolocation;1"].getService( + Ci.nsISupports + ); + try { + // Watch position + let watchId; + let position = await new Promise((resolve, reject) => { + watchId = geolocation.watchPosition(resolve, reject, { timeout: 0 }); + }); + ok(position, "watchPosition() callable from chrome"); + geolocation.clearWatch(watchId); + + // Get position + position = await new Promise((resolve, reject) => + geolocation.getCurrentPosition(resolve, reject) + ); + ok(position, "getCurrentPosition() callable from chrome"); + } catch (err) { + ok( + false, + "error occurred trying to get geolocation from chrome: " + err.message + ); + } finally { + SimpleTest.finish(); + } + } + </script> + + <body + xmlns="http://www.w3.org/1999/xhtml" + style="height: 300px; overflow: auto;" + onload="test()" + /> +</window> |