The file:// protocol *always* has a hostname; it's frequently abbreviated as an empty string, which represents 'localhost' implicitly. According to RFC 1738 (http://tools.ietf.org/html/rfc1738): A file URL takes the form: file://<host>/<path> where <host> is the fully qualified domain name of the system on which the <path> is accessible... As a special case, <host> can be the string "localhost" or the empty string; this is interpreted as 'the machine from which the URL is being interpreted'.
This commit is contained in:
parent
eb4c9ed881
commit
58a1d7ec30
@ -54,9 +54,7 @@ var protocolPattern = /^([a-z0-9]+:)/i,
|
|||||||
// protocols that never have a hostname.
|
// protocols that never have a hostname.
|
||||||
hostlessProtocol = {
|
hostlessProtocol = {
|
||||||
'javascript': true,
|
'javascript': true,
|
||||||
'javascript:': true,
|
'javascript:': true
|
||||||
'file': true,
|
|
||||||
'file:': true
|
|
||||||
},
|
},
|
||||||
// protocols that always have a path component.
|
// protocols that always have a path component.
|
||||||
pathedProtocol = {
|
pathedProtocol = {
|
||||||
|
@ -166,12 +166,38 @@ var parseTests = {
|
|||||||
'file:///etc/passwd' : {
|
'file:///etc/passwd' : {
|
||||||
'href': 'file:///etc/passwd',
|
'href': 'file:///etc/passwd',
|
||||||
'protocol': 'file:',
|
'protocol': 'file:',
|
||||||
'pathname': '///etc/passwd'
|
'pathname': '/etc/passwd',
|
||||||
|
'hostname': ''
|
||||||
|
},
|
||||||
|
'file://localhost/etc/passwd' : {
|
||||||
|
'href': 'file://localhost/etc/passwd',
|
||||||
|
'protocol': 'file:',
|
||||||
|
'pathname': '/etc/passwd',
|
||||||
|
'hostname': 'localhost'
|
||||||
|
},
|
||||||
|
'file://foo/etc/passwd' : {
|
||||||
|
'href': 'file://foo/etc/passwd',
|
||||||
|
'protocol': 'file:',
|
||||||
|
'pathname': '/etc/passwd',
|
||||||
|
'hostname': 'foo'
|
||||||
},
|
},
|
||||||
'file:///etc/node/' : {
|
'file:///etc/node/' : {
|
||||||
'href': 'file:///etc/node/',
|
'href': 'file:///etc/node/',
|
||||||
'protocol': 'file:',
|
'protocol': 'file:',
|
||||||
'pathname': '///etc/node/'
|
'pathname': '/etc/node/',
|
||||||
|
'hostname': ''
|
||||||
|
},
|
||||||
|
'file://localhost/etc/node/' : {
|
||||||
|
'href': 'file://localhost/etc/node/',
|
||||||
|
'protocol': 'file:',
|
||||||
|
'pathname': '/etc/node/',
|
||||||
|
'hostname': 'localhost'
|
||||||
|
},
|
||||||
|
'file://foo/etc/node/' : {
|
||||||
|
'href': 'file://foo/etc/node/',
|
||||||
|
'protocol': 'file:',
|
||||||
|
'pathname': '/etc/node/',
|
||||||
|
'hostname': 'foo'
|
||||||
},
|
},
|
||||||
'http:/baz/../foo/bar' : {
|
'http:/baz/../foo/bar' : {
|
||||||
'href': 'http:/baz/../foo/bar',
|
'href': 'http:/baz/../foo/bar',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user