about summary refs log tree commit homepage
path: root/t/repobrowse_git_raw.t
diff options
context:
space:
mode:
Diffstat (limited to 't/repobrowse_git_raw.t')
-rw-r--r--t/repobrowse_git_raw.t30
1 files changed, 30 insertions, 0 deletions
diff --git a/t/repobrowse_git_raw.t b/t/repobrowse_git_raw.t
new file mode 100644
index 00000000..2048d82a
--- /dev/null
+++ b/t/repobrowse_git_raw.t
@@ -0,0 +1,30 @@
+# Copyright (C) 2016 all contributors <meta@public-inbox.org>
+# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
+use strict;
+use warnings;
+my $test = require './t/repobrowse_common_git.perl';
+
+test_psgi($test->{app}, sub {
+        my ($cb) = @_;
+
+        my $req = 'http://example.com/test.git/raw/master/dir';
+        my $res = $cb->(GET($req));
+        is(200, $res->code, 'got 200 response from dir');
+        my $noslash_body = dechunk($res);
+        like($noslash_body, qr{href="dir/dur">dur</a></li>},
+                'path ok w/o slash');
+
+        my $slash = $req . '/';
+        my $r2 = $cb->(GET($slash));
+        is(200, $r2->code, 'got 200 response from dir');
+        my $slash_body = dechunk($r2);
+        like($slash_body, qr{href="\./dur\">dur</a></li>}, 'path ok w/ slash');
+
+        $req = 'http://example.com/test.git/raw/master/foo.txt';
+        my $blob = $cb->(GET($req));
+        like($blob->header('Content-Type'), qr!\Atext/plain\b!,
+                'got text/plain blob');
+        is($blob->content, "-----\nhello\nworld\n", 'raw blob passed');
+});
+
+done_testing();