blob: 6cf7cad05427cf0396cbe64a22ff91c0cb34c552 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 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.html.core.tests.parser;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
public class ElementTest extends ModelTest {
/**
* Constructor for ElementTest.
*
* @param name
*/
public ElementTest(String name) {
super(name);
}
public ElementTest() {
super();
}
public Element changeTagName(Element element, String tagName) {
Document document = element.getOwnerDocument();
Node parent = element.getParentNode();
Element newElement = document.createElement(tagName);
NamedNodeMap attributes = element.getAttributes();
while (attributes.getLength() > 0) {
Attr attr = (Attr) attributes.item(0);
attr = element.removeAttributeNode(attr);
newElement.setAttributeNode(attr);
}
while (element.hasChildNodes()) {
Node child = element.getFirstChild();
child = element.removeChild(child);
newElement.appendChild(child);
}
parent.insertBefore(newElement, element);
parent.removeChild(element);
return newElement;
}
public static void main(java.lang.String[] args) {
new ElementTest().testModel();
}
public void testModel() {
IDOMModel model = createXMLModel();
try {
IStructuredDocument structuredDocument = model.getStructuredDocument();
Document document = model.getDocument();
structuredDocument.replaceText(null, 0, 0, "<a><b e=\"f\" c=\"d\"><g /><h /></b></a>");
Node a = document.getFirstChild();
Element b = (Element) a.getFirstChild();
printSource(model);
printTree(model);
//Element i =
changeTagName(b, "i");
printSource(model);
printTree(model);
saveAndCompareTestResults();
}
finally {
model.releaseFromEdit();
}
}
}