aboutsummaryrefslogtreecommitdiff
path: root/t/tests/Net/Hawk/Client.t
diff options
context:
space:
mode:
Diffstat (limited to 't/tests/Net/Hawk/Client.t')
-rw-r--r--t/tests/Net/Hawk/Client.t78
1 files changed, 40 insertions, 38 deletions
diff --git a/t/tests/Net/Hawk/Client.t b/t/tests/Net/Hawk/Client.t
index 6a09c1e..784b7a0 100644
--- a/t/tests/Net/Hawk/Client.t
+++ b/t/tests/Net/Hawk/Client.t
@@ -1,30 +1,28 @@
#!perl
-use strict;
-use warnings;
-use Test::More;
+use v6;
+use Test;
use Net::Hawk::Client;
+use Net::Hawk::Crypto;
-my $c = Net::Hawk::Client->new();
-
-subtest readme => sub {
+subtest {
my %credentials = (
id => 'dh37fgj492je',
key => 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn',
algorithm => 'sha256',
);
my %options = (
- credentials => \%credentials,
+ credentials => %credentials,
timestamp => 1353832234,
nonce => 'j4h3g2',
ext => 'some-app-ext-data'
);
- subtest GET => sub {
- my $field = $c->header(
+ subtest {
+ my $field = Net::Hawk::Client::header(
'http://example.com:8000/resource/1?b=1&a=2',
'GET',
- \%options,
- )->{field};
+ |%options,
+ )<field>;
is(
$field,
@@ -33,15 +31,15 @@ subtest readme => sub {
);
};
- subtest POST => sub {
- $options{payload} = 'Thank you for flying Hawk';
- $options{content_type} = 'text/plain';
+ subtest {
+ %options<payload> = 'Thank you for flying Hawk';
+ %options<content_type> = 'text/plain';
- my $field = $c->header(
+ my $field = Net::Hawk::Client::header(
'http://example.com:8000/resource/1?b=1&a=2',
'POST',
- \%options,
- )->{field};
+ |%options,
+ )<field>;
is(
$field,
@@ -51,7 +49,7 @@ subtest readme => sub {
};
};
-subtest header => sub {
+subtest {
my $uri = 'http://example.net/somewhere/over/the/rainbow';
my $uri_s = 'https://example.net/somewhere/over/the/rainbow';
my %args = (
@@ -66,59 +64,63 @@ subtest header => sub {
payload => 'something to write about',
);
- my $header = $c->header($uri,POST => \%args);
+ my $header = Net::Hawk::Client::header($uri,'POST',|%args);
is(
- $header->{field},
+ $header<field>,
'Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="bsvY3IfUllw6V5rvk4tStEvpBhE=", ext="Bazinga!", mac="qbf1ZPG/r/e06F4ht+T77LXi5vw="',
'valid authorization header (sha1)',
);
- $args{credentials}{algorithm}='sha256';
- $args{content_type} = 'text/plain';
- $header = $c->header($uri_s,POST => \%args);
+ %args<credentials><algorithm>='sha256';
+ %args<content_type> = 'text/plain';
+ $header = Net::Hawk::Client::header($uri_s,'POST',|%args);
is(
- $header->{field},
+ $header<field>,
'Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", ext="Bazinga!", mac="q1CwFoSHzPZSkbIvl0oYlD+91rBUEvFk763nMjMndj8="',
'valid authorization header (sha256)',
);
- delete $args{ext};
- $header = $c->header($uri_s,POST => \%args);
+ %args<ext> :delete;
+ $header = Net::Hawk::Client::header($uri_s,'POST',|%args);
is(
- $header->{field},
+ $header<field>,
'Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", mac="HTgtd0jPI6E4izx8e4OHdO36q00xFCU0FolNq3RiCYs="',
'valid authorization header (no ext)',
);
- $args{ext}=undef;
- $header = $c->header($uri_s,POST => \%args);
+ %args<ext>=Str;
+ $header = Net::Hawk::Client::header($uri_s,'POST',|%args);
is(
- $header->{field},
+ $header<field>,
'Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", mac="HTgtd0jPI6E4izx8e4OHdO36q00xFCU0FolNq3RiCYs="',
'valid authorization header (null ext)',
);
- $args{payload}='';
- $header = $c->header($uri_s,POST => \%args);
+ %args<payload>='';
+ $header = Net::Hawk::Client::header($uri_s,'POST',|%args);
is(
- $header->{field},
+ $header<field>,
'Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="q/t+NNAkQZNlq/aAD6PlexImwQTxwgT2MahfTa9XRLA=", mac="U5k16YEzn3UnBHKeBzsDXn067Gu3R4YaY6xOt9PYRZM="',
'valid authorization header (empty payload)',
);
- $args{hash} = $c->_crypto->calculate_payload_hash(
+ %args<hash> = calculate_payload_hash(
'something to write about',
- $args{credentials}{algorithm},
- $args{content_type},
+ %args<credentials><algorithm>,
+ %args<content_type>,
);
- $header = $c->header($uri_s,POST => \%args);
+ $header = Net::Hawk::Client::header($uri_s,'POST',|%args);
is(
- $header->{field},
+ $header<field>,
'Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", mac="HTgtd0jPI6E4izx8e4OHdO36q00xFCU0FolNq3RiCYs="',
'valid authorization header (pre hashed payload)',
);
};
+done;
+
+=begin finish
+
subtest authenticate => sub {
ok(
! $c->authenticate([