1
0
Fork 0
mirror of https://github.com/demostf/demo.js synced 2026-06-04 09:04:13 +02:00
This commit is contained in:
Robin Appelman 2017-12-09 17:02:52 +01:00
commit 787c6a0279
21 changed files with 118 additions and 115 deletions

View file

@ -1,12 +1,12 @@
import * as assert from 'assert';
import {BitStream} from 'bit-buffer';
import {readFileSync, statSync, writeFileSync} from 'fs';
import {DynamicBitStream} from '../../DynamicBitStream';
import {MessageTransform, nullTransform, PacketTransform, Transformer} from '../../Transformer';
import {Parser} from '../../Parser';
import {Analyser} from '../../Analyser';
import {Encoder} from '../../Encoder';
import {Packet} from '../../Data/Packet';
import {DynamicBitStream} from '../../DynamicBitStream';
import {Encoder} from '../../Encoder';
import {Parser} from '../../Parser';
import {MessageTransform, nullTransform, PacketTransform, Transformer} from '../../Transformer';
function testDemo(name: string, packetTransform: PacketTransform, messageTransform: MessageTransform) {
const decodeStream = new BitStream(
@ -76,7 +76,7 @@ function removeBitStreams(object: {}) {
for (const key in object) {
if (object.hasOwnProperty(key)) {
if (object[key] instanceof BitStream) {
//skip
// skip
} else if (object[key] instanceof Object) {
result[key] = removeBitStreams(object[key]);
} else {

View file

@ -1,6 +1,6 @@
import {BitStream} from 'bit-buffer';
import {assertEncoder, assertParser, assertReEncode, getStream} from './Packet/PacketTest';
import {encodeHeader, parseHeader} from '../../../Parser/Header';
import {assertEncoder, assertParser, assertReEncode, getStream} from './Packet/PacketTest';
const data = [
72, 76, 50, 68,
@ -361,38 +361,37 @@ const data = [
147, 25, 115, 17
];
suite('Header', () => {
test('Parse header', () => {
assertParser(parseHeader, getStream(data), {
'type': 'HL2DEMO',
'version': 3,
'protocol': 24,
'server': 'FakkelBrigade #1 (#712133)',
'nick': 'SourceTV Demo',
'map': 'cp_prolands_b2c',
'game': 'tf',
'duration': 515.1900024414062,
'ticks': 34346,
'frames': 34334,
'sigon': 808977
type: 'HL2DEMO',
version: 3,
protocol: 24,
server: 'FakkelBrigade #1 (#712133)',
nick: 'SourceTV Demo',
map: 'cp_prolands_b2c',
game: 'tf',
duration: 515.1900024414062,
ticks: 34346,
frames: 34334,
sigon: 808977
}
, 8576);
});
test('Encode header', () => {
assertEncoder(parseHeader, encodeHeader, {
'type': 'HL2DEMO',
'version': 3,
'protocol': 24,
'server': 'FakkelBrigade #1 (#712133)',
'nick': 'SourceTV Demo',
'map': 'cp_prolands_b2c',
'game': 'tf',
'duration': 515.1900024414062,
'ticks': 34346,
'frames': 34334,
'sigon': 808977
type: 'HL2DEMO',
version: 3,
protocol: 24,
server: 'FakkelBrigade #1 (#712133)',
nick: 'SourceTV Demo',
map: 'cp_prolands_b2c',
game: 'tf',
duration: 515.1900024414062,
ticks: 34346,
frames: 34334,
sigon: 808977
}
, 8576);
});

View file

@ -47,12 +47,12 @@ suite('DataTable', () => {
test('Encode DataTable message', () => {
const source = getStream(data);
const expected = parser(source);
const expectedResult = parser(source);
const length = 947888;
const stream = new BitStream(new ArrayBuffer(length + 64000));
encoder(expected, stream);
encoder(expectedResult, stream);
const pos = stream.index;
@ -63,9 +63,9 @@ suite('DataTable', () => {
stream.index = 0;
const result = parser(stream);
assert.deepEqual(result.serverClasses, expected.serverClasses, 'Re-decoded value not equal to original value');
assert.deepEqual(result.tick, expected.tick, 'Re-decoded value not equal to original value');
assert.deepEqual(result.type, expected.type, 'Re-decoded value not equal to original value');
assert.deepEqual(result.serverClasses, expectedResult.serverClasses, 'Re-decoded value not equal to original value');
assert.deepEqual(result.tick, expectedResult.tick, 'Re-decoded value not equal to original value');
assert.deepEqual(result.type, expectedResult.type, 'Re-decoded value not equal to original value');
for (let i = 0; i < result.tables.length; i++) {
const resultTable = result.tables[i];
const expectedTable = expectedRaw.tables[i];

View file

@ -43,8 +43,8 @@ suite('Packet', () => {
});
test('Encode first packet message', () => {
const expected = parser(new BitStream(firstPacketData));
assertEncoder(parser, encoder, expected, 1032952, '');
const expectedResult = parser(new BitStream(firstPacketData));
assertEncoder(parser, encoder, expectedResult, 1032952, '');
});
// test('Re-encode first packet message', () => {

View file

@ -5,7 +5,7 @@ import {
} from '../../../../Parser/Packet/BSPDecal';
import {SendPropEncoder} from '../../../../Parser/SendPropEncoder';
import {SendPropParser} from '../../../../Parser/SendPropParser';
import {assertEncoder, assertParser, getStream, assertReEncode} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = [239, 236, 208, 85, 33, 127, 128, 9, 8];

View file

@ -14,7 +14,7 @@ function getExistingParserState() {
maxEntries: 2048,
fixedUserDataSize: 1,
fixedUserDataSizeBits: 1,
compressed: false,
compressed: false
};
existingTable.entries[70] = {text: 'maps\\pl_badwater_pro_v9.bsp'};
const state = createParserState();

View file

@ -1,8 +1,8 @@
import {BitStream} from 'bit-buffer';
import {assertEncoder, assertParser, assertReEncode} from './Packet/PacketTest';
import {readFileSync} from 'fs';
import {encodeStringTableEntries, parseStringTableEntries} from '../../../Parser/StringTableParser';
import {StringTableEntry} from '../../../Data/StringTable';
import {encodeStringTableEntries, parseStringTableEntries} from '../../../Parser/StringTableParser';
import {assertEncoder, assertParser, assertReEncode, getStream} from './Packet/PacketTest';
const baseTable = {
name: 'modelprecache',
@ -16,7 +16,6 @@ const baseTable = {
const data = readFileSync(__dirname + '/../../data/stringTableEntries.bin');
function ParseUpdate(stream: BitStream) {
//981
return parseStringTableEntries(stream, baseTable, 981);
}
@ -25,10 +24,6 @@ function EncodeUpdate(entries: StringTableEntry[], stream: BitStream) {
}
suite('string table parser', () => {
// test('Parse string table entries', () => {
// assertParser(ParseUpdate, getStream(exampleData), examplePacket, 41);
// });
test('Encode string table entries', () => {
const expected = ParseUpdate(new BitStream(data));
assertEncoder(ParseUpdate, EncodeUpdate, expected);