mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 805539 - Prevent effect from default values and network geolocation provider. r=dougt
This commit is contained in:
parent
71c8561c7e
commit
78d5b9d481
@ -3,6 +3,6 @@ b2g = true
|
||||
browser = false
|
||||
qemu = true
|
||||
|
||||
; Bug 805539
|
||||
;[test_geolocation.js]
|
||||
; gps = true
|
||||
|
||||
[test_geolocation.js]
|
||||
|
||||
|
@ -6,7 +6,8 @@ MARIONETTE_TIMEOUT = 10000;
|
||||
let geolocation = window.navigator.geolocation;
|
||||
ok(geolocation);
|
||||
|
||||
var target = Object();
|
||||
var sample = [];
|
||||
var result = [];
|
||||
var wpid;
|
||||
|
||||
/**
|
||||
@ -14,17 +15,25 @@ var wpid;
|
||||
*/
|
||||
SpecialPowers.addPermission("geolocation", true, document);
|
||||
|
||||
/**
|
||||
* Disable wifi geolocation provider
|
||||
*/
|
||||
wifiUri = SpecialPowers.getCharPref("geo.wifi.uri");
|
||||
SpecialPowers.setCharPref("geo.wifi.uri", "http://mochi.test:8888/tests/dom/tests/mochitest/geolocation/network_geolocation.sjs?action=stop-responding");
|
||||
|
||||
/**
|
||||
* Helper that compares the geolocation against the web API.
|
||||
*/
|
||||
function verifyLocation(callback, expectedLocation) {
|
||||
geolocation.getCurrentPosition(function(position) {
|
||||
log("Expected location: " + expectedLocation.latitude + " " + expectedLocation.longitude);
|
||||
log("Current location: " + position.coords.latitude + " " + position.coords.longitude);
|
||||
is(expectedLocation.latitude, position.coords.latitude);
|
||||
is(expectedLocation.longitude, position.coords.longitude);
|
||||
});
|
||||
window.setTimeout(callback, 0);
|
||||
function verifyLocation() {
|
||||
|
||||
log("Sample:" + sample.join(','));
|
||||
log("Result:" + result.join(','));
|
||||
|
||||
for (i in sample) {
|
||||
is(sample.pop(), result.pop());
|
||||
}
|
||||
|
||||
window.setTimeout(cleanup, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -33,71 +42,75 @@ function verifyLocation(callback, expectedLocation) {
|
||||
function setup() {
|
||||
log("Providing initial setup: set geographic position watcher.");
|
||||
|
||||
|
||||
wpid = geolocation.watchPosition(function(position) {
|
||||
log("Position changes has found.");
|
||||
log("Watch: Target location: " + target.latitude + " " + target.longitude);
|
||||
log("Watch: Current location: " + position.coords.latitude + " " + position.coords.longitude);
|
||||
is(target.latitude, position.coords.latitude, "Latitude isn't match!");
|
||||
is(target.longitude, position.coords.longitude, "Longitude isn't match!");
|
||||
log("Position changes: (" + position.coords.latitude + "/" + position.coords.longitude + ")");
|
||||
result.push(""+position.coords.latitude + "/" + position.coords.longitude);
|
||||
});
|
||||
|
||||
target.latitude = 0;
|
||||
target.longitude = 0;
|
||||
lat = 0;
|
||||
lon = 0;
|
||||
|
||||
cmd = "geo fix " + target.longitude + " " + target.latitude;
|
||||
cmd = "geo fix " + lon + " " + lat;
|
||||
sample.push(lat+"/"+lon);
|
||||
|
||||
runEmulatorCmd(cmd, function(result) {
|
||||
log("Geolocation setting status: " + result);
|
||||
verifyLocation(movePosition_1, target);
|
||||
window.setTimeout(movePosition_1, 0);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function movePosition_1() {
|
||||
log("Geolocation changes. Move to Position 1.");
|
||||
|
||||
target.latitude = 25;
|
||||
target.longitude = 121.56499833333334;
|
||||
lat = 25;
|
||||
lon = 121.56499833333334;
|
||||
|
||||
cmd = "geo fix " + target.longitude + " " + target.latitude;
|
||||
cmd = "geo fix " + lon + " " + lat;
|
||||
sample.push(lat+"/"+lon);
|
||||
|
||||
runEmulatorCmd(cmd, function(result) {
|
||||
log("Geolocation setting status: " + result);
|
||||
verifyLocation(movePosition_2, target);
|
||||
window.setTimeout(movePosition_2, 0);
|
||||
});
|
||||
}
|
||||
|
||||
function movePosition_2() {
|
||||
log("Geolocation changes to a negative longitude. Move to Position 2.");
|
||||
|
||||
target.latitude = 37.393;
|
||||
target.longitude = -122.08199833333335;
|
||||
lat = 37.393;
|
||||
lon = -122.08199833333335;
|
||||
|
||||
cmd = "geo fix " + target.longitude + " " + target.latitude;
|
||||
cmd = "geo fix " + lon + " " + lat;
|
||||
sample.push(lat+"/"+lon);
|
||||
|
||||
runEmulatorCmd(cmd, function(result) {
|
||||
log("Geolocation setting status: " + result);
|
||||
verifyLocation(movePosition_3, target);
|
||||
window.setTimeout(movePosition_3, 0);
|
||||
});
|
||||
}
|
||||
|
||||
function movePosition_3() {
|
||||
log("Geolocation changes with WatchPosition. Move to Position 3.");
|
||||
|
||||
target.latitude = -22;
|
||||
target.longitude = -43;
|
||||
lat = -22;
|
||||
lon = -43;
|
||||
|
||||
cmd = "geo fix " + target.longitude + " " + target.latitude;
|
||||
cmd = "geo fix " + lon + " " + lat;
|
||||
sample.push(lat+"/"+lon);
|
||||
|
||||
geolocation.getCurrentPosition(function(position) {
|
||||
log("getCurrentPosition: Expected location: ("+lat+"/"+lon+"); Current location: (" + position.coords.latitude + "/" + position.coords.longitude + ")");
|
||||
is(lat, position.coords.latitude);
|
||||
is(lon, position.coords.longitude);
|
||||
});
|
||||
|
||||
runEmulatorCmd(cmd, function(result) {
|
||||
log("Geolocation setting status: " + result);
|
||||
verifyLocation(cleanup, target);
|
||||
window.setTimeout(verifyLocation, 0);
|
||||
});
|
||||
}
|
||||
|
||||
function cleanup() {
|
||||
geolocation.clearWatch(wpid);
|
||||
SpecialPowers.removePermission("geolocation", document);
|
||||
SpecialPowers.setCharPref("geo.wifi.uri", wifiUri);
|
||||
finish();
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ skip = false
|
||||
[include:../../../../../dom/battery/test/marionette/manifest.ini]
|
||||
[include:../../../../../dom/sms/tests/marionette/manifest.ini]
|
||||
[include:../../../../../dom/network/tests/marionette/manifest.ini]
|
||||
; [include:../../../../../dom/system/gonk/tests/marionette/manifest.ini]
|
||||
[include:../../../../../dom/system/gonk/tests/marionette/manifest.ini]
|
||||
|
||||
; marionette unit tests
|
||||
[include:unit/unit-tests.ini]
|
||||
|
Loading…
Reference in New Issue
Block a user