| 'use strict'; |
| var Buffer = require('../../').Buffer; |
| |
| |
| var assert = require('assert'); |
| |
| var zero = []; |
| var one = [ Buffer.from('asdf') ]; |
| var long = []; |
| for (var i = 0; i < 10; i++) long.push(Buffer.from('asdf')); |
| |
| var flatZero = Buffer.concat(zero); |
| var flatOne = Buffer.concat(one); |
| var flatLong = Buffer.concat(long); |
| var flatLongLen = Buffer.concat(long, 40); |
| |
| assert(flatZero.length === 0); |
| assert(flatOne.toString() === 'asdf'); |
| // A special case where concat used to return the first item, |
| // if the length is one. This check is to make sure that we don't do that. |
| assert(flatOne !== one[0]); |
| assert(flatLong.toString() === (new Array(10 + 1).join('asdf'))); |
| assert(flatLongLen.toString() === (new Array(10 + 1).join('asdf'))); |
| |
| assertWrongList(); |
| assertWrongList(null); |
| assertWrongList(Buffer.from('hello')); |
| assertWrongList([42]); |
| assertWrongList(['hello', 'world']); |
| assertWrongList(['hello', Buffer.from('world')]); |
| |
| function assertWrongList(value) { |
| assert.throws(function() { |
| Buffer.concat(value); |
| }, function(err) { |
| return err instanceof TypeError && |
| err.message === '"list" argument must be an Array of Buffers'; |
| }); |
| } |
| |