comparison web/src/luan/modules/web/Http.luan @ 458:507c0af598ba

improve Http.init_for_test
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 06 May 2015 12:29:37 -0600
parents a8d03e6882c6
children 895afcd2b281
comparison
equal deleted inserted replaced
457:0ca5d1d6250b 458:507c0af598ba
1 local Luan = require "luan:Luan" 1 local Io = require "luan:Io"
2 local ipairs = Luan.ipairs
3 local to_string = Luan.to_string
4 local Table = require "luan:Table"
5 require "luan:logging/Logging" -- initialize logging 2 require "luan:logging/Logging" -- initialize logging
6 3
7 4
8 5
9 6
10 function init_for_test() 7 function init_for_test()
11 8
12 function get_page(mod_name) 9 function get_page(mod_name)
10 local old_out = Io.stdout
13 local mod = require("site:"..mod_name) 11 local mod = require("site:"..mod_name)
14 mod.service() 12 mod.service()
15 return Table.concat(result) 13 text_writer.close()
14 Io.stdout = old_out
15 return result.read_text()
16 end 16 end
17 17
18 cookies = cookies or {} 18 cookies = cookies or {}
19 19
20 request = { 20 request = {
23 request.cookies = cookies 23 request.cookies = cookies
24 24
25 response = { 25 response = {
26 26
27 text_writer = function() 27 text_writer = function()
28 result = {} 28 result = Io.uri "string:"
29 return { 29 text_writer = result.text_writer()
30 write = function(...) 30 return text_writer
31 for _, v in ipairs{...} do
32 result[#result+1] = to_string(v)
33 end
34 end;
35 }
36 end; 31 end;
37 32
38 set_cookie = function(name,value) 33 set_cookie = function(name,value)
39 cookies[name] = value 34 cookies[name] = value
40 end; 35 end;