Home | History | Annotate | Download | only in dom
      1 package tests.org.w3c.dom;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 
      6 import org.w3c.dom.DOMImplementation;
      7 import org.w3c.dom.Document;
      8 
      9 import javax.xml.parsers.DocumentBuilder;
     10 
     11 /**
     12  * The "feature" parameter in the "hasFeature(feature,version)" method is the
     13  * package name of the feature. Legal values are XML and HTML and CORE. (Test
     14  * for feature core, lower case)
     15  *
     16  * Retrieve the entire DOM document and invoke its "getImplementation()" method.
     17  * This should create a DOMImplementation object whose "hasFeature(feature,
     18  * version)" method is invoked with feature equal to "core". The method should
     19  * return a boolean "true".
     20  *
     21  * @author NIST
     22  * @author Mary Brady
     23  * @see <a
     24  *      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>
     25  */
     26 public final class DOMImplementationHasFeature extends DOMTestCase {
     27 
     28     DOMDocumentBuilderFactory factory;
     29 
     30     DocumentBuilder builder;
     31 
     32     protected void setUp() throws Exception {
     33         super.setUp();
     34         try {
     35             factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
     36                     .getConfiguration1());
     37             builder = factory.getBuilder();
     38         } catch (Exception e) {
     39             fail("Unexpected exception" + e.getMessage());
     40         }
     41     }
     42 
     43     protected void tearDown() throws Exception {
     44         factory = null;
     45         builder = null;
     46         super.tearDown();
     47     }
     48 
     49     /**
     50      * Runs the test case.
     51      *
     52      * @throws Throwable
     53      *             Any uncaught exception causes test to fail
     54      */
     55     public void testHasFeatureCore() throws Throwable {
     56         Document doc;
     57         DOMImplementation domImpl;
     58         boolean state;
     59         doc = (Document) load("staff", builder);
     60         domImpl = doc.getImplementation();
     61         state = domImpl.hasFeature("core", "2.0");
     62         assertTrue("domimplementationFeaturecoreAssert", state);
     63     }
     64     public void testHasFeatureXml() throws Throwable {
     65         Document doc;
     66         DOMImplementation domImpl;
     67         boolean state;
     68         doc = (Document) load("staff", builder);
     69         domImpl = doc.getImplementation();
     70         state = domImpl.hasFeature("xml", "2.0");
     71         assertTrue("domimplementationFeaturexmlVersion2Assert", state);
     72     }
     73     public void testHasFeature1() throws Throwable {
     74         Document doc;
     75         DOMImplementation domImpl;
     76         String version = "";
     77         String version1 = "1.0";
     78         String version2 = "2.0";
     79         String featureCore;
     80         String featureXML;
     81         boolean success;
     82         List<String> featuresXML = new ArrayList<String>();
     83         featuresXML.add("XML");
     84         featuresXML.add("xmL");
     85 
     86         List<String> featuresCore = new ArrayList<String>();
     87         featuresCore.add("Core");
     88         featuresCore.add("CORE");
     89 
     90         doc = (Document) load("staffNS", builder);
     91         domImpl = doc.getImplementation();
     92         for (int indexN10063 = 0; indexN10063 < featuresXML.size(); indexN10063++) {
     93             featureXML = (String) featuresXML.get(indexN10063);
     94             success = domImpl.hasFeature(featureXML, version);
     95             assertTrue("domimplementationhasfeature01_XML_1", success);
     96             success = domImpl.hasFeature(featureXML, version1);
     97             assertTrue("domimplementationhasfeature01_XML_2", success);
     98         }
     99         for (int indexN1007C = 0; indexN1007C < featuresCore.size(); indexN1007C++) {
    100             featureCore = (String) featuresCore.get(indexN1007C);
    101             success = domImpl.hasFeature(featureCore, version);
    102             assertTrue("domimplementationhasfeature01_Core_1", success);
    103             success = domImpl.hasFeature(featureCore, version1);
    104             success = domImpl.hasFeature(featureCore, version2);
    105             assertTrue("domimplementationhasfeature01_Core_3", success);
    106         }
    107     }
    108     public void testHasFeature2() throws Throwable {
    109         Document doc;
    110         DOMImplementation domImpl;
    111         boolean success;
    112         doc = (Document) load("staffNS", builder);
    113         domImpl = doc.getImplementation();
    114         success = domImpl.hasFeature("Blah Blah", "");
    115         assertFalse("domimplementationhasfeature02", success);
    116     }
    117 }
    118