Sha256: e66856d14afdc5f6a3a39c2304f38bcac0c77dc761b172bdd48f5081f6dbd35c

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

require 'spec_helper'

describe Heirloom do
  before do
    @config_mock = double 'config'
    @logger_mock = double 'logger'
    @config_mock.should_receive(:logger).and_return(@logger_mock)
    @config_mock.should_receive(:authorized_aws_accounts).
                 and_return ['acct1@test.com', 'acct2@test.com']

    @s3 = Heirloom::ACL::S3.new :config  => @config_mock,
                                :region  => 'us-west-1'
  end

  it "should allow read access for the specified accounts" do
    acls = { 
              'Owner' => {
               'Name' => 'Brett',
               'ID' => '123'
              }
           }
    s3_mock = mock 's3'

    @s3.should_receive(:s3).exactly(2).times.
                            and_return(s3_mock)

    s3_mock.should_receive(:get_bucket_acl).with('bucket').
                                            and_return acls

    @logger_mock.should_receive(:info).
                 with 'Authorizing acct1@test.com to s3://bucket/key-folder/key.tar.gz.'
    @logger_mock.should_receive(:info).
                 with 'Authorizing acct2@test.com to s3://bucket/key-folder/key.tar.gz.'

    s3_mock.should_receive(:put_object_acl).
            with("bucket", "key-folder/key.tar.gz", {"Owner"=>{"DisplayName"=>"Brett", "ID"=>"123"}, "AccessControlList"=>[{"Grantee"=>{"EmailAddress"=>"acct1@test.com"}, "Permission"=>"READ"}, {"Grantee"=>{"EmailAddress"=>"acct2@test.com"}, "Permission"=>"READ"}, {"Grantee"=>{"DisplayName"=>"Brett", "ID"=>"123"}, "Permission"=>"FULL_CONTROL"}]})

    @s3.allow_read_access_from_accounts :bucket     => 'bucket', 
                                        :key_name   => 'key',
                                        :key_folder => 'key-folder'
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
heirloom-0.2.0 spec/acl/s3_spec.rb