Amazon-CloudFront-Thin

 view release on metacpan or  search on metacpan

t/01-sigv4.t  view on Meta::CPAN


my $canonical_request = Amazon::CloudFront::Thin::_create_canonical_request(
    $url, $headers, $content
);

my $expected = <<'EOEXPECTED';
POST
/

content-length:312
content-type:text/xml
host:cloudfront.amazonaws.com
x-amz-date:20150807T183442Z

content-length;content-type;host;x-amz-date
a3e23f629891d71d6ff0aa08039794877aad1b2c35d9a6763d73cf6000fabe2a
EOEXPECTED
chomp $expected;

is $canonical_request, $expected, 'canonical request created successfully';

is(
    Digest::SHA::sha256_hex($canonical_request),
    '0930071b1f7beda5b91ca47b4bf94719f4cba8380376a1b94fc1b172394c40ff',
    'sha256 matches canonical request'

t/04-request.t  view on Meta::CPAN

use Test::More;
sub new { bless {}, shift }
sub request {
    my ($self, $req) = @_;
    isa_ok $self, 'MyAgent';
    isa_ok $req, 'HTTP::Request';
    like $req->content, qr{\Q<?xml version="1.0" encoding="UTF-8"?><InvalidationBatch xmlns="http://cloudfront.amazonaws.com/doc/2018-11-05/"><Paths><Quantity>1</Quantity><Items><Path><![CDATA[/some/path]]></Path></Items></Paths><CallerReference>\E\d...

    my $headers = $req->headers->as_string;
    like $headers, qr{X-Amz-Date: \d{8}T\d{6}Z}, 'headers contain date in iso 8601 (NOT RFC 1123)';
    like $headers, qr{Authorization: AWS4-HMAC-SHA256 Credential=123/\d+/us-east-1/cloudfront/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=[a-z0-9]{64}}, 'headers contain auth';
    like $headers, qr{Host: cloudfront.amazonaws.com}, 'headers contain host';
    like $headers, qr{Content-Length: 265}, 'headers contain content-length';
    like $headers, qr{Content-Type: text/xml}, 'headers contain content-type';
    return 42;
}

package main;
use Test::More;
use Amazon::CloudFront::Thin;

my $cloudfront = Amazon::CloudFront::Thin->new(
    aws_access_key_id     => 123,
    aws_secret_access_key => 321,



( run in 1.233 second using v1.01-cache-2.11-cpan-524268b4103 )