001: /*******************************************************************************
002: * Copyright (c) 2006 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.pde.ui.tests.model.xml;
011:
012: import junit.framework.Test;
013: import junit.framework.TestSuite;
014:
015: import org.eclipse.pde.core.plugin.IExtensionsModelFactory;
016: import org.eclipse.pde.core.plugin.IPluginElement;
017: import org.eclipse.pde.core.plugin.IPluginExtension;
018:
019: public class BasicXMLTestCase extends XMLModelTestCase {
020:
021: public static Test suite() {
022: return new TestSuite(BasicXMLTestCase.class);
023: }
024:
025: public void testReadSimpleExtension() {
026: StringBuffer sb = new StringBuffer();
027: sb
028: .append("<extension point=\"org.eclipse.pde.ui.samples\"><sample /></extension>");
029: setXMLContents(sb, LF);
030: load();
031:
032: IPluginExtension[] extensions = fModel.getPluginBase()
033: .getExtensions();
034: assertEquals(extensions.length, 1);
035: assertEquals(extensions[0].getPoint(),
036: "org.eclipse.pde.ui.samples");
037: assertEquals(extensions[0].getChildCount(), 1);
038: assertEquals(extensions[0].getChildren()[0].getName(), "sample");
039: }
040:
041: public void testReadMultilineSimpleExtension() {
042: StringBuffer sb = new StringBuffer();
043: sb.append("<extension ");
044: sb.append(LF);
045: sb.append("point=\"org.eclipse.pde.ui.samples\">");
046: sb.append(LF);
047: sb.append("<sample />");
048: sb.append(LF);
049: sb.append("</extension>");
050: setXMLContents(sb, LF);
051: load();
052:
053: IPluginExtension[] extensions = fModel.getPluginBase()
054: .getExtensions();
055: assertEquals(extensions.length, 1);
056: assertEquals(extensions[0].getPoint(),
057: "org.eclipse.pde.ui.samples");
058: assertEquals(extensions[0].getChildCount(), 1);
059: assertEquals(extensions[0].getChildren()[0].getName(), "sample");
060: }
061:
062: public void testAddSimpleExtension() throws Exception {
063: setXMLContents(null, LF);
064: load(true);
065:
066: IPluginExtension[] extensions = fModel.getPluginBase()
067: .getExtensions();
068: assertEquals(extensions.length, 0);
069:
070: IExtensionsModelFactory factory = fModel.getFactory();
071: IPluginExtension ext = factory.createExtension();
072: ext.setPoint("org.eclipse.pde.ui.samples");
073: IPluginElement obj = factory.createElement(ext);
074: obj.setName("sample");
075: ext.add(obj);
076: fModel.getPluginBase().add(ext);
077:
078: reload();
079:
080: extensions = fModel.getPluginBase().getExtensions();
081: assertEquals(extensions.length, 1);
082: assertEquals(extensions[0].getPoint(),
083: "org.eclipse.pde.ui.samples");
084: assertEquals(extensions[0].getChildCount(), 1);
085: assertEquals(extensions[0].getChildren()[0].getName(), "sample");
086: }
087:
088: public void testRemoveSimpleExtension() throws Exception {
089: StringBuffer sb = new StringBuffer();
090: sb
091: .append("<extension id=\"org.eclipse.pde.ui.samples\"><sample /></extension>");
092: setXMLContents(sb, LF);
093: load(true);
094:
095: IPluginExtension[] extensions = fModel.getPluginBase()
096: .getExtensions();
097: assertEquals(extensions.length, 1);
098:
099: fModel.getPluginBase().remove(extensions[0]);
100:
101: reload();
102:
103: extensions = fModel.getPluginBase().getExtensions();
104: assertEquals(extensions.length, 0);
105: }
106: }
|