| package tests.org.w3c.dom; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import org.w3c.dom.DOMImplementation; |
| import org.w3c.dom.Document; |
| |
| import javax.xml.parsers.DocumentBuilder; |
| |
| /** |
| * The "feature" parameter in the "hasFeature(feature,version)" method is the |
| * package name of the feature. Legal values are XML and HTML and CORE. (Test |
| * for feature core, lower case) |
| * |
| * Retrieve the entire DOM document and invoke its "getImplementation()" method. |
| * This should create a DOMImplementation object whose "hasFeature(feature, |
| * version)" method is invoked with feature equal to "core". The method should |
| * return a boolean "true". |
| * |
| * @author NIST |
| * @author Mary Brady |
| * @see <a |
| * href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7</a> |
| */ |
| public final class DOMImplementationHasFeature extends DOMTestCase { |
| |
| DOMDocumentBuilderFactory factory; |
| |
| DocumentBuilder builder; |
| |
| protected void setUp() throws Exception { |
| super.setUp(); |
| try { |
| factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory |
| .getConfiguration1()); |
| builder = factory.getBuilder(); |
| } catch (Exception e) { |
| fail("Unexpected exception" + e.getMessage()); |
| } |
| } |
| |
| protected void tearDown() throws Exception { |
| factory = null; |
| builder = null; |
| super.tearDown(); |
| } |
| |
| /** |
| * Runs the test case. |
| * |
| * @throws Throwable |
| * Any uncaught exception causes test to fail |
| */ |
| public void testHasFeatureCore() throws Throwable { |
| Document doc; |
| DOMImplementation domImpl; |
| boolean state; |
| doc = (Document) load("staff", builder); |
| domImpl = doc.getImplementation(); |
| state = domImpl.hasFeature("core", "2.0"); |
| assertTrue("domimplementationFeaturecoreAssert", state); |
| } |
| public void testHasFeatureXml() throws Throwable { |
| Document doc; |
| DOMImplementation domImpl; |
| boolean state; |
| doc = (Document) load("staff", builder); |
| domImpl = doc.getImplementation(); |
| state = domImpl.hasFeature("xml", "2.0"); |
| assertTrue("domimplementationFeaturexmlVersion2Assert", state); |
| } |
| public void testHasFeature1() throws Throwable { |
| Document doc; |
| DOMImplementation domImpl; |
| String version = ""; |
| String version1 = "1.0"; |
| String version2 = "2.0"; |
| String featureCore; |
| String featureXML; |
| boolean success; |
| List<String> featuresXML = new ArrayList<String>(); |
| featuresXML.add("XML"); |
| featuresXML.add("xmL"); |
| |
| List<String> featuresCore = new ArrayList<String>(); |
| featuresCore.add("Core"); |
| featuresCore.add("CORE"); |
| |
| doc = (Document) load("staffNS", builder); |
| domImpl = doc.getImplementation(); |
| for (int indexN10063 = 0; indexN10063 < featuresXML.size(); indexN10063++) { |
| featureXML = (String) featuresXML.get(indexN10063); |
| success = domImpl.hasFeature(featureXML, version); |
| assertTrue("domimplementationhasfeature01_XML_1", success); |
| success = domImpl.hasFeature(featureXML, version1); |
| assertTrue("domimplementationhasfeature01_XML_2", success); |
| } |
| for (int indexN1007C = 0; indexN1007C < featuresCore.size(); indexN1007C++) { |
| featureCore = (String) featuresCore.get(indexN1007C); |
| success = domImpl.hasFeature(featureCore, version); |
| assertTrue("domimplementationhasfeature01_Core_1", success); |
| success = domImpl.hasFeature(featureCore, version1); |
| success = domImpl.hasFeature(featureCore, version2); |
| assertTrue("domimplementationhasfeature01_Core_3", success); |
| } |
| } |
| public void testHasFeature2() throws Throwable { |
| Document doc; |
| DOMImplementation domImpl; |
| boolean success; |
| doc = (Document) load("staffNS", builder); |
| domImpl = doc.getImplementation(); |
| success = domImpl.hasFeature("Blah Blah", ""); |
| assertFalse("domimplementationhasfeature02", success); |
| } |
| } |