defined($ENV{PLACK_TEST_EXTERNALSERVER_URI}) or
open STDERR, '>&', $olderr or xbail "open: $!";
is($res->code, 200, 'coderepo summary (binfoo)');
- if (ok(-s "$tmpdir/stderr.log")) {
- open my $fh, '<', "$tmpdir/stderr.log" or xbail $!;
- my $s = do { local $/; <$fh> };
- open $fh, '>', "$tmpdir/stderr.log" or xbail $!;
- ok($s =~ s/^fatal: your current branch.*?\n//sm,
- 'got current branch warning');
- ok($s =~ s/^.*? exit status=[1-9]+\n\z//sm,
- 'got exit status warning');
- is($s, '', 'no unexpected warnings on empty coderepo');
- }
+ ok(!-s "$tmpdir/stderr.log");
$res = $cb->(GET('/public-inbox/'));
is($res->code, 200, 'coderepo summary (public-inbox)');
+
+ my $tip = 'invalid-'.int(rand(0xdeadbeef));
+ $res = $cb->(GET('/public-inbox/?h='.$tip));
+ is($res->code, 200, 'coderepo summary on dead branch');
+ like($res->content, qr/no commits in `\Q$tip\E', yet/,
+ 'lack of commits noted');
+
$res = $cb->(GET('/public-inbox'));
is($res->code, 301, 'redirected');
ok($t->{feed}->{entry}, 'got entry');
$res = $cb->(GET('/public-inbox/atom/README.md'));
- is($res->code, 404, '404 on non-existent file Atom feed');
+ is($res->code, 404, '404 on missing file Atom feed');
+
+ $res = $cb->(GET('/public-inbox/atom/?h=gone'));
+ is($res->code, 404, '404 on missing Atom feed branch');
}
$res = $cb->(GET('/public-inbox/tree/'));
is($res->code, 404, 'got 404 for non-existent ref README');
$res = $cb->(GET('/public-inbox/tree/Documentation?h=no-dir'));
is($res->code, 404, 'got 404 for non-existent ref directory');
+
+ $res = $cb->(GET('/public-inbox/tags.atom'));
+ is($res->code, 200, 'Atom feed');
+ SKIP: {
+ require_mods('XML::TreePP', 1);
+ my $t = XML::TreePP->new->parse($res->content);
+ ok(scalar @{$t->{feed}->{entry}}, 'got tag entries');
+ }
};
test_psgi(sub { $www->call(@_) }, $client);
my $env = { PI_CONFIG => $cfgpath, TMPDIR => $tmpdir };