summaryrefslogtreecommitdiff
path: root/ngx_stream_lua-0.0.16/t/013-base64.t
blob: 01b42c9e6a660df17d801e70ce41e7b13852fb6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# vim:set ft= ts=4 sw=4 et fdm=marker:

use Test::Nginx::Socket::Lua::Stream;

#worker_connections(1014);
#master_process_enabled(1);
log_level('warn');

repeat_each(2);

plan tests => repeat_each() * (blocks() * 3);

#no_diff();
#no_long_string();
run_tests();

__DATA__

=== TEST 1: base64 encode hello
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.encode_base64("hello")) }
--- stream_response
aGVsbG8=
--- no_error_log
[error]



=== TEST 2: nil string to ngx.encode_base64
--- stream_server_config
    content_by_lua_block { ngx.say("left" .. ngx.encode_base64(nil) .. "right") }
--- stream_response
leftright
--- no_error_log
[error]



=== TEST 3: empty string to ngx.encode_base64
--- stream_server_config
    content_by_lua_block { ngx.say("left" .. ngx.encode_base64("") .. "right") }
--- stream_response
leftright
--- no_error_log
[error]



=== TEST 4: base64 encode hello
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.decode_base64("aGVsbG8=")) }
--- stream_response
hello
--- no_error_log
[error]



=== TEST 5: null string to ngx.decode_base64
--- stream_server_config
    content_by_lua_block { ngx.say("left" .. ngx.decode_base64("") .. "right") }
--- stream_response
leftright
--- no_error_log
[error]



=== TEST 6: use ngx.decode_base64 in content_by_lua (nil)
--- stream_server_config
    content_by_lua_block { ngx.say("left" .. ngx.decode_base64(nil) .. "right") }
--- stream_response
--- error_log
string argument only



=== TEST 7: base64 encode number
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.encode_base64(32)) }
--- stream_response
MzI=
--- no_error_log
[error]



=== TEST 8: base64 decode number
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.decode_base64(32)) }
--- stream_response
--- error_log
string argument only



=== TEST 9: base64 decode error
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.decode_base64("^*~")) }
--- stream_response
nil
--- no_error_log
[error]



=== TEST 10: base64 encode without padding (explicit true to no_padding)
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.encode_base64("hello", true)) }
--- stream_response
aGVsbG8
--- no_error_log
[error]



=== TEST 11: base64 encode short string
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.encode_base64("w")) }
--- stream_response
dw==
--- no_error_log
[error]



=== TEST 12: base64 encode short string with padding (explicit false to no_padding)
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.encode_base64("w", false)) }
--- stream_response
dw==
--- no_error_log
[error]



=== TEST 13: base64 encode with wrong 2nd parameter
--- stream_server_config
    content_by_lua_block { ngx.say(ngx.encode_base64("w", 0)) }
--- stream_response
--- error_log eval
qr/runtime error: content_by_lua\(nginx\.conf:\d+\):\d+: bad no_padding: boolean expected, got number/