Skip to content
This repository has been archived by the owner on Nov 20, 2018. It is now read-only.

Commit

Permalink
test(s3): test support for special params/headers - v4 chunked requests
Browse files Browse the repository at this point in the history
  • Loading branch information
rnicholus committed Dec 31, 2015
1 parent 286c194 commit 9d46673
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 4 deletions.
18 changes: 16 additions & 2 deletions test/unit/s3/chunked-uploads.js
Original file line number Diff line number Diff line change
Expand Up @@ -700,7 +700,7 @@ if (qqtest.canDownloadFileAsBlob) {
});
});

it("converts all parameters (metadata) to lower case before sending them to S3", function(done) {
it("converts all non-special parameters (metadata) to lower case before sending them to S3 and omits some specific params from string to sign", function(done) {
assert.expect(5, done);

var uploader = new qq.s3.FineUploaderBasic({
Expand All @@ -714,16 +714,30 @@ if (qqtest.canDownloadFileAsBlob) {
mIxEdCaSe: "value",
mIxEdCaSeFunc: function() {
return "value2";
}
},
"Content-Disposition": "attachment; filename=foo.bar;",
"Cache-Control": "foo",
"Content-Encoding": "bar",
"Content-MD5": "something"
});

startTypicalTest(uploader, function(initiateSignatureRequest, initiateToSign) {
var initiateRequest;

assert.ok(initiateToSign.headers.indexOf("something") >= 0);
assert.ok(initiateToSign.headers.indexOf("x-amz-meta-mixedcase:value") >= 0);
assert.ok(initiateToSign.headers.indexOf("x-amz-meta-mixedcasefunc:value2") >= 0);
assert.ok(initiateToSign.headers.indexOf("Cache-Control:foo") < 0);
assert.ok(initiateToSign.headers.indexOf("Content-Encoding:bar") < 0);
assert.ok(initiateToSign.headers.indexOf("Content-Disposition:attachment; filename=foo.bar;") < 0);

initiateSignatureRequest.respond(200, null, JSON.stringify({signature: "thesignature"}));
initiateRequest = fileTestHelper.getRequests()[1];

assert.equal(initiateRequest.requestHeaders["Content-MD5"], "something");
assert.equal(initiateRequest.requestHeaders["Content-Disposition"], "attachment; filename=foo.bar;");
assert.equal(initiateRequest.requestHeaders["Content-Encoding"], "bar");
assert.equal(initiateRequest.requestHeaders["Cache-Control"], "foo");
assert.equal(initiateRequest.requestHeaders["x-amz-meta-mixedcase"], "value");
assert.equal(initiateRequest.requestHeaders["x-amz-meta-mixedcasefunc"], "value2");
});
Expand Down
13 changes: 11 additions & 2 deletions test/unit/s3/simple-file-uploads.js
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ if (qqtest.canDownloadFileAsBlob) {
});
});

it("converts all parameters (metadata) to lower case before sending them to S3", function(done) {
it("converts all parameters (metadata) to lower case before sending them to S3, except for special params", function(done) {
var uploader = new qq.s3.FineUploaderBasic({
request: typicalRequestOption,
signature: v2SignatureOption
Expand All @@ -265,20 +265,29 @@ if (qqtest.canDownloadFileAsBlob) {
mIxEdCaSe: "value",
mIxEdCaSeFunc: function() {
return "value2";
}
},
"Content-Disposition": "attachment; filename=foo.bar;",
"Cache-Control": "foo",
"Content-Encoding": "bar"
});

startTypicalTest(uploader, function(signatureRequest, policyDoc, uploadRequest, conditions) {
var uploadRequestParams;

assert.equal(conditions["x-amz-meta-mixedcase"], "value");
assert.equal(conditions["x-amz-meta-mixedcasefunc"], "value2");
assert.equal(conditions["Content-Disposition"], "attachment; filename=foo.bar;");
assert.equal(conditions["Cache-Control"], "foo");
assert.equal(conditions["Content-Encoding"], "bar");
signatureRequest.respond(200, null, JSON.stringify({policy: "thepolicy", signature: "thesignature"}));

uploadRequestParams = uploadRequest.requestBody.fields;

assert.equal(uploadRequestParams["x-amz-meta-mixedcase"], "value");
assert.equal(uploadRequestParams["x-amz-meta-mixedcasefunc"], "value2");
assert.equal(uploadRequestParams["Content-Disposition"], "attachment; filename=foo.bar;");
assert.equal(uploadRequestParams["Cache-Control"], "foo");
assert.equal(uploadRequestParams["Content-Encoding"], "bar");

done();
});
Expand Down

0 comments on commit 9d46673

Please sign in to comment.