| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| /** |
| * @fileoverview Tests for binary reader. |
| */ |
| |
| var test = require('prova'); |
| |
| var BinaryReader = require('./../../src/vom/binary-reader.js'); |
| var ByteUtil = require('./../../src/vdl/byte-util.js'); |
| var promiseFor = require('../../src/lib/async-helper').promiseFor; |
| |
| test('readByte', function(t) { |
| var expectedBytes = [ 0x0, 0xff, 0x10, 0x20, 0x30, 0x40 ]; |
| var buf = new Uint8Array(expectedBytes); |
| |
| var br = new BinaryReader(buf); |
| var i = 0; |
| function checkByte(b) { |
| return br.readByte().then(function(b) { |
| t.equals(b, expectedBytes[i], 'index ' + i + ' differs'); |
| i++; |
| }); |
| } |
| promiseFor(expectedBytes.length, checkByte).then(t.end).catch(t.end); |
| }); |
| |
| test('readByteArray', function(t) { |
| var expectedBytes = [ 0x00, 0xff, 0x10, 0x20, 0x30, 0x40 ]; |
| var br = new BinaryReader(new Uint8Array(expectedBytes)); |
| br.readByteArray(2).then(function(b) { |
| t.equals(ByteUtil.bytes2Hex(b), |
| ByteUtil.bytes2Hex(new Uint8Array([0x00, 0xff]))); |
| return br.readByteArray(4); |
| }).then(function (b) { |
| t.equals(ByteUtil.bytes2Hex(b), |
| ByteUtil.bytes2Hex(new Uint8Array([0x10, 0x20, 0x30, 0x40]))); |
| t.end(); |
| }).catch(t.end); |
| }); |