var po2json = require(".."), fs = require("fs"), Jed = require("jed"); module.exports["parse"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/pl.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/pl.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po); test.deepEqual(parsed, this.json); test.done(); } } module.exports["parse with Jed format"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/pl.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/pl-jed.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po, { format: 'jed' }); test.deepEqual(parsed, this.json); test.doesNotThrow(function() { new Jed(parsed) }, Error) test.done(); } }; module.exports["parse with Jed1.x format"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/pl.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/pl-jed1.x.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po, { format: 'jed1.x' }); test.deepEqual(parsed, this.json); test.doesNotThrow(function() { new Jed(parsed) }, Error) test.done(); } }; module.exports["parse with MessageFormatter format"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/pl-mf.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/pl-mf.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po, { format: 'mf' }); test.deepEqual(parsed, this.json); test.done(); } } module.exports["parse with MessageFormatter format + fallback-to-msgid"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/en-empty.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/en-mf-fallback-to-msgid.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po, { format: 'mf', 'fallback-to-msgid': true }); test.deepEqual(parsed, this.json); test.done(); } } module.exports["parse with fallback-to-msgid"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/en-empty.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/en-empty.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po, { 'fallback-to-msgid': true }); test.deepEqual(parsed, this.json); test.done(); } } module.exports["parseFile"] = { setUp: function(callback){ this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/pl.json", "utf-8")); callback(); }, parseFile: function(test){ var self = this; po2json.parseFile(__dirname + "/fixtures/pl.po", null, function (err, parsed) { test.deepEqual(parsed, self.json); test.done(); }); } } module.exports["parseFileSync"] = { setUp: function(callback){ this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/pl.json", "utf-8")); callback(); }, parseFileSync: function(test){ var parsed = po2json.parseFileSync(__dirname + "/fixtures/pl.po"); test.deepEqual(parsed, this.json); test.done(); } } module.exports["parse with Plural-Forms == nplurals=1; plural=0;"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/ja.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/ja.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po); test.deepEqual(parsed, this.json); test.done(); } } module.exports["parse with Plural-Forms == nplurals=1; plural=0; and with Jed1.x format"] = { setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/ja.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/ja-jed1.x.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po, { format: 'jed1.x' }); test.deepEqual(parsed, this.json); test.done(); } } module.exports["parse with no headers"] ={ setUp: function(callback){ this.po = fs.readFileSync(__dirname + "/fixtures/en-no-header.po"); this.json = JSON.parse(fs.readFileSync(__dirname + "/fixtures/en-no-header.json", "utf-8")); callback(); }, parse: function(test){ var parsed = po2json.parse(this.po); test.deepEqual(parsed, this.json); test.done(); } }