X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fwww_listing.t;h=4309a5e17ba24e176409937b21e7475e95a65ed1;hb=e61ade9e03e754b5bde70518223b1e9d92ab57e4;hp=31d76356d886697093a099129fddf22e1b5e50ad;hpb=4bebfa0c80ad7f4596a7dca98b39121470a42af0;p=public-inbox.git diff --git a/t/www_listing.t b/t/www_listing.t index 31d76356..4309a5e1 100644 --- a/t/www_listing.t +++ b/t/www_listing.t @@ -10,9 +10,10 @@ use PublicInbox::Import; require_mods(qw(URI::Escape Plack::Builder Digest::SHA IO::Compress::Gzip IO::Uncompress::Gunzip HTTP::Tiny)); require PublicInbox::WwwListing; +require PublicInbox::ManifestJsGz; my $json = do { no warnings 'once'; - $PublicInbox::WwwListing::json; + $PublicInbox::ManifestJsGz::json; } or plan skip_all => "JSON module missing"; use_ok 'PublicInbox::Git'; @@ -20,7 +21,7 @@ use_ok 'PublicInbox::Git'; my ($tmpdir, $for_destroy) = tmpdir(); my $bare = PublicInbox::Git->new("$tmpdir/bare.git"); PublicInbox::Import::init_bare($bare->{git_dir}); -is(PublicInbox::WwwListing::fingerprint($bare), undef, +is(PublicInbox::ManifestJsGz::fingerprint($bare), undef, 'empty repo has no fingerprint'); { my $fi_data = './t/git.fast-import-data'; @@ -30,23 +31,29 @@ is(PublicInbox::WwwListing::fingerprint($bare), undef, 'fast-import'); } -like(PublicInbox::WwwListing::fingerprint($bare), qr/\A[a-f0-9]{40}\z/, +like(PublicInbox::ManifestJsGz::fingerprint($bare), qr/\A[a-f0-9]{40}\z/, 'got fingerprint with non-empty repo'); sub tiny_test { my ($json, $host, $port) = @_; + my $tmp; my $http = HTTP::Tiny->new; my $res = $http->get("http://$host:$port/"); is($res->{status}, 200, 'got HTML listing'); like($res->{content}, qr!!si, 'listing looks like HTML'); + + $res = $http->get("http://$host:$port/", {'Accept-Encoding'=>'gzip'}); + is($res->{status}, 200, 'got gzipped HTML listing'); + IO::Uncompress::Gunzip::gunzip(\(delete $res->{content}) => \$tmp); + like($tmp, qr!!si, 'unzipped listing looks like HTML'); + $res = $http->get("http://$host:$port/manifest.js.gz"); is($res->{status}, 200, 'got manifest'); - my $tmp; IO::Uncompress::Gunzip::gunzip(\(delete $res->{content}) => \$tmp); unlike($tmp, qr/"modified":\s*"/, 'modified is an integer'); my $manifest = $json->decode($tmp); ok(my $clone = $manifest->{'/alt'}, '/alt in manifest'); - is($clone->{owner}, 'lorelei', 'owner set'); + is($clone->{owner}, "lorelei \x{100}", 'owner set'); is($clone->{reference}, '/bare', 'reference detected'); is($clone->{description}, "we're all clones", 'description read'); ok(my $bare = $manifest->{'/bare'}, '/bare in manifest'); @@ -88,7 +95,8 @@ SKIP: { open $fh, '>', "$alt/description" or die; print $fh "we're all clones\n" or die; close $fh or die; - is(xsys('git', "--git-dir=$alt", qw(config gitweb.owner lorelei)), 0, + is(xsys('git', "--git-dir=$alt", qw(config gitweb.owner), + "lorelei \xc4\x80"), 0, 'set gitweb user'); ok(unlink("$bare->{git_dir}/description"), 'removed bare/description'); open $fh, '>', $cfgfile or die;