2013-12-17 17:37:17 +04:00
|
|
|
var assert = require('assert');
|
|
|
|
var PO = require('..');
|
|
|
|
|
|
|
|
describe('Headers', function () {
|
|
|
|
var po;
|
|
|
|
|
|
|
|
before(function (done) {
|
|
|
|
PO.load(__dirname + '/fixtures/big.po', function (err, result) {
|
|
|
|
assert.equal(err, null);
|
|
|
|
po = result;
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Parses the po file', function () {
|
|
|
|
assert.notEqual(po, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Parses headers correctly', function () {
|
|
|
|
assert.equal(po.headers['Project-Id-Version'], 'Link (6.x-2.9)');
|
|
|
|
assert.equal(po.headers['MIME-Version'], '1.0');
|
|
|
|
assert.equal(po.headers['Plural-Forms'], 'nplurals=2; plural=(n > 1);');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Parses all headers', function () {
|
|
|
|
// There are 11 headers in the .po file, but some default headers
|
|
|
|
// are defined (nr. 12 in this case is Report-Msgid-Bugs-To).
|
|
|
|
assert.equal(Object.keys(po.headers).length, 12);
|
|
|
|
});
|
|
|
|
});
|
2015-09-22 11:38:43 +03:00
|
|
|
|
|
|
|
describe('PO files with no headers', function () {
|
|
|
|
|
|
|
|
it('Parses an empty string', function () {
|
|
|
|
var po = PO.parse('');
|
|
|
|
assert.notEqual(po, null);
|
|
|
|
// all headers should be empty
|
|
|
|
for (var key in po.headers) {
|
|
|
|
assert.equal(po.headers[key], '');
|
|
|
|
}
|
|
|
|
assert.equal(po.items.length, 0);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Parses a minimal example', function () {
|
|
|
|
var po = PO.parse('msgid "minimal PO"\nmsgstr ""');
|
|
|
|
assert.notEqual(po, null);
|
|
|
|
// all headers should be empty
|
|
|
|
for (var key in po.headers) {
|
|
|
|
assert.equal(po.headers[key], '');
|
|
|
|
}
|
|
|
|
assert.equal(po.items.length, 1);
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('advanced example', function () {
|
|
|
|
var po;
|
|
|
|
|
|
|
|
before(function (done) {
|
|
|
|
PO.load(__dirname + '/fixtures/no_header.po', function (err, result) {
|
|
|
|
assert.equal(err, null);
|
|
|
|
po = result;
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Parses the po file', function () {
|
|
|
|
assert.notEqual(po, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('Finds all items', function () {
|
|
|
|
assert.equal(po.items.length, 2);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|