aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ltn12test.lua3
-rw-r--r--test/mimetest.lua93
2 files changed, 39 insertions, 57 deletions
diff --git a/test/ltn12test.lua b/test/ltn12test.lua
new file mode 100644
index 0000000..1c1f3f2
--- /dev/null
+++ b/test/ltn12test.lua
@@ -0,0 +1,3 @@
1sink = ltn12.sink.file(io.open("lixo", "w"))
2source = ltn12.source.file(io.open("luasocket", "r"))
3ltn12.pump(source, sink)
diff --git a/test/mimetest.lua b/test/mimetest.lua
index 5a461fa..1a7e427 100644
--- a/test/mimetest.lua
+++ b/test/mimetest.lua
@@ -1,4 +1,4 @@
1dofile("noglobals.lua") 1dofile("testsupport.lua")
2 2
3local qptest = "qptest.bin" 3local qptest = "qptest.bin"
4local eqptest = "qptest.bin2" 4local eqptest = "qptest.bin2"
@@ -31,26 +31,13 @@ local mao = [[
31 assim, nem tudo o que dava exprimia grande confiança. 31 assim, nem tudo o que dava exprimia grande confiança.
32]] 32]]
33 33
34local fail = function(s)
35 s = s or "failed"
36 assert(nil, s)
37end
38
39local readfile = function(name)
40 local f = io.open(name, "r")
41 if not f then return nil end
42 local s = f:read("*a")
43 f:close()
44 return s
45end
46
47local function transform(input, output, filter) 34local function transform(input, output, filter)
48 local fi, err = io.open(input, "rb") 35 local fi, err = io.open(input, "rb")
49 if not fi then fail(err) end 36 if not fi then fail(err) end
50 local fo, err = io.open(output, "wb") 37 local fo, err = io.open(output, "wb")
51 if not fo then fail(err) end 38 if not fo then fail(err) end
52 while 1 do 39 while 1 do
53 local chunk = fi:read(math.random(0, 256)) 40 local chunk = fi:read(math.random(0, 1024))
54 fo:write(filter(chunk)) 41 fo:write(filter(chunk))
55 if not chunk then break end 42 if not chunk then break end
56 end 43 end
@@ -58,17 +45,10 @@ local function transform(input, output, filter)
58 fo:close() 45 fo:close()
59end 46end
60 47
61local function compare(input, output)
62 local original = readfile(input)
63 local recovered = readfile(output)
64 if original ~= recovered then fail("recovering failed")
65 else print("ok") end
66end
67
68local function encode_qptest(mode) 48local function encode_qptest(mode)
69 local encode = socket.mime.encode("quoted-printable", mode) 49 local encode = mime.encode("quoted-printable", mode)
70 local split = socket.mime.wrap("quoted-printable") 50 local split = mime.wrap("quoted-printable")
71 local chain = socket.mime.chain(encode, split) 51 local chain = ltn12.filter.chain(encode, split)
72 transform(qptest, eqptest, chain) 52 transform(qptest, eqptest, chain)
73end 53end
74 54
@@ -77,7 +57,7 @@ local function compare_qptest()
77end 57end
78 58
79local function decode_qptest() 59local function decode_qptest()
80 local decode = socket.mime.decode("quoted-printable") 60 local decode = mime.decode("quoted-printable")
81 transform(eqptest, dqptest, decode) 61 transform(eqptest, dqptest, decode)
82end 62end
83 63
@@ -151,24 +131,24 @@ local function cleanup_qptest()
151end 131end
152 132
153local function encode_b64test() 133local function encode_b64test()
154 local e1 = socket.mime.encode("base64") 134 local e1 = mime.encode("base64")
155 local e2 = socket.mime.encode("base64") 135 local e2 = mime.encode("base64")
156 local e3 = socket.mime.encode("base64") 136 local e3 = mime.encode("base64")
157 local e4 = socket.mime.encode("base64") 137 local e4 = mime.encode("base64")
158 local sp4 = socket.mime.wrap() 138 local sp4 = mime.wrap()
159 local sp3 = socket.mime.wrap(59) 139 local sp3 = mime.wrap(59)
160 local sp2 = socket.mime.wrap("base64", 30) 140 local sp2 = mime.wrap("base64", 30)
161 local sp1 = socket.mime.wrap(27) 141 local sp1 = mime.wrap(27)
162 local chain = socket.mime.chain(e1, sp1, e2, sp2, e3, sp3, e4, sp4) 142 local chain = ltn12.filter.chain(e1, sp1, e2, sp2, e3, sp3, e4, sp4)
163 transform(b64test, eb64test, chain) 143 transform(b64test, eb64test, chain)
164end 144end
165 145
166local function decode_b64test() 146local function decode_b64test()
167 local d1 = socket.mime.decode("base64") 147 local d1 = mime.decode("base64")
168 local d2 = socket.mime.decode("base64") 148 local d2 = mime.decode("base64")
169 local d3 = socket.mime.decode("base64") 149 local d3 = mime.decode("base64")
170 local d4 = socket.mime.decode("base64") 150 local d4 = mime.decode("base64")
171 local chain = socket.mime.chain(d1, d2, d3, d4) 151 local chain = ltn12.filter.chain(d1, d2, d3, d4)
172 transform(eb64test, db64test, chain) 152 transform(eb64test, db64test, chain)
173end 153end
174 154
@@ -182,11 +162,11 @@ local function compare_b64test()
182end 162end
183 163
184local function identity_test() 164local function identity_test()
185 local chain = socket.mime.chain( 165 local chain = ltn12.filter.chain(
186 socket.mime.encode("quoted-printable"), 166 mime.encode("quoted-printable"),
187 socket.mime.encode("base64"), 167 mime.encode("base64"),
188 socket.mime.decode("base64"), 168 mime.decode("base64"),
189 socket.mime.decode("quoted-printable") 169 mime.decode("quoted-printable")
190 ) 170 )
191 transform(b64test, eb64test, chain) 171 transform(b64test, eb64test, chain)
192 compare(b64test, eb64test) 172 compare(b64test, eb64test)
@@ -195,8 +175,8 @@ end
195 175
196 176
197local function padcheck(original, encoded) 177local function padcheck(original, encoded)
198 local e = (socket.mime.b64(original)) 178 local e = (mime.b64(original))
199 local d = (socket.mime.unb64(encoded)) 179 local d = (mime.unb64(encoded))
200 if e ~= encoded then fail("encoding failed") end 180 if e ~= encoded then fail("encoding failed") end
201 if d ~= original then fail("decoding failed") end 181 if d ~= original then fail("decoding failed") end
202end 182end
@@ -206,8 +186,8 @@ local function chunkcheck(original, encoded)
206 for i = 0, len do 186 for i = 0, len do
207 local a = string.sub(original, 1, i) 187 local a = string.sub(original, 1, i)
208 local b = string.sub(original, i+1) 188 local b = string.sub(original, i+1)
209 local e, r = socket.mime.b64(a, b) 189 local e, r = mime.b64(a, b)
210 local f = (socket.mime.b64(r)) 190 local f = (mime.b64(r))
211 if (e .. f ~= encoded) then fail(e .. f) end 191 if (e .. f ~= encoded) then fail(e .. f) end
212 end 192 end
213end 193end
@@ -231,6 +211,13 @@ end
231 211
232local t = socket.time() 212local t = socket.time()
233 213
214identity_test()
215encode_b64test()
216decode_b64test()
217compare_b64test()
218cleanup_b64test()
219padding_b64test()
220
234create_qptest() 221create_qptest()
235encode_qptest() 222encode_qptest()
236decode_qptest() 223decode_qptest()
@@ -240,12 +227,4 @@ decode_qptest()
240compare_qptest() 227compare_qptest()
241cleanup_qptest() 228cleanup_qptest()
242 229
243encode_b64test()
244decode_b64test()
245compare_b64test()
246cleanup_b64test()
247padding_b64test()
248
249identity_test()
250
251print(string.format("done in %.2fs", socket.time() - t)) 230print(string.format("done in %.2fs", socket.time() - t))