summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/t/50mimemap.t
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--web/server/h2o/libh2o/t/50mimemap.t88
1 files changed, 88 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/t/50mimemap.t b/web/server/h2o/libh2o/t/50mimemap.t
new file mode 100644
index 00000000..c85febd9
--- /dev/null
+++ b/web/server/h2o/libh2o/t/50mimemap.t
@@ -0,0 +1,88 @@
+use strict;
+use warnings;
+use Test::More;
+use t::Util;
+
+my $CURL_CMD = q{curl --silent --show-error --output /dev/null --write-out '%{content_type}'};
+
+plan skip_all => 'curl not found'
+ unless prog_exists('curl');
+
+subtest "basic" => sub {
+ my $server = spawn_h2o(<< 'EOT');
+hosts:
+ default:
+ paths:
+ /:
+ file.dir: t/50mimemap/doc_root
+ /addtypes:
+ file.dir: t/50mimemap/doc_root
+ file.mime.addtypes:
+ application/xhtml+xml: .xhtml
+ /removetypes:
+ file.dir: t/50mimemap/doc_root
+ file.mime.removetypes:
+ - .xhtml
+ /settypes:
+ file.dir: t/50mimemap/doc_root
+ file.mime.settypes:
+ text/xml: .xhtml
+ file.mime.addtypes:
+ application/xml: .xhtml
+ default-type-test:
+ paths:
+ /:
+ file.dir: t/50mimemap/doc_root
+ file.mime.setdefaulttype: application/xhtml+xml
+file.index:
+ - index.xhtml
+EOT
+
+ my $port = $server->{port};
+ my %expected = (
+ '/' => 'application/xml',
+ '/addtypes/' => 'application/xhtml+xml',
+ '/removetypes/' => 'application/octet-stream',
+ '/settypes/' => 'text/xml',
+ );
+
+ for my $path (sort keys %expected) {
+ my $ct = `$CURL_CMD http://127.0.0.1:$port$path`;
+ is $ct, $expected{$path}, "$path";
+ $ct = `$CURL_CMD http://127.0.0.1:$port${path}index.xhtml`;
+ is $ct, $expected{$path}, "${path}index.xhtml";
+ }
+
+ my $ct = `$CURL_CMD --header 'host: default-type-test' http://127.0.0.1:$port/`;
+ is $ct, 'application/xhtml+xml', 'setdefaulttype';
+};
+
+subtest "issue730" => sub {
+ my $server = spawn_h2o(<< 'EOT');
+hosts:
+ default:
+ paths:
+ /:
+ file.dir: t/assets/doc_root
+file.mime.addtypes:
+ "text/plain; charset=mycharset": ".txt"
+EOT
+ my $ct = `$CURL_CMD http://127.0.0.1:$server->{port}/index.txt`;
+ is $ct, "text/plain; charset=mycharset";
+};
+
+subtest "reset mimemap to minimum" => sub {
+ my $server = spawn_h2o(<< 'EOT');
+file.mime.setdefaulttype: "application/octet-stream"
+file.mime.settypes: {}
+hosts:
+ default:
+ paths:
+ /:
+ file.dir: t/assets/doc_root
+EOT
+ my $ct = `$CURL_CMD http://127.0.0.1:$server->{port}/index.txt`;
+ is $ct, "application/octet-stream";
+};
+
+done_testing;