blob: 86637a0db5ea9eabcb64dad8f2ce8a815e4449db [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 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.core.tests.dom;
import junit.framework.TestCase;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
public class AttrImplTests extends TestCase {
private static final String contents = "<elementName attrPrefix:local='lorem' />"; //$NON-NLS-1$
private static final String xmlNamespaceContents = "<elementName xml:space=\"preserve\"/>";
public AttrImplTests() {
}
public AttrImplTests(String name) {
super(name);
}
public void testAttrImplPrefix() {
IDOMModel model = (IDOMModel) StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML);
model.getStructuredDocument().set(contents);
Element documentElement = model.getDocument().getDocumentElement();
assertNotNull("no document element found", documentElement);
NamedNodeMap attributes = documentElement.getAttributes();
assertTrue("no attributes found", attributes.getLength() > 0);
Attr attribute = (Attr) attributes.item(0);
assertEquals("attribute prefix was not as expected", "attrPrefix", attribute.getPrefix());
}
public void testAttrImplLocalName() {
IDOMModel model = (IDOMModel) StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML);
model.getStructuredDocument().set(contents);
Element documentElement = model.getDocument().getDocumentElement();
assertNotNull("no document element found", documentElement);
NamedNodeMap attributes = documentElement.getAttributes();
assertTrue("no attributes found", attributes.getLength() > 0);
Attr attribute = (Attr) attributes.item(0);
assertEquals("attribute local name was not as expected", "local", attribute.getLocalName());
}
public void testNamespaceURIOnCreation() {
IDOMModel model = (IDOMModel) StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML);
model.getStructuredDocument().set(contents);
Attr attr = model.getDocument().createAttribute("simple");
assertNull("namespace was found", attr.getNamespaceURI());
Attr attr2 = model.getDocument().createAttributeNS("http://lorem.ipsum", "complex");
assertEquals("attribute namespace URI was not as expected", "http://lorem.ipsum", attr2.getNamespaceURI());
Attr attr3 = model.getDocument().createAttributeNS(null, "complex");
assertEquals("attribute namespace URI was not as expected", null, attr3.getNamespaceURI());
}
public void testNullAttributeValue() {
IDOMModel model = (IDOMModel) StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML);
Attr attribute = model.getDocument().createAttribute("attr");
try {
attribute.setNodeValue(null);
} catch (NullPointerException npe) {
fail("Setting a null node value caused a NullPointerException.");
}
}
public void testGetAttributeNSForXMLNamespace() {
final String xmlns = "http://www.w3.org/XML/1998/namespace";
IDOMModel model = (IDOMModel) StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML);
model.getStructuredDocument().set(xmlNamespaceContents);
Element element = model.getDocument().getDocumentElement();
String value = element.getAttributeNS(xmlns, "space");
assertEquals("Did not find space attribute for XML Namespace", "preserve", value);
}
}