diff --git a/test/fixtures/comment.po b/test/fixtures/comment.po new file mode 100644 index 0000000..9deff3f --- /dev/null +++ b/test/fixtures/comment.po @@ -0,0 +1,20 @@ +# French translation of Link (6.x-2.9) +# Copyright (c) 2011 by the French translation team +# +msgid "" +msgstr "" +"Project-Id-Version: Link (6.x-2.9)\n" +"POT-Creation-Date: 2011-12-31 23:39+0000\n" +"PO-Revision-Date: 2013-12-17 14:21+0100\n" +"Language-Team: French\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Last-Translator: Ruben Vermeersch \n" +"Language: fr\n" +"X-Generator: Poedit 1.6.2\n" + +# Comment +msgid "Title, as plain text" +msgstr "Attribut title, en tant que texte brut" diff --git a/test/fixtures/multi-line.po b/test/fixtures/multi-line.po new file mode 100644 index 0000000..8cc9046 --- /dev/null +++ b/test/fixtures/multi-line.po @@ -0,0 +1,24 @@ +# French translation of Link (6.x-2.9) +# Copyright (c) 2011 by the French translation team +# +msgid "" +msgstr "" +"Project-Id-Version: Link (6.x-2.9)\n" +"POT-Creation-Date: 2011-12-31 23:39+0000\n" +"PO-Revision-Date: 2013-12-17 14:21+0100\n" +"Language-Team: French\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Last-Translator: Ruben Vermeersch \n" +"Language: fr\n" +"X-Generator: Poedit 1.6.2\n" + +msgid "" +"The following placeholder tokens can be used in both paths and titles. When " +"used in a path or title, they will be replaced with the appropriate values." +msgstr "" +"Les ébauches de jetons suivantes peuvent être utilisées à la fois dans les " +"chemins et dans les titres. Lorsqu'elles sont utilisées dans un chemin ou un " +"titre, elles seront remplacées par les valeurs appropriées." diff --git a/test/parse.js b/test/parse.js new file mode 100644 index 0000000..ea03a3a --- /dev/null +++ b/test/parse.js @@ -0,0 +1,36 @@ +var assert = require('assert'); +var fs = require('fs'); +var PO = require('..'); + +describe('Parse', function () { + it('Parses the big po file', function () { + var po = PO.parse(fs.readFileSync(__dirname + '/fixtures/big.po', 'utf8')); + assert.notEqual(po, null); + assert.equal(po.items.length, 67); + + var item = po.items[0]; + assert.equal(item.msgid, "Title"); + assert.equal(item.msgstr, "Titre"); + }); + + it('Handles multi-line strings', function () { + var po = PO.parse(fs.readFileSync(__dirname + '/fixtures/multi-line.po', 'utf8')); + assert.notEqual(po, null); + assert.equal(po.items.length, 1); + + var item = po.items[0]; + assert.equal(item.msgid, "The following placeholder tokens can be used in both paths and titles. When used in a path or title, they will be replaced with the appropriate values."); + assert.equal(item.msgstr, "Les ébauches de jetons suivantes peuvent être utilisées à la fois dans les chemins et dans les titres. Lorsqu'elles sont utilisées dans un chemin ou un titre, elles seront remplacées par les valeurs appropriées."); + }); + + it('Handles string comments', function () { + var po = PO.parse(fs.readFileSync(__dirname + '/fixtures/comment.po', 'utf8')); + assert.notEqual(po, null); + assert.equal(po.items.length, 1); + + var item = po.items[0]; + assert.equal(item.msgid, "Title, as plain text"); + assert.equal(item.msgstr, "Attribut title, en tant que texte brut"); + assert.deepEqual(item.comments, ["Comment"]); + }); +});