return 200 $test_global;
}
- location /body {
- js_content test.request_body;
- }
-
- location /in_file {
- client_body_in_file_only on;
- js_content test.request_body;
- }
-
location /status {
js_content test.status;
}
js_content test.buffer_variable;
}
- location /request_body {
- js_content test.request_body;
- }
-
- location /request_body_cache {
- js_content test.request_body_cache;
- }
-
location /send {
js_content test.send;
}
r.finish();
}
- function request_body(r) {
- try {
- var body = r.requestText;
- r.return(200, body);
-
- } catch (e) {
- r.return(500, e.message);
- }
- }
-
- function request_body_cache(r) {
- function t(v) {return Buffer.isBuffer(v) ? 'buffer' : (typeof v);}
- r.return(200,
- `requestText:\${t(r.requestText)} requestBuffer:\${t(r.requestBuffer)}`);
- }
-
function send(r) {
var a, s;
r.status = 200;
}
export default {njs:test_njs, method, version, addr, uri, buffer,
- variable, global_obj, status, request_body, internal,
- request_body_cache, send, return_method, sub_internal,
- type, log, buffer_variable, except, content_except,
- content_empty, send_buffer};
+ variable, global_obj, status, internal, send,
+ return_method, sub_internal, type, log, buffer_variable,
+ except, content_except, content_empty, send_buffer};
EOF
-$t->try_run('no njs available')->plan(29);
+$t->try_run('no njs available')->plan(25);
###############################################################################
like(http_get('/status'), qr/204 No Content/, 'r.status');
-like(http_post('/body'), qr/REQ-BODY/, 'request body');
-like(http_post('/in_file'), qr/request body is in a file/,
- 'request body in file');
-like(http_post_big('/body'), qr/200.*^(1234567890){1024}$/ms,
- 'request body big');
-
like(http_get('/send?foo=12345&n=11&foo-2=bar&ndd=&foo-3=z'),
qr/n=foo, v=12 n=foo-2, v=ba n=foo-3, v=z/, 'r.send');
'requestText type');
like(http_post('/type?path=requestBuffer'), qr/200 OK.*type: buffer$/s,
'requestBuffer type');
-like(http_post('/request_body_cache'),
- qr/requestText:string requestBuffer:buffer$/s, 'request body cache');
like(http_get('/var'), qr/variable=127.0.0.1/, 'r.variables');
like(http_get('/global'), qr/global=njs/, 'global code');
return http($p, %extra);
}
-sub http_post_big {
- my ($url, %extra) = @_;
-
- my $p = "POST $url HTTP/1.0" . CRLF .
- "Host: localhost" . CRLF .
- "Content-Length: 10240" . CRLF .
- CRLF .
- ("1234567890" x 1024);
-
- return http($p, %extra);
-}
-
###############################################################################
client_body_in_file_only clean;
js_content test.read_body_from_temp_file;
}
+
+ location /request_body_cache {
+ js_content test.request_body_cache;
+ }
}
}
r.return(200, fs.readFileSync(fn));
}
- export default {body, read_body_from_temp_file};
+ function request_body_cache(r) {
+ function t(v) {return Buffer.isBuffer(v) ? 'buffer' : (typeof v);}
+ r.return(200,
+ `requestText:\${t(r.requestText)} requestBuffer:\${t(r.requestBuffer)}`);
+ }
+
+ export default {body, read_body_from_temp_file, request_body_cache};
EOF
-$t->try_run('no njs request body')->plan(4);
+$t->try_run('no njs request body')->plan(5);
###############################################################################
'request body big');
like(http_post_big('/read_body_from_temp_file'),
qr/200.*^(1234567890){1024}$/ms, 'request body big from temp file');
+like(http_post('/request_body_cache'),
+ qr/requestText:string requestBuffer:buffer$/s, 'request body cache');
###############################################################################