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.
		
		
		
		
		
			
		
			
				
					
					
						
							85 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							85 lines
						
					
					
						
							1.8 KiB
						
					
					
				if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false | 
						|
var B = require('../').Buffer | 
						|
var test = require('tape') | 
						|
 | 
						|
test('instanceof Buffer', function (t) { | 
						|
  var buf = new B([1, 2]) | 
						|
  t.ok(buf instanceof B) | 
						|
  t.end() | 
						|
}) | 
						|
 | 
						|
test('convert to Uint8Array in modern browsers', function (t) { | 
						|
  if (B.TYPED_ARRAY_SUPPORT) { | 
						|
    var buf = new B([1, 2]) | 
						|
    var uint8array = new Uint8Array(buf.buffer) | 
						|
    t.ok(uint8array instanceof Uint8Array) | 
						|
    t.equal(uint8array[0], 1) | 
						|
    t.equal(uint8array[1], 2) | 
						|
  } else { | 
						|
    t.pass('object impl: skipping test') | 
						|
  } | 
						|
  t.end() | 
						|
}) | 
						|
 | 
						|
test('indexes from a string', function (t) { | 
						|
  var buf = new B('abc') | 
						|
  t.equal(buf[0], 97) | 
						|
  t.equal(buf[1], 98) | 
						|
  t.equal(buf[2], 99) | 
						|
  t.end() | 
						|
}) | 
						|
 | 
						|
test('indexes from an array', function (t) { | 
						|
  var buf = new B([ 97, 98, 99 ]) | 
						|
  t.equal(buf[0], 97) | 
						|
  t.equal(buf[1], 98) | 
						|
  t.equal(buf[2], 99) | 
						|
  t.end() | 
						|
}) | 
						|
 | 
						|
test('setting index value should modify buffer contents', function (t) { | 
						|
  var buf = new B([ 97, 98, 99 ]) | 
						|
  t.equal(buf[2], 99) | 
						|
  t.equal(buf.toString(), 'abc') | 
						|
 | 
						|
  buf[2] += 10 | 
						|
  t.equal(buf[2], 109) | 
						|
  t.equal(buf.toString(), 'abm') | 
						|
  t.end() | 
						|
}) | 
						|
 | 
						|
test('storing negative number should cast to unsigned', function (t) { | 
						|
  var buf = new B(1) | 
						|
 | 
						|
  if (B.TYPED_ARRAY_SUPPORT) { | 
						|
    // This does not work with the object implementation -- nothing we can do! | 
						|
    buf[0] = -3 | 
						|
    t.equal(buf[0], 253) | 
						|
  } | 
						|
 | 
						|
  buf = new B(1) | 
						|
  buf.writeInt8(-3, 0) | 
						|
  t.equal(buf[0], 253) | 
						|
 | 
						|
  t.end() | 
						|
}) | 
						|
 | 
						|
test('test that memory is copied from array-like', function (t) { | 
						|
  if (B.TYPED_ARRAY_SUPPORT) { | 
						|
    var u = new Uint8Array(4) | 
						|
    var b = new B(u) | 
						|
    b[0] = 1 | 
						|
    b[1] = 2 | 
						|
    b[2] = 3 | 
						|
    b[3] = 4 | 
						|
 | 
						|
    t.equal(u[0], 0) | 
						|
    t.equal(u[1], 0) | 
						|
    t.equal(u[2], 0) | 
						|
    t.equal(u[3], 0) | 
						|
  } else { | 
						|
    t.pass('object impl: skipping test') | 
						|
  } | 
						|
 | 
						|
  t.end() | 
						|
})
 | 
						|
 |