util.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. describe('util', function() {
  2. var testRandom = function(fn) {
  3. var i = 0
  4. , generated = {};
  5. while(i < 25) {
  6. var p = fn();
  7. if (generated[p]) throw new Error('not so random')
  8. generated[p] = 1;
  9. i++;
  10. }
  11. }
  12. it('inherits', function() {
  13. function ctor() {}
  14. function superCtor() {}
  15. superCtor.prototype.test = function() { return 5; }
  16. util.inherits(ctor, superCtor);
  17. expect(new ctor()).to.be.a(superCtor);
  18. expect(new ctor().test()).to.be.equal(5);
  19. })
  20. /*
  21. * extend overwrites keys if already exists
  22. * leaves existing keys alone otherwise
  23. */
  24. it('extend', function() {
  25. var a = {a: 1, b: 2, c: 3, d: 4}
  26. , b = {d: 2};
  27. util.extend(b, a);
  28. expect(b).to.eql(a);
  29. expect(b.d).to.be.equal(4);
  30. b = {z: 2};
  31. util.extend(b, a);
  32. expect(b.z).to.be.equal(2);
  33. })
  34. it('pack', function() {
  35. expect(util.pack).to.be.equal(BinaryPack.pack);
  36. })
  37. it('unpack', function() {
  38. expect(util.unpack).to.be.equal(BinaryPack.unpack);
  39. })
  40. // FF no like
  41. it('log', function(done) {
  42. var consolelog = console.log;
  43. // default is false
  44. expect(util.debug).to.be.equal(false);
  45. util.debug = true;
  46. console.log = function() {
  47. var arg = Array.prototype.slice.call(arguments);
  48. expect(arg.join(' ')).to.be.equal('PeerJS: hi');
  49. done();
  50. }
  51. util.log('hi');
  52. // reset
  53. console.log = consolelog;
  54. util.debug = false;
  55. })
  56. it('setZeroTimeout', function(done) {
  57. var isdone = false;
  58. util.setZeroTimeout(function() {
  59. if (isdone) {
  60. done();
  61. }
  62. });
  63. isdone = true;
  64. })
  65. it('blobToArrayBuffer', function(done) {
  66. var blob = new Blob(['hi']);
  67. util.blobToArrayBuffer(blob, function(result) {
  68. expect(result.byteLength).to.be.equal(2);
  69. expect(result.slice).to.be.a('function');
  70. expect(result instanceof ArrayBuffer).to.be.equal(true);
  71. done();
  72. });
  73. })
  74. it('blobToBinaryString', function(done) {
  75. var blob = new Blob(['hi']);
  76. util.blobToBinaryString(blob, function(result) {
  77. expect(result).to.equal('hi');
  78. done();
  79. });
  80. })
  81. it('binaryStringToArrayBuffer', function() {
  82. var ba = util.binaryStringToArrayBuffer('\0\0');
  83. expect(ba.byteLength).to.be.equal(2);
  84. expect(ba.slice).to.be.a('function');
  85. expect(ba instanceof ArrayBuffer).to.be.equal(true);
  86. })
  87. it('randomToken', function() {
  88. testRandom(util.randomToken);
  89. })
  90. });