On Dec 28, 2010, at 11:06 PM, Peter Karman wrote:
> James Russo wrote on 12/28/10 6:47 PM:
>> Hello,
>>
>> Does anyone there some examples of unit tests for a controller which is
>> based on Catalyst::Controller::REST? There was some discussion on the list a
>> few years ago, and I think the conclusion was to use LWP directly and not
>> Test::WWW::Mechanize::Catalyst. It seems that using the methods do not give
>> you access to passing actual body content and content-type headers? There
>> are getting overridden somewhere along the line. I'm going to continue to
>> research it, but figured I'd ask here before I spend too much time on it.
>>
>
> http://cpansearch.perl.org/src/KARMAN/CatalystX-CRUD-0.51/t/03-rest.t
It seems the following code actually creates a request where the body of the
request is the URL encoded key/values, in this case would be
"content=hello%20world". Since I need to send JSON or XML data, I needed to
specify the content myself, so this wouldn't work.
# create
ok( $res = request(
POST( '/rest/file/testfile', [ content => 'hello world' ] )
),
"POST new file"
);
This works as expected allowing me to specify the actual content and
content-type of the request.
# create
ok($response = request(
POST('/appointment','content-type' =>
'application/json', 'content' => to_json($foo)
),
"create new appointment"));
Just wanted to put it out there in the archives for the next person.
thanks,
-jr
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/