Mercurial Hosting > luan
annotate web/src/luan/modules/web/Http.luan @ 463:895afcd2b281
improve Http.init_for_test
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 06 May 2015 21:44:56 -0600 |
parents | 507c0af598ba |
children | 55a86fc4701b |
rev | line source |
---|---|
458
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
1 local Io = require "luan:Io" |
323
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
321
diff
changeset
|
2 require "luan:logging/Logging" -- initialize logging |
320
fed1893821bf
remove global namespace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
300
diff
changeset
|
3 |
fed1893821bf
remove global namespace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
300
diff
changeset
|
4 |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
5 |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
6 |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
7 function init_for_test() |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
8 |
463
895afcd2b281
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
458
diff
changeset
|
9 welcome_file = "index.html" |
895afcd2b281
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
458
diff
changeset
|
10 |
895afcd2b281
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
458
diff
changeset
|
11 function get_page(path) |
895afcd2b281
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
458
diff
changeset
|
12 if welcome_file ~= nil and path.matches ".*/" then |
895afcd2b281
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
458
diff
changeset
|
13 path = path .. welcome_file |
895afcd2b281
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
458
diff
changeset
|
14 end |
458
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
15 local old_out = Io.stdout |
463
895afcd2b281
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
458
diff
changeset
|
16 local mod = require("site:"..path) |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
17 mod.service() |
458
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
18 text_writer.close() |
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
19 Io.stdout = old_out |
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
20 return result.read_text() |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
21 end |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
22 |
252
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
23 cookies = cookies or {} |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
24 |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
25 request = { |
252
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
26 parameters = {}; |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
27 } |
252
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
28 request.cookies = cookies |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
29 |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
30 response = { |
252
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
31 |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
32 text_writer = function() |
458
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
33 result = Io.uri "string:" |
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
34 text_writer = result.text_writer() |
507c0af598ba
improve Http.init_for_test
Franklin Schmidt <fschmidt@gmail.com>
parents:
377
diff
changeset
|
35 return text_writer |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
36 end; |
252
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
37 |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
38 set_cookie = function(name,value) |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
39 cookies[name] = value |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
40 end; |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
41 |
253
dddf4e85bfe4
finish basic web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
252
diff
changeset
|
42 remove_cookie = function(name) |
dddf4e85bfe4
finish basic web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
252
diff
changeset
|
43 cookies[name] = nil |
dddf4e85bfe4
finish basic web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
252
diff
changeset
|
44 end; |
dddf4e85bfe4
finish basic web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
252
diff
changeset
|
45 |
252
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
46 send_redirect = function(url) |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
47 response.redirect = url |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
48 end; |
3896138955b1
web testing...
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
49 |
266
4dca283b9b74
add Http.response.headers for testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
50 headers = {}; |
4dca283b9b74
add Http.response.headers for testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
51 |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
52 } |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
53 |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
54 end |