- From: Chris Weber <chris@lookout.net>
- Date: Sun, 19 Jun 2011 16:18:09 -0700
- To: Adam Barth <ietf@adambarth.com>
- CC: Julian Reschke <julian.reschke@gmx.de>, "PUBLIC-IRI@W3.ORG" <PUBLIC-IRI@w3.org>
On 6/18/2011 6:09 AM, Adam Barth wrote: > How does your implementation compare to existing browsers on this test suite: > > http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/ > > In particular, it would be helpful to add entries for your > implementation to the following table so that we can see whether it > makes desirable trade-offs in situations where browsers differ in > behavior: > > https://raw.github.com/abarth/url-spec/master/tests/gurl-results/by-browser.txt > > Thanks, > Adam > The Webkit test suite seems very valuable for its portability and black-box testing capability. It does have some limitations though in that it's only considering the DOM and sometimes only certain properties therein. I still have a ways to go with my own test suite, but wanted to expand on some of test results. I've used some of your same test cases where I can. IE canonicalize('http://example.com\\foo\\bar') is 'http://example.com/foo/bar' KR canonicalize('http://example.com\\foo\\bar') is 'http://example.com/foo/bar' SA canonicalize('http://example.com\\foo\\bar') is 'http://example.com/foo/bar' FF canonicalize('http://example.com\\foo\\bar') should be http://example.com/foo/bar. Was http://example.com\foo\bar/. In the above test results, you're comparing against the .href property of the DOM element, which is fine and may be all you want. It may be interesting to note some more detail here though. FF hostname property for this test is "example.com\foo\bar". Because it's an invalid hostname it fails to initiate an HTTP request for this URI and doesn't even try to make a DNS request (good). In a similar test case "http://example.com/foo\bar" both FF and Opera's path property in the DOM percent-encode the "\" as "/foo%5Cbar" and the corresponding HTTP request matches to become "GET /foo%5Cbar HTTP/1.1". IE, Chrome, and Safari all instead convert the "\" to a "/". Their DOM path property shows "/foo/bar" and the HTTP request matches as "GET /foo/bar HTTP/1.1". Best regards, Chris
Received on Sunday, 19 June 2011 23:18:51 UTC