Amazon-CloudFront-Thin

 view release on metacpan or  search on metacpan

lib/Amazon/CloudFront/Thin.pm  view on Meta::CPAN

    }

    foreach my $key (qw(aws_access_key_id aws_secret_access_key distribution_id)) {
        if (exists $args->{$key}) {
            $self->{$key} = $args->{$key};
        }
        else {
            Carp::croak "argument '$key' missing on call to new()";
        }
    }
    bless $self, $class;
    my $ua = $args->{ua} || _default_ua();
    $self->ua($ua);

    return $self;
}

sub _default_ua {
    require LWP::UserAgent;
    my $ua = LWP::UserAgent->new(
        keep_alive => 10,

t/03-ua.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;

package MyAgent;
sub new { bless {}, shift }

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

subtest 'default user agent' => sub {
    my $cloudfront = Amazon::CloudFront::Thin->new(
        aws_access_key_id     => 123,
        aws_secret_access_key => 321,
        distribution_id       => 1,
    );

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

use strict;
use warnings;

package MyAgent;
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';



( run in 1.849 second using v1.01-cache-2.11-cpan-b32c08c6d1a )