jsfuck_test.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. exports['encode_tests'] = {
  10. 'encode numbers': function(test) {
  11. for (var i=0; i<=10; i++) {
  12. test_encode(test, i+"");
  13. }
  14. test.done();
  15. },
  16. 'encode "false"': function(test) {
  17. test_encode(test, 'false');
  18. test.done();
  19. },
  20. 'encode "falsefalsetrue"': function(test) {
  21. test_encode(test, 'falsefalsetrue');
  22. test.done();
  23. },
  24. 'encode "a"': function(test) {
  25. test_encode(test, 'a');
  26. test.done();
  27. },
  28. 'encode "ABCDEFGHIJKLMNOPQRSTUVWXYZ"': function(test) {
  29. test_encode(test, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ');
  30. test.done();
  31. },
  32. 'encode "abcdefghijklmnopqrstuvwxyz"': function(test) {
  33. test_encode(test, 'abcdefghijklmnopqrstuvwxyz');
  34. test.done();
  35. }
  36. };
  37. exports['tests'] = {
  38. 'encode 1': function(test) {
  39. var encoded = JSFuck.encode('1');
  40. test.equal(encoded, '[+!+[]]+[]');
  41. test.done();
  42. },
  43. 'encode 2': function(test) {
  44. var encoded = JSFuck.encode('2');
  45. test.equal(encoded, '[!+[]+!+[]]+[]');
  46. test.done();
  47. },
  48. 'encode 3': function(test) {
  49. var encoded = JSFuck.encode('3');
  50. test.equal(encoded, '[!+[]+!+[]+!+[]]+[]');
  51. test.done();
  52. }
  53. };