diff options
Diffstat (limited to 'netwerk/test/TestURLManipulation.html')
-rw-r--r-- | netwerk/test/TestURLManipulation.html | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/netwerk/test/TestURLManipulation.html b/netwerk/test/TestURLManipulation.html new file mode 100644 index 000000000..fd58652b7 --- /dev/null +++ b/netwerk/test/TestURLManipulation.html @@ -0,0 +1,130 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>URL manipulation</title> + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> + + <script type="text/javascript"> + var gIOService = null; + function getIOService() + { + if (gIOService) + return gIOService; + + try { + gIOService = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); + } catch(e) { dump("problem creating nsIURL for: "+inURLString+"\n"); } + + return gIOService; + } + + function getnsIURL(inURLString) + { + var URL = null; + var ioserv = getIOService(); + try { + var URI = ioserv.newURI(inURLString, "", null); + URL = URI.QueryInterface(Components.interfaces.nsIURL); + } catch(e) { dump("problem creating nsIURL for: "+inURLString+"\n"); } + return URL; + } + + function getCommonSpec() + { + var URL1 = getnsIURL(document.foo.baseEdit.value); + var URL2 = getnsIURL(document.foo.compareEdit.value); + var result = ""; + try { + result = URL1.getCommonBaseSpec(URL2); + } catch(e) { dump("problem with getCommonSpec ("+e+")\n"); } + document.foo.resultEdit.value = result; + } + + function getRelativeSpec() + { + var URL1 = getnsIURL(document.foo.baseEdit.value); + var URL2 = getnsIURL(document.foo.compareEdit.value); + var result = ""; + try { + result = URL1.getRelativeSpec(URL2); + } catch(e) { dump("problem with getRelativeSpec ("+e+")\n"); } + document.foo.resultEdit.value = result; + } + + function doResolve() + { + var URL = getnsIURL(document.foo.baseEdit.value); + var result = ""; + try { + result = URL.resolve(document.foo.resultEdit.value); + } catch(e) { dump("problem with getRelativeSpec ("+e+")\n"); } + document.foo.compareEdit.value = result; + } + </script> +</head> +<body> +<h1>testing of URL manipulation:</h1> +<p> + <form name="foo"> + <p> + <label for="baseEdit">base url (absolute)</label><br> + <input type="input" name="baseEdit" size="80" value="http://www.mozilla.org/"> + + <p> + <label for="compareEdit">comparison uri (absolute)</label><br> + <input type="input" name="compareEdit" size="80"> + + <p> + <label for="resultEdit">resolved url</label><br> + <input type="input" name="resultEdit" size="80"> + + <p> + <input type="button" onclick="getCommonSpec();" value="Get Common Spec"> + <input type="button" onclick="getRelativeSpec();" value="Get Relative Spec"> + <input type="button" onclick="doResolve();" value="Resolve"> + <h5> note: results from "resolve" are placed in "comparison uri" edit field</h5> + </form> +<p> +<br> + +<h3>notes for testing</h3> +different types of uris:<br> +<ul> + <li>about:</li> + <li>about:blank</li> + <li>mailbox://nsmail-2.mcom.com/xxx</li> + <li>mailto:brade@netscape.com)</li> + <li>junk</li> + <li>http://foo/</li> + <li>http://foo.com/</li> + <li>https://foo.com/</li> + <li>ftp://ftp.mozilla.org/</li> + <li>http://foo.com:8080/</li> + <li>http://brade@foo.com/</li> + <li>http://brade:password@foo.com/</li> + <li>http://brade:@foo.com:8080/</li> + <li>file:///</li> + <li>file:///Quest/Desktop%20Folder/test.html</li> +</ul> +other variations:<br> +<ul> + <li>sub-directories on above list</li> + <li>files on above list</li> + <li>sub-directories and files on above list<br> + </li> + <li>directories which don't end in a '/'</li> + <li>files with queries</li> + <li>files with no extension</li> + <li>files with references</li> + <li>files with params</li> + <li>other schemes (chrome, ldap, news, finger, etc.)<br> + </li> +</ul> +<br> +This should be true:<br> + resultString = baseURL.getRelativeSpec(URL);<br> +<==><br> + baseURL.resolve(resultString) == URL.spec;<br> +</body> +</html> |