Mercurial > hg > nginx-tests
view sub_filter.t @ 334:c0bd624db067
Tests: disable error_log.t on win32 as it uses shared memory.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 16 Sep 2013 23:55:04 +0400 |
parents | e9de4da234c0 |
children | 847ea345becb |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for sub filter. ############################################################################### 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 rewrite sub/)->plan(14) ->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 foo bar; location / { } location /once { return 200 $arg_b; } location /many { sub_filter_once off; return 200 $arg_b; } location /complex { sub_filter abac _replaced; return 200 $arg_b; } location /complex2 { sub_filter ababX _replaced; return 200 $arg_b; } location /complex3 { sub_filter aab _replaced; return 200 $arg_b; } } } EOF $t->write_file('foo.html', 'foo'); $t->write_file('foofoo.html', 'foofoo'); $t->run(); ############################################################################### like(http_get('/foo.html'), qr/bar/, 'sub_filter'); like(http_get('/foofoo.html'), qr/barfoo/, 'once default'); like(http_get('/once?b=foofoo'), qr/barfoo/, 'once'); like(http_get('/many?b=foofoo'), qr/barbar/, 'many'); TODO: { local $TODO = 'not yet' unless $t->has_version('1.5.3'); like(http_get('/many?b=fo'), qr/fo/, 'incomplete'); like(http_get('/many?b=foofo'), qr/barfo/, 'incomplete long'); } like(http_get('/complex?b=abac'), qr/_replaced/, 'complex'); like(http_get('/complex?b=abaabac'), qr/aba_replaced/, 'complex 1st char'); TODO: { local $TODO = 'not yet' unless $t->has_version('1.5.3'); like(http_get('/complex?b=ababac'), qr/replaced/, 'complex 2nd char'); } like(http_get('/complex2?b=ababX'), qr/_replaced/, 'complex2'); TODO: { local $TODO = 'not yet' unless $t->has_version('1.5.3'); like(http_get('/complex2?b=abababX'), qr/ab_replaced/, 'complex2 long'); } like(http_get('/complex3?b=aab'), qr/_replaced/, 'complex3 aab in aab'); TODO: { local $TODO = 'not yet' unless $t->has_version('1.5.3'); like(http_get('/complex3?b=aaab'), qr/a_replaced/, 'complex3 aab in aaab'); } like(http_get('/complex3?b=aaaab'), qr/aa_replaced/, 'complex3 aab in aaaab'); ###############################################################################