You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.3 KiB
						
					
					
				var Buffer = require('buffer').Buffer | 
						|
var test = require('tape') | 
						|
 | 
						|
var toArrayBuffer = require('.') | 
						|
 | 
						|
function elementsEqual (ab, buffer) { | 
						|
	var view = new Uint8Array(ab) | 
						|
	for (var i = 0; i < view.length; i++) { | 
						|
		if (view[i] !== buffer[i]) { | 
						|
			return false | 
						|
		} | 
						|
	} | 
						|
	return true | 
						|
} | 
						|
 | 
						|
test('Basic behavior', function (t) { | 
						|
	var buf = new Buffer(10) | 
						|
	for (var i = 0; i < 10; i++) { | 
						|
		buf[i] = i | 
						|
	} | 
						|
 | 
						|
	var ab = toArrayBuffer(buf) | 
						|
 | 
						|
	t.equals(ab.byteLength, 10, 'correct length') | 
						|
	t.ok(elementsEqual(ab, buf), 'elements equal') | 
						|
	t.end() | 
						|
}) | 
						|
 | 
						|
test('Behavior when input is a subarray 1', function (t) { | 
						|
	var origBuf = new Buffer(10) | 
						|
	for (var i = 0; i < 10; i++) { | 
						|
		origBuf[i] = i | 
						|
	} | 
						|
	var buf = origBuf.slice(1) | 
						|
 | 
						|
	var ab = toArrayBuffer(buf) | 
						|
 | 
						|
	t.equals(ab.byteLength, 9, 'correct length') | 
						|
	t.ok(elementsEqual(ab, buf), 'elements equal') | 
						|
	t.notOk(ab === buf.buffer, 'the underlying ArrayBuffer is not returned when incorrect') | 
						|
	t.end() | 
						|
}) | 
						|
 | 
						|
test('Behavior when input is a subarray 2', function (t) { | 
						|
	var origBuf = new Buffer(10) | 
						|
	for (var i = 0; i < 10; i++) { | 
						|
		origBuf[i] = i | 
						|
	} | 
						|
	var buf = origBuf.slice(0, 9) | 
						|
 | 
						|
	var ab = toArrayBuffer(buf) | 
						|
 | 
						|
	t.equals(ab.byteLength, 9, 'correct length') | 
						|
	t.ok(elementsEqual(ab, buf), 'elements equal') | 
						|
	t.notOk(ab === buf.buffer, 'the underlying ArrayBuffer is not returned when incorrect') | 
						|
	t.end() | 
						|
})
 | 
						|
 |