- From: Domenic Denicola <web-platform-tests-notifications@w3.org>
- Date: Fri, 30 Dec 2016 17:51:01 GMT
- To: public-web-platform-tests-notifications@w3.org
@annevk here is what happens in that test case of parsing `http://::@c@d:2` with the new spec:
- (A bunch of stuff...)
- authority state, c = "@", buffer = "::"
- Set the @ flag
- Let the passwordTokenSeenFlag be unset
- For each code point in buffer
- ":"
- code point is ":" and passwordTokenSeenFlag is unset, so set setPasswordTokenSeenFlag and continue
- ":"
- Let encodedCodePoints = "%3A"
- passwordTokenSeenFlag is set, so password += encodedCodePoints
- password is now "%3A"
- buffer = ""
- authority state, c = "c", buffer = ""
- buffer += "c"
- authority state, c = "@", buffer = "c"
- @ flag is set, so prepend "%40" to buffer: buffer is now "%40c"
- Set the @ flag
- Let the passwordTokenSeenFlag be unset
- For each code point in buffer:
- "%"
- encodedCodePoints = "%"
- username += encodedCodePoints; username is now "%"
- "4"
- ditto
- Continues until username = "%40c"
- buffer = ""
- authority state, c = "d", buffer = ""
- buffer += "d"
- authority state, c = ":", buffer = "d"
- buffer += ":"
- authority state, c = "2", buffer = "d:"
- buffer += "2"
- authority state, c = EOF, buffer = "d:2"
- pointer -= 4
- buffer = ""
- state = "host"
So you can see how this ends up with a username of "%40c" and a password of "%3A"
View on GitHub: https://github.com/w3c/web-platform-tests/pull/4405#issuecomment-269800986
Received on Friday, 30 December 2016 17:51:19 UTC