|  | <?xml version="1.0" encoding="UTF-8"?> | 
|  | <!DOCTYPE html> | 
|  | <html xmlns="http://www.w3.org/1999/xhtml"> | 
|  | <head> | 
|  | <title>URL Test</title> | 
|  | <link rel="author" title="Intel" href="http://www.intel.com/" /> | 
|  | <link rel="help" href="http://www.w3.org/html/wg/drafts/html/CR/infrastructure.html#urls" /> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  | <script src="urltestparser.js"></script> | 
|  | </head> | 
|  | <body> | 
|  | <div id="log"></div> | 
|  | <script> | 
|  | <![CDATA[ | 
|  | var setup = async_test("Loading data…") | 
|  | setup.step(function() { | 
|  | var request = new XMLHttpRequest() | 
|  | request.open("GET", "urltestdata.txt") | 
|  | request.send() | 
|  | request.responseType = "text" | 
|  | request.onload = setup.step_func(function() { | 
|  | runURLTests(request.response); | 
|  | setup.done() | 
|  | }) | 
|  | }) | 
|  |  | 
|  | function setBase(base) { | 
|  | document.body.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:base", base); | 
|  | } | 
|  |  | 
|  | function bURL(url, base) { | 
|  | base = base || "about:blank" | 
|  | setBase(base) | 
|  | var a = document.createElement("a") | 
|  | a.setAttribute("href", url) | 
|  | document.body.appendChild(a) | 
|  | return a | 
|  | } | 
|  |  | 
|  | function runURLTests(raw) { | 
|  | var urltests = URLTestParser(raw) | 
|  | for(var i = 0, l = urltests.length; i < l; i++) { | 
|  | var expected = urltests[i] | 
|  | test(function() { | 
|  | var url = bURL(expected.input, expected.base) | 
|  | if(expected.protocol === ':' && url.protocol !== ':') | 
|  | assert_unreached('Expected URL to fail parsing') | 
|  | assert_equals(url.protocol, expected.protocol, "scheme") | 
|  | assert_equals(url.hostname, expected.hostname, "host") | 
|  | assert_equals(url.port, expected.port, "port") | 
|  | assert_equals(url.pathname, expected.path, "path") | 
|  | assert_equals(url.search, expected.search, "search") | 
|  | assert_equals(url.hash, expected.hash, "hash") | 
|  | assert_equals(url.href, expected.href, "href") | 
|  | }, "Parsing: <" + expected.input + "> against <" + expected.base + ">") | 
|  | } | 
|  | } | 
|  | ]]> | 
|  | </script> | 
|  | </body> | 
|  | </html> |