mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.2 KiB
71 lines
2.2 KiB
var i = require("../")
|
|
, tap = require("tap")
|
|
, test = tap.test
|
|
, fs = require("fs")
|
|
, path = require("path")
|
|
, fixture = path.resolve(__dirname, "./fixtures/foo.ini")
|
|
, data = fs.readFileSync(fixture, "utf8")
|
|
, d
|
|
, expectE = 'o = p\n'
|
|
+ 'a with spaces = b c\n'
|
|
+ '" xa n p " = "\\"\\r\\nyoyoyo\\r\\r\\n"\n'
|
|
+ '"[disturbing]" = hey you never know\n'
|
|
+ 'zr[] = deedee\n'
|
|
+ 'ar[] = one\n'
|
|
+ 'ar[] = three\n'
|
|
+ 'ar[] = this is included\n'
|
|
+ 'br = warm\n'
|
|
+ '\n'
|
|
+ '[a]\n'
|
|
+ 'av = a val\n'
|
|
+ 'e = { o: p, a: '
|
|
+ '{ av: a val, b: { c: { e: "this [value]" '
|
|
+ '} } } }\nj = "\\"{ o: \\"p\\", a: { av:'
|
|
+ ' \\"a val\\", b: { c: { e: \\"this [value]'
|
|
+ '\\" } } } }\\""\n"[]" = a square?\n'
|
|
+ 'cr[] = four\ncr[] = eight\n\n'
|
|
+'[a.b.c]\ne = 1\n'
|
|
+ 'j = 2\n\n[x\\.y\\.z]\nx.y.z = xyz\n\n'
|
|
+ '[x\\.y\\.z.a\\.b\\.c]\na.b.c = abc\n'
|
|
+ 'nocomment = this\\; this is not a comment\n'
|
|
, expectD =
|
|
{ o: 'p',
|
|
'a with spaces': 'b c',
|
|
" xa n p ":'"\r\nyoyoyo\r\r\n',
|
|
'[disturbing]': 'hey you never know',
|
|
'zr': ['deedee'],
|
|
'ar': ['one', 'three', 'this is included'],
|
|
'br': 'warm',
|
|
a:
|
|
{ av: 'a val',
|
|
e: '{ o: p, a: { av: a val, b: { c: { e: "this [value]" } } } }',
|
|
j: '"{ o: "p", a: { av: "a val", b: { c: { e: "this [value]" } } } }"',
|
|
"[]": "a square?",
|
|
cr: ['four', 'eight'],
|
|
b: { c: { e: '1', j: '2' } } },
|
|
'x.y.z': {
|
|
'x.y.z': 'xyz',
|
|
'a.b.c': {
|
|
'a.b.c': 'abc',
|
|
'nocomment': 'this\; this is not a comment'
|
|
}
|
|
}
|
|
}
|
|
|
|
test("decode from file", function (t) {
|
|
var d = i.decode(data)
|
|
t.deepEqual(d, expectD)
|
|
t.end()
|
|
})
|
|
|
|
test("encode from data", function (t) {
|
|
var e = i.encode(expectD)
|
|
t.deepEqual(e, expectE)
|
|
|
|
var obj = {log: { type:'file', level: {label:'debug', value:10} } }
|
|
e = i.encode(obj)
|
|
t.notEqual(e.slice(0, 1), '\n', 'Never a blank first line')
|
|
t.notEqual(e.slice(-2), '\n\n', 'Never a blank final line')
|
|
|
|
t.end()
|
|
})
|
|
|