/
test_serializer.js
52 lines (44 loc) · 1.22 KB
/
test_serializer.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
var assert = require('nodetk/testing/custom_assert');
var serializer = require('nodetk/serializer');
var VALS = [
-4
, 0
, 42
, null
, true
, false
, []
, ["a",2]
, {}
, ''
, 12554322
, "short str"
, "Some long string that would take a lot of place !!!!"
, {name: "Pierre"}
, {name: "Cécile"}
, {nested: {structure: ['some', 'öi']}}
];
exports.tests = [
['dump_str & laod_str', VALS.length * 2, function() {
VALS.forEach(function(val) {
var dump = serializer.dump_str(val);
var original = serializer.load_str(dump);
assert.deepEqual(original, val);
// Algorithm determinist:
var dump2 = serializer.dump_str(val);
assert.equal(dump, dump2);
});
}],
['dump_secure_str', VALS.length * 2, function() {
var encrypt_key = 'somesecretkey';
var validate_key = 'anothersecretstring';
VALS.forEach(function(val) {
var res = serializer.dump_secure_str(val, encrypt_key, validate_key);
var original = serializer.load_secure_str(res, encrypt_key, validate_key);
assert.deepEqual(original, val);
// The result string must vary between different calls:
var res2 = serializer.dump_secure_str(val, encrypt_key, validate_key);
assert.notEqual(res, res2);
});
}],
];