aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJiale Zhi <vipcalio@gmail.com>2013-10-29 11:26:14 -0700
committerJiale Zhi <vipcalio@gmail.com>2013-10-29 11:26:14 -0700
commitb4f8a86cd6ea00c13c7604c959c2f993e5e4e2cb (patch)
tree7eb7c64e5d99b43a6fed79924c3787602fa1df4e /lib
parent5399f7514c90c3a332229efd15264655dafc366a (diff)
downloadlua-resty-cookie-b4f8a86cd6ea00c13c7604c959c2f993e5e4e2cb.tar.gz
lua-resty-cookie-b4f8a86cd6ea00c13c7604c959c2f993e5e4e2cb.tar.bz2
lua-resty-cookie-b4f8a86cd6ea00c13c7604c959c2f993e5e4e2cb.zip
Add test cases for empty value and no cookie header
Diffstat (limited to 'lib')
-rw-r--r--lib/resty/cookie.lua25
1 files changed, 12 insertions, 13 deletions
diff --git a/lib/resty/cookie.lua b/lib/resty/cookie.lua
index 652df57..87f8e74 100644
--- a/lib/resty/cookie.lua
+++ b/lib/resty/cookie.lua
@@ -1,10 +1,14 @@
-- Copyright (C) 2013 Jiale Zhi (calio), Cloudflare Inc.
-require "luacov"
+-- require "luacov"
local type = type
local get_string_byte = string.byte
local get_string_sub = string.sub
+local EQUAL = get_string_byte("=")
+local SEMICOLON = get_string_byte(";")
+local SPACE = get_string_byte(" ")
+
local ok, new_tab = pcall(require, "table.new")
if not ok then
@@ -13,7 +17,6 @@ end
local _M = new_tab(0, 2)
-
_M._VERSION = '0.01'
@@ -22,9 +25,10 @@ local mt = { __index = _M }
local function get_cookie_table(text_cookie)
if type(text_cookie) ~= "string" then
- return nil, string.format(
+ ngx.log(ngx.ERR, string.format(
"expect text_cookie to be \"string\" but found %s",
- type(text_cookie))
+ type(text_cookie)))
+ return {}
end
local cookie_table = {}
@@ -39,13 +43,13 @@ local function get_cookie_table(text_cookie)
while j <= #text_cookie do
if state == EXPECT_KEY then
- if get_string_byte(text_cookie, j) == get_string_byte("=") then
+ if get_string_byte(text_cookie, j) == EQUAL then
key = get_string_sub(text_cookie, i, j - 1)
state = EXPECT_VALUE
i = j + 1
end
elseif state == EXPECT_VALUE then
- if get_string_byte(text_cookie, j) == get_string_byte(";") then
+ if get_string_byte(text_cookie, j) == SEMICOLON then
value = get_string_sub(text_cookie, i, j - 1)
cookie_table[key] = value
@@ -54,7 +58,7 @@ local function get_cookie_table(text_cookie)
i = j + 1
end
elseif state == EXPECT_SP then
- if get_string_byte(text_cookie, j) ~= get_string_byte(" ") then
+ if get_string_byte(text_cookie, j) ~= SPACE then
state = EXPECT_KEY
i = j
j = j - 1
@@ -90,12 +94,7 @@ function _M.get_all(self)
local err
if self.cookie_table == nil then
- ngx.log(ngx.NOTICE, "call get_cookie_table")
- self.cookie_table, err = get_cookie_table(self._cookie)
- if self.cookie_table == nil then
- ngx.log(ngx.ERR, "failed to get all cookies: ", err)
- return {}
- end
+ self.cookie_table = get_cookie_table(self._cookie)
end
return self.cookie_table