68 lines
2.2 KiB
HTML
68 lines
2.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
description("Test the attribute handling of the Coordinates interface");
|
|
window.jsTestIsAsync = true;
|
|
|
|
// Format: [Input], [Expected]
|
|
// Input: latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed.
|
|
// Expected: latitude, longitude, accuracy, altitude, altitudeAccuracy, heading, speed.
|
|
var testSet = [
|
|
[[1, 2, 3], [1, 2, 3, null, null, null, null]],
|
|
[[2, 3, 4, undefined, undefined, undefined, 5], [2, 3, 4, null, null, null, 5]],
|
|
[[3, 4, 5, undefined, 6, undefined, 7], [3, 4, 5, null, 6, null, 7]],
|
|
[[4, 5, 6, undefined, 7, 8, 9], [4, 5, 6, null, 7, 8, 9]],
|
|
[[5, 6, 7, 8, 9, 10, 11], [5, 6, 7, 8, 9, 10, 11]],
|
|
];
|
|
|
|
var currentTestIndex = -1;
|
|
var globalCoordinates = null;
|
|
|
|
function runNextTest()
|
|
{
|
|
++currentTestIndex;
|
|
testRunner.setMockGeolocationPosition.apply(testRunner, testSet[currentTestIndex][0]);
|
|
}
|
|
|
|
function verifyResults()
|
|
{
|
|
shouldBe('globalCoordinates.latitude', 'testSet[currentTestIndex][1][0]');
|
|
shouldBe('globalCoordinates.longitude', 'testSet[currentTestIndex][1][1]');
|
|
shouldBe('globalCoordinates.accuracy', 'testSet[currentTestIndex][1][2]');
|
|
shouldBe('globalCoordinates.altitude', 'testSet[currentTestIndex][1][3]');
|
|
shouldBe('globalCoordinates.altitudeAccuracy', 'testSet[currentTestIndex][1][4]');
|
|
shouldBe('globalCoordinates.heading', 'testSet[currentTestIndex][1][5]');
|
|
shouldBe('globalCoordinates.speed', 'testSet[currentTestIndex][1][6]');
|
|
debug('');
|
|
}
|
|
|
|
if (window.testRunner) {
|
|
testRunner.setGeolocationPermission(true);
|
|
} else
|
|
debug('This test can not be without TestRunner.');
|
|
|
|
var watchId = navigator.geolocation.watchPosition(function(position) {
|
|
globalCoordinates = position.coords;
|
|
verifyResults();
|
|
|
|
if (currentTestIndex + 1 === testSet.length) {
|
|
finishJSTest();
|
|
return;
|
|
}
|
|
runNextTest();
|
|
}, function(e) {
|
|
debug("Error!: the error callback was called.");
|
|
finishJSTest();
|
|
});
|
|
|
|
runNextTest();
|
|
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|