Home | History | Annotate | Download | only in script-tests
      1 description('Test setting the search attribute of the URL in HTMLAnchorElement .');
      2 
      3 var a = document.createElement('a');
      4 
      5 debug("Set search without '?'");
      6 a.href = "https://www.mydomain.com/path/?key=value";
      7 a.search = "value=key";
      8 shouldBe("a.href", "'https://www.mydomain.com/path/?value=key'");
      9 
     10 // IE8 does not encode spaces in search string
     11 debug("Set search that starts with '?' and contains spaces");
     12 a.href = "https://www.mydomain.com/path/?key=value";
     13 a.search = "?val ue= key?";
     14 shouldBe("a.href", "'https://www.mydomain.com/path/?val%20ue=%20key?'");
     15 
     16 debug("Set search to a malformed URL");
     17 a.href = "s:www.mydomain.com/path/";
     18 a.search = "%";
     19 shouldBe("a.href", "'s:www.mydomain.com/path/?%'");
     20 
     21 // IE8 throws "The URL is invalid" exception.
     22 debug("Set search containing '#'");
     23 try {
     24 a.href = "https://www.mydomain.com/path/?key=value#hash";
     25 a.search = "?value#key";
     26 shouldBe("a.href", "'https://www.mydomain.com/path/?value%23key#hash'");
     27 } catch(e) {
     28 debug("Exception: " + e.description);
     29 }
     30 
     31 debug("Set search to a malformed URL");
     32 a.href = "bad:/|/url";
     33 a.search = "?value=key";
     34 shouldBe("a.href", "'bad:/|/url?value=key'");
     35 
     36 // IE8 converts null to "null", which is not the right thing to do.
     37 debug("Set search to null");
     38 a.href = "https://www.mydomain.com/path/?key=value";
     39 a.search = null;
     40 shouldBe("a.href", "'https://www.mydomain.com/path/'");
     41 
     42 // Firefox 3.5.2 Removes the '?', and it shouldn't, per
     43 // http://dev.w3.org/html5/spec/infrastructure.html#url-decomposition-idl-attributes .
     44 debug("Set search to empty string");
     45 a.href = "https://www.mydomain.com/path/?key=value";
     46 a.search = "";
     47 shouldBe("a.href", "'https://www.mydomain.com/path/?'");
     48 
     49 var successfullyParsed = true;
     50