# HG changeset patch # User Dmitry Volyntsev # Date 1605726189 0 # Node ID cd0461e1e39272361e88e0b4bead4af0c9d7ae63 # Parent 4eb2a82dd9b5b92ef0d406254f609daafeae2c84 Tests: added js subrequest test with error_page redirect. diff --git a/js_subrequests.t b/js_subrequests.t --- a/js_subrequests.t +++ b/js_subrequests.t @@ -52,6 +52,10 @@ http { listen 127.0.0.1:8080; server_name localhost; + location /njs { + js_content test_njs; + } + location /sr { js_content sr; } @@ -109,12 +113,16 @@ http { return 200 $subrequest_var; } - location /sr_error_page { + location /sr_async_var { set $_ $async_var; error_page 404 /return; return 404; } + location /sr_error_page { + js_content sr_error_page; + } + location /sr_js_in_subrequest { js_content sr_js_in_subrequest; } @@ -210,6 +218,12 @@ http { location /return { return 200 '["$request_method"]'; } + + location /error_page_404 { + return 404; + + error_page 404 /404.html; + } } server { @@ -255,6 +269,10 @@ EOF $t->write_file('test.js', < {r.return(200, `reply.status:\${reply.status}`)}); + } + function subrequest_var(r) { r.subrequest('/p/detached', {detached:true}); r.subrequest('/p/detached', {detached:true, args:'a=yyy', @@ -470,7 +493,7 @@ EOF $t->write_file('t', '["SEE-THIS"]'); -$t->try_run('no njs available')->plan(31); +$t->try_run('no njs available')->plan(32); $t->run_daemon(\&http_daemon); ############################################################################### @@ -521,10 +544,19 @@ is(get_json('/sr_unavail_pr'), '[{"statu like(http_get('/sr_detached_in_variable_handler'), qr/subrequest_var/, 'sr_detached_in_variable_handler'); +TODO: { +todo_skip 'leaves coredump', 1 unless $ENV{TEST_NGINX_UNSAFE} + or http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.5.0'; + +like(http_get('/sr_error_page'), qr/reply\.status:404/, + 'sr_error_page'); + +} + http_get('/sr_broken'); http_get('/sr_in_sr'); http_get('/sr_in_variable_handler'); -http_get('/sr_error_page'); +http_get('/sr_async_var'); http_get('/sr_too_large'); http_get('/sr_except_not_a_func'); http_get('/sr_except_failed_to_convert_options_arg');