From 489fda6fe372491b88804a85b4f1650cd47a65cd Mon Sep 17 00:00:00 2001 From: franck cuny Date: Mon, 1 Nov 2010 17:05:57 +0100 Subject: add some tests --- t/spore-request/form_data.t | 27 +++++++++++++++++++++++++++ t/spore-request/headers.t | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 t/spore-request/form_data.t create mode 100644 t/spore-request/headers.t (limited to 't/spore-request') diff --git a/t/spore-request/form_data.t b/t/spore-request/form_data.t new file mode 100644 index 0000000..6400465 --- /dev/null +++ b/t/spore-request/form_data.t @@ -0,0 +1,27 @@ +use strict; +use warnings; +use Test::More; + +use Net::HTTP::Spore; + +my $mock_server = { + '/email' => sub { + my $req = shift; + my $final = $req->finalize; + like $final->header('Content-Type'), + qr/multipart\/form-data; boundary=/; + $req->new_response( 200, [ 'Content-Type' => 'text/html' ], 'ok' ); + }, +}; + +ok my $client = + Net::HTTP::Spore->new_from_spec( 't/specs/api.json', + base_url => 'http://localhost' ); + +$client->enable( 'Mock', tests => $mock_server ); + +my $res = $client->add_email( email => 'foo@bar.com' ); +is $res->[0], 200; +like $res->[2], qr/ok/; + +done_testing; diff --git a/t/spore-request/headers.t b/t/spore-request/headers.t new file mode 100644 index 0000000..1d0e3f5 --- /dev/null +++ b/t/spore-request/headers.t @@ -0,0 +1,37 @@ +use strict; +use warnings; + +use Test::More tests => 7; +use Net::HTTP::Spore::Request; +use Net::HTTP::Spore; + +my $env = { 'HTTP_CONTENT_TYPE' => 'text/html', }; + +ok my $request = Net::HTTP::Spore::Request->new($env); + +isa_ok $request->headers, 'HTTP::Headers'; +is $request->header('Content-Type'), 'text/html'; +ok $request->header( 'Content-Type' => 'application/json' ); +is $request->header('Content-Type'), 'application/json'; + +my $mock_server = { + '/file' => sub { + my $req = shift; + my $final = $req->finalize; + if ( $final->header('Content-Type') eq 'image/png' ) { + return $req->new_response( 200, [ 'Content-Type' => 'text/html' ], + 'ok' ); + } + $req->new_response( 500, [ 'Content-Type' => 'text/html' ], 'nok' ); + }, +}; + +ok my $client = + Net::HTTP::Spore->new_from_spec( 't/specs/api.json', + base_url => 'http://localhost', ); + +$client->enable( 'Mock', tests => $mock_server ); + +my $res = $client->attach_file( file => 'foo', 'content_type' => 'image/png' ); +is $res->[0], 200; + -- cgit 1.4.1