diff --git a/regression/storage.js b/regression/storage.js index ab39409b21e8..72f771a067d3 100644 --- a/regression/storage.js +++ b/regression/storage.js @@ -224,25 +224,5 @@ describe('storage', function() { }); }); }); - - it('should allow control of expiration', function(done) { - var offsetSeconds = 5; - bucket.getSignedUrl({ - action: 'read', - expires: Math.round(Date.now() / 1000) + offsetSeconds, - resource: filename - }, function(err, signedReadUrl) { - assert.ifError(err); - request.get(signedReadUrl, function(err, resp, body) { - assert.equal(body, localFile); - }); - setTimeout(function() { - request.get(signedReadUrl, function(err, resp) { - assert.equal(resp.statusCode, 400); - bucket.remove(filename, done); - }); - }, (offsetSeconds + 1) * 1000); - }); - }); }); }); diff --git a/test/storage/index.js b/test/storage/index.js index eda3489ca406..961f83664216 100644 --- a/test/storage/index.js +++ b/test/storage/index.js @@ -21,6 +21,7 @@ var assert = require('assert'); var gcloud = require('../../lib'); var storage = require('../../lib/storage'); +var url = require('url'); var credentials = require('../testdata/privateKeyFile.json'); var noop = function() {}; @@ -142,15 +143,32 @@ describe('Bucket', function() { bucket.remove('file-name'); }); - it('should create a signed url', function(done) { - bucket.getSignedUrl({ + describe('getSignedUrl', function() { + it('should create a signed url', function(done) { + bucket.getSignedUrl({ + action: 'read', + expires: Math.round(Date.now() / 1000) + 5, + resource: 'filename' + }, function(err, signedUrl) { + assert.ifError(err); + assert.equal(typeof signedUrl, 'string'); + done(); + }); + }); + + it('should use the provided expiration date', function(done) { + var nowInSeconds = Date.now() / 1000; + var expirationTimestamp = Math.round(nowInSeconds + 60); + bucket.getSignedUrl({ action: 'read', resource: 'filename', - expires: Date.now() / 1000 - }, function(err, url) { + expires: expirationTimestamp + }, function(err, signedUrl) { assert.ifError(err); - assert.equal(typeof url, 'string'); + var expires = url.parse(signedUrl, true).query.Expires; + assert.equal(expires, expirationTimestamp); done(); }); + }); }); });