diff --git a/http_absolute_redirect.t b/http_absolute_redirect.t
new file mode 100644
index 0000000..d7fb8f0
--- /dev/null
+++ b/http_absolute_redirect.t
@@ -0,0 +1,102 @@
+#!/usr/bin/perl
+
+# (C) Sergey Kandaurov
+# (C) Nginx, Inc.
+
+# Tests for absolute_redirect directive.
+
+###############################################################################
+
+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/)
+	->write_file_expand('nginx.conf', <<'EOF');
+
+%%TEST_GLOBALS%%
+
+daemon off;
+
+events {
+}
+
+http {
+    %%TEST_GLOBALS_HTTP%%
+
+    absolute_redirect off;
+
+    server {
+        listen       127.0.0.1:8080;
+        server_name  on;
+
+        absolute_redirect on;
+
+        location / { }
+
+        location /auto/ {
+            proxy_pass http://127.0.0.1:8080;
+        }
+
+        location /return301 {
+            return 301 /redirect;
+        }
+    }
+
+    server {
+        listen       127.0.0.1:8080;
+        server_name  off;
+
+        location / { }
+
+        location /auto/ {
+            proxy_pass http://127.0.0.1:8080;
+        }
+
+        location /return301 {
+            return 301 /redirect;
+        }
+    }
+}
+
+EOF
+
+mkdir($t->testdir() . '/dir');
+
+$t->try_run('no absolute_redirect')->plan(6);
+
+###############################################################################
+
+my $p = port(8080);
+
+like(get('on', '/dir'), qr!Location: http://on:$p/dir/!, 'directory');
+like(get('on', '/auto'), qr!Location: http://on:$p/auto/!, 'auto');
+like(get('on', '/return301'), qr!Location: http://on:$p/redirect!, 'return');
+
+like(get('off', '/dir'), qr!Location: /dir/!, 'off directory');
+like(get('off', '/auto'), qr!Location: /auto/!, 'off auto');
+like(get('off', '/return301'), qr!Location: /redirect!, 'off return');
+
+###############################################################################
+
+sub get {
+	my ($host, $uri) = @_;
+	http(<<EOF);
+GET $uri HTTP/1.0
+Host: $host
+
+EOF
+}
+
+###############################################################################
