From 74e442f766183237e8edca7bb68dca1da81a7d9f Mon Sep 17 00:00:00 2001 From: Federico Ceratto Date: Thu, 1 Dec 2016 00:10:43 +0000 Subject: Add HTTP header deletion, improve tests --- lib/pure/httpcore.nim | 4 ++++ tests/stdlib/thttpcore.nim | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 tests/stdlib/thttpcore.nim diff --git a/lib/pure/httpcore.nim b/lib/pure/httpcore.nim index 8147f1c50..48001ccaa 100644 --- a/lib/pure/httpcore.nim +++ b/lib/pure/httpcore.nim @@ -154,6 +154,10 @@ proc add*(headers: HttpHeaders, key, value: string) = else: headers.table[key.toLowerAscii].add(value) +proc del*(headers: HttpHeaders, key: string) = + ## Delete the header entries associated with ``key`` + headers.table.del(key.toLowerAscii) + iterator pairs*(headers: HttpHeaders): tuple[key, value: string] = ## Yields each key, value pair. for k, v in headers.table: diff --git a/tests/stdlib/thttpcore.nim b/tests/stdlib/thttpcore.nim new file mode 100644 index 000000000..9f99df93a --- /dev/null +++ b/tests/stdlib/thttpcore.nim @@ -0,0 +1,28 @@ + +import unittest + +import httpcore + +suite "httpcore": + + test "HttpCode": + assert $Http418 == "418 I'm a teapot" + assert Http418.is4xx() == true + assert Http418.is2xx() == false + + test "headers": + var h = newHttpHeaders() + assert h.len == 0 + h.add("Cookie", "foo") + assert h.len == 1 + assert h.hasKey("cooKIE") + assert h["Cookie"] == "foo" + assert h["cookie"] == "foo" + h["cookie"] = @["bar", "x"] + assert h["Cookie"] == "bar" + assert h["Cookie", 1] == "x" + assert h["Cookie"].contains("BaR") == true + assert h["Cookie"].contains("X") == true + assert "baR" in h["cookiE"] + h.del("coOKie") + assert h.len == 0 -- cgit 1.4.1-2-gfad0