Mercurial > hg > nginx-tests
view dav_chunked.t @ 263:71bb2a896c7a
Tests: more Upgrade handling tests.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 18 Feb 2013 19:33:34 +0400 |
parents | 6a0d934950bc |
children | 8dac281ff522 |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for nginx dav module with chunked request body. ############################################################################### 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 dav/)->plan(6); $t->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; client_header_buffer_size 1k; client_body_buffer_size 2k; location / { dav_methods PUT; } } } EOF $t->run(); ############################################################################### TODO: { local $TODO = 'not yet' unless $t->has_version('1.3.9'); my $r; $r = http(<<EOF); PUT /file HTTP/1.1 Host: localhost Connection: close Transfer-Encoding: chunked a 1234567890 0 EOF like($r, qr/201 Created.*(Content-Length|\x0d\0a0\x0d\x0a)/ms, 'put chunked'); is(read_file($t->testdir() . '/file'), '1234567890', 'put content'); $r = http(<<EOF); PUT /file HTTP/1.1 Host: localhost Connection: close Transfer-Encoding: chunked 0 EOF like($r, qr/204 No Content/, 'put chunked empty'); is(read_file($t->testdir() . '/file'), '', 'put empty content'); my $body = ('a' . CRLF . '1234567890' . CRLF) x 1024 . '0' . CRLF . CRLF; $r = http(<<EOF); PUT /file HTTP/1.1 Host: localhost Connection: close Transfer-Encoding: chunked $body EOF like($r, qr/204 No Content/, 'put chunked big'); is(read_file($t->testdir() . '/file'), '1234567890' x 1024, 'put big content'); } ############################################################################### sub read_file { my ($file) = @_; open FILE, $file or return "$!"; local $/; my $content = <FILE>; close FILE; return $content; } ###############################################################################