blob: 9370ab9cb82001463424f35c6ef2b7a33028e010 [file] [log] [blame]
/* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dom.checkin;
import dom.common.Loader;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.DOMException;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentType;
import static org.junit.Assert.*;
public class DomImplementationTest {
DOMImplementation m_imp;
DocumentType m_docType;
Document result;
Document m_docNS;
String sXmlNS;
public DomImplementationTest() {
sXmlNS =
"<foo xmlns:myns=\"uri:foo\" at0=\"val0\" myns:at0=\"val01\" at2=\"val2\" at3=\"val3\" at4=\"val4\"/>";
}
//$TODO: non null doctype
@Test
public void testCreateDocument() {
String sUri = "http://foo.org";
String sQName = "qname";
result = m_imp.createDocument(sUri, sQName, m_docType);
assertEquals(sQName, result.getDocumentElement().getLocalName());
assertEquals(sUri, result.getDocumentElement().getNamespaceURI());
}
//$TODO: implem. w/o "XML" feature; WRONG_DOCUMENT_ERR
//NOT_SUPPORTED_ERR
@Test
public void testCreateDocumentInvalid() {
String sUri = "http://foo.org";
String sQName = "<qname";
try {
result = m_imp.createDocument(sUri, sQName, m_docType);
}
catch (DOMException de) {
assertEquals(de.code, DOMException.INVALID_CHARACTER_ERR);
}
sUri = null;
sQName = "foo:qname";
try {
result = m_imp.createDocument(sUri, sQName, m_docType);
}
catch (DOMException de) {
assertEquals(de.code, DOMException.NAMESPACE_ERR);
}
sUri = "myuri";
sQName = "xml:qname";
try {
result = m_imp.createDocument(sUri, sQName, m_docType);
}
catch (DOMException de) {
assertEquals(de.code, DOMException.NAMESPACE_ERR);
}
}
@Test
public void testHasFeature() {
String[] features = {
"Core", "XML", "Events", "MutationEvents", "Range", "Traversal", "HTML", "Views", "StyleSheets", "CSS", "CSS2", "UIEvents", "HTMLEvents"
};
boolean bResult = true;
for (int i = 0; i < features.length; i++) {
if (i > 1) bResult = false;
System.out.println(m_imp + "============== " + features[i] +
" =============" +
bResult);
assertEquals(bResult, m_imp.hasFeature(features[i], "2.0"));
}
}
@Test
public void testHasFeatureIlegal() {
assertFalse(m_imp.hasFeature(null, "2.0"));
assertFalse(m_imp.hasFeature("foobar", "2.0"));
assertFalse(m_imp.hasFeature("xml", "-2"));
assertTrue(m_imp.hasFeature("xml", null));
assertTrue(m_imp.hasFeature("xml", ""));
assertFalse(m_imp.hasFeature("xml", "300"));
}
public void moveToNode() {
m_imp = m_docNS.getImplementation();
}
public void loadSync() throws Exception {
_loader = Loader.getLoader();
if (sXmlNS.length() > 0)
m_docNS = (org.w3c.dom.Document) _loader.loadSync(sXmlNS);
}
@Before
public void setUp() throws Exception {
_loader = Loader.getLoader();
m_docNS = (org.w3c.dom.Document) _loader.load(sXmlNS);
moveToNode();
}
private Loader _loader;
}