From: Tomas Doran Date: Mon, 11 Jan 2010 00:07:32 +0000 (+0000) Subject: Add RESTful Content-Type bits to the root controller, add a simple test for summary... X-Git-Tag: 0.002002~37 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FGitalist.git;a=commitdiff_plain;h=5f79e33f1fbb6d7a204b8b4a33426ab693c730cc Add RESTful Content-Type bits to the root controller, add a simple test for summary pages (which is all that works right now --- diff --git a/lib/Gitalist/Controller/Root.pm b/lib/Gitalist/Controller/Root.pm index 14ef8ee..4bbda7f 100644 --- a/lib/Gitalist/Controller/Root.pm +++ b/lib/Gitalist/Controller/Root.pm @@ -76,6 +76,14 @@ sub error_404 : Action { $c->response->body('Page not found'); } +__PACKAGE__->config( + default => 'text/html', + map => { + 'text/html' => [qw/ View Default /], + 'application/json' => [qw/ JSON /], + } +); + __PACKAGE__->meta->make_immutable; __END__ diff --git a/t/json_view.t b/t/json_view.t new file mode 100644 index 0000000..026479d --- /dev/null +++ b/t/json_view.t @@ -0,0 +1,40 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use HTTP::Request::Common; +use FindBin qw/$Bin/; +use JSON::Any; + +BEGIN { + $ENV{GITALIST_CONFIG} = $Bin; + $ENV{GITALIST_REPO_DIR} = ''; + use_ok 'Catalyst::Test', 'Gitalist'; +} + +my $j = JSON::Any->new; + +my $res = request(GET 'http://localhost/summary?p=repo1', 'Content-Type' => 'application/json'); +is $res->code, 200; +my $data = $j->decode($res->content); +is ref($data), 'HASH'; +is_deeply $data, { + 'owner' => 'Tomas Doran', + 'is_bare' => 1, + '__CLASS__' => 'Gitalist::Git::Repository', + 'last_change' => '2009-11-12T19:00:34Z', + 'references' => { + '0710a7c8ee11c73e8098d08f9384c2a839c65e4e' => [ + 'heads/branch1' + ], + '36c6c6708b8360d7023e8a1649c45bcf9b3bd818' => [ + 'heads/master' + ] + }, + 'name' => 'repo1', + 'description' => 'some test repository' + }; + +done_testing; + +