Mojar-Google-Analytics
view release on metacpan or search on metacpan
test/20-auth.t view on Meta::CPAN
};
subtest q{body} => sub {
eval { $jwt->body }
or do {
ok $@, 'Exception from get';
};
like $@, qr/^Missing required field /, 'Caught missing field(s)';
ok $jwt
->iss(q{761326798069-r5mljlln1rd4lrbhg75efgigp36m78j5@developer.gserviceaccount.com})
->scope(q{https://www.googleapis.com/auth/prediction})
->iat(q{1328550785})
->exp(q{1328554385}), 'Sets';
ok $jwt->body, 'Got body';
is_deeply $jwt->demogrify($jwt->body),
$jwt->demogrify(q{eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ}
.q{2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0d}
.q{HBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzO}
.q{i8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU1NDM4N}
.q{SwiaWF0IjoxMzI4NTUwNzg1fQ}),
'body perfect';
};
subtest q{signature} => sub {
eval { $jwt->signature }
or do {
ok $@, 'Exception from get';
};
like $@, qr/^Missing required field /, 'Caught missing field(s)';
};
subtest q{decode} => sub {
ok $jwt = Mojar::Auth::Jwt->decode(q{eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.}
.q{eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVA}
.q{ZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdv}
.q{b2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMu}
.q{Z29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU1NDM4NSwiaWF0IjoxMzI4}
.q{NTUwNzg1fQ.ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-g}
.q{s2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh}
.q{_jF1qskLa2w0rxMSjwruNKbysgRNctZPln7cqQ}), 'decode OAuth2 example';
is_deeply $jwt, Mojar::Auth::Jwt->new(
typ => q{JWT},
alg => q{RS256},
iss => q{761326798069-r5mljlln1rd4lrbhg75efgigp36m78j5}
.q{@developer.gserviceaccount.com},
scope => q{https://www.googleapis.com/auth/prediction},
aud => q{https://accounts.google.com/o/oauth2/token},
iat => q{1328550785},
exp => q{1328554385}
), 'Decoded object agrees';
};
SKIP: {
skip 'set TEST_KEY to enable this test (developer only!)', 1
unless $ENV{TEST_KEY};
subtest q{Roundtrip encode->decode} => sub {
my $jwt2;
ok $jwt2 = $jwt->decode($jwt->encode(
private_key => path('data/privatekey.pem')->slurp)), 'decode(encode())';
delete @$jwt{qw( header body signature json cipher private_key )};
is_deeply $jwt2, $jwt, 'Round trip';
};
};
done_testing();
( run in 1.345 second using v1.01-cache-2.11-cpan-39bf76dae61 )