Mercurial > hg > nginx-tests
comparison stream_js.t @ 1003:a86034bcbe82
Tests: stream JavaScript tests.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Tue, 02 Aug 2016 18:39:08 +0300 |
parents | |
children | 557faa1782e5 |
comparison
equal
deleted
inserted
replaced
1002:3b1ee8acc4db | 1003:a86034bcbe82 |
---|---|
1 #!/usr/bin/perl | |
2 | |
3 # (C) Andrey Zelenkov | |
4 # (C) Nginx, Inc. | |
5 | |
6 # Tests for stream JavaScript module. | |
7 | |
8 ############################################################################### | |
9 | |
10 use warnings; | |
11 use strict; | |
12 | |
13 use Test::More; | |
14 | |
15 BEGIN { use FindBin; chdir($FindBin::Bin); } | |
16 | |
17 use lib 'lib'; | |
18 use Test::Nginx; | |
19 use Test::Nginx::Stream qw/ stream /; | |
20 | |
21 ############################################################################### | |
22 | |
23 select STDERR; $| = 1; | |
24 select STDOUT; $| = 1; | |
25 | |
26 my $t = Test::Nginx->new()->has(qw/stream stream_return/) | |
27 ->write_file_expand('nginx.conf', <<'EOF'); | |
28 | |
29 %%TEST_GLOBALS%% | |
30 | |
31 daemon off; | |
32 | |
33 events { | |
34 } | |
35 | |
36 stream { | |
37 js_set $js_addr js_addr; | |
38 js_set $js_var js_var; | |
39 js_set $js_log js_log; | |
40 js_set $js_unk js_unk; | |
41 js_set $js_sess_unk js_sess_unk; | |
42 | |
43 js_include functions.js; | |
44 | |
45 server { | |
46 listen 127.0.0.1:8080; | |
47 return $js_addr; | |
48 } | |
49 | |
50 server { | |
51 listen 127.0.0.1:8081; | |
52 return $js_log; | |
53 } | |
54 | |
55 server { | |
56 listen 127.0.0.1:8082; | |
57 return $js_var; | |
58 } | |
59 | |
60 server { | |
61 listen 127.0.0.1:8083; | |
62 return $js_unk; | |
63 } | |
64 | |
65 server { | |
66 listen 127.0.0.1:8084; | |
67 return $js_sess_unk; | |
68 } | |
69 } | |
70 | |
71 EOF | |
72 | |
73 $t->write_file('functions.js', <<EOF); | |
74 function js_addr(sess) { | |
75 return 'addr=' + sess.remoteAddress; | |
76 } | |
77 | |
78 function js_var(sess) { | |
79 return 'variable=' + sess.variables.remote_addr; | |
80 } | |
81 | |
82 function js_sess_unk(sess) { | |
83 return 'sess_unk=' + sess.unk; | |
84 } | |
85 | |
86 function js_log(sess) { | |
87 sess.log("SEE-THIS"); | |
88 } | |
89 EOF | |
90 | |
91 $t->try_run('no stream njs available')->plan(6); | |
92 | |
93 ############################################################################### | |
94 | |
95 is(stream('127.0.0.1:' . port(8080))->read(), 'addr=127.0.0.1', | |
96 'sess.remoteAddress'); | |
97 is(stream('127.0.0.1:' . port(8081))->read(), 'undefined', 'sess.log'); | |
98 is(stream('127.0.0.1:' . port(8082))->read(), 'variable=127.0.0.1', | |
99 'sess.variables'); | |
100 is(stream('127.0.0.1:' . port(8083))->read(), '', 'stream js unknown function'); | |
101 is(stream('127.0.0.1:' . port(8084))->read(), 'sess_unk=undefined', 'sess.unk'); | |
102 | |
103 $t->stop(); | |
104 | |
105 ok(index($t->read_file('error.log'), 'SEE-THIS') > 0, 'stream js log'); | |
106 | |
107 ############################################################################### |