Bug 46951
Summary: | Layout test failure for chromium fast/url/segments-from-data-url.html and fast/url/segments.html | ||
---|---|---|---|
Product: | WebKit | Reporter: | Hin-Chung Lam <hclam> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WONTFIX | ||
Severity: | Normal | CC: | abarth, antonm, morrita |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | OS X 10.5 |
Hin-Chung Lam
The failure is introduce in http://trac.webkit.org/changeset/68854
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Hin-Chung Lam
Expected results for fast/url/segments-from-data-url.html is:
Test URL segmentation
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS segments('http://user:pass@foo:21/bar;par?b#c') is '["http:","foo","21","/bar;par","?b","#c"]'
FAIL segments('http:foo.com') should be ["http:","foo.com","0","/","",""]. Was ["http:","","0","foo.com","",""].
PASS segments('\t :foo.com \n') is '[":","","0","","",""]'
PASS segments(' foo.com ') is '[":","","0","","",""]'
PASS segments('a:\t foo.com') is '["a:","","0"," foo.com","",""]'
FAIL segments('http://f:21/ b ? d # e ') should be ["http:","f","21","/%20b%20","?%20d%20","# e"]. Was ["http:","f","21","/ b ","?%20d%20","#%20e"].
PASS segments('http://f:/c') is '["http:","f","0","/c","",""]'
PASS segments('http://f:0/c') is '["http:","f","0","/c","",""]'
PASS segments('http://f:00000000000000/c') is '["http:","f","0","/c","",""]'
FAIL segments('http://f:00000000000000000000080/c') should be ["http:","f","0","/c","",""]. Was ["http:","f","80","/c","",""].
PASS segments('http://f:b/c') is '[":","","0","","",""]'
PASS segments('http://f: /c') is '[":","","0","","",""]'
PASS segments('http://f:\n/c') is '[":","","0","","",""]'
PASS segments('http://f:fifty-two/c') is '[":","","0","","",""]'
FAIL segments('http://f:999999/c') should be [":","","0","","",""]. Was ["http:","f","65535","/c","",""].
PASS segments('http://f: 21 / b ? d # e ') is '[":","","0","","",""]'
FAIL segments('') should be ["data:","","0","text/plain,baseURL","",""]. Was [":","","0","","",""].
FAIL segments(' \t') should be ["data:","","0","text/plain,baseURL","",""]. Was [":","","0","","",""].
PASS segments(':foo.com/') is '[":","","0","","",""]'
PASS segments(':foo.com\\') is '[":","","0","","",""]'
PASS segments(':') is '[":","","0","","",""]'
PASS segments(':a') is '[":","","0","","",""]'
PASS segments(':/') is '[":","","0","","",""]'
PASS segments(':\\') is '[":","","0","","",""]'
PASS segments(':#') is '[":","","0","","",""]'
FAIL segments('#') should be [":","","0","","",""]. Was ["data:","","0","text/plain,baseURL","",""].
FAIL segments('#/') should be [":","","0","","",""]. Was ["data:","","0","text/plain,baseURL","","#/"].
FAIL segments('#\\') should be [":","","0","","",""]. Was ["data:","","0","text/plain,baseURL","","#\\"].
FAIL segments('#;?') should be [":","","0","","",""]. Was ["data:","","0","text/plain,baseURL","","#;?"].
PASS segments('?') is '[":","","0","","",""]'
PASS segments('/') is '[":","","0","","",""]'
PASS segments(':23') is '[":","","0","","",""]'
FAIL segments('/:23') should be ["data:","","0","/:23","",""]. Was [":","","0","","",""].
PASS segments('//') is '[":","","0","","",""]'
PASS segments('::') is '[":","","0","","",""]'
PASS segments('::23') is '[":","","0","","",""]'
PASS segments('foo://') is '["foo:","","0","//","",""]'
PASS segments('http://a:b@c:29/d') is '["http:","c","29","/d","",""]'
FAIL segments('http::@c:29') should be ["http:","c","29","/","",""]. Was ["http:","","0",":@c:29","",""].
FAIL segments('http://&a:foo(b]c@d:2/') should be ["http:","d","2","/","",""]. Was [":","","0","","",""].
FAIL segments('http://::@c@d:2') should be ["http:","d","2","/","",""]. Was [":","","0","","",""].
PASS segments('http://foo.com:b@d/') is '["http:","d","0","/","",""]'
PASS segments('http://foo.com/\\@') is '["http:","foo.com","0","//@","",""]'
PASS segments('http:\\\\foo.com\\') is '["http:","foo.com","0","/","",""]'
PASS segments('http:\\\\a\\b:c\\d@foo.com\\') is '["http:","a","0","/b:c/d@foo.com/","",""]'
PASS segments('foo:/') is '["foo:","","0","/","",""]'
PASS segments('foo:/bar.com/') is '["foo:","","0","/bar.com/","",""]'
PASS segments('foo://///////') is '["foo:","","0","/////////","",""]'
PASS segments('foo://///////bar.com/') is '["foo:","","0","/////////bar.com/","",""]'
PASS segments('foo:////://///') is '["foo:","","0","////://///","",""]'
PASS segments('c:/foo') is '["c:","","0","/foo","",""]'
PASS segments('//foo/bar') is '[":","","0","","",""]'
FAIL segments('http://foo/path;a??e#f#g') should be ["http:","foo","0","/path;a","??e","#f#g"]. Was ["http:","foo","0","/path;a","??e","#f%23g"].
PASS segments('http://foo/abcd?efgh?ijkl') is '["http:","foo","0","/abcd","?efgh?ijkl",""]'
PASS segments('http://foo/abcd#foo?bar') is '["http:","foo","0","/abcd","","#foo?bar"]'
FAIL segments('[61:24:74]:98') should be ["data:","","0","text/[61:24:74]:98","",""]. Was [":","","0","","",""].
FAIL segments('http://[61:27]:98') should be [":","","0","","",""]. Was ["http:","[61:27]","98","/","",""].
FAIL segments('http:[61:27]/:foo') should be [":","","0","","",""]. Was ["http:","","0","[61:27]/:foo","",""].
PASS segments('http://[1::2]:3:4') is '[":","","0","","",""]'
PASS segments('http://2001::1') is '[":","","0","","",""]'
PASS segments('http://[2001::1') is '[":","","0","","",""]'
PASS segments('http://2001::1]') is '[":","","0","","",""]'
PASS segments('http://2001::1]:80') is '[":","","0","","",""]'
PASS segments('http://[2001::1]') is '["http:","[2001::1]","0","/","",""]'
FAIL segments('http://[2001::1]:80') should be ["http:","[2001::1]","0","/","",""]. Was ["http:","[2001::1]","80","/","",""].
PASS segments('http://[[::]]') is '[":","","0","","",""]'
PASS successfullyParsed is true
TEST COMPLETE
Actual result is:
Test URL segmentation
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS segments('http://user:pass@foo:21/bar;par?b#c') is '["http:","foo","21","/bar;par","?b","#c"]'
PASS segments('http:foo.com') is '["http:","foo.com","0","/","",""]'
PASS segments('\t :foo.com \n') is '[":","","0","","",""]'
PASS segments(' foo.com ') is '[":","","0","","",""]'
PASS segments('a:\t foo.com') is '["a:","","0"," foo.com","",""]'
PASS segments('http://f:21/ b ? d # e ') is '["http:","f","21","/%20b%20","?%20d%20","# e"]'
PASS segments('http://f:/c') is '["http:","f","0","/c","",""]'
PASS segments('http://f:0/c') is '["http:","f","0","/c","",""]'
PASS segments('http://f:00000000000000/c') is '["http:","f","0","/c","",""]'
PASS segments('http://f:00000000000000000000080/c') is '["http:","f","0","/c","",""]'
PASS segments('http://f:b/c') is '[":","","0","","",""]'
PASS segments('http://f: /c') is '[":","","0","","",""]'
PASS segments('http://f:\n/c') is '["http:","f","0","/c","",""]'
PASS segments('http://f:fifty-two/c') is '[":","","0","","",""]'
PASS segments('http://f:999999/c') is '[":","","0","","",""]'
PASS segments('http://f: 21 / b ? d # e ') is '[":","","0","","",""]'
PASS segments('') is '["data:","","0","text/plain,baseURL","",""]'
PASS segments(' \t') is '["data:","","0","text/plain,baseURL","",""]'
PASS segments(':foo.com/') is '[":","","0","","",""]'
PASS segments(':foo.com\\') is '[":","","0","","",""]'
PASS segments(':') is '[":","","0","","",""]'
PASS segments(':a') is '[":","","0","","",""]'
PASS segments(':/') is '[":","","0","","",""]'
PASS segments(':\\') is '[":","","0","","",""]'
PASS segments(':#') is '[":","","0","","",""]'
PASS segments('#') is '[":","","0","","",""]'
PASS segments('#/') is '[":","","0","","",""]'
PASS segments('#\\') is '[":","","0","","",""]'
PASS segments('#;?') is '[":","","0","","",""]'
PASS segments('?') is '[":","","0","","",""]'
PASS segments('/') is '[":","","0","","",""]'
PASS segments(':23') is '[":","","0","","",""]'
PASS segments('/:23') is '["data:","","0","/:23","",""]'
PASS segments('//') is '[":","","0","","",""]'
PASS segments('::') is '[":","","0","","",""]'
PASS segments('::23') is '[":","","0","","",""]'
PASS segments('foo://') is '["foo:","","0","//","",""]'
PASS segments('http://a:b@c:29/d') is '["http:","c","29","/d","",""]'
PASS segments('http::@c:29') is '["http:","c","29","/","",""]'
PASS segments('http://&a:foo(b]c@d:2/') is '["http:","d","2","/","",""]'
PASS segments('http://::@c@d:2') is '["http:","d","2","/","",""]'
PASS segments('http://foo.com:b@d/') is '["http:","d","0","/","",""]'
PASS segments('http://foo.com/\\@') is '["http:","foo.com","0","//@","",""]'
PASS segments('http:\\\\foo.com\\') is '["http:","foo.com","0","/","",""]'
PASS segments('http:\\\\a\\b:c\\d@foo.com\\') is '["http:","a","0","/b:c/d@foo.com/","",""]'
PASS segments('foo:/') is '["foo:","","0","/","",""]'
PASS segments('foo:/bar.com/') is '["foo:","","0","/bar.com/","",""]'
PASS segments('foo://///////') is '["foo:","","0","/////////","",""]'
PASS segments('foo://///////bar.com/') is '["foo:","","0","/////////bar.com/","",""]'
PASS segments('foo:////://///') is '["foo:","","0","////://///","",""]'
PASS segments('c:/foo') is '["c:","","0","/foo","",""]'
PASS segments('//foo/bar') is '[":","","0","","",""]'
PASS segments('http://foo/path;a??e#f#g') is '["http:","foo","0","/path;a","??e","#f#g"]'
PASS segments('http://foo/abcd?efgh?ijkl') is '["http:","foo","0","/abcd","?efgh?ijkl",""]'
PASS segments('http://foo/abcd#foo?bar') is '["http:","foo","0","/abcd","","#foo?bar"]'
PASS segments('[61:24:74]:98') is '["data:","","0","text/[61:24:74]:98","",""]'
PASS segments('http://[61:27]:98') is '[":","","0","","",""]'
PASS segments('http:[61:27]/:foo') is '[":","","0","","",""]'
PASS segments('http://[1::2]:3:4') is '[":","","0","","",""]'
PASS segments('http://2001::1') is '[":","","0","","",""]'
PASS segments('http://[2001::1') is '[":","","0","","",""]'
PASS segments('http://2001::1]') is '[":","","0","","",""]'
PASS segments('http://2001::1]:80') is '[":","","0","","",""]'
PASS segments('http://[2001::1]') is '["http:","[2001::1]","0","/","",""]'
PASS segments('http://[2001::1]:80') is '["http:","[2001::1]","0","/","",""]'
PASS segments('http://[[::]]') is '[":","","0","","",""]'
PASS successfullyParsed is true
TEST COMPLETE
Hin-Chung Lam
It fails for the case of
'http://f:\n/c'
The expected results of parsing is [":","","0","","",""].
The actual results is ["http:","f","0","/c","",""].
Please let me know if you are not the right person for this bug. I'll find another person. Thanks!
Adam Barth
I'm the right person for this bug. It likely just needs a new baseline.
Hin-Chung Lam
Please take a look at this to see if the new results is correct:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#useWebKitCanary=true&tests=fast%2Furl%2Fsegments-from-data-url.html
Hajime Morrita
*** Bug 46952 has been marked as a duplicate of this bug. ***
Stephen Chenney
LayoutTest failures for Chromium are being marked WontFix. The Bug is still accessible and referenced from TestExpectations.