utilities.js revision 5ddde30071f639962dd557c453f2ad01f8f0fd00
1// Start the bidding at 42 for no particular reason.
2var lastID = 42;
3
4function canonicalize(url)
5{
6  // It would be more elegant to use the DOM here, but we use document.write()
7  // so the tests run correctly in Firefox.
8  var id = ++lastID;
9  document.write("<a id='" + id + "' href='" + url + "'></a>");
10  return document.getElementById(id).href;
11}
12
13function setBaseURL(url)
14{
15    // It would be more elegant to use the DOM here, but we chose document.write()
16    // so the tests ran correctly in Firefox at the time we originally wrote them.
17
18    // Remove any existing base elements.
19    var existingBase = document.getElementsByTagName('base');
20    while (existingBase.length) {
21        var element = existingBase[0];
22        element.parentNode.removeChild(element);
23    }
24
25    // Add a new base element.
26    document.write('<base href="' + url + '">');
27}
28
29function segments(url)
30{
31  // It would be more elegant to use the DOM here, but we use document.write()
32  // so the tests run correctly in Firefox.
33  var id = ++lastID;
34  document.write("<a id='" + id + "' href='" + url + "'></a>");
35  var elmt = document.getElementById(id);
36  return JSON.stringify([
37    elmt.protocol,
38    elmt.hostname,
39    elmt.port,
40    elmt.pathname,
41    elmt.search,
42    elmt.hash
43  ]);
44}
45