Mercurial > hg > nginx-tests
comparison js_subrequests.t @ 1436:9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
author | Dmitry Volyntsev <xeioex@nginx.com> |
---|---|
date | Mon, 28 Jan 2019 16:17:11 +0300 |
parents | f168fc46c7a4 |
children | 95951c72e721 |
comparison
equal
deleted
inserted
replaced
1435:cace66c3ce56 | 1436:9d8b100a6ce3 |
---|---|
246 $t->write_file('test.js', <<EOF); | 246 $t->write_file('test.js', <<EOF); |
247 function test_njs(r) { | 247 function test_njs(r) { |
248 r.return(200, njs.version); | 248 r.return(200, njs.version); |
249 } | 249 } |
250 | 250 |
251 function sr(req) { | 251 function sr(r) { |
252 subrequest_fn(req, ['/p/sub2'], ['uri', 'status']) | 252 subrequest_fn(r, ['/p/sub2'], ['uri', 'status']) |
253 } | 253 } |
254 | 254 |
255 function sr_args(req, res) { | 255 function sr_args(r) { |
256 req.subrequest('/p/sub1', 'h=xxx', function(reply) { | 256 r.subrequest('/p/sub1', 'h=xxx', function(reply) { |
257 res.status = 200; | 257 r.status = 200; |
258 res.sendHeader(); | 258 r.sendHeader(); |
259 res.send(JSON.stringify({h:reply.headers.h})) | 259 r.send(JSON.stringify({h:reply.headersOut.h})) |
260 res.finish(); | 260 r.finish(); |
261 }); | 261 }); |
262 } | 262 } |
263 | 263 |
264 function sr_options_args(req, res) { | 264 function sr_options_args(r) { |
265 req.subrequest('/p/sub1', {args:'h=xxx'}, function(reply) { | 265 r.subrequest('/p/sub1', {args:'h=xxx'}, function(reply) { |
266 res.status = 200; | 266 r.status = 200; |
267 res.sendHeader(); | 267 r.sendHeader(); |
268 res.send(JSON.stringify({h:reply.headers.h})) | 268 r.send(JSON.stringify({h:reply.headersOut.h})) |
269 res.finish(); | 269 r.finish(); |
270 }); | 270 }); |
271 } | 271 } |
272 | 272 |
273 function sr_options_method(req, res) { | 273 function sr_options_method(r) { |
274 req.subrequest('/p/method', {method:'POST'}, body_fwd_cb); | 274 r.subrequest('/p/method', {method:'POST'}, body_fwd_cb); |
275 } | 275 } |
276 | 276 |
277 function sr_options_body(req, res) { | 277 function sr_options_body(r) { |
278 req.subrequest('/p/body', {method:'POST', body:'["REQ-BODY"]'}, | 278 r.subrequest('/p/body', {method:'POST', body:'["REQ-BODY"]'}, |
279 body_fwd_cb); | 279 body_fwd_cb); |
280 } | 280 } |
281 | 281 |
282 function sr_options_method_head(req, res) { | 282 function sr_options_method_head(r) { |
283 req.subrequest('/p/method', {method:'HEAD'}, function(reply) { | 283 r.subrequest('/p/method', {method:'HEAD'}, function(reply) { |
284 res.status = 200; | 284 r.status = 200; |
285 res.sendHeader(); | 285 r.sendHeader(); |
286 res.send(JSON.stringify({c:reply.status, s:reply.body.length})) | 286 r.send(JSON.stringify({c:reply.status, |
287 res.finish(); | 287 s:reply.responseBody.length})) |
288 r.finish(); | |
288 }); | 289 }); |
289 } | 290 } |
290 | 291 |
291 function sr_body(req, res) { | 292 function sr_body(r) { |
292 req.subrequest('/p/sub1', body_fwd_cb); | 293 r.subrequest('/p/sub1', body_fwd_cb); |
293 } | 294 } |
294 | 295 |
295 function sr_body_special(req, res) { | 296 function sr_body_special(r) { |
296 req.subrequest('/p/sub2', body_fwd_cb); | 297 r.subrequest('/p/sub2', body_fwd_cb); |
297 } | 298 } |
298 | 299 |
299 function sr_background(req, res) { | 300 function sr_background(r) { |
300 req.subrequest('/p/background'); | 301 r.subrequest('/p/background'); |
301 req.subrequest('/p/background', 'a=xxx'); | 302 r.subrequest('/p/background', 'a=xxx'); |
302 req.subrequest('/p/background', {args: 'a=yyy', method:'POST'}); | 303 r.subrequest('/p/background', {args: 'a=yyy', method:'POST'}); |
303 | 304 |
304 res.status = 200; | 305 r.status = 200; |
305 res.sendHeader(); | 306 r.sendHeader(); |
306 res.finish(); | 307 r.finish(); |
307 } | 308 } |
308 | 309 |
309 function body(req, res) { | 310 function body(r) { |
310 res.status = 200; | 311 r.status = 200; |
311 res.sendHeader(); | 312 r.sendHeader(); |
312 res.send(req.variables.request_body); | 313 r.send(r.variables.request_body); |
313 res.finish(); | 314 r.finish(); |
314 } | 315 } |
315 | 316 |
316 function delayed(req) { | 317 function delayed(r) { |
317 setTimeout(function(res) { | 318 setTimeout(function(r) { |
318 res.status = 200; | 319 r.status = 200; |
319 res.sendHeader(); | 320 r.sendHeader(); |
320 res.finish(); | 321 r.finish(); |
321 }, 100, req.response); | 322 }, 100, r); |
322 } | 323 } |
323 | 324 |
324 function background(req, res) { | 325 function background(r) { |
325 req.log("BACKGROUND: " + req.variables.request_method | 326 r.log("BACKGROUND: " + r.variables.request_method |
326 + " args: " + req.variables.args); | 327 + " args: " + r.variables.args); |
327 | 328 |
328 res.status = 200; | 329 r.status = 200; |
329 res.sendHeader(); | 330 r.sendHeader(); |
330 res.finish(); | 331 r.finish(); |
331 } | 332 } |
332 | 333 |
333 function sr_in_variable_handler(req, res) { | 334 function sr_in_variable_handler(r) { |
334 } | 335 } |
335 | 336 |
336 function async_var(req, res) { | 337 function async_var(r) { |
337 req.subrequest('/p/delayed', function(reply) { | 338 r.subrequest('/p/delayed', function(reply) { |
338 res.status = 200; | 339 r.status = 200; |
339 res.sendHeader(); | 340 r.sendHeader(); |
340 res.send(JSON.stringify(["CB-VAR"])) | 341 r.send(JSON.stringify(["CB-VAR"])) |
341 res.finish(); | 342 r.finish(); |
342 }) | 343 }) |
343 | 344 |
344 return ""; | 345 return ""; |
345 } | 346 } |
346 | 347 |
347 function sr_file(req, res) { | 348 function sr_file(r) { |
348 req.subrequest('/file/t', body_fwd_cb); | 349 r.subrequest('/file/t', body_fwd_cb); |
349 } | 350 } |
350 | 351 |
351 function sr_cache(req, res) { | 352 function sr_cache(r) { |
352 req.subrequest('/p/t', body_fwd_cb); | 353 r.subrequest('/p/t', body_fwd_cb); |
353 } | 354 } |
354 | 355 |
355 function sr_unavail(req) { | 356 function sr_unavail(req) { |
356 subrequest_fn(req, ['/unavail'], ['uri', 'status']); | 357 subrequest_fn(req, ['/unavail'], ['uri', 'status']); |
357 } | 358 } |
358 | 359 |
359 function sr_broken(req, res) { | 360 function sr_broken(r) { |
360 req.subrequest('/daemon/unfinished', | 361 r.subrequest('/daemon/unfinished', |
361 function(reply) { | 362 function(reply) { |
362 res.status = 200; | 363 r.status = 200; |
363 res.sendHeader(); | 364 r.sendHeader(); |
364 res.send(JSON.stringify({code:reply.status})) | 365 r.send(JSON.stringify({code:reply.status})) |
365 res.finish(); | 366 r.finish(); |
366 }); | 367 }); |
367 } | 368 } |
368 | 369 |
369 function sr_too_large(req, res) { | 370 function sr_too_large(r) { |
370 req.subrequest('/too_large/t', body_fwd_cb); | 371 r.subrequest('/too_large/t', body_fwd_cb); |
371 } | 372 } |
372 | 373 |
373 function sr_in_sr(req, res) { | 374 function sr_in_sr(r) { |
374 req.subrequest('/sr', body_fwd_cb); | 375 r.subrequest('/sr', body_fwd_cb); |
375 } | 376 } |
376 | 377 |
377 function sr_js_in_subrequest(req, res) { | 378 function sr_js_in_subrequest(r) { |
378 req.subrequest('/js_sub', body_fwd_cb); | 379 r.subrequest('/js_sub', body_fwd_cb); |
379 } | 380 } |
380 | 381 |
381 function sr_js_in_sr_parent(r) { | 382 function sr_js_in_sr_parent(r) { |
382 r.subrequest('/sr_parent', body_fwd_cb); | 383 r.subrequest('/sr_parent', body_fwd_cb); |
383 } | 384 } |
406 } | 407 } |
407 | 408 |
408 r.return(200); | 409 r.return(200); |
409 } | 410 } |
410 | 411 |
411 function sr_out_of_order(req) { | 412 function sr_out_of_order(r) { |
412 subrequest_fn(req, ['/p/delayed', '/p/sub1', '/unknown'], | 413 subrequest_fn(r, ['/p/delayed', '/p/sub1', '/unknown'], |
413 ['uri', 'status']); | 414 ['uri', 'status']); |
414 } | 415 } |
415 | 416 |
416 function subrequest_fn(req, subs, props) { | 417 function subrequest_fn(r, subs, props) { |
417 var r, replies = []; | 418 var rep, replies = []; |
418 | 419 |
419 subs.forEach(function(sr) { | 420 subs.forEach(function(sr) { |
420 req.subrequest(sr, function(reply) { | 421 r.subrequest(sr, function(reply) { |
421 req.log("subrequest handler: " + reply.uri | 422 r.log("subrequest handler: " + reply.uri |
422 + " status: " + reply.status) | 423 + " status: " + reply.status) |
423 | 424 |
424 r = {}; | 425 rep = {}; |
425 props.forEach(function (p) {r[p] = reply[p]}); | 426 props.forEach(function (p) {rep[p] = reply[p]}); |
426 | 427 |
427 replies.push(r); | 428 replies.push(rep); |
428 | 429 |
429 if (replies.length == subs.length) { | 430 if (replies.length == subs.length) { |
430 var res = req.response; | 431 r.status = 200; |
431 res.status = 200; | 432 r.sendHeader(); |
432 res.sendHeader(); | 433 r.send(JSON.stringify(replies)); |
433 res.send(JSON.stringify(replies)); | 434 r.finish(); |
434 res.finish(); | |
435 } | 435 } |
436 }); | 436 }); |
437 }); | 437 }); |
438 } | 438 } |
439 | 439 |
440 function sr_except_not_a_func(req, res) { | 440 function sr_except_not_a_func(r) { |
441 req.subrequest('/sub1', 'a=1', 'b'); | 441 r.subrequest('/sub1', 'a=1', 'b'); |
442 } | 442 } |
443 | 443 |
444 function sr_except_failed_to_convert_arg(req, res) { | 444 function sr_except_failed_to_convert_arg(r) { |
445 req.subrequest('/sub1', req.args, function(){}); | 445 r.subrequest('/sub1', r.args, function(){}); |
446 } | 446 } |
447 | 447 |
448 function sr_except_failed_to_convert_options_arg(req, res) { | 448 function sr_except_failed_to_convert_options_arg(r) { |
449 req.subrequest('/sub1', {args:req.args}, function(){}); | 449 r.subrequest('/sub1', {args:r.args}, function(){}); |
450 } | 450 } |
451 | 451 |
452 function sr_except_invalid_options_method(req, res) { | 452 function sr_except_invalid_options_method(r) { |
453 req.subrequest('/sub1', {method:'UNKNOWN_METHOD'}, function(){}); | 453 r.subrequest('/sub1', {method:'UNKNOWN_METHOD'}, function(){}); |
454 } | 454 } |
455 | 455 |
456 function sr_uri_except(req, res) { | 456 function sr_uri_except(r) { |
457 req.subrequest(req, 'a=1', 'b'); | 457 r.subrequest(r, 'a=1', 'b'); |
458 } | 458 } |
459 | 459 |
460 function body_fwd_cb(reply) { | 460 function body_fwd_cb(reply) { |
461 var res = reply.parent.response; | 461 var p = reply.parent; |
462 res.status = 200; | 462 p.status = 200; |
463 res.sendHeader(); | 463 p.sendHeader(); |
464 res.send(JSON.stringify(JSON.parse(reply.body))); | 464 p.send(JSON.stringify(JSON.parse(reply.responseBody))); |
465 res.finish(); | 465 p.finish(); |
466 } | 466 } |
467 | 467 |
468 function js_sub(req, res) { | 468 function js_sub(r) { |
469 res.status = 200; | 469 r.status = 200; |
470 res.sendHeader(); | 470 r.sendHeader(); |
471 res.send('["JS-SUB"]'); | 471 r.send('["JS-SUB"]'); |
472 res.finish(); | 472 r.finish(); |
473 } | 473 } |
474 | 474 |
475 EOF | 475 EOF |
476 | 476 |
477 $t->write_file('t', '["SEE-THIS"]'); | 477 $t->write_file('t', '["SEE-THIS"]'); |