aboutsummaryrefslogtreecommitdiff
path: root/test/httptest.lua
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2002-12-03 07:20:34 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2002-12-03 07:20:34 +0000
commit7da19138e37c4e0123860f1fecbceb80c3d2627d (patch)
tree8453f003a9ba212807d9c9590c2f2b850d323f0f /test/httptest.lua
parentd7e80592a69c076991ed4f4cc15d5390e14d1f0b (diff)
downloadluasocket-7da19138e37c4e0123860f1fecbceb80c3d2627d.tar.gz
luasocket-7da19138e37c4e0123860f1fecbceb80c3d2627d.tar.bz2
luasocket-7da19138e37c4e0123860f1fecbceb80c3d2627d.zip
Faltam testes de ftp e smtp. O resto passa.
Diffstat (limited to 'test/httptest.lua')
-rw-r--r--test/httptest.lua88
1 files changed, 43 insertions, 45 deletions
diff --git a/test/httptest.lua b/test/httptest.lua
index 85c8bd8..2941390 100644
--- a/test/httptest.lua
+++ b/test/httptest.lua
@@ -7,21 +7,21 @@
7dofile("noglobals.lua") 7dofile("noglobals.lua")
8 8
9local similar = function(s1, s2) 9local similar = function(s1, s2)
10 return strlower(gsub(s1 or "", "%s", "")) == 10 return string.lower(string.gsub(s1 or "", "%s", "")) ==
11 strlower(gsub(s2 or "", "%s", "")) 11 string.lower(string.gsub(s2 or "", "%s", ""))
12end 12end
13 13
14local fail = function(s) 14local fail = function(s)
15 s = s or "failed!" 15 s = s or "failed!"
16 print(s) 16 print(s)
17 exit() 17 os.exit()
18end 18end
19 19
20local readfile = function(name) 20local readfile = function(name)
21 local f = readfrom(name) 21 local f = io.open(name, "r")
22 if not f then return nil end 22 if not f then return nil end
23 local s = read("*a") 23 local s = f:read("*a")
24 readfrom() 24 f:close()
25 return s 25 return s
26end 26end
27 27
@@ -31,7 +31,7 @@ local check = function (v, e)
31end 31end
32 32
33local check_request = function(request, expect, ignore) 33local check_request = function(request, expect, ignore)
34 local response = HTTP.request(request) 34 local response = http.request(request)
35 for i,v in response do 35 for i,v in response do
36 if not ignore[i] then 36 if not ignore[i] then
37 if v ~= expect[i] then %fail(i .. " differs!") end 37 if v ~= expect[i] then %fail(i .. " differs!") end
@@ -45,30 +45,28 @@ local check_request = function(request, expect, ignore)
45 print("ok") 45 print("ok")
46end 46end
47 47
48dofile("../src/modules/http.lua")
49
50local request, response, ignore, expect, index, prefix, cgiprefix 48local request, response, ignore, expect, index, prefix, cgiprefix
51 49
52local t = _time() 50local t = socket._time()
53 51
54HOST = HOST or "localhost" 52HOST = HOST or "localhost"
55prefix = prefix or "/luasocket-test" 53prefix = prefix or "/luasocket"
56cgiprefix = cgiprefix or "/luasocket-test-cgi" 54cgiprefix = cgiprefix or "/luasocket/cgi"
57index = readfile("index.html") 55index = readfile("test/index.html")
58 56
59write("testing request uri correctness: ") 57io.write("testing request uri correctness: ")
60local forth = cgiprefix .. "/request-uri?" .. "this+is+the+query+string" 58local forth = cgiprefix .. "/request-uri?" .. "this+is+the+query+string"
61local back = HTTP.get("http://" .. HOST .. forth) 59local back = http.get("http://" .. HOST .. forth)
62if similar(back, forth) then print("ok") 60if similar(back, forth) then print("ok")
63else fail("failed!") end 61else fail("failed!") end
64 62
65write("testing query string correctness: ") 63io.write("testing query string correctness: ")
66forth = "this+is+the+query+string" 64forth = "this+is+the+query+string"
67back = HTTP.get("http://" .. HOST .. cgiprefix .. "/query-string?" .. forth) 65back = http.get("http://" .. HOST .. cgiprefix .. "/query-string?" .. forth)
68if similar(back, forth) then print("ok") 66if similar(back, forth) then print("ok")
69else fail("failed!") end 67else fail("failed!") end
70 68
71write("testing document retrieval: ") 69io.write("testing document retrieval: ")
72request = { 70request = {
73 url = "http://" .. HOST .. prefix .. "/index.html" 71 url = "http://" .. HOST .. prefix .. "/index.html"
74} 72}
@@ -82,7 +80,7 @@ ignore = {
82} 80}
83check_request(request, expect, ignore) 81check_request(request, expect, ignore)
84 82
85write("testing HTTP redirection: ") 83io.write("testing http redirection: ")
86request = { 84request = {
87 url = "http://" .. HOST .. prefix 85 url = "http://" .. HOST .. prefix
88} 86}
@@ -97,7 +95,7 @@ ignore = {
97check_request(request, expect, ignore) 95check_request(request, expect, ignore)
98 96
99 97
100write("testing automatic auth failure: ") 98io.write("testing automatic auth failure: ")
101request = { 99request = {
102 url = "http://really:wrong@" .. HOST .. prefix .. "/auth/index.html" 100 url = "http://really:wrong@" .. HOST .. prefix .. "/auth/index.html"
103} 101}
@@ -111,7 +109,7 @@ ignore = {
111} 109}
112check_request(request, expect, ignore) 110check_request(request, expect, ignore)
113 111
114write("testing HTTP redirection failure: ") 112io.write("testing http redirection failure: ")
115request = { 113request = {
116 url = "http://" .. HOST .. prefix, 114 url = "http://" .. HOST .. prefix,
117 stay = 1 115 stay = 1
@@ -126,29 +124,29 @@ ignore = {
126} 124}
127check_request(request, expect, ignore) 125check_request(request, expect, ignore)
128 126
129write("testing host not found: ") 127io.write("testing host not found: ")
130request = { 128request = {
131 url = "http://wronghost/does/not/exist" 129 url = "http://wronghost/does/not/exist"
132} 130}
133local c, e = connect("wronghost", 80) 131local c, e = socket.connect("wronghost", 80)
134expect = { 132expect = {
135 error = e 133 error = e
136} 134}
137ignore = {} 135ignore = {}
138check_request(request, expect, ignore) 136check_request(request, expect, ignore)
139 137
140write("testing invalid url: ") 138io.write("testing invalid url: ")
141request = { 139request = {
142 url = HOST .. prefix 140 url = HOST .. prefix
143} 141}
144local c, e = connect("", 80) 142local c, e = socket.connect("", 80)
145expect = { 143expect = {
146 error = e 144 error = e
147} 145}
148ignore = {} 146ignore = {}
149check_request(request, expect, ignore) 147check_request(request, expect, ignore)
150 148
151write("testing document not found: ") 149io.write("testing document not found: ")
152request = { 150request = {
153 url = "http://" .. HOST .. "/wrongdocument.html" 151 url = "http://" .. HOST .. "/wrongdocument.html"
154} 152}
@@ -162,7 +160,7 @@ ignore = {
162} 160}
163check_request(request, expect, ignore) 161check_request(request, expect, ignore)
164 162
165write("testing auth failure: ") 163io.write("testing auth failure: ")
166request = { 164request = {
167 url = "http://" .. HOST .. prefix .. "/auth/index.html" 165 url = "http://" .. HOST .. prefix .. "/auth/index.html"
168} 166}
@@ -176,7 +174,7 @@ ignore = {
176} 174}
177check_request(request, expect, ignore) 175check_request(request, expect, ignore)
178 176
179write("testing manual basic auth: ") 177io.write("testing manual basic auth: ")
180request = { 178request = {
181 url = "http://" .. HOST .. prefix .. "/auth/index.html", 179 url = "http://" .. HOST .. prefix .. "/auth/index.html",
182 headers = { 180 headers = {
@@ -193,7 +191,7 @@ ignore = {
193} 191}
194check_request(request, expect, ignore) 192check_request(request, expect, ignore)
195 193
196write("testing automatic basic auth: ") 194io.write("testing automatic basic auth: ")
197request = { 195request = {
198 url = "http://luasocket:password@" .. HOST .. prefix .. "/auth/index.html" 196 url = "http://luasocket:password@" .. HOST .. prefix .. "/auth/index.html"
199} 197}
@@ -207,7 +205,7 @@ ignore = {
207} 205}
208check_request(request, expect, ignore) 206check_request(request, expect, ignore)
209 207
210write("testing auth info overriding: ") 208io.write("testing auth info overriding: ")
211request = { 209request = {
212 url = "http://really:wrong@" .. HOST .. prefix .. "/auth/index.html", 210 url = "http://really:wrong@" .. HOST .. prefix .. "/auth/index.html",
213 user = "luasocket", 211 user = "luasocket",
@@ -223,7 +221,7 @@ ignore = {
223} 221}
224check_request(request, expect, ignore) 222check_request(request, expect, ignore)
225 223
226write("testing cgi output retrieval (probably chunked...): ") 224io.write("testing cgi output retrieval (probably chunked...): ")
227request = { 225request = {
228 url = "http://" .. HOST .. cgiprefix .. "/cat-index-html" 226 url = "http://" .. HOST .. cgiprefix .. "/cat-index-html"
229} 227}
@@ -237,7 +235,7 @@ ignore = {
237} 235}
238check_request(request, expect, ignore) 236check_request(request, expect, ignore)
239 237
240write("testing redirect loop: ") 238io.write("testing redirect loop: ")
241request = { 239request = {
242 url = "http://" .. HOST .. cgiprefix .. "/redirect-loop" 240 url = "http://" .. HOST .. cgiprefix .. "/redirect-loop"
243} 241}
@@ -251,7 +249,7 @@ ignore = {
251} 249}
252check_request(request, expect, ignore) 250check_request(request, expect, ignore)
253 251
254write("testing post method: ") 252io.write("testing post method: ")
255request = { 253request = {
256 url = "http://" .. HOST .. cgiprefix .. "/cat", 254 url = "http://" .. HOST .. cgiprefix .. "/cat",
257 method = "POST", 255 method = "POST",
@@ -267,7 +265,7 @@ ignore = {
267} 265}
268check_request(request, expect, ignore) 266check_request(request, expect, ignore)
269 267
270write("testing wrong scheme: ") 268io.write("testing wrong scheme: ")
271request = { 269request = {
272 url = "wrong://" .. HOST .. cgiprefix .. "/cat", 270 url = "wrong://" .. HOST .. cgiprefix .. "/cat",
273 method = "GET" 271 method = "GET"
@@ -280,31 +278,31 @@ ignore = {
280check_request(request, expect, ignore) 278check_request(request, expect, ignore)
281 279
282local body 280local body
283write("testing simple get function: ") 281io.write("testing simple get function: ")
284body = HTTP.get("http://" .. HOST .. prefix .. "/index.html") 282body = http.get("http://" .. HOST .. prefix .. "/index.html")
285check(body == index) 283check(body == index)
286 284
287write("testing simple get function with table args: ") 285io.write("testing simple get function with table args: ")
288body = HTTP.get { 286body = http.get {
289 url = "http://really:wrong@" .. HOST .. prefix .. "/auth/index.html", 287 url = "http://really:wrong@" .. HOST .. prefix .. "/auth/index.html",
290 user = "luasocket", 288 user = "luasocket",
291 password = "password" 289 password = "password"
292} 290}
293check(body == index) 291check(body == index)
294 292
295write("testing simple post function: ") 293io.write("testing simple post function: ")
296body = HTTP.post("http://" .. HOST .. cgiprefix .. "/cat", index) 294body = http.post("http://" .. HOST .. cgiprefix .. "/cat", index)
297check(body == index) 295check(body == index)
298 296
299write("testing simple post function with table args: ") 297io.write("testing simple post function with table args: ")
300body = HTTP.post { 298body = http.post {
301 url = "http://" .. HOST .. cgiprefix .. "/cat", 299 url = "http://" .. HOST .. cgiprefix .. "/cat",
302 body = index 300 body = index
303} 301}
304check(body == index) 302check(body == index)
305 303
306write("testing HEAD method: ") 304io.write("testing HEAD method: ")
307response = HTTP.request { 305response = http.request {
308 method = "HEAD", 306 method = "HEAD",
309 url = "http://www.tecgraf.puc-rio.br/~diego/" 307 url = "http://www.tecgraf.puc-rio.br/~diego/"
310} 308}
@@ -312,4 +310,4 @@ check(response and response.headers)
312 310
313print("passed all tests") 311print("passed all tests")
314 312
315print(format("done in %.2fs", _time() - t)) 313print(string.format("done in %.2fs", socket._time() - t))