summaryrefslogtreecommitdiffstats
path: root/debian/vendor-h2o/t/50internal-redirect.t
diff options
context:
space:
mode:
Diffstat (limited to 'debian/vendor-h2o/t/50internal-redirect.t')
-rw-r--r--debian/vendor-h2o/t/50internal-redirect.t117
1 files changed, 0 insertions, 117 deletions
diff --git a/debian/vendor-h2o/t/50internal-redirect.t b/debian/vendor-h2o/t/50internal-redirect.t
deleted file mode 100644
index 01311e5..0000000
--- a/debian/vendor-h2o/t/50internal-redirect.t
+++ /dev/null
@@ -1,117 +0,0 @@
-use strict;
-use warnings;
-use File::Temp qw(tempfile);
-use Net::EmptyPort qw(check_port empty_port);
-use Digest::MD5 qw(md5_hex);
-use Test::More;
-use t::Util;
-
-plan skip_all => "curl not found"
- unless prog_exists("curl");
-
-my $upstream_port = empty_port();
-my $upstream = spawn_server(
- argv => [ qw(plackup -s Starlet --access-log /dev/null --listen), $upstream_port, ASSETS_DIR . "/upstream.psgi" ],
- is_ready => sub {
- check_port($upstream_port);
- },
-);
-
-subtest 'reproxy' => sub {
- my ($port1, $port2) = empty_ports(2, { host => "0.0.0.0" });
- my $path_conf = << "EOT";
- proxy.reverse.url: http://127.0.0.1:$upstream_port
-EOT
- doit($port1, $path_conf, $port2, $path_conf, sub {
- `curl --silent 'http://127.0.0.1:$port1/?resp:x-reproxy-url=http://127.0.0.1:$port2/'`;
- });
-};
-
-subtest 'location' => sub {
- my ($port1, $port2) = empty_ports(2, { host => "0.0.0.0" });
- my $path_conf1 = << "EOT";
- redirect:
- status: 302
- internal: YES
- url: http://127.0.0.1:$port2/
-EOT
- my $path_conf2 = << "EOT";
- file.dir: t/assets/doc_root
-EOT
- doit($port1, $path_conf1, $port2, $path_conf2, sub {
- `curl --silent --max-redirs 0 'http://127.0.0.1:$port1/'`;
- });
-};
-
-subtest 'errordoc' => sub {
- my ($port1, $port2) = empty_ports(2, { host => "0.0.0.0" });
- my $path_conf1 = << "EOT";
- file.dir: t/assets/doc_root
- error-doc:
- status: 404
- url: http://127.0.0.1:$port2/index.txt
-EOT
- my $path_conf2 = << "EOT";
- file.dir: t/assets/doc_root
-EOT
- doit($port1, $path_conf1, $port2, $path_conf2, sub {
- `curl --silent 'http://127.0.0.1:$port1/404'`;
- });
-};
-
-done_testing;
-
-sub doit {
- my ($port1, $path_conf1, $port2, $path_conf2, $cb) = @_;
- (undef, my $access_log) = tempfile(UNLINK => 1);
- my $conf = << "EOT";
-access-log: $access_log
-reproxy: ON
-hosts:
- "127.0.0.1:$port1":
- listen:
- host: 0.0.0.0
- port: $port1
- paths:
- "/":
-$path_conf1
- "127.0.0.1:$port2":
- listen:
- host: 0.0.0.0
- port: $port2
- paths:
- "/":
-$path_conf2
-EOT
- my $server = _spawn_h2o_raw($conf, [$port1, $port2]);
- $cb->();
-
- my @log = do {
- open my $fh, '<', $access_log or die "failed to open log file: $!";
- <$fh>;
- };
- is scalar(@log), 1, 'redirected internally';
-}
-
-sub _spawn_h2o_raw {
- my ($conf, $ports) = @_;
- my @opts;
-
- my ($conffh, $conffn) = tempfile(UNLINK => 1);
- print $conffh $conf;
-
- my ($guard, $pid) = spawn_server(
- argv => [ bindir() . "/h2o", "-c", $conffn ],
- is_ready => sub {
- check_port($_) or return for @$ports;
- 1;
- },
- );
- my $ret = {
- guard => $guard,
- pid => $pid,
- conf_file => $conffn,
- };
- return $ret;
-}
-