Bug 161191 - [mac-wk1] LayoutTest imported/w3c/web-platform-tests/url/url-setters.html failing
Summary: [mac-wk1] LayoutTest imported/w3c/web-platform-tests/url/url-setters.html fai...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-25 08:56 PDT by Ryan Haddad
Modified: 2017-05-17 15:10 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2016-08-25 08:56:00 PDT
LayoutTest imported/w3c/web-platform-tests/url/url-setters.html failing

This test has been failing on mac-wk1 since it was imported as part of https://bugs.webkit.org/show_bug.cgi?id=161177

https://build.webkit.org/results/Apple%20El%20Capitan%20Release%20WK1%20(Tests)/r204958%20(9135)/results.html

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=imported%2Fw3c%2Fweb-platform-tests%2Furl%2Furl-setters.html

--- /Volumes/Data/slave/elcapitan-release-tests-wk1/build/layout-test-results/imported/w3c/web-platform-tests/url/url-setters-expected.txt
+++ /Volumes/Data/slave/elcapitan-release-tests-wk1/build/layout-test-results/imported/w3c/web-platform-tests/url/url-setters-actual.txt
@@ -21,4 +21,107 @@
 PASS Setting <http://:secret@example.net>.username = 'me' 
 PASS Setting <http://me@example.net>.username = '' 
 PASS Setting <http://me:secret@example.net>.username = '' 
-FAIL Setting <http://example.net>.username = '
\ No newline at end of file
+FAIL Setting <http://example.net>.username = '�	
+
+ !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A;%3C=%3E%3F%40AZ[%5C]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
+PASS Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. 
+FAIL Setting <file:///home/me/index.html>.password = 'secret' No host means no password assert_equals: expected "file:///home/me/index.html" but got "file://:secret@/home/me/index.html"
+FAIL Setting <unix:/run/foo.socket>.password = 'secret' No host means no password assert_equals: expected "unix:/run/foo.socket" but got "unix://:secret@/run/foo.socket"
+FAIL Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password assert_equals: expected "mailto:me@example.net" but got "mailto://:secret@me@example.net"
+PASS Setting <http://example.net>.password = 'secret' 
+PASS Setting <http://me@example.net>.password = 'secret' 
+PASS Setting <http://:secret@example.net>.password = '' 
+PASS Setting <http://me:secret@example.net>.password = '' 
+FAIL Setting <http://example.net>.password = '�	
+
+ !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set. assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09:;%3C=%3E%3F%40AZ[%5C]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
+PASS Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. 
+PASS Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host 
+PASS Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password 
+PASS Setting <http://example.net>.host = 'example.com:8080' 
+FAIL Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value assert_equals: expected "http://example.com:8080/" but got "http://example.com/"
+FAIL Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanges if empty in the new value. Note: this may change, see https://github.com/whatwg/url/pull/113 assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/"
+PASS Setting <http://example.net>.host = '' The empty host is not valid for special schemes 
+FAIL Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
+PASS Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host 
+FAIL Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized assert_equals: expected "http://127.0.0.1:8080/" but got "http://0x7f000001:8080/"
+FAIL Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/"
+PASS Setting <http://example.net>.host = 'example.com:80' Default port number is removed 
+PASS Setting <https://example.net>.host = 'example.com:443' Default port number is removed 
+PASS Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme 
+FAIL Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
+PASS Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored 
+FAIL Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
+PASS Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored 
+FAIL Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
+PASS Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored 
+FAIL Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
+PASS Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
+FAIL Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com/stuff/path"
+PASS Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
+PASS Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
+PASS Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
+PASS Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers 
+FAIL Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path"
+PASS Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host 
+PASS Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password 
+PASS Setting <http://example.net:8080>.hostname = 'example.com' 
+PASS Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes 
+FAIL Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
+PASS Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host 
+FAIL Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized assert_equals: expected "http://127.0.0.1:8080/" but got "http://0x7f000001:8080/"
+FAIL Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized assert_equals: expected "http://[::1]/" but got "http://example.net/"
+FAIL Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.net/path"
+FAIL Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.net:8080/path"
+FAIL Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
+FAIL Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
+FAIL Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
+FAIL Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
+FAIL Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com/stuff/path"
+PASS Setting <http://example.net>.port = '8080' 
+FAIL Setting <http://example.net:8080>.port = '' Port number is unchanged if empty in the new value. Note: this may change, see https://github.com/whatwg/url/pull/113 assert_equals: expected "http://example.net:8080/" but got "http://example.net:0/"
+PASS Setting <http://example.net:8080>.port = '80' Default port number is removed 
+PASS Setting <https://example.net:4433>.port = '443' Default port number is removed 
+PASS Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme 
+PASS Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored 
+PASS Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored 
+PASS Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored 
+PASS Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
+PASS Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
+PASS Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
+PASS Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
+PASS Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers 
+FAIL Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path"
+PASS Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path 
+PASS Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' 
+PASS Setting <https://example.net#nav>.pathname = 'home' 
+PASS Setting <https://example.net#nav>.pathname = '../home' 
+FAIL Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs assert_equals: expected "http://example.net/a/c?lang=fr#nav" but got "http://example.net//a/%252E/b/%252e./c?lang=fr#nav"
+FAIL Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs assert_equals: expected "view-source+http://example.net/\\a\.\b\..\c?lang=fr#nav" but got "view-source+http://example.net//a/%252E/b/%252e./c?lang=fr#nav"
+FAIL Setting <a:/>.pathname = '�	
+
+ !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+FAIL Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, except %2E. assert_equals: expected "http://example.net/..%c3%89t%C3%A9" but got "http://example.net/%252e%252E%25c3%2589t%C3%A9"
+PASS Setting <https://example.net#nav>.search = 'lang=fr' 
+PASS Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' 
+PASS Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' 
+FAIL Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' assert_equals: expected "https://example.net/??lang=fr#nav" but got "https://example.net/?lang=fr#nav"
+PASS Setting <https://example.net?lang=en-US#nav>.search = '?' 
+FAIL Setting <https://example.net?lang=en-US#nav>.search = '' assert_equals: expected "https://example.net/#nav" but got "https://example.net/?#nav"
+FAIL Setting <https://example.net?lang=en-US>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
+FAIL Setting <https://example.net>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
+FAIL Setting <a:/>.search = '�	
+
+ !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?"
+FAIL Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/?%c3%89t%C3%A9" but got "http://example.net/?%c3%89t%E9"
+PASS Setting <https://example.net>.hash = 'main' 
+PASS Setting <https://example.net#nav>.hash = 'main' 
+PASS Setting <https://example.net?lang=en-US>.hash = '##nav' 
+PASS Setting <https://example.net?lang=en-US#nav>.hash = '#main' 
+FAIL Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US"
+PASS Setting <https://example.net?lang=en-US#nav>.hash = '' 
+FAIL Setting <a:/>.hash = '�	
+
+ !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~Éé' No percent-encoding at all (!); nuls, tabs, and newlines are removed assert_equals: expected "a:/#\x01\x1f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~Éé" but got "a:/#"
+FAIL Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is assert_equals: expected "http://example.net/#%c3%89té" but got "http://example.net/#%c3%89t%E9"
+
Comment 2 Ryan Haddad 2016-08-25 09:02:44 PDT
Marked as failing in http://trac.webkit.org/projects/webkit/changeset/204965
Comment 3 Chris Dumez 2017-05-17 15:10:57 PDT
Unskipped in http://trac.webkit.org/changeset/217004 as it seems to pass on WK1 now.