Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDJ Houghton2008-04-03 14:04:21 +0000
committerDJ Houghton2008-04-03 14:04:21 +0000
commit4e677f1f0d82d33f228947c7eed6af2bd01d265f (patch)
tree5b10b65a8880f0adba314f5f58b43139a74eea1f
parentc4a54a3f6f888f605eb416359be75ab57dabe425 (diff)
downloadrt.equinox.p2-4e677f1f0d82d33f228947c7eed6af2bd01d265f.tar.gz
rt.equinox.p2-4e677f1f0d82d33f228947c7eed6af2bd01d265f.tar.xz
rt.equinox.p2-4e677f1f0d82d33f228947c7eed6af2bd01d265f.zip
Added some test stubs for the updatesite.
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF3
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java1
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java26
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java120
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml3
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jarbin0 -> 664 bytes
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jarbin0 -> 665 bytes
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jarbin0 -> 315 bytes
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jarbin0 -> 315 bytes
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml19
11 files changed, 175 insertions, 1 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
index 851760875..05d7e227a 100644
--- a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
@@ -25,7 +25,9 @@ Import-Package: ie.wombat.jbdiff,
org.eclipse.equinox.internal.p2.metadata.repository.io,
org.eclipse.equinox.internal.p2.persistence,
org.eclipse.equinox.internal.p2.resolution,
+ org.eclipse.equinox.internal.p2.sar,
org.eclipse.equinox.internal.p2.touchpoint.eclipse,
+ org.eclipse.equinox.internal.p2.updatesite,
org.eclipse.equinox.internal.provisional.p2.artifact.repository,
org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
org.eclipse.equinox.internal.provisional.p2.core,
@@ -41,7 +43,6 @@ Import-Package: ie.wombat.jbdiff,
org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository,
org.eclipse.equinox.internal.provisional.spi.p2.core.repository,
org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository,
- org.eclipse.equinox.internal.p2.sar,
org.eclipse.osgi.service.environment;version="1.0.0",
org.eclipse.osgi.service.resolver;version="1.1.0",
org.eclipse.osgi.service.urlconversion;version="1.0.0",
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java
index 759db6867..f44fc1754 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java
@@ -579,6 +579,10 @@ public abstract class AbstractProvisioningTest extends TestCase {
return profileRegistry.addProfile(name, properties, parentId);
}
+ protected IProgressMonitor getMonitor() {
+ return new NullProgressMonitor();
+ }
+
protected IProfile getProfile(String profileId) {
//remove any existing profile with the same name
IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(TestActivator.getContext(), IProfileRegistry.class.getName());
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java
index e6e8fa011..a002328f1 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java
@@ -34,6 +34,7 @@ public class AutomatedTests extends TestCase {
suite.addTest(org.eclipse.equinox.p2.tests.sar.AllTests.suite());
suite.addTest(org.eclipse.equinox.p2.tests.directorywatcher.AllTests.suite());
suite.addTest(org.eclipse.equinox.p2.tests.simpleconfigurator.SimpleConfiguratorTests.suite());
+ suite.addTest(org.eclipse.equinox.p2.tests.updatesite.AllTests.suite());
return suite;
}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java
new file mode 100644
index 000000000..9abea3d1d
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 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.equinox.p2.tests.updatesite;
+
+import junit.framework.*;
+
+/**
+ * Performs all automated director tests.
+ */
+public class AllTests extends TestCase {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(AllTests.class.getName());
+ suite.addTestSuite(UpdateSiteTest.class);
+ return suite;
+ }
+
+}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java
new file mode 100644
index 000000000..5f1b4ad03
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 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.equinox.p2.tests.updatesite;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.eclipse.equinox.internal.p2.updatesite.UpdateSite;
+import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
+import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Feature;
+import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
+
+/**
+ * @since 1.0
+ */
+public class UpdateSiteTest extends AbstractProvisioningTest {
+ /*
+ * Constructor for the class.
+ */
+ public UpdateSiteTest(String name) {
+ super(name);
+ }
+
+ /*
+ * Run all the tests in this class.
+ */
+ public static Test suite() {
+ return new TestSuite(UpdateSiteTest.class);
+ }
+
+ public void testBadDigest() {
+ // TODO test the case where we have a site which contains a bad digest file
+ // and default to a good site.xml
+
+ // TODO test the case where we have a site which contains a bad digest file
+ // and try default to a site.xml but it is bad too
+
+ }
+
+ public void testGoodDigest() {
+ // TODO handle the case where we have a site with a good digest file
+ }
+
+ public void testBadSiteXML() {
+ // handle the case where the site.xml doesn't parse correctly
+ File site = getTestData("0.1", "/testData/updatesite/badSiteXML");
+ try {
+ UpdateSite.load(site.toURL(), getMonitor());
+ fail("0.2");
+ } catch (ProvisionException e) {
+ // expected exception
+ } catch (MalformedURLException e) {
+ fail("0.3", e);
+ }
+ }
+
+ /*
+ * Test the case where we don't have a digest or site.xml.
+ */
+ public void testNoSite() {
+ // ensure we have a validate, empty location
+ File temp = getTempFolder();
+ temp.mkdirs();
+ URL location = null;
+ try {
+ location = temp.toURL();
+ } catch (MalformedURLException e) {
+ fail("0.1", e);
+ }
+ try {
+ UpdateSite.load(location, getMonitor());
+ fail("0.2");
+ } catch (ProvisionException e) {
+ // we expect an exception
+ }
+
+ try {
+ assertNull("1.0", UpdateSite.load(null, getMonitor()));
+ } catch (ProvisionException e) {
+ fail("1.99", e);
+ }
+ }
+
+ /*
+ * Test in which we load an update site from a valid site.xml file. Handle
+ * all the variations in the file.
+ */
+ public void testSite() {
+ File siteLocation = getTestData("0.1", "/testData/updatesite/site");
+ UpdateSite site = null;
+ try {
+ site = UpdateSite.load(siteLocation.toURL(), getMonitor());
+ } catch (ProvisionException e) {
+ fail("0.2", e);
+ } catch (MalformedURLException e) {
+ fail("0.3", e);
+ }
+ Feature[] features = null;
+ try {
+
+ features = site.loadFeatures();
+ } catch (ProvisionException e) {
+ fail("0.4", e);
+ }
+ }
+
+ public void testMirrors() {
+ // TODO test the case where the site.xml points to a mirror location
+ }
+}
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml
new file mode 100644
index 000000000..ac2ec192d
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site
+</site>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jar
new file mode 100644
index 000000000..2b4a959e8
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jar
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jar
new file mode 100644
index 000000000..6294094c6
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jar
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jar
new file mode 100644
index 000000000..f7b85efb2
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jar
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jar
new file mode 100644
index 000000000..bf33f4762
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jar
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml
new file mode 100644
index 000000000..22a40a8b6
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <feature url="features/a.f_1.0.0.jar" id="a.f" version="1.0.0">
+ <category name="a"/>
+ </feature>
+ <feature url="features/b.f_1.0.0.jar" id="b.f" version="1.0.0">
+ <category name="b"/>
+ </feature>
+ <category-def name="a" label="Category One">
+ <description>
+ This is the first category.
+ </description>
+ </category-def>
+ <category-def name="b" label="Category Two">
+ <description>
+ This is the second category.
+ </description>
+ </category-def>
+</site>

Back to the top