a5f3059661
I added a few more edge-cases to the tests for the new msgctxt field and revealed a bug during that. The default value has been set to empty string, but should have been null, since the spec says, this field is optional.
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
var assert = require('assert');
|
|
var fs = require('fs');
|
|
var PO = require('..');
|
|
|
|
function assertHasLine(str, line) {
|
|
var lines = str.split("\n");
|
|
var found = false;
|
|
|
|
for (var i = 0; i < lines.length; i++) {
|
|
if (lines[i].trim() === line) {
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
assert(found, "Could not find line: " + line);
|
|
}
|
|
|
|
describe('Write', function () {
|
|
it('write flags', function () {
|
|
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
|
var po = PO.parse(input);
|
|
var str = po.toString();
|
|
assertHasLine(str, "#, fuzzy");
|
|
});
|
|
|
|
it('write msgid', function () {
|
|
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
|
var po = PO.parse(input);
|
|
var str = po.toString();
|
|
assertHasLine(str, "msgid \"Sources\"");
|
|
});
|
|
|
|
it('write msgstr', function () {
|
|
var input = fs.readFileSync(__dirname + '/fixtures/fuzzy.po', 'utf8');
|
|
var po = PO.parse(input);
|
|
var str = po.toString();
|
|
assertHasLine(str, "msgstr \"Source\"");
|
|
});
|
|
|
|
describe('msgctxt', function () {
|
|
it('should write context field to file', function () {
|
|
var input = fs.readFileSync(__dirname + '/fixtures/big.po', 'utf8');
|
|
var po = PO.parse(input);
|
|
var str = po.toString();
|
|
assertHasLine(str, 'msgctxt "folder action"');
|
|
});
|
|
|
|
it('should ignore omitted context field', function () {
|
|
var po = new PO();
|
|
var item = new PO.Item();
|
|
po.items.push(item);
|
|
assert.ok(po.toString().indexOf('msgctxt') < 0);
|
|
});
|
|
|
|
it('should write empty context field', function () {
|
|
var po = new PO();
|
|
var item = new PO.Item();
|
|
|
|
item.msgctxt = '';
|
|
po.items.push(item);
|
|
assert.ok(po.toString().indexOf('msgctxt') >= 0);
|
|
});
|
|
});
|
|
});
|