blob: a3c821715fbeaf76fe47addd6def121f1224c8fc [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2008 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.pde.ui.tests.model.xml;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.pde.core.plugin.*;
import org.eclipse.pde.internal.core.text.IDocumentElementNode;
public class BasicXMLTestCase extends XMLModelTestCase {
public static Test suite() {
return new TestSuite(BasicXMLTestCase.class);
}
public void testReadSimpleExtension() {
StringBuffer sb = new StringBuffer();
sb.append("<extension point=\"org.eclipse.pde.ui.samples\"><sample /></extension>");
setXMLContents(sb, LF);
load();
IPluginExtension[] extensions = fModel.getPluginBase().getExtensions();
assertEquals(extensions.length, 1);
assertEquals(extensions[0].getPoint(), "org.eclipse.pde.ui.samples");
assertEquals(extensions[0].getChildCount(), 1);
assertEquals(extensions[0].getChildren()[0].getName(), "sample");
}
public void testReadMultilineSimpleExtension() {
StringBuffer sb = new StringBuffer();
sb.append("<extension ");
sb.append(LF);
sb.append("point=\"org.eclipse.pde.ui.samples\">");
sb.append(LF);
sb.append("<sample />");
sb.append(LF);
sb.append("</extension>");
setXMLContents(sb, LF);
load();
IPluginExtension[] extensions = fModel.getPluginBase().getExtensions();
assertEquals(extensions.length, 1);
assertEquals(extensions[0].getPoint(), "org.eclipse.pde.ui.samples");
assertEquals(extensions[0].getChildCount(), 1);
assertEquals(extensions[0].getChildren()[0].getName(), "sample");
}
public void testAddSimpleExtension() throws Exception {
setXMLContents(null, LF);
load(true);
IPluginExtension[] extensions = fModel.getPluginBase().getExtensions();
assertEquals(extensions.length, 0);
IExtensionsModelFactory factory = fModel.getFactory();
IPluginExtension ext = factory.createExtension();
ext.setPoint("org.eclipse.pde.ui.samples");
IPluginElement obj = factory.createElement(ext);
obj.setName("sample");
ext.add(obj);
fModel.getPluginBase().add(ext);
reload();
extensions = fModel.getPluginBase().getExtensions();
assertEquals(extensions.length, 1);
assertEquals(extensions[0].getPoint(), "org.eclipse.pde.ui.samples");
assertEquals(extensions[0].getChildCount(), 1);
assertEquals(extensions[0].getChildren()[0].getName(), "sample");
}
public void testRemoveSimpleExtension() throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("<extension id=\"org.eclipse.pde.ui.samples\"><sample /></extension>");
setXMLContents(sb, LF);
load(true);
IPluginExtension[] extensions = fModel.getPluginBase().getExtensions();
assertEquals(extensions.length, 1);
fModel.getPluginBase().remove(extensions[0]);
reload();
extensions = fModel.getPluginBase().getExtensions();
assertEquals(extensions.length, 0);
}
// bug 220178
public void testRemoveChildNode() throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("<extension id=\"org.eclipse.pde.ui.samples\"><sample /></extension>");
sb.append("<extension id=\"org.eclipse.pde.ui.samples2\"><sample /></extension>");
setXMLContents(sb, LF);
load(true);
IDocumentElementNode parent = (IDocumentElementNode) fModel.getPluginBase();
IDocumentElementNode child1 = parent.getChildAt(0);
assertNotNull(child1);
IDocumentElementNode child2 = parent.getChildAt(1);
assertNotNull(child2);
IDocumentElementNode result = parent.removeChildNode(child2);
assertNotNull(result);
assertEquals(child2, result);
}
}