ks3
Version:
本代码库为`金山云存储KS3`服务.主要提供`KS3 nodejs SDK`和`命令行工具`.
110 lines (94 loc) • 4.29 kB
JavaScript
var util = require('../lib/util');
var should = require('should');
describe('util verifyAcl()', function() {
it('should return acl name or false', function() {
util.verifyAcl('private').should.equal('private');
util.verifyAcl('public-read').should.equal('public-read');
util.verifyAcl('public-read-write').should.equal('public-read-write');
util.verifyAcl('authenticated-read').should.equal('authenticated-read');
util.verifyAcl('bucket-owner-read').should.equal('bucket-owner-read');
util.verifyAcl('bucket-owner-full-control').should.equal('bucket-owner-full-control');
(util.verifyAcl('testacl') === null).should.be.ok;
});
it('should return a lowercase acl', function() {
util.verifyAcl('Private').should.equal('private');
util.verifyAcl('public-READ').should.equal('public-read');
util.verifyAcl('public-read-Write').should.equal('public-read-write');
util.verifyAcl('authenticated-READ').should.equal('authenticated-read');
util.verifyAcl('bucket-OWNER-read').should.equal('bucket-owner-read');
util.verifyAcl('bucket-owner-FULL-control').should.equal('bucket-owner-full-control');
});
});
describe('util verifyBucket()', function() {
it('should be between 3 to 63 character', function() {
(util.verifyBucket('test001') === true).should.be.ok;
(util.verifyBucket('te') === false).should.be.ok;
(util.verifyBucket('testbuckettestbuckettestbuckettestbuckettestbuckettestbuckettest') === false).should.be.ok;
});
it('should be start with number or letter', function() {
(util.verifyBucket('test001') === true).should.be.ok;
(util.verifyBucket('8test001') === true).should.be.ok;
(util.verifyBucket('-test001') === false).should.be.ok;
});
it('should be end with number or letter', function() {
(util.verifyBucket('test001') === true).should.be.ok;
(util.verifyBucket('100test') === true).should.be.ok;
(util.verifyBucket('test001-') === false).should.be.ok;
});
it('should be lowercase', function() {
(util.verifyBucket('test') === true).should.be.ok;
(util.verifyBucket('teSt') === false).should.be.ok;
});
it('only contain specail character("." or "-")', function() {
(util.verifyBucket('test-sdk') === true).should.be.ok;
(util.verifyBucket('test.sdk') === true).should.be.ok;
(util.verifyBucket('test_sdk') === false).should.be.ok;
(util.verifyBucket('test+sdk') === false).should.be.ok;
});
});
describe('util encodeKey()', function() {
it('should be return true, compare after encode result', function() {
(util.encodeKey('abc/中/') === 'abc/%E4%B8%AD/').should.be.ok;
})
})
describe('encodePresignedUrlKey', function () {
it ('should be return true', function () {
(util.encodePresignedUrlKey('#####()!~\'.png') === '%23%23%23%23%23%28%29%21~%27.png').should.be.ok
})
})
describe('getSliceChunks', function () {
const fileSize = 600 * 1024 *1024 // 600M
const chunkSize = 1 * 1024 // 1kb
const maxNum = 100
it ('should be throw error', function () {
(function () { util.getSliceChunks(fileSize, chunkSize, maxNum) }).should.throw();
})
it ('should be ok', function () {
(function () { util.getSliceChunks(fileSize, chunkSize, maxNum) }).should.be.ok;
})
it ('should be auto update chunksize', function () {
const res = util.getSliceChunks(fileSize, 5 * 1024 * 1024, maxNum)
res.should.have.length(75);
})
})
describe('lowerFirst', function () {
const obj = {
Message: 'success',
CodeStatus: 400
}
it ('return null should be ok', function () {
(util.lowerFirst(null) == null).should.be.ok;
})
it ('return lower first word should be ok', function () {
(JSON.stringify(util.lowerFirst(obj)) == JSON.stringify({
message: 'success',
codeStatus: 400
})).should.be.ok;
})
it ('return lower first word Array should be ok', function () {
(JSON.stringify(util.lowerFirst([obj]) == JSON.stringify([{
message: 'success',
codeStatus: 400
}]))).should.be.ok;
})
})