2 package org.bull.novaforge.tools.tab2poConverter;
\r
5 import java.util.List;
\r
6 import java.util.regex.Matcher;
\r
8 import junit.framework.Assert;
\r
9 import junit.framework.TestCase;
\r
11 public class FileConverterTest extends TestCase
\r
13 FileConverter converter = null;
\r
15 private static final String ROOT_PATH = "src/test/resources";
\r
17 private static final String LANGUAGES_PATH = "plugincore/include/languages";
\r
19 private static final String TRANSLATIONS_PATH = "translations";
\r
22 protected void setUp() throws Exception
\r
24 final File root = new File(ROOT_PATH);
\r
25 this.converter = new FileConverter(new File(root, LANGUAGES_PATH), new File(root,
\r
26 TRANSLATIONS_PATH), ".po.new");
\r
29 public void testPattern()
\r
32 inserting a syntax error here, so someone MUST revisit this code
\r
34 * You should have received a copy of the GNU General Public License along
35 * with this program; if not, write to the Free Software Foundation, Inc.,
36 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
\r
38 this ↑ is the correct new address of the FSF!
41 final String TAB_LINE_STR = "# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r\n"
\r
42 + "#---------------------------------------------------------------------------\r\n"
\r
44 + "gforge-plugin-novacontinuum title_helloworld Salut le monde !!!\r\n"
\r
45 + "gforge-plugin-novacontinuum tab_title Nova Continuum\r\n" + "";
\r
46 Matcher m_tab = FileConverter.PATTERN_TAB_LINE.matcher(TAB_LINE_STR);
\r
47 Assert.assertTrue("Doit trouver les lignes de traduction dans TAB", m_tab.find());
\r
49 m_tab = FileConverter.PATTERN_TAB_LINE.matcher("gforge-plugin-novacontinuum pas_de_trad\ndomName keyId msg");
\r
50 Assert.assertTrue("Message sans traduction", m_tab.find());
\r
51 Assert.assertNull("Message final sans traduction", m_tab.group(4));
\r
54 public void testRun()
\r
56 this.converter.run();
\r
59 private static final String poFileContent = ""
\r
61 + "#: pluginwww/siteAdmin/index.php:37\n"
\r
62 + "msgid \"title_site_admin\"\n"
\r
65 + "#: plugincore/include/NovaContinuumPlugin.class.php:138\n"
\r
66 + "msgid \"your_continuum_projects\"\n"
\r
69 + "#: plugincore/include/NovaContinuumPlugin.class.php:168\n"
\r
70 + "#: plugincore/include/NovaContinuumPlugin.class.php:180\n"
\r
71 + "msgid \"no_project_assigned\"\n" + "msgstr \"\""
\r
75 private static final String tabFileContent = "gforge-plugin-novacontinuum title_site_admin Administration du plugin Nova Continuum\n"
\r
76 + "gforge-plugin-novacontinuum no_project_assigned Vous n'avez pas de projet Continuum\n"
\r
77 + "gforge-plugin-novacontinuum pas_de_trad\n"
\r
78 + "gforge-plugin-novacontinuum your_continuum_projects Vos Projets Continuum";
\r
80 public void testExtractI18nMessage()
\r
82 final List<I18nMessage> result = this.converter.extractMessage(tabFileContent);
\r
83 Assert.assertEquals(4, result.size());
\r
86 public void testReplace()
\r
88 final String expected = ""
\r
90 + "#: pluginwww/siteAdmin/index.php:37\n"
\r
91 + "msgid \"title_site_admin\"\n"
\r
92 + "msgstr \"Administration du plugin Nova Continuum\"\n\n"
\r
94 + "#: plugincore/include/NovaContinuumPlugin.class.php:138\n"
\r
95 + "msgid \"your_continuum_projects\"\n"
\r
98 + "#: plugincore/include/NovaContinuumPlugin.class.php:168\n"
\r
99 + "#: plugincore/include/NovaContinuumPlugin.class.php:180\n"
\r
100 + "msgid \"no_project_assigned\"\n" + "msgstr \"\"";
\r
102 final String result = this.converter.replace(poFileContent, new I18nMessage(
\r
103 "gforge-plugin-novacontinuum", "title_site_admin",
\r
104 "Administration du plugin Nova Continuum"));
\r
106 Assert.assertEquals(expected, result);
\r
109 public void testGetReplacedText()
\r
111 final String expected = ""
\r
113 + "#: pluginwww/siteAdmin/index.php:37\n"
\r
114 + "msgid \"title_site_admin\"\n"
\r
115 + "msgstr \"Administration du plugin Nova Continuum\"\n\n"
\r
117 + "#: plugincore/include/NovaContinuumPlugin.class.php:138\n"
\r
118 + "msgid \"your_continuum_projects\"\n"
\r
119 + "msgstr \"Vos Projets Continuum\"\n\n"
\r
121 + "#: plugincore/include/NovaContinuumPlugin.class.php:168\n"
\r
122 + "#: plugincore/include/NovaContinuumPlugin.class.php:180\n"
\r
123 + "msgid \"no_project_assigned\"\n" + "msgstr \"Vous n'avez pas de projet Continuum\"";
\r
125 final String result = this.converter.getReplacedText(tabFileContent, poFileContent);
\r
126 Assert.assertEquals(expected, result);
\r