From c723d7a347df6cd21409cc2ff34e5cb0a8c23e5a Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 25 Jan 2017 00:32:59 +0800 Subject: [PATCH] buffer, test: add tests for buffer.toJSON * Pull out the tests for buffer.toJSON from test-buffer-alloc * Add tests for serializing a 0-length buffer PR-URL: https://github.com/nodejs/node/pull/10979 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- test/parallel/test-buffer-alloc.js | 24 ------------------- test/parallel/test-buffer-tojson.js | 36 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 test/parallel/test-buffer-tojson.js diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js index 1426bd80ebc4ab..7f85943fa1898a 100644 --- a/test/parallel/test-buffer-alloc.js +++ b/test/parallel/test-buffer-alloc.js @@ -767,30 +767,6 @@ assert.strictEqual(Buffer.from('13.37').length, 5); // issue GH-3416 Buffer.from(Buffer.allocUnsafe(0), 0, 0); -// GH-5110 -{ - const buffer = Buffer.from('test'); - const string = JSON.stringify(buffer); - - assert.strictEqual(string, '{"type":"Buffer","data":[116,101,115,116]}'); - - assert.deepStrictEqual(buffer, JSON.parse(string, (key, value) => { - return value && value.type === 'Buffer' ? - Buffer.from(value.data) : - value; - })); -} - -// issue GH-7849 -{ - const buf = Buffer.from('test'); - const json = JSON.stringify(buf); - const obj = JSON.parse(json); - const copy = Buffer.from(obj); - - assert(buf.equals(copy)); -} - // issue GH-4331 assert.throws(() => Buffer.allocUnsafe(0xFFFFFFFF), RangeError); assert.throws(() => Buffer.allocUnsafe(0xFFFFFFFFF), RangeError); diff --git a/test/parallel/test-buffer-tojson.js b/test/parallel/test-buffer-tojson.js new file mode 100644 index 00000000000000..ae31e8f5a5abb3 --- /dev/null +++ b/test/parallel/test-buffer-tojson.js @@ -0,0 +1,36 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const Buffer = require('buffer').Buffer; + +{ + assert.strictEqual(JSON.stringify(Buffer.alloc(0)), + '{"type":"Buffer","data":[]}'); + assert.strictEqual(JSON.stringify(Buffer.from([1, 2, 3, 4])), + '{"type":"Buffer","data":[1,2,3,4]}'); +} + +// issue GH-7849 +{ + const buf = Buffer.from('test'); + const json = JSON.stringify(buf); + const obj = JSON.parse(json); + const copy = Buffer.from(obj); + + assert.deepStrictEqual(buf, copy); +} + +// GH-5110 +{ + const buffer = Buffer.from('test'); + const string = JSON.stringify(buffer); + + assert.strictEqual(string, '{"type":"Buffer","data":[116,101,115,116]}'); + + function receiver(key, value) { + return value && value.type === 'Buffer' ? Buffer.from(value.data) : value; + } + + assert.deepStrictEqual(buffer, JSON.parse(string, receiver)); +}