Added to CONTRIBUTORS and updated copyright year
[catagits/Catalyst-Action-REST.git] / t / catalyst-controller-rest.t
CommitLineData
0ba73721 1use strict;
2use warnings;
a60f84be 3use Test::More;
0ba73721 4use YAML::Syck;
5use FindBin;
6
7use lib ("$FindBin::Bin/lib", "$FindBin::Bin/../lib", "$FindBin::Bin/broken");
8use Test::Rest;
9
10my $t = Test::Rest->new(content_type => 'text/x-yaml');
11
12use_ok 'Catalyst::Test', 'Test::Catalyst::Action::REST';
13
14my $data = { your => 'face' };
15is_deeply(
16 Load(
17 request($t->put(url => '/rest/test', data => Dump($data)))->content
18 ),
19 { test => 'worked', data => $data },
20 'round trip (deserialize/serialize)',
21);
9fb09119 22
23
24ok my $res = request( $t->get( url => '/rest/test_status_created' ) );
25is $res->code, 201, "... status created";
259c53c7 26is $res->header('Location'), '/rest', "...location of what was created";
9fb09119 27
28ok $res = request( $t->get( url => '/rest/test_status_accepted' ) );
29is $res->code, 202, "... status accepted";
259c53c7 30is $res->header('Location'), '/rest', "...location of what was accepted";
9fb09119 31
32ok $res = request( $t->get( url => '/rest/test_status_no_content' ) );
33is $res->code, 204, "... status no content";
34is $res->content, '', '... no content';
35
e52456a4 36ok $res = request( $t->get( url => '/rest/test_status_found' ) );
37is $res->code, 302, '... status found';
38is_deeply Load( $res->content ),
39 { status => 'found' },
40 "... status found message";
259c53c7 41is $res->header('Location'), '/rest', "...location of what was found";
e52456a4 42
5832c2d0 43ok $res = request( $t->get( url => '/rest/test_status_not_modified' ) );
44is $res->code, 304, '... status not modified';
45is $res->content, '', '... no content';
46
9fb09119 47ok $res = request( $t->get( url => '/rest/test_status_bad_request' ) );
48is $res->code, 400, '... status bad request';
49is_deeply Load( $res->content ),
50 { error => "Cannot do what you have asked!" },
51 "... status bad request message";
52
550807bc 53ok $res = request( $t->get( url => '/rest/test_status_forbidden' ) );
54is $res->code, 403, '... status forbidden';
55is_deeply Load( $res->content ),
56 { error => "access denied" },
57 "... status forbidden";
58
9fb09119 59ok $res = request( $t->get( url => '/rest/test_status_not_found' ) );
60is $res->code, 404, '... status not found';
61is_deeply Load( $res->content ),
62 { error => "Cannot find what you were looking for!" },
63 "... status bad request message";
64
65ok $res = request( $t->get( url => '/rest/test_status_gone' ) );
66is $res->code, 410, '... status gone';
67is_deeply Load( $res->content ),
68 { error => "Document have been deleted by foo" },
69 "... status gone message";
bdff70a9 70
71ok $res = request( $t->get( url => '/rest/test_status_multiple_choices' ) );
72is $res->code, 300, "... multiple choices";
a60f84be 73is_deeply Load($res->content),
74 { choices => [qw(/rest/choice1 /rest/choice2)] },
75 "... 300 multiple choices has response body";
259c53c7 76is $res->header('Location'), '/rest/choice1', "...main location of what was found";
a60f84be 77
78done_testing;
bdff70a9 79