| /******************************************************************************* |
| * Copyright (c) 2001, 2006 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.xml.validation.tests.internal; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import junit.framework.Test; |
| import junit.framework.TestSuite; |
| |
| import org.eclipse.wst.xml.core.internal.validation.XMLValidationConfiguration; |
| /** |
| * Test class for the XML validator to test bug fixes. |
| */ |
| public class BugFixesTest extends BaseTestCase |
| { |
| private static final String BUGFIXES_DIR = "bugfixes/"; |
| |
| /** |
| * Create a tests suite from this test class. |
| * |
| * @return A test suite containing this test class. |
| */ |
| public static Test suite() |
| { |
| return new TestSuite(BugFixesTest.class); |
| } |
| |
| /** |
| * Test /bugfixes/RootNoNSChildNS/RootNoNSChildNS.xml. |
| */ |
| public void testRootNoNSChildNS() |
| { |
| String testname = "RootNoNSChildNS"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "RootNoNSChildNS/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| int numErrors = 0; |
| int numWarnings = 0; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| |
| /** |
| * Test /bugfixes/EmptyFile/Empty.xml. |
| */ |
| public void testEmpty() |
| { |
| String testname = "Empty"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "EmptyFile/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| int numErrors = 0; |
| int numWarnings = 0; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| |
| /** |
| * Test /bugfixes/ValidateWithDTD/ValidateWithDTDValid.xml. |
| */ |
| public void testValidateWithDTDValid() |
| { |
| String testname = "ValidateWithDTDValid"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "ValidateWithDTD/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| int numErrors = 0; |
| int numWarnings = 0; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| |
| /** |
| * Test /bugfixes/ValidateWithDTD/ValidateWithDTDInvalid.xml. |
| */ |
| public void testValidateWithDTDInvalid() |
| { |
| String testname = "ValidateWithDTDInvalid"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "ValidateWithDTD/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| keys.add("MSG_CONTENT_INVALID"); |
| int numErrors = 1; |
| int numWarnings = 0; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| |
| /** |
| * Test /bugfixes/NotWellFormed/NotWellFormed.xml. |
| */ |
| public void testNotWellFormed() |
| { |
| String testname = "NotWellFormed"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "NotWellFormed/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| keys.add("ETagRequired"); |
| int numErrors = 1; |
| int numWarnings = 0; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| |
| /** |
| * Test /bugfixes/CannotLocateDTD/InvalidHost.xml. |
| */ |
| public void testInvalidHost() |
| { |
| String testname = "InvalidHost"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "CannotLocateDTD/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| keys.add("FILE_NOT_FOUND"); |
| int numErrors = 0; |
| int numWarnings = 1; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| |
| /** |
| * Test /bugfixes/CannotLocateDTD/InvalidLocation.xml. |
| */ |
| public void testInvalidLocation() |
| { |
| String testname = "InvalidLocation"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "CannotLocateDTD/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| keys.add("FILE_NOT_FOUND"); |
| int numErrors = 0; |
| int numWarnings = 1; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| |
| /** |
| * Test /bugfixes/NoGrammar/NoGrammar.xml. |
| */ |
| public void testNoGrammar() |
| { |
| String testname = "NoGrammar"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "NoGrammar/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| keys.add("NO_GRAMMAR_FOUND"); |
| int numErrors = 0; |
| int numWarnings = 1; |
| |
| try |
| { |
| configuration.setFeature(XMLValidationConfiguration.WARN_NO_GRAMMAR, true); |
| configuration.setFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR, 1); |
| } |
| catch(Exception e) |
| { |
| fail("Unable to set configuration WARN_NO_GRAMMAR."); |
| } |
| runTest(testfile, keys, numErrors, numWarnings); |
| try |
| { |
| configuration.setFeature(XMLValidationConfiguration.WARN_NO_GRAMMAR, false); |
| configuration.setFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR, 0); |
| } |
| catch(Exception e) |
| { |
| fail("Unable to set configuration WARN_NO_GRAMMAR."); |
| } |
| } |
| |
| /** |
| * Test /bugfixes/NoNamespaceSchema/NoNamespaceSchema.xml. |
| */ |
| public void testNoNamespaceSchema() |
| { |
| String testname = "NoNamespaceSchema"; |
| String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + BUGFIXES_DIR + "NoNamespaceSchema/" + testname + ".xml"; |
| List keys = new ArrayList(); |
| keys.add("cvc-complex-type.2.4.b"); |
| int numErrors = 1; |
| int numWarnings = 0; |
| |
| runTest(testfile, keys, numErrors, numWarnings); |
| } |
| } |