Revision: 9214
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=9214&view=rev
Author:   dnaber
Date:     2013-01-26 00:18:02 +0000 (Sat, 26 Jan 2013)
Log Message:
-----------
activate XML validation again, was lost on modularization

Modified Paths:
--------------
    
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/XMLValidator.java
    
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java

Modified: 
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/XMLValidator.java
===================================================================
--- 
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/XMLValidator.java
       2013-01-25 23:15:23 UTC (rev 9213)
+++ 
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/XMLValidator.java
       2013-01-26 00:18:02 UTC (rev 9214)
@@ -51,7 +51,7 @@
   }
 
   /**
-   * Check some limits of our simplified XML output.  
+   * Check some limits of our simplified XML output.
    */
   public void checkSimpleXMLString(String xml) throws IOException {
     final Pattern pattern = Pattern.compile("(<error.*?/>)", 
Pattern.DOTALL|Pattern.MULTILINE);
@@ -91,14 +91,21 @@
 
   /**
    * Validate XML file using the given XSD. Throws an exception on error  
-   * @param filename File to validate.
+   * @param filename File in classpath to validate.
    * @param xmlSchema Schema to use.
    * @throws IOException Thrown on error.
    */
   public final void validate(String filename, String xmlSchema) throws 
IOException {
     try {
-      validateInternal(this.getClass().getResourceAsStream(filename), 
-          this.getClass().getResource(xmlSchema));
+      final InputStream xmlStream = 
this.getClass().getResourceAsStream(filename);
+      if (xmlStream == null) {
+        throw new IOException("Not found in classpath: " + filename);
+      }
+      final URL schemaStream = this.getClass().getResource(xmlSchema);
+      if (schemaStream == null) {
+        throw new IOException("Not found in classpath: " + xmlSchema);
+      }
+      validateInternal(xmlStream, schemaStream);
     } catch (Exception e) {
       throw new IOException("Cannot load or parse '" + filename + "'", e);
     }
@@ -123,12 +130,12 @@
     saxParser.parse(is, new ErrorHandler());
   }
 
-  private void validateInternal(InputStream xml, URL xmlSchema) throws 
SAXException, IOException, ParserConfigurationException {        
+  private void validateInternal(InputStream xml, URL xmlSchema) throws 
SAXException, IOException, ParserConfigurationException {
     final SchemaFactory sf = 
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
     final Schema schema = sf.newSchema(xmlSchema);
     final Validator validator = schema.newValidator();
     validator.setErrorHandler(new ErrorHandler());
-    validator.validate(new StreamSource(xml));        
+    validator.validate(new StreamSource(xml));
   }
 
 }
@@ -141,7 +148,7 @@
   public void warning (SAXParseException e) throws SAXException {
     System.err.println(e.getMessage()
         + " Problem found at line " + e.getLineNumber() 
-        + ", column " + e.getColumnNumber() + ".");    
+        + ", column " + e.getColumnNumber() + ".");
     throw e;
   }
 

Modified: 
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java
===================================================================
--- 
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java
     2013-01-25 23:15:23 UTC (rev 9213)
+++ 
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java
     2013-01-26 00:18:02 UTC (rev 9214)
@@ -27,10 +27,8 @@
 
 import junit.framework.TestCase;
 
-import org.languagetool.AnalyzedSentence;
-import org.languagetool.JLanguageTool;
-import org.languagetool.Language;
-import org.languagetool.TestTools;
+import org.languagetool.*;
+import org.languagetool.databroker.ResourceDataBroker;
 import org.languagetool.language.Demo;
 import org.languagetool.rules.IncorrectExample;
 import org.languagetool.rules.Rule;
@@ -80,20 +78,27 @@
         System.out.println("Skipping " + lang + " because there are no 
specific rules for that variant");
         continue;
       }
+      validatePatternFile(lang);
       runTestForLanguage(lang);
     }
   }
 
   private boolean skipCountryVariant(Language lang) {
-    final String shortName = lang.getShortNameWithVariant();
-    if (shortName.contains("-") && !shortName.endsWith("-ANY")) {
-      final String variantSpecificRuleFile = lang.getShortName() + "/" + 
shortName
-              + "/" + JLanguageTool.PATTERN_FILE;
-      return 
!JLanguageTool.getDataBroker().ruleFileExists(variantSpecificRuleFile);
+    final ResourceDataBroker dataBroker = JLanguageTool.getDataBroker();
+    return !dataBroker.ruleFileExists(getGrammarFileName(lang));
+  }
+
+  private String getGrammarFileName(Language lang) {
+    final String shortNameWithVariant = lang.getShortNameWithVariant();
+    final String fileName;
+    if (shortNameWithVariant.contains("-") && 
!shortNameWithVariant.endsWith("-ANY")) {
+      fileName = lang.getShortName() + "/" + shortNameWithVariant + "/" + 
JLanguageTool.PATTERN_FILE;
+    } else {
+      fileName = lang.getShortName() + "/" + JLanguageTool.PATTERN_FILE;
     }
-    return false;
+    return fileName;
   }
-
+  
   private void runTestForLanguage(Language lang) throws IOException {
     System.out.print("Running pattern rule tests for " + lang.getName() + "... 
");
     final JLanguageTool languageTool = new JLanguageTool(lang);
@@ -112,6 +117,14 @@
     System.out.println(rules.size() + " rules tested.");
   }
 
+  private void validatePatternFile(Language lang) throws IOException {
+    final XMLValidator validator = new XMLValidator();
+    final String grammarFile = getGrammarFileName(lang);
+    System.out.println("Running XML validation for " + grammarFile + "...");
+    final String rulesDir = JLanguageTool.getDataBroker().getRulesDir();
+    validator.validate(rulesDir + "/" + grammarFile, rulesDir + "/rules.xsd");
+  }
+  
   public void runGrammarRulesFromXmlTestIgnoringLanguages(Set<Language> 
ignoredLanguages) throws IOException {
     System.out.println("Known languages: " + 
Arrays.toString(Language.LANGUAGES));
     for (final Language lang : Language.LANGUAGES) {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits

Reply via email to