jsfuck_test.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 = 127;
  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. var test = function (c, test) {
  24. test_encode(test, c);
  25. test.done();
  26. };
  27. var createTest = function (input) {
  28. exports['encode_tests']['encode "'+input+'"'] = test.bind(undefined, input);
  29. };
  30. exports['encode_tests'] = {};
  31. createTest('false');
  32. createTest('falsefalsetrue');
  33. createTest('ABCDEFGHIJKLMNOPQRSTUVWXYZ');
  34. createTest('abcdefghijklmnopqrstuvwxyz');
  35. for(var i=MIN; i<MAX ;i++) {
  36. createTest(String.fromCharCode(i));
  37. }