Mercurial > hg > nginx-tests
view dav.t @ 163:450206ed1fd2
Tests: move logging out of alarm.
Logging large amounts of data may be terminated by alarm() which isn't
really good (and likely to corrupt TAP output). Problem seen on limit_req.t
test with logging enabled.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 01 Aug 2011 21:23:49 +0400 |
parents | 2644bad81b0b |
children | c0ae29632905 |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for nginx dav module. ############################################################################### use warnings; use strict; use Test::More; 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 dav/)->plan(13); $t->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% master_process off; daemon off; events { } http { %%TEST_GLOBALS_HTTP%% server { listen 127.0.0.1:8080; server_name localhost; location / { dav_methods PUT DELETE MKCOL COPY MOVE; } } } EOF $t->run(); ############################################################################### my $r; $r = http(<<EOF . '0123456789'); PUT /file HTTP/1.1 Host: localhost Connection: close Content-Length: 10 EOF like($r, qr/201 Created.*(Content-Length|\x0d\0a0\x0d\x0a)/ms, 'put file'); is(-s $t->testdir() . '/file', 10, 'put file size'); $r = http(<<EOF); PUT /file HTTP/1.1 Host: localhost Connection: close Content-Length: 0 EOF like($r, qr/204 No Content/, 'put file again'); unlike($r, qr/Content-Length|Transfer-Encoding/, 'no length in 204'); is(-s $t->testdir() . '/file', 0, 'put file again size'); $r = http(<<EOF); DELETE /file HTTP/1.1 Host: localhost Connection: close Content-Length: 0 EOF like($r, qr/204 No Content/, 'delete file'); unlike($r, qr/Content-Length|Transfer-Encoding/, 'no length in 204'); ok(!-f $t->testdir() . '/file', 'file deleted'); $r = http(<<EOF . '0123456789' . 'extra'); PUT /file HTTP/1.1 Host: localhost Connection: close Content-Length: 10 EOF like($r, qr/201 Created.*(Content-Length|\x0d\0a0\x0d\x0a)/ms, 'put file extra data'); TODO: { local $TODO = 'not yet'; is(-s $t->testdir() . '/file', 10, 'put file extra data size'); } TODO: { local $TODO = 'broken in 0.8.32'; # 201 replies contain body, response should indicate it's empty # before 0.8.32 chunked was explicitly disabled for 201 replies so # connection was just closed (which isn't perfect but worked) $r = http(<<EOF); MKCOL /test/ HTTP/1.1 Host: localhost Connection: close EOF like($r, qr/201 Created.*(Content-Length|\x0d\0a0\x0d\x0a)/ms, 'mkcol'); $r = http(<<EOF); COPY /test/ HTTP/1.1 Host: localhost Destination: /test-moved/ Connection: close EOF like($r, qr/201 Created.*(Content-Length|\x0d\0a0\x0d\x0a)/ms, 'copy dir'); $r = http(<<EOF); MOVE /test/ HTTP/1.1 Host: localhost Destination: /test-moved/ Connection: close EOF like($r, qr/201.*(Content-Length|\x0d\0a0\x0d\x0a)/ms, 'move dir'); } ###############################################################################