Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require('../common');
- var
- date = require('lib/date'),
- set = require('lib/set'),
- module = require('lib/assembly'),
- Assembly = module.Assembly,
- ERRORS = [
- {response: module.ERROR_NO_AUTH_EXPIRES_PARAMETER, info: undefined},
- {response: module.ERROR_INVALID_AUTH_EXPIRES_PARAMETER, info: undefined},
- {response: module.ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER, info: undefined},
- {response: module.ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER, info: undefined},
- {response: module.ERROR_NO_AUTH_SIGNATURE_PARAMETER, info: undefined},
- {response: module.ERROR_INVALID_AUTH_SIGNATURE_PARAMETER, info: undefined},
- {response: module.ERROR_NO_AUTH_MESSAGE_PARAMETER, info: undefined},
- {response: module.ERROR_INVALID_AUTH_MESSAGE_PARAMETER, info: undefined},
- {response: module.ERROR_INVALID_JSON_AUTH_MESSAGE_PARAMETER, info: undefined},
- {response: module.ERROR_BAD_AUTH_MESSAGE_PARAMETER, info: undefined},
- {response: module.ERROR_BAD_AUTH_SIGNATURE_PARAMETER, info: undefined},
- ];
- callbacks = {
- error: -ERRORS.length,
- checkAccepted: -1,
- };
- var assembly = new Assembly();
- assembly.endError = function(response, info) {
- callbacks.error++;
- var error = ERRORS.shift();
- assert.strictEqual(response, error.response);
- assert.equal(info, error.info);
- };
- var auth = {};
- assembly.data = {auth: auth};
- // ERROR_NO_AUTH_EXPIRES_PARAMETER
- assembly.checkAuthSignature();
- // ERROR_INVALID_AUTH_EXPIRES_PARAMETER
- auth.expires = 'dasas';
- assembly.checkAuthSignature();
- // ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER
- var oneHourAgo = new Date(+new Date - 60 * 60 * 1000);
- auth.expires = date.format(oneHourAgo, 'jsGmt');
- assembly.checkAuthSignature();
- // ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER
- // this time specifically testing a differently formated string
- var oneHourAgo = new Date(+new Date - 60 * 60 * 1000);
- auth.expires = date.format(oneHourAgo, 'isoDateTime');
- assembly.checkAuthSignature();
- // ERROR_NO_AUTH_SIGNATURE_PARAMETER
- var inOneHour = new Date(+new Date + 60 * 60 * 1000);
- auth.expires = date.format(inOneHour, 'jsGmt');
- assembly.checkAuthSignature();
- // ERROR_NO_AUTH_MESSAGE_PARAMETER
- auth.signature = {};
- assembly.checkAuthSignature();
- // ERROR_NO_AUTH_MESSAGE_PARAMETER
- auth.signature = 'foobar';
- assembly.checkAuthSignature();
- // ERROR_INVALID_AUTH_MESSAGE_PARAMETER
- auth.message = {};
- assembly.checkAuthSignature();
- // ERROR_INVALID_JSON_AUTH_MESSAGE_PARAMETER
- auth.message = 'invalid json';
- assembly.checkAuthSignature();
- // ERROR_BAD_AUTH_MESSAGE_PARAMETER
- auth.message = JSON.stringify({foo: 'bar'});
- assembly.checkAuthSignature();
- // ERROR_BAD_AUTH_SIGNATURE_PARAMETER
- assembly.account = {secretKey: 'something'};
- var message = set.clone(assembly.data);
- delete message.auth.signature;
- delete message.auth.message;
- message = JSON.stringify(message);
- auth.message = message;
- assembly.checkAuthSignature();
- // Now it should work
- assert.ok(!assembly.authorized);
- auth.signature = assembly.expectedSignature();
- assembly.checkAccepted = function() {
- callbacks.checkAccepted++;
- };
- assembly.checkAuthSignature();
- assert.ok(assembly.authorized);
- assert.callbacks(callbacks);
Add Comment
Please, Sign In to add comment