Guest User

Untitled

a guest
May 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. require('../common');
  2. var
  3. date = require('lib/date'),
  4. set = require('lib/set'),
  5.  
  6. module = require('lib/assembly'),
  7. Assembly = module.Assembly,
  8.  
  9. ERRORS = [
  10. {response: module.ERROR_NO_AUTH_EXPIRES_PARAMETER, info: undefined},
  11. {response: module.ERROR_INVALID_AUTH_EXPIRES_PARAMETER, info: undefined},
  12. {response: module.ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER, info: undefined},
  13. {response: module.ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER, info: undefined},
  14. {response: module.ERROR_NO_AUTH_SIGNATURE_PARAMETER, info: undefined},
  15. {response: module.ERROR_INVALID_AUTH_SIGNATURE_PARAMETER, info: undefined},
  16. {response: module.ERROR_NO_AUTH_MESSAGE_PARAMETER, info: undefined},
  17. {response: module.ERROR_INVALID_AUTH_MESSAGE_PARAMETER, info: undefined},
  18. {response: module.ERROR_INVALID_JSON_AUTH_MESSAGE_PARAMETER, info: undefined},
  19. {response: module.ERROR_BAD_AUTH_MESSAGE_PARAMETER, info: undefined},
  20. {response: module.ERROR_BAD_AUTH_SIGNATURE_PARAMETER, info: undefined},
  21. ];
  22.  
  23. callbacks = {
  24. error: -ERRORS.length,
  25. checkAccepted: -1,
  26. };
  27.  
  28. var assembly = new Assembly();
  29. assembly.endError = function(response, info) {
  30. callbacks.error++;
  31.  
  32. var error = ERRORS.shift();
  33. assert.strictEqual(response, error.response);
  34. assert.equal(info, error.info);
  35. };
  36.  
  37. var auth = {};
  38. assembly.data = {auth: auth};
  39.  
  40. // ERROR_NO_AUTH_EXPIRES_PARAMETER
  41. assembly.checkAuthSignature();
  42.  
  43. // ERROR_INVALID_AUTH_EXPIRES_PARAMETER
  44. auth.expires = 'dasas';
  45. assembly.checkAuthSignature();
  46.  
  47. // ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER
  48. var oneHourAgo = new Date(+new Date - 60 * 60 * 1000);
  49. auth.expires = date.format(oneHourAgo, 'jsGmt');
  50. assembly.checkAuthSignature();
  51.  
  52. // ERROR_EXPIRED_AUTH_EXPIRES_PARAMETER
  53. // this time specifically testing a differently formated string
  54. var oneHourAgo = new Date(+new Date - 60 * 60 * 1000);
  55. auth.expires = date.format(oneHourAgo, 'isoDateTime');
  56. assembly.checkAuthSignature();
  57.  
  58. // ERROR_NO_AUTH_SIGNATURE_PARAMETER
  59. var inOneHour = new Date(+new Date + 60 * 60 * 1000);
  60. auth.expires = date.format(inOneHour, 'jsGmt');
  61. assembly.checkAuthSignature();
  62.  
  63. // ERROR_NO_AUTH_MESSAGE_PARAMETER
  64. auth.signature = {};
  65. assembly.checkAuthSignature();
  66.  
  67. // ERROR_NO_AUTH_MESSAGE_PARAMETER
  68. auth.signature = 'foobar';
  69. assembly.checkAuthSignature();
  70.  
  71. // ERROR_INVALID_AUTH_MESSAGE_PARAMETER
  72. auth.message = {};
  73. assembly.checkAuthSignature();
  74.  
  75. // ERROR_INVALID_JSON_AUTH_MESSAGE_PARAMETER
  76. auth.message = 'invalid json';
  77. assembly.checkAuthSignature();
  78.  
  79. // ERROR_BAD_AUTH_MESSAGE_PARAMETER
  80. auth.message = JSON.stringify({foo: 'bar'});
  81. assembly.checkAuthSignature();
  82.  
  83. // ERROR_BAD_AUTH_SIGNATURE_PARAMETER
  84. assembly.account = {secretKey: 'something'};
  85.  
  86. var message = set.clone(assembly.data);
  87. delete message.auth.signature;
  88. delete message.auth.message;
  89. message = JSON.stringify(message);
  90.  
  91. auth.message = message;
  92. assembly.checkAuthSignature();
  93.  
  94. // Now it should work
  95. assert.ok(!assembly.authorized);
  96.  
  97. auth.signature = assembly.expectedSignature();
  98. assembly.checkAccepted = function() {
  99. callbacks.checkAccepted++;
  100. };
  101.  
  102. assembly.checkAuthSignature();
  103. assert.ok(assembly.authorized);
  104.  
  105. assert.callbacks(callbacks);
Add Comment
Please, Sign In to add comment