Amazon-CloudFront-SignedURL

 view release on metacpan or  search on metacpan

t/01_new.t  view on Meta::CPAN

use Amazon::CloudFront::SignedURL;
use File::Basename qw(dirname);
use File::Spec;
use Test::Exception;
use Test::More;
use t::Util;

my $private_key = slurp( File::Spec->catfile( dirname(__FILE__), 'test.pem' ) );

subtest 'invalid arguments' => sub {
    throws_ok {
        Amazon::CloudFront::SignedURL->new();
    }
    qr/Attribute \(private_key_string\) is required/;

    throws_ok {
        Amazon::CloudFront::SignedURL->new( private_key_string => $private_key, );
    }
    qr/Attribute \(key_pair_id\) is required/;
};

subtest 'new' => sub {
    my $signed_url = Amazon::CloudFront::SignedURL->new(
        private_key_string => $private_key,
        key_pair_id        => 'FLSIGIOFD4CF6IDLG2DD',
    );

t/02_generate.t  view on Meta::CPAN

use Test::More;
use t::Util;

my $private_key = slurp( File::Spec->catfile( dirname(__FILE__), 'test.pem' ) );
my $signed_url = Amazon::CloudFront::SignedURL->new(
    private_key_string => $private_key,
    key_pair_id        => 'FLSIGIOFD4CF6IDLG2DD',
);

subtest 'invalid arguments' => sub {
    throws_ok {
        $signed_url->generate();
    }
    qr/Missing parameter: 'resource'/;

    throws_ok {
        $signed_url->generate( resource => 'test' );
    }
    qr/Missing parameter: 'expires' \(or 'policy'\)/;

    throws_ok {
        $signed_url->generate(
            resource => 'test',
            expires  => 1422494408,
            policy   => '{"Statement":[{"Resource":"test","Condition":{"DateLessThan":{"AWS:EpochTime":1422494408}}}]}',
        );
    }
    qr/Exclusive parameters passed together: 'expires' v\.s\. 'policy'/;
};

subtest 'invalid private key' => sub {
    throws_ok {
        my $signed_url = Amazon::CloudFront::SignedURL->new(
            private_key_string => 'invalid key',
            key_pair_id        => 'FLSIGIOFD4CF6IDLG2DD',
        );
        $signed_url->generate(
            resource => 'test',
            expires  => 1422494408,
        );
    }
    qr/Private Key Error: Maybe your key is invalid/;



( run in 0.456 second using v1.01-cache-2.11-cpan-496ff517765 )