vdf
Version:
A port of steamodd's vdf.py to node.js.
167 lines (144 loc) • 3.2 kB
JavaScript
/* nodeunit test for vdf.js */
/*jshint multistr: true */
var vdf = require("./index");
/* De-serialization */
var UNQUOTED_VDF = "\n\
node \n\
{ \n\
key value \n\
} \n\
",
QUOTED_VDF = " \n\
\"node\" \n\
{ \n\
\"key\" \"value\" \n\
} \n\
",
MACRO_UNQUOTED_VDF = " \n\
node \n\
{ \n\
key value [$MACRO] \n\
} \n\
",
MACRO_QUOTED_VDF = " \n\
\"node\" \n\
{ \n\
\"key\" \"value\" [$MACRO] \n\
} \n\
",
COMMENT_QUOTED_VDF = " \n\
\"node\" \n\
{ \n\
// Hi I'm a comment. \n\
\"key\" \"value\" [$MACRO] \n\
} \n\
",
SUBNODE_QUOTED_VDF = " \n\
\"node\" \n\
{ \n\
\"subnode\" \n\
{ \n\
\"key\" \"value\" \n\
} \n\
} \n\
",
MIXED_VDF = " \n\
node \n\
{ \n\
\"key\" value \n\
key2 \"value\" \n\
\"key3\" \"value\" [$MACRO] \n\
\n\
// Comment \n\
\"subnode\" [$MACRO] \n\
{ \n\
key value \n\
} \n\
\n\
\"key4\" \"value\" \n\
} \n\
",
/* Expectations */
EXPECTED_UNQUOTED_VDF = {
"node": {
"key": "value"
}
},
EXPECTED_QUOTED_VDF = EXPECTED_UNQUOTED_VDF,
EXPECTED_MACRO_UNQUOTED_VDF = EXPECTED_UNQUOTED_VDF,
EXPECTED_MACRO_QUOTED_VDF = EXPECTED_UNQUOTED_VDF,
EXPECTED_COMMENT_QUOTED_VDF = EXPECTED_UNQUOTED_VDF,
EXPECTED_SUBNODE_QUOTED_VDF = {
"node": {
"subnode": {
"key": "value"
}
}
},
EXPECTED_MIXED_VDF = {
"node": {
"key": "value",
"key2": "value",
"key3": "value",
"subnode": {
"key": "value"
},
"key4": "value"
}
};
/* Serialization */
var SIMPLE_OBJ = EXPECTED_UNQUOTED_VDF,
SUBNODE_OBJ = EXPECTED_SUBNODE_QUOTED_VDF,
ARRAY_OBJ = {
"array": [
"a",
"b",
"c"]
},
NUMERICAL_OBJ = {
"number": 1,
"number2": 2
},
COMBINATION_OF_ABOVE_OBJ = {
"node": {
"key": "value",
"subnode": {
"key": "value"
},
"array": ["a", "b", "c", 1, 2, 3],
"number": 1024
}
},
/* Expectations */
EXPECTED_SIMPLE_OBJ = SIMPLE_OBJ,
EXPECTED_SUBNODE_OBJ = SUBNODE_OBJ,
EXPECTED_ARRAY_OBJ = {
"array": {
"a": "1",
"b": "1",
"c": "1"
}
},
EXPECTED_NUMERICAL_OBJ = {
"number": "1",
"number2": "2"
},
EXPECTED_COMBINATION_OF_ABOVE_OBJ = {
"node": {
"key": "value",
"subnode": {
"key": "value"
},
"array": {
"a": "1",
"b": "1",
"c": "1",
"1": "1",
"2": "1",
"3": "1"
},
"number": "1024"
}
};
var obj = vdf.dump(ARRAY_OBJ);
console.log(JSON.stringify(vdf.parse(obj)));