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