--- /dev/null
+\r
+package org.bull.novaforge.tools.tab2poConverter;\r
+\r
+import java.io.File;\r
+import java.util.List;\r
+import java.util.regex.Matcher;\r
+\r
+import junit.framework.Assert;\r
+import junit.framework.TestCase;\r
+\r
+public class FileConverterTest extends TestCase\r
+{\r
+ FileConverter converter = null;\r
+ \r
+ private static final String ROOT_PATH = "src/test/resources";\r
+ \r
+ private static final String LANGUAGES_PATH = "plugincore/include/languages";\r
+ \r
+ private static final String TRANSLATIONS_PATH = "translations";\r
+ \r
+ @Override\r
+ protected void setUp() throws Exception\r
+ {\r
+ final File root = new File(ROOT_PATH);\r
+ this.converter = new FileConverter(new File(root, LANGUAGES_PATH), new File(root,\r
+ TRANSLATIONS_PATH), ".po.new");\r
+ }\r
+ \r
+ public void testPattern()\r
+ {\r
+ final String TAB_LINE_STR = "# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r\n"\r
+ + "#---------------------------------------------------------------------------\r\n"\r
+ + "\r\n"\r
+ + "gforge-plugin-novacontinuum title_helloworld Salut le monde !!!\r\n"\r
+ + "gforge-plugin-novacontinuum tab_title Nova Continuum\r\n" + "";\r
+ Matcher m_tab = FileConverter.PATTERN_TAB_LINE.matcher(TAB_LINE_STR);\r
+ Assert.assertTrue("Doit trouver les lignes de traduction dans TAB", m_tab.find());\r
+ \r
+ m_tab = FileConverter.PATTERN_TAB_LINE.matcher("gforge-plugin-novacontinuum pas_de_trad\ndomName keyId msg");\r
+ Assert.assertTrue("Message sans traduction", m_tab.find());\r
+ Assert.assertNull("Message final sans traduction", m_tab.group(4));\r
+ }\r
+ \r
+ public void testRun()\r
+ {\r
+ this.converter.run();\r
+ }\r
+ \r
+ private static final String poFileContent = ""\r
+ //\r
+ + "#: pluginwww/siteAdmin/index.php:37\n"\r
+ + "msgid \"title_site_admin\"\n"\r
+ + "msgstr \"\"\n\n"\r
+ //\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:138\n"\r
+ + "msgid \"your_continuum_projects\"\n"\r
+ + "msgstr \"\"\n\n"\r
+ //\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:168\n"\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:180\n"\r
+ + "msgid \"no_project_assigned\"\n" + "msgstr \"\""\r
+ //\r
+ ;\r
+ \r
+ private static final String tabFileContent = "gforge-plugin-novacontinuum title_site_admin Administration du plugin Nova Continuum\n"\r
+ + "gforge-plugin-novacontinuum no_project_assigned Vous n'avez pas de projet Continuum\n"\r
+ + "gforge-plugin-novacontinuum pas_de_trad\n"\r
+ + "gforge-plugin-novacontinuum your_continuum_projects Vos Projets Continuum";\r
+ \r
+ public void testExtractI18nMessage()\r
+ {\r
+ final List<I18nMessage> result = this.converter.extractMessage(tabFileContent);\r
+ Assert.assertEquals(4, result.size());\r
+ }\r
+ \r
+ public void testReplace()\r
+ {\r
+ final String expected = ""\r
+ //\r
+ + "#: pluginwww/siteAdmin/index.php:37\n"\r
+ + "msgid \"title_site_admin\"\n"\r
+ + "msgstr \"Administration du plugin Nova Continuum\"\n\n"\r
+ //\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:138\n"\r
+ + "msgid \"your_continuum_projects\"\n"\r
+ + "msgstr \"\"\n\n"\r
+ //\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:168\n"\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:180\n"\r
+ + "msgid \"no_project_assigned\"\n" + "msgstr \"\"";\r
+ \r
+ final String result = this.converter.replace(poFileContent, new I18nMessage(\r
+ "gforge-plugin-novacontinuum", "title_site_admin",\r
+ "Administration du plugin Nova Continuum"));\r
+ \r
+ Assert.assertEquals(expected, result);\r
+ }\r
+ \r
+ public void testGetReplacedText()\r
+ {\r
+ final String expected = ""\r
+ //\r
+ + "#: pluginwww/siteAdmin/index.php:37\n"\r
+ + "msgid \"title_site_admin\"\n"\r
+ + "msgstr \"Administration du plugin Nova Continuum\"\n\n"\r
+ //\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:138\n"\r
+ + "msgid \"your_continuum_projects\"\n"\r
+ + "msgstr \"Vos Projets Continuum\"\n\n"\r
+ //\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:168\n"\r
+ + "#: plugincore/include/NovaContinuumPlugin.class.php:180\n"\r
+ + "msgid \"no_project_assigned\"\n" + "msgstr \"Vous n'avez pas de projet Continuum\"";\r
+ \r
+ final String result = this.converter.getReplacedText(tabFileContent, poFileContent);\r
+ Assert.assertEquals(expected, result);\r
+ }\r
+}\r