diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2018-04-04 22:37:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 22:37:37 +0100 |
commit | 06a45053051f7eacc9bff30172d84d00d655831f (patch) | |
tree | 0ed7b8f3d3eac40bc70db5a68dbe32c2824d54e7 /lib | |
parent | 58dc8a399efc5849ccc8109e1ee8d26c120a7539 (diff) | |
parent | 97565826efbc9e551829531875867c8f78378691 (diff) | |
download | Nim-06a45053051f7eacc9bff30172d84d00d655831f.tar.gz |
Merge pull request #7483 from GULPF/cookies-timezones
Don't assume UTC in cookies.setCookie
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/cookies.nim | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/pure/cookies.nim b/lib/pure/cookies.nim index 8f16717ac..aca0ac2b4 100644 --- a/lib/pure/cookies.nim +++ b/lib/pure/cookies.nim @@ -51,26 +51,26 @@ proc setCookie*(key, value: string, domain = "", path = "", if secure: result.add("; Secure") if httpOnly: result.add("; HttpOnly") -proc setCookie*(key, value: string, expires: DateTime, +proc setCookie*(key, value: string, expires: DateTime|Time, domain = "", path = "", noName = false, secure = false, httpOnly = false): string = ## Creates a command in the format of ## ``Set-Cookie: key=value; Domain=...; ...`` - ## - ## **Note:** UTC is assumed as the timezone for ``expires``. return setCookie(key, value, domain, path, - format(expires, "ddd',' dd MMM yyyy HH:mm:ss 'GMT'"), + format(expires.utc, "ddd',' dd MMM yyyy HH:mm:ss 'GMT'"), noname, secure, httpOnly) when isMainModule: - var tim = fromUnix(getTime().toUnix + 76 * (60 * 60 * 24)) + let expire = fromUnix(0) + 1.seconds - let cookie = setCookie("test", "value", tim.utc) - when not defined(testing): - echo cookie - let start = "Set-Cookie: test=value; Expires=" - assert cookie[0..start.high] == start + let cookies = [ + setCookie("test", "value", expire), + setCookie("test", "value", expire.local), + setCookie("test", "value", expire.utc) + ] + let expected = "Set-Cookie: test=value; Expires=Thu, 01 Jan 1970 00:00:01 GMT" + doAssert cookies == [expected, expected, expected] let table = parseCookies("uid=1; kp=2") - assert table["uid"] == "1" - assert table["kp"] == "2" + doAssert table["uid"] == "1" + doAssert table["kp"] == "2" |