jsfuck_test.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*jshint -W061 */
  2. 'use strict';
  3. var JSFuck = require('../jsfuck.js').JSFuck,
  4. test_encode = function (test, value) {
  5. var encoded = JSFuck.encode(value),
  6. unencoded = eval(encoded);
  7. test.strictEqual(value, unencoded, 'encoding "' + value + '" failed');
  8. };
  9. var MIN = 32, MAX = 126;
  10. var fs = require('fs');
  11. exports['integration'] = {
  12. 'test': function(test) {
  13. var file = fs.openSync('output.txt', 'w+');
  14. for (var i = MIN; i < MAX; i++) {
  15. var c = String.fromCharCode(i),
  16. encoded = JSFuck.encode(c);
  17. fs.writeSync(file, '`' + c + '` ' + encoded.length + '\n');
  18. }
  19. fs.closeSync(file);
  20. test.done();
  21. }
  22. };
  23. exports['encode_tests'] = {
  24. 'encode numbers': function(test) {
  25. for (var i=0; i<=10; i++) {
  26. test_encode(test, i+"");
  27. }
  28. test.done();
  29. },
  30. 'encode "false"': function(test) {
  31. test_encode(test, 'false');
  32. test.done();
  33. },
  34. 'encode "falsefalsetrue"': function(test) {
  35. test_encode(test, 'falsefalsetrue');
  36. test.done();
  37. },
  38. 'encode "a"': function(test) {
  39. test_encode(test, 'a');
  40. test.done();
  41. },
  42. 'encode "ABCDEFGHIJKLMNOPQRSTUVWXYZ"': function(test) {
  43. test_encode(test, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ');
  44. test.done();
  45. },
  46. 'encode "abcdefghijklmnopqrstuvwxyz"': function(test) {
  47. test_encode(test, 'abcdefghijklmnopqrstuvwxyz');
  48. test.done();
  49. }
  50. };
  51. exports['tests'] = {
  52. 'encode 1': function(test) {
  53. var encoded = JSFuck.encode('1');
  54. test.equal(encoded, '[+!+[]]+[]');
  55. test.done();
  56. },
  57. 'encode 2': function(test) {
  58. var encoded = JSFuck.encode('2');
  59. test.equal(encoded, '[!+[]+!+[]]+[]');
  60. test.done();
  61. },
  62. 'encode 3': function(test) {
  63. var encoded = JSFuck.encode('3');
  64. test.equal(encoded, '[!+[]+!+[]+!+[]]+[]');
  65. test.done();
  66. }
  67. };