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 143 144 145 146
|
# vim:set ft= ts=4 sw=4 et fdm=marker:
use Test::Nginx::Socket::Lua;
#worker_connections(1014);
#master_on();
#workers(2);
#log_level('warn');
repeat_each(2);
#repeat_each(1);
plan tests => repeat_each() * (blocks() * 3 + 1);
#no_diff();
#no_long_string();
run_tests();
__DATA__
=== TEST 1: rewrite no postpone on
--- http_config
rewrite_by_lua_no_postpone on;
--- config
set $foo '';
location /t {
rewrite_by_lua '
ngx.var.foo = 1
';
if ($foo = 1) {
echo "foo: $foo";
}
echo "no foo: $foo";
}
--- request
GET /t
--- response_body
foo: 1
--- no_error_log
[error]
=== TEST 2: rewrite no postpone explicitly off
--- http_config
rewrite_by_lua_no_postpone off;
--- config
set $foo '';
location /t {
rewrite_by_lua '
ngx.var.foo = 1
';
if ($foo = 1) {
echo "foo: $foo";
}
echo "no foo: $foo";
}
--- request
GET /t
--- response_body
no foo: 1
--- no_error_log
[error]
=== TEST 3: rewrite no postpone off by default
--- config
set $foo '';
location /t {
rewrite_by_lua '
ngx.var.foo = 1
';
if ($foo = 1) {
echo "foo: $foo";
}
echo "no foo: $foo";
}
--- request
GET /t
--- response_body
no foo: 1
--- no_error_log
[error]
=== TEST 4: access no postpone on
--- http_config
access_by_lua_no_postpone on;
--- config
location /t {
access_by_lua '
ngx.redirect("http://www.taobao.com/foo")
ngx.say("hi")
';
content_by_lua 'return';
deny all;
}
--- request
GET /t
--- response_headers
Location: http://www.taobao.com/foo
--- response_body_like: 302 Found
--- error_code: 302
--- no_error_log
[error]
=== TEST 5: access no postpone explicitly off
--- http_config
access_by_lua_no_postpone off;
--- config
location /t {
access_by_lua '
ngx.redirect("http://www.taobao.com/foo")
ngx.say("hi")
';
content_by_lua 'return';
deny all;
}
--- request
GET /t
--- response_body_like: 403 Forbidden
--- error_code: 403
--- error_log
access forbidden by rule
=== TEST 6: access no postpone off by default
--- config
location /t {
access_by_lua '
ngx.redirect("http://www.taobao.com/foo")
ngx.say("hi")
';
content_by_lua 'return';
deny all;
}
--- request
GET /t
--- response_body_like: 403 Forbidden
--- error_code: 403
--- error_log
access forbidden by rule
|