Mercurial > hg > nginx-tests
view sub_filter_perl.t @ 312:b639e76ba923
Tests: limit_zone regex updated to follow the module renaming.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 15 Jul 2013 13:06:15 +0400 |
parents | 6bee817c9e97 |
children | eb6f293b512b |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for sub filter, extended tests using embedded perl. ############################################################################### use warnings; use strict; use Test::More; use Socket qw/ CRLF /; BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; use Test::Nginx; ############################################################################### select STDERR; $| = 1; select STDOUT; $| = 1; my $t = Test::Nginx->new()->has(qw/http sub perl/)->plan(9) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% daemon off; events { } http { %%TEST_GLOBALS_HTTP%% server { listen 127.0.0.1:8080; server_name localhost; sub_filter_types *; sub_filter foobarbaz replaced; location / { perl 'sub { my $r = shift; $r->send_http_header("text/html"); return OK if $r->header_only; $r->print("foo"); $r->flush(); $r->print("bar"); $r->flush(); $r->print("baz"); return OK; }'; } location /multi { sub_filter aab _replaced; perl 'sub { my $r = shift; $r->send_http_header("text/html"); return OK if $r->header_only; $r->print($r->variable("arg_a")); $r->print($r->variable("arg_b")); return OK; }'; } } } EOF $t->run(); ############################################################################### like(http_get('/flush'), qr/^replaced$/m, 'flush'); like(http_get('/multi?a=a&b=ab'), qr/^_replaced$/m, 'aab in a + ab'); like(http_get('/multi?a=a&b=aaab'), qr/^aa_replaced$/m, 'aab in a + aaab'); TODO: { local $TODO = 'not yet'; like(http_get('/multi?a=a&b=aab'), qr/a_replaced/, 'aab in a + aab'); like(http_get('/multi?a=a&b=aaaab'), qr/aaa_replaced/, 'aab in a + aaaab'); } TODO: { local $TODO = 'not yet'; like(http_get('/multi?a=aa&b=ab'), qr/a_replaced/, 'aab in aa + ab'); like(http_get('/multi?a=aa&b=aab'), qr/aa_replaced/, 'aab in aa + aab'); like(http_get('/multi?a=aa&b=aaab'), qr/aaa_replaced/, 'aab in aa + aaab'); } like(http_get('/multi?a=aa&b=aaaab'), qr/aaaa_replaced/, 'aab in aa + aaaab'); ###############################################################################