1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.org.w3c.dom; 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList; 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List; 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document; 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Node; 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder; 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The "feature" parameter in the isSupported(feature,version)" method is the 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * name of the feature and the version is the version number of the feature to 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * test. XXX is NOT a legal value for the feature parameter. The method should 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * return "false" since XXX is not a valid feature. 16f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Retrieve the root node of the DOM document by invoking the 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "getDocumentElement()" method. This should create a node object on which the 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "isSupported(feature,version)" method is invoked with "feature" equal to 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "XXX" and version to "1.0". The method should return a boolean "false" since 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * XXX is not a valid feature. 22f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author NIST 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Mary Brady 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see <a 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a> 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class IsSupported extends DOMTestCase { 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DOMDocumentBuilderFactory factory; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilder builder; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getConfiguration1()); 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project builder = factory.getBuilder(); 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception" + e.getMessage()); 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project factory = null; 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project builder = null; 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Runs the test case. 53f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws Throwable 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Any uncaught exception causes test to fail 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported1() throws Throwable { 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("XXX", "1.0"); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("throw_False", state); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported2() throws Throwable { 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("XML", "9.0"); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("throw_False", state); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported4() throws Throwable { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("xml", "1.0"); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("throw_True", state); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported5() throws Throwable { 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("core", "2.0"); 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("throw_True", state); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported6() throws Throwable { 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("xml", "2.0"); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("throw_True", state); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported7() throws Throwable { 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("XML", ""); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("throw_True", state); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported9() throws Throwable { 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("XML", "1.0"); 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("throw_True", state); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported10() throws Throwable { 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("CORE", "2.0"); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("throw_True", state); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported11() throws Throwable { 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("XML", "2.0"); 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("throw_True", state); 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 138f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported12() throws Throwable { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project List<String> features = new ArrayList<String>(); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("Core"); 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("XML"); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("HTML"); 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("Views"); 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("StyleSheets"); 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("CSS"); 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("CSS2"); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("Events"); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("UIEvents"); 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("MouseEvents"); 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("MutationEvents"); 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("HTMLEvents"); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("Range"); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("Traversal"); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project features.add("bogus.bogus.bogus"); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String featureElement; 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("Core", "2.0"); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Core2", state); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int indexN10078 = 0; indexN10078 < features.size(); indexN10078++) { 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project featureElement = (String) features.get(indexN10078); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported(featureElement, "1.0"); 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int indexN10083 = 0; indexN10083 < features.size(); indexN10083++) { 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project featureElement = (String) features.get(indexN10083); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported(featureElement, "2.0"); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported13() throws Throwable { 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("Core", ""); 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Core", state); 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsSupported14() throws Throwable { 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node rootNode; 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String nullString = null; 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rootNode = doc.getDocumentElement(); 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = rootNode.isSupported("Core", nullString); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Core", state); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 195