Revision: 7863 http://languagetool.svn.sourceforge.net/languagetool/?rev=7863&view=rev Author: dnaber Date: 2012-08-14 20:38:16 +0000 (Tue, 14 Aug 2012) Log Message: ----------- change XML output to include the software (always "LanguageTool"), the version, and the build date
Modified Paths: -------------- trunk/JLanguageTool/CHANGES.txt trunk/JLanguageTool/src/java/org/languagetool/tools/StringTools.java trunk/JLanguageTool/src/resource/api-output.dtd trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java trunk/JLanguageTool/src/test/org/languagetool/tools/StringToolsTest.java Modified: trunk/JLanguageTool/CHANGES.txt =================================================================== --- trunk/JLanguageTool/CHANGES.txt 2012-08-14 18:45:55 UTC (rev 7862) +++ trunk/JLanguageTool/CHANGES.txt 2012-08-14 20:38:16 UTC (rev 7863) @@ -64,7 +64,8 @@ -HTTP API: "+" was incorrectly removed from input (Sourceforge bug #3543914), patch by Sourceforge user hiddenspirit - -HTTP API: the XML output has been extended to include the category of the match + -HTTP API and XML output: extended XML to include the version and build date + of LanguageTool and the category of each match -The word tokenizer now considers the following characters as word separator: | (pipe) and` (backtick). Modified: trunk/JLanguageTool/src/java/org/languagetool/tools/StringTools.java =================================================================== --- trunk/JLanguageTool/src/java/org/languagetool/tools/StringTools.java 2012-08-14 18:45:55 UTC (rev 7862) +++ trunk/JLanguageTool/src/java/org/languagetool/tools/StringTools.java 2012-08-14 20:38:16 UTC (rev 7863) @@ -28,6 +28,7 @@ import java.util.List; import java.util.regex.Pattern; +import org.languagetool.JLanguageTool; import org.languagetool.Language; import org.languagetool.gui.ContextTools; import org.languagetool.rules.Category; @@ -330,7 +331,8 @@ if (xmlMode == XmlPrintMode.NORMAL_XML || xmlMode == XmlPrintMode.START_XML) { xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - xml.append("<matches>\n"); + xml.append("<matches software=\"LanguageTool\" version=\"" + JLanguageTool.VERSION + "\"" + + " buildDate=\"" + JLanguageTool.BUILD_DATE + "\">\n"); } final ContextTools contextTools = new ContextTools(); Modified: trunk/JLanguageTool/src/resource/api-output.dtd =================================================================== --- trunk/JLanguageTool/src/resource/api-output.dtd 2012-08-14 18:45:55 UTC (rev 7862) +++ trunk/JLanguageTool/src/resource/api-output.dtd 2012-08-14 20:38:16 UTC (rev 7863) @@ -6,6 +6,10 @@ <!ELEMENT matches (error)*> +<!ATTLIST matches software CDATA #REQUIRED> +<!ATTLIST matches version CDATA #REQUIRED> +<!ATTLIST matches buildDate CDATA #REQUIRED> + <!-- A (potential) error. --> <!ELEMENT error EMPTY> Modified: trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java =================================================================== --- trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java 2012-08-14 18:45:55 UTC (rev 7862) +++ trunk/JLanguageTool/src/test/org/languagetool/server/HTTPServerTest.java 2012-08-14 20:38:16 UTC (rev 7863) @@ -56,9 +56,12 @@ void runTests() throws IOException, SAXException, ParserConfigurationException { // no error: - final String enc = "UTF-8"; - assertEquals("<?xml version=\"1.0\" encoding=\""+enc+"\"?>\n<matches>\n</matches>\n", check(Language.GERMAN, "")); - assertEquals("<?xml version=\"1.0\" encoding=\""+enc+"\"?>\n<matches>\n</matches>\n", check(Language.GERMAN, "Ein kleiner test")); + final String matchAttr = "software=\"LanguageTool\" version=\"" + JLanguageTool.VERSION + "\" buildDate=\".*?\""; + final String emptyResultPattern = "<\\?xml version=\"1.0\" encoding=\"UTF-8\"\\?>\n<matches " + matchAttr + ">\n</matches>\n"; + final String result1 = check(Language.GERMAN, ""); + assertTrue("Got " + result1 + ", expected " + emptyResultPattern, result1.matches(emptyResultPattern)); + final String result2 = check(Language.GERMAN, "Ein kleiner test"); + assertTrue("Got " + result2 + ", expected " + emptyResultPattern, result2.matches(emptyResultPattern)); // one error: assertTrue(check(Language.GERMAN, "ein kleiner test").contains("UPPERCASE_SENTENCE_START")); // two errors: Modified: trunk/JLanguageTool/src/test/org/languagetool/tools/StringToolsTest.java =================================================================== --- trunk/JLanguageTool/src/test/org/languagetool/tools/StringToolsTest.java 2012-08-14 18:45:55 UTC (rev 7862) +++ trunk/JLanguageTool/src/test/org/languagetool/tools/StringToolsTest.java 2012-08-14 20:38:16 UTC (rev 7863) @@ -26,9 +26,12 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import junit.framework.TestCase; +import org.languagetool.JLanguageTool; import org.languagetool.Language; import org.languagetool.rules.Category; import org.languagetool.rules.Rule; @@ -170,10 +173,14 @@ match.setEndLine(45); matches.add(match); final String xml = StringTools.ruleMatchesToXML(matches, text, 5, StringTools.XmlPrintMode.NORMAL_XML); - assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + - "<matches>\n" + - "<error fromy=\"44\" fromx=\"98\" toy=\"45\" tox=\"99\" ruleId=\"EN_A_VS_AN\" msg=\"myMessage\" replacements=\"\" context=\"...s is an test...\" contextoffset=\"8\" errorlength=\"2\"/>\n" + - "</matches>\n", xml); + assertTrue(xml.startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")); + final Pattern matchesPattern = + Pattern.compile(".*<matches software=\"LanguageTool\" version=\"" + JLanguageTool.VERSION + "\" buildDate=\".*?\">.*", Pattern.DOTALL); + final Matcher matcher = matchesPattern.matcher(xml); + assertTrue(matcher.matches()); + assertTrue(xml.contains(">\n" + + "<error fromy=\"44\" fromx=\"98\" toy=\"45\" tox=\"99\" ruleId=\"EN_A_VS_AN\" msg=\"myMessage\" replacements=\"\" context=\"...s is an test...\" contextoffset=\"8\" errorlength=\"2\"/>\n" + + "</matches>\n")); } public void testRuleMatchesToXMLWithCategory() throws IOException { @@ -189,10 +196,9 @@ match.setEndLine(45); matches.add(match); final String xml = StringTools.ruleMatchesToXML(matches, text, 5, StringTools.XmlPrintMode.NORMAL_XML); - assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + - "<matches>\n" + - "<error fromy=\"44\" fromx=\"98\" toy=\"45\" tox=\"99\" ruleId=\"MY_ID\" msg=\"myMessage\" replacements=\"\" context=\"...s is a test ...\" contextoffset=\"8\" errorlength=\"2\" category=\"MyCategory\"/>\n" + - "</matches>\n", xml); + assertTrue(xml.contains(">\n" + + "<error fromy=\"44\" fromx=\"98\" toy=\"45\" tox=\"99\" ruleId=\"MY_ID\" msg=\"myMessage\" replacements=\"\" context=\"...s is a test ...\" contextoffset=\"8\" errorlength=\"2\" category=\"MyCategory\"/>\n" + + "</matches>\n")); } public void testRuleMatchesWithUrlToXML() throws IOException { @@ -214,10 +220,9 @@ match.setEndLine(45); matches.add(match); final String xml = StringTools.ruleMatchesToXML(matches, text, 5, StringTools.XmlPrintMode.NORMAL_XML); - assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + - "<matches>\n" + + assertTrue(xml.contains(">\n" + "<error fromy=\"44\" fromx=\"98\" toy=\"45\" tox=\"99\" ruleId=\"EN_A_VS_AN\" msg=\"myMessage\" replacements=\"\" context=\"...s is an test...\" contextoffset=\"8\" errorlength=\"2\" url=\"http://server.org?id=1&foo=bar\"/>\n" + - "</matches>\n", xml); + "</matches>\n")); } public void testRuleMatchesToXMLEscapeBug() throws IOException { @@ -230,10 +235,9 @@ match.setEndLine(45); matches.add(match); final String xml = StringTools.ruleMatchesToXML(matches, text, 5, StringTools.XmlPrintMode.NORMAL_XML); - assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + - "<matches>\n" + - "<error fromy=\"44\" fromx=\"98\" toy=\"45\" tox=\"99\" ruleId=\"EN_A_VS_AN\" msg=\"myMessage\" replacements=\"\" context=\"... is "an test...\" contextoffset=\"8\" errorlength=\"2\"/>\n" + - "</matches>\n", xml); + assertTrue(xml.contains(">\n" + + "<error fromy=\"44\" fromx=\"98\" toy=\"45\" tox=\"99\" ruleId=\"EN_A_VS_AN\" msg=\"myMessage\" replacements=\"\" context=\"... is "an test...\" contextoffset=\"8\" errorlength=\"2\"/>\n" + + "</matches>\n")); } public void testListToString() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Languagetool-cvs mailing list Languagetool-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/languagetool-cvs