diff options
Diffstat (limited to 'debian/vendor-h2o/t/50file-config.t')
-rw-r--r-- | debian/vendor-h2o/t/50file-config.t | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/debian/vendor-h2o/t/50file-config.t b/debian/vendor-h2o/t/50file-config.t deleted file mode 100644 index aa58e69..0000000 --- a/debian/vendor-h2o/t/50file-config.t +++ /dev/null @@ -1,143 +0,0 @@ -use strict; -use warnings; -use Test::More; -use t::Util; - -plan skip_all => 'curl not found' - unless prog_exists('curl'); - -subtest 'root-redirect' => sub { - my $server = spawn_h2o(<< "EOT"); -hosts: - default: - paths: - /abc: - file.dir: @{[ DOC_ROOT ]} -EOT - - run_with_curl($server, sub { - my ($proto, $port, $curl) = @_; - my ($stderr, $stdout) = run_prog("$curl --silent --show-error --max-redirs 0 --dump-header /dev/stderr $proto://127.0.0.1:$port/abc"); - like $stderr, qr{^HTTP/[^ ]+ 301\s}s, "is 301"; - like $stderr, qr{^location: ?/abc/\r$}im, "location header"; - }); -}; - -subtest 'etag' => sub { - my $fetch = sub { - my $extra_conf = shift; - my $server = spawn_h2o(<< "EOT"); -hosts: - default: - paths: - /: - file.dir: examples/doc_root -$extra_conf -EOT - return `curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}/ 2>&1 > /dev/null`; - }; - - my $etag_re = qr/^etag: /im; - my $resp = $fetch->(''); - like $resp, $etag_re, "default is on"; - $resp = $fetch->('file.etag: off'); - unlike $resp, $etag_re, "off"; - $resp = $fetch->('file.etag: on'); - like $resp, $etag_re, "on"; -}; - -subtest 'send-compressed' => sub { - my $doit = sub { - my ($send_compressed, $curl_opts, $paths, $expected_length) = @_; - my $server = spawn_h2o(<< "EOT"); -hosts: - default: - paths: - /: - file.dir: t/assets/doc_root -@{[ $send_compressed ? "file.send-compressed: $send_compressed" : "" ]} -EOT - my $fetch = sub { - my $path = shift; - subtest "send-compressed:@{[ $send_compressed || q(default) ]}, $curl_opts, $path" => sub { - my $resp = `curl --silent --dump-header /dev/stderr $curl_opts http://127.0.0.1:$server->{port}$path 2>&1 > /dev/null`; - if ($send_compressed ne 'gunzip') { - like $resp, qr/^content-length:\s*$expected_length\r$/im, "length is as expected"; - } - if ($send_compressed eq 'ON' || $send_compressed eq 'gunzip') { - like $resp, qr/^vary:\s*accept-encoding\r$/im, "has vary set"; - } else { - unlike $resp, qr/^vary:\s*accept-encoding\r$/im, "not has vary set"; - } - }; - }; - $fetch->($_) for @$paths; - }; - - my $index_orig_len = (stat 't/assets/doc_root/index.txt')[7]; - my $index_gz_len = (stat 't/assets/doc_root/index.txt.gz')[7]; - my $index_br_len = (stat 't/assets/doc_root/index.txt.br')[7]; - my $alice2_orig_len = `gzip -cd < t/assets/doc_root/alice2.txt.gz | wc -c`; - my $alice2_gz_len = (stat 't/assets/doc_root/alice2.txt.gz')[7]; - - $doit->("", "", ['/index.txt', '/'], $index_orig_len); - $doit->("", q{--header "Accept-Encoding: gzip"}, ['/index.txt', '/'], $index_orig_len); - $doit->("OFF", q{--header "Accept-Encoding: gzip"}, ['/index.txt', '/'], $index_orig_len); - $doit->("OFF", q{--header "Accept-Encoding: br, gzip"}, ['/index.txt', '/'], $index_orig_len); - - $doit->("ON", "", ['/index.txt', '/'], $index_orig_len); - $doit->("ON", q{--header "Accept-Encoding: gzip"}, ['/index.txt', '/'], $index_gz_len); - $doit->("ON", q{--header "Accept-Encoding: gzip, deflate"}, ['/index.txt', '/'], $index_gz_len); - $doit->("ON", q{--header "Accept-Encoding: deflate, gzip"}, ['/index.txt', '/'], $index_gz_len); - $doit->("ON", q{--header "Accept-Encoding: deflate"}, ['/index.txt', '/'], $index_orig_len); - $doit->("ON", q{--header "Accept-Encoding: br, gzip"}, ['/index.txt', '/'], $index_br_len); - $doit->("ON", q{--header "Accept-Encoding: gzip, br"}, ['/index.txt', '/'], $index_br_len); - $doit->("ON", q{--header "Accept-Encoding: br"}, ['/index.txt', '/'], $index_br_len); - - $doit->("gunzip", "", ['/alice2.txt'], $alice2_orig_len); - $doit->("gunzip", q{--header "Accept-Encoding: gzip"}, ['/alice2.txt'], $alice2_gz_len); - - - subtest 'MSIE-workaround' => sub { - my $server = spawn_h2o(<< "EOT"); -hosts: - default: - paths: - /: - file.dir: t/assets/doc_root - file.send-gzip: ON -EOT - my $resp = `curl --silent --dump-header /dev/stderr --user-agent "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" --header "Accept-Encoding: gzip" http://127.0.0.1:$server->{port}/ 2>&1 > /dev/null`; - like $resp, qr/^content-length:\s*$index_gz_len\r$/im, "length is as expected"; - like $resp, qr/^cache-control:.*private.*\r$/im, "cache-control: private"; - unlike $resp, qr/^vary:/im, "no vary"; - }; -}; - -subtest 'dir-listing' => sub { - my $server = spawn_h2o(<< 'EOT'); -hosts: - default: - paths: - /off: - file.dir: examples/doc_root - file.dirlisting: off - /on: - file.dir: examples/doc_root - file.dirlisting: on - file.index: [] -EOT - - my $fetch = sub { - my $path = shift; - run_prog("curl --silent --dump-header /dev/stderr http://127.0.0.1:$server->{port}$path"); - }; - - my ($headers, $content) = $fetch->("/on/"); - like $headers, qr{^HTTP/1\.[0-9]+ 200 }s, "ON returns 200"; - unlike $content, qr{examples}, "result should not include internal info"; - ($headers, $content) = $fetch->("/off/"); - like $headers, qr{^HTTP/1\.[0-9]+ 403 }s, "OFF returns 403"; -}; - -done_testing(); |