summary refs log tree commit diff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/spore-request/exception.t9
-rw-r--r--t/spore-request/path_info.t2
-rw-r--r--t/spore-request/request_uri.t25
-rw-r--r--t/spore-request/script_name.t21
-rw-r--r--t/spore-response/body.t21
5 files changed, 73 insertions, 5 deletions
diff --git a/t/spore-request/exception.t b/t/spore-request/exception.t
index 162370a..5d5af38 100644
--- a/t/spore-request/exception.t
+++ b/t/spore-request/exception.t
@@ -4,11 +4,18 @@ use warnings;
 use Test::More;
 use Net::HTTP::Spore;
 
+my $mock_server = {
+    '/test_spore/_all_docs' => sub {
+        my $req = shift;
+        die;
+    },
+};
+
 ok my $client =
   Net::HTTP::Spore->new_from_spec( 't/specs/couchdb.json',
     api_base_url => 'http://localhost:5984' );
 
-$client->enable( 'Test::Response', callback => sub { die } );
+$client->enable( 'Mock', tests => $mock_server );
 
 my $res = $client->get_all_documents(database => 'test_spore');
 is $res->[0], 599;
diff --git a/t/spore-request/path_info.t b/t/spore-request/path_info.t
index 020a958..17645af 100644
--- a/t/spore-request/path_info.t
+++ b/t/spore-request/path_info.t
@@ -22,4 +22,6 @@ is $request->path_info, '/test_spore/foo';
 $env->{'spore.params'} = [qw/database test_spore key foo another key/];
 is $request->path_info, '/test_spore/foo';
 
+is $request->path, '/test_spore/foo';
+
 done_testing;
diff --git a/t/spore-request/request_uri.t b/t/spore-request/request_uri.t
new file mode 100644
index 0000000..84ba0ff
--- /dev/null
+++ b/t/spore-request/request_uri.t
@@ -0,0 +1,25 @@
+use strict;
+use Test::More;
+
+use Net::HTTP::Spore::Request;
+
+my $env = {
+    REQUEST_METHOD  => 'GET',
+    SERVER_NAME     => 'localhost',
+    SERVER_PORT     => '80',
+    SCRIPT_NAME     => '',
+    PATH_INFO       => '/:database/:key',
+    REQUEST_URI     => '',
+    QUERY_STRING    => '',
+    SERVER_PROTOCOL => 'HTTP/1.0',
+};
+
+ok my $request = Net::HTTP::Spore::Request->new($env);
+
+is $request->request_uri, '';
+
+$env->{REQUEST_URI} = '/';
+
+is $request->request_uri, '/';
+
+done_testing;
diff --git a/t/spore-request/script_name.t b/t/spore-request/script_name.t
new file mode 100644
index 0000000..a283c20
--- /dev/null
+++ b/t/spore-request/script_name.t
@@ -0,0 +1,21 @@
+use strict;
+use Test::More;
+
+use Net::HTTP::Spore::Request;
+
+my $env = {
+    REQUEST_METHOD  => 'GET',
+    SERVER_NAME     => 'localhost',
+    SERVER_PORT     => '80',
+    SCRIPT_NAME     => '',
+};
+
+ok my $request = Net::HTTP::Spore::Request->new($env);
+
+is $request->script_name, '';
+
+$env->{SCRIPT_NAME} = '/1/';
+
+is $request->script_name, '/1/';
+
+done_testing;
diff --git a/t/spore-response/body.t b/t/spore-response/body.t
index 2a35d6b..26c7baf 100644
--- a/t/spore-response/body.t
+++ b/t/spore-response/body.t
@@ -10,12 +10,25 @@ sub r($) {
     return $res->finalize->[2];
 }
 
+sub raw($) {
+    my $res = Net::HTTP::Spore::Response->new(200);
+    $res->raw_body(@_);
+    return $res->raw_body;
+}
+
+sub content($) {
+    my $res = Net::HTTP::Spore::Response->new(200);
+    $res->body(@_);
+    return $res->content;
+}
+
 is_deeply r "Hello World", "Hello World";
 is_deeply r [ "Hello", "World" ], [ "Hello", "World" ];
 
-{
-    my $uri = URI->new("foo");    # stringified object
-    is_deeply r $uri, $uri;
-}
+is_deeply raw "Hello World", "Hello World";
+is_deeply raw [ "Hello", "World" ], [ "Hello", "World" ];
+
+is_deeply content "Hello World", "Hello World";
+is_deeply content [ "Hello", "World" ], [ "Hello", "World" ];
 
 done_testing;