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&amp;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 
&quot;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 
&quot;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

Reply via email to