/
dtvcc_packet_unit.js
60 lines (53 loc) · 1.55 KB
/
dtvcc_packet_unit.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*! @license
* Shaka Player
* Copyright 2016 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
describe('DtvccPacket', () => {
/** @type {!shaka.cea.DtvccPacket} */
let dtvccPacket;
it('reads all data from a packet', () => {
const dataBytes = [{
pts: 0,
type: shaka.cea.DtvccPacketBuilder.DTVCC_PACKET_DATA,
value: 0,
order: 0,
},
{
pts: 0,
type: shaka.cea.DtvccPacketBuilder.DTVCC_PACKET_DATA,
value: 0x1,
order: 0,
}];
dtvccPacket = new shaka.cea.DtvccPacket(dataBytes);
let i = 0;
while (dtvccPacket.hasMoreData()) {
const data = dtvccPacket.readByte();
expect(data).toBe(dataBytes[i]);
i++;
}
expect(dtvccPacket.getPosition()).toBe(2);
});
it('should skip data from a packet correctly', () => {
const dataBytes = [{
pts: 0,
type: shaka.cea.DtvccPacketBuilder.DTVCC_PACKET_DATA,
value: 0,
order: 0,
}];
dtvccPacket = new shaka.cea.DtvccPacket(dataBytes);
dtvccPacket.skip(1);
expect(dtvccPacket.getPosition()).toBe(1);
});
describe('should throw a buffer read out of bounds error', () => {
const error = shaka.test.Util.jasmineError(new shaka.util.Error(
shaka.util.Error.Severity.CRITICAL, shaka.util.Error.Category.TEXT,
shaka.util.Error.Code.BUFFER_READ_OUT_OF_BOUNDS));
it('on unbuffered skips', () => {
expect(() => dtvccPacket.skip(1)).toThrow(error);
});
it('on unbuffered reads', () => {
expect(() => dtvccPacket.readByte()).toThrow(error);
});
});
});