Mercurial > hg > nginx-tests
view proxy_cookie.t @ 1279:da2ad1d72bb6
Tests: HTTP/2 server push.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 08 Feb 2018 21:52:23 +0300 |
parents | 882267679006 |
children | bff287fbf347 |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # (C) Valentin Bartenev # Tests for the proxy_cookie_domain and proxy_cookie_path directives. ############################################################################### 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 proxy rewrite/); $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; location / { proxy_pass http://127.0.0.1:8081; proxy_cookie_domain www.example.org .example.com; proxy_cookie_domain .$server_name.com en.$server_name.org; proxy_cookie_domain ~^(.+)\.com$ $1.org; proxy_cookie_path /path/ /new/; proxy_cookie_path /$server_name/ /new/$server_name/; proxy_cookie_path ~^/regex/(.+)$ /$1; proxy_cookie_path ~*^/caseless/(.+)$ /$1; } } server { listen 127.0.0.1:8081; server_name localhost; location / { if ($arg_domain) { set $sc_domain "; Domain=$arg_domain"; } if ($arg_path) { set $sc_path "; Path=$arg_path"; } add_header Set-Cookie v=path=domain=$sc_domain$sc_path; return 200 OK; } } } EOF $t->run()->plan(8); ############################################################################### my $port = port(8080); is(http_get_set_cookie('/?domain=www.Example.org'), 'v=path=domain=; Domain=example.com', 'domain rewrite'); is(http_get_set_cookie('/?domain=.LocalHost.com'), 'v=path=domain=; Domain=.en.localhost.org', 'domain rewrite with vars'); is(http_get_set_cookie('/?domain=www.example.COM'), 'v=path=domain=; Domain=www.example.org', 'domain regex rewrite'); is(http_get_set_cookie('/?path=/path/test.html'), 'v=path=domain=; Path=/new/test.html', 'path rewrite'); is(http_get_set_cookie('/?path=/localhost/test.html'), 'v=path=domain=; Path=/new/localhost/test.html', 'path rewrite with vars'); is(http_get_set_cookie('/?path=/regex/test.html'), 'v=path=domain=; Path=/test.html', 'path regex rewrite'); is(http_get_set_cookie('/?path=/CASEless/test.html'), 'v=path=domain=; Path=/test.html', 'path caseless regex rewrite'); is(http_get_set_cookie('/?domain=www.example.org&path=/path/test.html'), 'v=path=domain=; Domain=example.com; Path=/new/test.html', 'domain and path rewrite'); ############################################################################### sub http_get_set_cookie { my ($uri) = @_; http_get("http://127.0.0.1:$port$uri") =~ /^Set-Cookie:\s(.+?)\x0d?$/mi; return $1; } ###############################################################################