utf8-chunks.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. var fs = require('fs')
  2. , clarinet = require('../clarinet.js')
  3. , chunks = clarinet.createStream()
  4. , assert = require('assert')
  5. ;
  6. var han_value = '我spl我it我';
  7. var han_obj = '{"thing":"' + han_value + '"}';
  8. var han_test_obj = '';
  9. var han_buffer_first = new Buffer([0xe6, 0x88]);
  10. var han_buffer_second = new Buffer([0x91, 0x73, 0x70, 0x6c, 0xe6, 0x88, 0x91, 0x69, 0x74, 0xe6, 0x88]);
  11. var han_buffer_third = new Buffer([0x91]);
  12. var han_buffer_full = new Buffer([
  13. 0xe6, 0x88, 0x91,
  14. 0x73, 0x70, 0x6c,
  15. 0xe6, 0x88, 0x91,
  16. 0x69, 0x74,
  17. 0xe6, 0x88, 0x91
  18. ]);
  19. describe('clarinet', function(){
  20. describe('#utf8-chunks', function() {
  21. it('should be able to parse utf8 characters split across data chunks', function (done){
  22. chunks.on("error", function (err) { done(err); });
  23. chunks.on("data", function (data) {
  24. han_test_obj += data;
  25. });
  26. chunks.on("end", function () {
  27. assert.equal(han_obj, han_test_obj);
  28. done();
  29. });
  30. chunks.write('{"thing":"');
  31. chunks.write(han_buffer_first);
  32. chunks.write(han_buffer_second);
  33. chunks.write(han_buffer_third);
  34. //chunks.write(han_buffer_full);
  35. chunks.write('"}');
  36. chunks.end();
  37. });
  38. });
  39. });