When adding test case on Xliff1FilterTest on master branch with a following code, xliff1 filter may produce wrong xliff output.
@Test
public void testBugs418() throws Exception {
Xliff1Filter filter = new Xliff1Filter();
translateXliff(filter, "test/data/filters/xliff/filters3/file-XLIFFFilter-cdata-bugs418.xlf");
}
private void translateXliff(IFilter filter, String filename) throws Exception {
File inFile = new File(filename);
filter.translateFile(inFile, outFile, Collections.emptyMap(), context,
new ITranslateCallback() {
public String getTranslation(String id, String source, String path) {
return null;
}
public String getTranslation(String id, String source) {
return null;
}
public void linkPrevNextSegments() {
}
public void setPass(int pass) {
}
});
compareXML(inFile, outFile);
}
with data `test/data/filters/xliff/filters3-xliff/file-XLIFFfilter-cdata-bugs418.xlf`
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1">
<file target-language="be" source-language="en" original="text3.txt">
<body>
<trans-unit id="1">
<source>This is test2</source>
</trans-unit>
<trans-unit id="2">
<source>test21</source>
</trans-unit>
</body>
</file>
<file target-language="be" source-language="en" original="text.txt">
<body>
<trans-unit id="3">
<source><![CDATA[This is <test]]></source>
<target><![CDATA[tr1=This is <test]]></target>
</trans-unit>
<trans-unit id="4">
<source>test2</source>
<target>tr2=test2</target>
</trans-unit>
</body>
</file>
</xliff>
Then XLIFF1Filiter produce
<?xml version="1.0" encoding="UTF-8"?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file target-language="be" source-language="en" original="text3.txt">
<body><body>
<trans-unit id="1">
<source>This is test2</source>
</trans-unit>
<trans-unit id="2">
<source>test21</source>
</trans-unit>
</body>
</body>
<file target-language="be" source-language="en" original="text.txt">
<body>
<trans-unit id="3">
<source><![CDATA[This is <test]]></source>
<target><![CDATA[tr1=This is <test]]></target>
</trans-unit>
<trans-unit id="4">
<source>test2</source>
<target>tr2=test2</target>
</trans-unit>
</body>
</file>
</file></xliff>
And failed assertion. A code above is in a topic branch topic/miurahr/filters4/xliff1filter/cdata-handle-test
Here is a point to be error
Last edit: Hiroshi Miura 2024-02-01