dankogai.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * $Id: dankogai.js,v 0.4 2012/08/24 05:23:18 dankogai Exp dankogai $
  3. *
  4. * use mocha to test me
  5. * http://visionmedia.github.com/mocha/
  6. */
  7. var assert = assert || require("assert");
  8. var Base64 = Base64 || require('../base64.js').Base64;
  9. var is = function (a, e, m) {
  10. return function () {
  11. assert.equal(a, e, m)
  12. }
  13. };
  14. describe('basic', function () {
  15. it('d', is(Base64.encode('d'), 'ZA=='));
  16. it('da', is(Base64.encode('da'), 'ZGE='));
  17. it('dan', is(Base64.encode('dan'), 'ZGFu'));
  18. it('ZA==', is(Base64.decode('ZA=='), 'd' ));
  19. it('ZGE=', is(Base64.decode('ZGE='), 'da' ));
  20. it('ZGFu', is(Base64.decode('ZGFu'), 'dan' ));
  21. });
  22. describe('whitespace', function () {
  23. it('Z A==', is(Base64.decode('ZA =='), 'd' ));
  24. it('ZG E=', is(Base64.decode('ZG E='), 'da' ));
  25. it('ZGF u', is(Base64.decode('ZGF u'), 'dan' ));
  26. });
  27. describe('null', function () {
  28. it('\\0', is(Base64.encode('\0'), 'AA=='));
  29. it('\\0\\0', is(Base64.encode('\0\0'), 'AAA='));
  30. it('\\0\\0\\0', is(Base64.encode('\0\0\0'), 'AAAA'));
  31. it('AA==', is(Base64.decode('AA=='), '\0' ));
  32. it('AAA=', is(Base64.decode('AAA='), '\0\0' ));
  33. it('AAAA', is(Base64.decode('AAAA'), '\0\0\0'));
  34. });
  35. describe('Base64', function () {
  36. it('.encode', is(Base64.encode('小飼弾'), '5bCP6aO85by+'));
  37. it('.encodeURI', is(Base64.encodeURI('小飼弾'), '5bCP6aO85by-'));
  38. it('.decode', is(Base64.decode('5bCP6aO85by+'), '小飼弾'));
  39. it('.decode', is(Base64.decode('5bCP6aO85by-'), '小飼弾'));
  40. });
  41. if (typeof Uint8Array === 'function') describe('fromBase64', function() {
  42. it('dankogai', is(Base64.fromUint8Array(new Uint8Array([100,97,110,107,111,103,97,105])), Base64.encode('dankogai')));
  43. it('dankoga', is(Base64.fromUint8Array(new Uint8Array([100,97,110,107,111,103,97])), Base64.encode('dankoga')));
  44. it('dankog', is(Base64.fromUint8Array(new Uint8Array([100,97,110,107,111,103])), Base64.encode('dankog')));
  45. it('danko', is(Base64.fromUint8Array(new Uint8Array([100,97,110,107,111])), Base64.encode('danko')));
  46. it('dank', is(Base64.fromUint8Array(new Uint8Array([100,97,110,107])), Base64.encode('dank')));
  47. it('dan', is(Base64.fromUint8Array(new Uint8Array([100,97,110])), Base64.encode('dan')));
  48. it('da', is(Base64.fromUint8Array(new Uint8Array([100,97])), Base64.encode('da')));
  49. it('d', is(Base64.fromUint8Array(new Uint8Array([100])), Base64.encode('d')));
  50. it('', is(Base64.fromUint8Array(new Uint8Array([])), Base64.encode('')));
  51. });
  52. if (typeof Uint8Array === 'function') describe('toBase64', function() {
  53. it('ZGFua29nYWk=', is(Base64.toUint8Array('ZGFua29nYWk=').toString(), '100,97,110,107,111,103,97,105'));
  54. it('ZGFua29nYQ==', is(Base64.toUint8Array('ZGFua29nYQ==').toString(), '100,97,110,107,111,103,97'));
  55. it('ZGFua29n', is(Base64.toUint8Array('ZGFua29n').toString(), '100,97,110,107,111,103'));
  56. it('ZGFua28=', is(Base64.toUint8Array('ZGFua28=').toString(), '100,97,110,107,111'));
  57. it('ZGFuaw==', is(Base64.toUint8Array('ZGFuaw==').toString(), '100,97,110,107'));
  58. it('ZGFu', is(Base64.toUint8Array('ZGFu').toString(), '100,97,110'));
  59. it('ZGE=', is(Base64.toUint8Array('ZGE=').toString(), '100,97'));
  60. it('ZA==', is(Base64.toUint8Array('ZA==').toString(), '100'));
  61. it('', is(Base64.toUint8Array('').toString(), ''));
  62. });