1
0
Fork 0
zmodemjs/tests/zsubpacket.js

63 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

#!/usr/bin/env node
"use strict";
const tape = require('blue-tape');
const testhelp = require('./lib/testhelp');
global.Zmodem = require('./lib/zmodem');
var zdle = new Zmodem.ZDLE( { escape_ctrl_chars: true } );
tape('build, encode, parse', function(t) {
let content = [1, 2, 3, 4];
["end_ack", "no_end_ack", "end_no_ack", "no_end_no_ack"].forEach( end => {
var header = Zmodem.Subpacket.build( content, end );
t.deepEquals(
header.get_payload(),
content,
`${end}: get_payload()`
);
t.is(
header.frame_end(),
!/no_end/.test(end),
`${end}: frame_end()`
);
t.is(
header.ack_expected(),
!/no_ack/.test(end),
`${end}: ack_expected()`
);
[16, 32].forEach( crclen => {
var encoded = header["encode" + crclen](zdle);
var parsed = Zmodem.Subpacket["parse" + crclen](encoded);
t.deepEquals(
parsed.get_payload(),
content,
`${end}, CRC${crclen} rount-trip: get_payload()`
);
t.is(
parsed.frame_end(),
header.frame_end(),
`${end}, CRC${crclen} rount-trip: frame_end()`
);
t.is(
parsed.ack_expected(),
header.ack_expected(),
`${end}, CRC${crclen} rount-trip: ack_expected()`
);
} );
} );
t.end();
} );