awssum-amazon-s3
Version:
AwsSum plugin for Amazon Simple Storage Service (S3).
106 lines (89 loc) • 3.69 kB
JavaScript
// --------------------------------------------------------------------------------------------------------------------
//
// integration/amazon-s3.js - integration tests for Amazon S3
//
// Copyright (c) 2012 AppsAttic Ltd - http://www.appsattic.com/
// Written by Andrew Chilton <chilts@appsattic.com>
//
// License: http://opensource.org/licenses/MIT
//
// --------------------------------------------------------------------------------------------------------------------
// requires
var fs = require('fs');
var test = require('tap').test;
var amazonS3 = require('../../awssum-amazon-s3.js');
var S3 = amazonS3.S3;
// --------------------------------------------------------------------------------------------------------------------
var env = process.env;
var s3;
try {
s3 = new S3({
'accessKeyId' : env.ACCESS_KEY_ID,
'secretAccessKey' : env.SECRET_ACCESS_KEY,
'region' : amazonS3.US_EAST_1
});
}
catch(e) {
// env vars aren't set, so skip these integration tests
process.exit();
}
// --------------------------------------------------------------------------------------------------------------------
// Amazon:S3 operations
test('S3:GetBucketTagging - Standard', function(t) {
s3.GetBucketTagging({ BucketName : 'pie-17' }, function(err, data) {
t.ok(err, 'S3:GetBucketTagging - NoSuchTagSet');
t.notOk(data, 'S3:GetBucketTagging - no data');
t.equal(err.Body.Error.Code, 'NoSuchTagSet', 'S3:GetBucketTagging - checking error code');
t.end();
});
});
test('S3:PutBucketAcl - InvalidArgument', function(t) {
var params = {
BucketName : 'pie-18',
AccessControlPolicy : {
Owner : {
ID : 'sdfgd',
DisplayName : 'something',
},
AccessControlList : [
{
Grant : {
Grantee : {
_attr : {
'xmlns:xsi' : 'http://www.w3.org/2001/XMLSchema-instance',
'xsi:type' : 'CanonicalUser',
},
ID : '1111-2222-3333',
DisplayName : 'a name'
},
Permission : 'READ',
},
},
]
},
};
s3.PutBucketAcl(params, function(err, data) {
t.ok(err, 'S3:PutBucketAcl - InvalidArgument');
t.notOk(data, 'S3:PutBucketAcl - InvalidArgument');
t.equal(err.StatusCode, 400, 'S3:PutBucketAcl - checking status code');
t.equal(err.Body.Error.Code, 'InvalidArgument', 'S3:PutBucketAcl - checking error code');
t.equal(err.Body.Error.ArgumentName, 'CanonicalUser/ID', 'S3:PutBucketAcl - checking argument name');
t.equal(err.Body.Error.ArgumentValue, '1111-2222-3333', 'S3:PutBucketAcl - checking argument value');
t.end();
});
});
test('S3:PutBucketAcl - InvalidArgument', function(t) {
var params = {
BucketName : 'pie-18',
// similar thing for all the other Grant* params
GrantFullControl : 'emailAddress="andychilton@gmail.com"',
};
s3.PutBucketAcl(params, function(err, data) {
t.notOk(err, 'S3:PutBucketAcl - no error');
t.ok(data, 'S3:PutBucketAcl - ok');
t.equal(data.StatusCode, 200, 'S3:PutBucketAcl - checking status code');
t.equal(data.Body, '', 'S3:PutBucketAcl - empty body');
t.end();
});
});
// --------------------------------------------------------------------------------------------------------------------