diff -r 000000000000 -r 6474c204b198 dom/tests/browser/network_geolocation.sjs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/tests/browser/network_geolocation.sjs Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,45 @@ +function parseQueryString(str) +{ + if (str == "") + return {}; + + var paramArray = str.split("&"); + var regex = /^([^=]+)=(.*)$/; + var params = {}; + for (var i = 0, sz = paramArray.length; i < sz; i++) + { + var match = regex.exec(paramArray[i]); + if (!match) + throw "Bad parameter in queryString! '" + paramArray[i] + "'"; + params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]); + } + + return params; +} + +function getPosition(expectedAccessToken, providedAccessToken, desiredAccessToken) +{ + var response = { + status: "OK", + location: { + lat: providedAccessToken ? + (expectedAccessToken == providedAccessToken ? 200 : 404) : 200, + lng: -122.08769, + }, + accuracy: 100, + access_token: desiredAccessToken + }; + + return JSON.stringify(response); +} + +function handleRequest(request, response) +{ + var params = parseQueryString(request.queryString); + + response.setStatusLine("1.0", 200, "OK"); + response.setHeader("Cache-Control", "no-cache", false); + response.setHeader("Content-Type", "aplication/x-javascript", false); + response.write(getPosition(params.expected_access_token, params.access_token, + params.desired_access_token)); +}