Make headers and cookies non-writable after finalize-headers
[catagits/Catalyst-Runtime.git] / t / unit / core / headers.t
1 use Test::More tests => 6;
2 use strict;
3 use warnings;
4
5 {
6
7     package MyApp;
8     use Catalyst qw/-Engine=Test/;
9     use Test::Exception;
10
11     sub stream_it : Local {
12         my ( $self, $c ) = @_;
13
14         lives_ok { $c->res->headers->content_encoding("moose") }
15           "can set header";
16         lives_ok { $c->res->headers->remove_header("moose") }
17           "can remove header";
18         lives_ok { $c->res->cookies->{yadda} = { value => "ping" } }
19           "can make cookie";
20         $c->write("foo");
21         throws_ok { $c->res->headers->content_encoding("moose") }
22           qr/can't modify/i, "can't set header after write";
23         throws_ok { $c->res->headers->remove_header("moose") }
24           qr/can't modify/i, "can't remove header after write";
25         throws_ok { $c->res->cookies->{yadda} = { value => "ping" } }
26           qr/read-only/i, "can't make cookie after write";
27     }
28
29     __PACKAGE__->setup;
30 }
31
32 use Catalyst::Test qw/MyApp/;
33
34 get "/stream_it";
35