summaryrefslogtreecommitdiffstats
path: root/tests/zmlib.js
blob: e9dfc1148b88ef683b0d94e366e4dedadc9e368f (plain)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env node

"use strict";

var tape = require('blue-tape');

global.Zmodem = require('./lib/zmodem');

var zmlib = Zmodem.ZMLIB;

tape('constants', function(t) {
    t.equal(typeof zmlib.ZDLE, "number", 'ZDLE');
    t.equal(typeof zmlib.XON, "number", 'XON');
    t.equal(typeof zmlib.XOFF, "number", 'XOFF');
    t.end();
} );

tape('strip_ignored_bytes', function(t) {
    var input = [ zmlib.XOFF, 12, 45, 76, zmlib.XON, 22, zmlib.XOFF, 32, zmlib.XON | 0x80, 0, zmlib.XOFF | 0x80, 255, zmlib.XON ];
    var should_be = [ 12, 45, 76, 22, 32, 0, 255 ];

    var input_copy = input.slice(0);

    var out = zmlib.strip_ignored_bytes(input_copy);

    t.deepEqual( out, should_be, 'intended bytes are stripped' );
    t.equal( out, input_copy, 'output is the mutated input' );

    t.end();
} );

/*
tape('get_random_octets', function(t) {
    t.equal(
        zmlib.get_random_octets(42).length,
        42,
        'length is correct'
    );

    t.equal(
        typeof zmlib.get_random_octets(42)[0],
        "number",
        'type is correct'
    );

    t.ok(
        zmlib.get_random_octets(999999).every( (i) => i>=0 && i<=255 ),
        'values are all octet values'
    );

    t.end();
} );
*/

tape('find_subarray', function(t) {
    t.equal(
        zmlib.find_subarray([12, 56, 43, 77], [43, 77]),
        2,
        'finds at end'
    );

    t.equal(
        zmlib.find_subarray([12, 56, 43, 77], [12, 56]),
        0,
        'finds at begin'
    );

    t.equal(
        zmlib.find_subarray([12, 56, 43, 77], [56, 43]),
        1,
        'finds in the middle'
    );

    t.equal(
        zmlib.find_subarray([12, 56, 43, 77], [56, 43, 43]),
        -1,
        'non-find'
    );

    t.end();
} );