- 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