Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'testplugins/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/wizardapi/NewJavaProjectWizardTest.java')
-rw-r--r--testplugins/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/wizardapi/NewJavaProjectWizardTest.java309
1 files changed, 309 insertions, 0 deletions
diff --git a/testplugins/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/wizardapi/NewJavaProjectWizardTest.java b/testplugins/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/wizardapi/NewJavaProjectWizardTest.java
new file mode 100644
index 000000000..415adc1a8
--- /dev/null
+++ b/testplugins/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/wizardapi/NewJavaProjectWizardTest.java
@@ -0,0 +1,309 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 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.jdt.ui.tests.wizardapi;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.runtime.IPath;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.jface.operation.IRunnableWithProgress;
+
+import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
+
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+
+import org.eclipse.jdt.launching.JavaRuntime;
+
+import org.eclipse.jdt.ui.PreferenceConstants;
+import org.eclipse.jdt.ui.wizards.NewJavaProjectWizardPage;
+
+public class NewJavaProjectWizardTest extends TestCase {
+
+
+ public static Test suite() {
+ return new TestSuite(NewJavaProjectWizardTest.class);
+ }
+
+ private class TestNewJavaProjectWizardPage extends NewJavaProjectWizardPage {
+
+ private IProject fNewProject;
+
+ public TestNewJavaProjectWizardPage(IWorkspaceRoot root) {
+ super(root, null);
+ }
+
+ public void setProjectHandle(IProject newProject) {
+ fNewProject= newProject;
+ }
+
+ /**
+ * @see NewJavaProjectWizardPage#getLocationPath()
+ */
+ protected IPath getLocationPath() {
+ return null;
+ }
+
+ /**
+ * @see NewJavaProjectWizardPage#getProjectHandle()
+ */
+ protected IProject getProjectHandle() {
+ return fNewProject;
+ }
+
+ public void initBuildPath() {
+ super.initBuildPaths();
+ }
+
+ }
+
+
+ private static final String PROJECT_NAME = "DummyProject";
+ private static final String OTHER_PROJECT_NAME = "OtherProject";
+
+
+ private TestNewJavaProjectWizardPage fWizardPage;
+
+ public NewJavaProjectWizardTest(String name) {
+ super(name);
+ }
+
+ /**
+ * @see TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+
+ IProject project= root.getProject(PROJECT_NAME);
+
+ fWizardPage= new TestNewJavaProjectWizardPage(root);
+ fWizardPage.setProjectHandle(project);
+ }
+
+ /**
+ * @see TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+ IProject project= root.getProject(PROJECT_NAME);
+ if (project.exists()) {
+ project.delete(true, null);
+ }
+
+ project= root.getProject(OTHER_PROJECT_NAME);
+ if (project.exists()) {
+ project.delete(true, null);
+ }
+
+ super.tearDown();
+ }
+
+ private IPath getJREEntryPath() {
+ return JavaRuntime.getDefaultJREContainerEntry().getPath();
+ }
+
+
+ private void assertBasicBuildPath(IProject project, IPath outputLocation, IClasspathEntry[] classpath) {
+ assertNotNull("a", outputLocation);
+ assertNotNull("b", classpath);
+ assertTrue("c", classpath.length == 2);
+
+ if (PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.SRCBIN_FOLDERS_IN_NEWPROJ)) {
+ assertEquals("d", outputLocation, project.getFolder("bin").getFullPath());
+ assertEquals("e", classpath[0].getPath(), project.getFolder("src").getFullPath());
+ } else {
+ assertEquals("f", outputLocation, project.getFullPath());
+ assertEquals("g", classpath[0].getPath(), project.getFullPath());
+ }
+ assertEquals("h", classpath[1].getPath(), getJREEntryPath());
+ }
+
+ public void testBasicSet() throws Exception {
+ fWizardPage.initBuildPath();
+ IProject project= fWizardPage.getProjectHandle();
+
+ IPath outputLocation= fWizardPage.getOutputLocation();
+ IClasspathEntry[] classpath= fWizardPage.getRawClassPath();
+ assertBasicBuildPath(project, outputLocation, classpath);
+ }
+
+
+ public void testBasicCreate() throws Exception {
+ IProject project= fWizardPage.getProjectHandle();
+
+ IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(fWizardPage.getRunnable());
+ op.run(null);
+
+ IJavaProject jproj= fWizardPage.getNewJavaProject();
+
+ assertEquals("a", jproj.getProject(), project);
+
+ IPath outputLocation= jproj.getOutputLocation();
+ IClasspathEntry[] classpath= jproj.getRawClasspath();
+ assertBasicBuildPath(jproj.getProject(), outputLocation, classpath);
+ }
+
+ public void testProjectChange() throws Exception {
+ fWizardPage.initBuildPath();
+ IProject project= fWizardPage.getProjectHandle();
+
+ IPath outputLocation= fWizardPage.getOutputLocation();
+ IClasspathEntry[] classpath= fWizardPage.getRawClassPath();
+ assertBasicBuildPath(project, outputLocation, classpath);
+
+ IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+ IProject otherProject= root.getProject(OTHER_PROJECT_NAME);
+
+ // change the project before create
+ fWizardPage.setProjectHandle(otherProject);
+
+ IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(fWizardPage.getRunnable());
+ op.run(null);
+
+ IJavaProject jproj= fWizardPage.getNewJavaProject();
+
+ assertEquals("a", jproj.getProject(), otherProject);
+
+ IPath outputLocation1= fWizardPage.getOutputLocation();
+ IClasspathEntry[] classpath1= fWizardPage.getRawClassPath();
+ assertBasicBuildPath(otherProject, outputLocation1, classpath1);
+ }
+
+ private void assertUserBuildPath(IProject project, IPath outputLocation, IClasspathEntry[] classpath) {
+ assertNotNull("a", outputLocation);
+ assertNotNull("b", classpath);
+ assertTrue("c", classpath.length == 3);
+
+ assertEquals("d", outputLocation, project.getFolder("dbin").getFullPath());
+ assertEquals("e", classpath[0].getPath(), project.getFolder("dsrc1").getFullPath());
+ assertEquals("f", classpath[1].getPath(), project.getFolder("dsrc2").getFullPath());
+ assertEquals("g", classpath[2].getPath(), getJREEntryPath());
+ }
+
+ public void testUserSet() throws Exception {
+ IProject project= fWizardPage.getProjectHandle();
+
+ IPath folderPath= project.getFolder("dbin").getFullPath();
+
+ IClasspathEntry[] entries= new IClasspathEntry[] {
+ JavaCore.newSourceEntry(project.getFolder("dsrc1").getFullPath()),
+ JavaCore.newSourceEntry(project.getFolder("dsrc2").getFullPath())
+ };
+
+ fWizardPage.setDefaultOutputFolder(folderPath);
+ fWizardPage.setDefaultClassPath(entries, true);
+ fWizardPage.initBuildPath();
+
+ IPath outputLocation= fWizardPage.getOutputLocation();
+ IClasspathEntry[] classpath= fWizardPage.getRawClassPath();
+ assertUserBuildPath(project, outputLocation, classpath);
+
+ fWizardPage.setDefaultOutputFolder(null);
+ fWizardPage.setDefaultClassPath(null, false);
+ fWizardPage.initBuildPath();
+
+ IPath outputLocation1= fWizardPage.getOutputLocation();
+ IClasspathEntry[] classpath1= fWizardPage.getRawClassPath();
+ assertBasicBuildPath(project, outputLocation1, classpath1);
+ }
+
+ public void testUserCreate() throws Exception {
+ IProject project= fWizardPage.getProjectHandle();
+
+ IPath folderPath= project.getFolder("dbin").getFullPath();
+
+ IClasspathEntry[] entries= new IClasspathEntry[] {
+ JavaCore.newSourceEntry(project.getFolder("dsrc1").getFullPath()),
+ JavaCore.newSourceEntry(project.getFolder("dsrc2").getFullPath())
+ };
+
+ fWizardPage.setDefaultOutputFolder(folderPath);
+ fWizardPage.setDefaultClassPath(entries, true);
+
+ IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(fWizardPage.getRunnable());
+ op.run(null);
+
+ IJavaProject jproj= fWizardPage.getNewJavaProject();
+
+ assertEquals("a", jproj.getProject(), project);
+
+ IPath outputLocation= jproj.getOutputLocation();
+ IClasspathEntry[] classpath= jproj.getRawClasspath();
+ assertUserBuildPath(jproj.getProject(), outputLocation, classpath);
+ }
+
+ public void testReadExisting() throws Exception {
+ IProject project= fWizardPage.getProjectHandle();
+
+ IPath folderPath= project.getFolder("dbin").getFullPath();
+ IClasspathEntry[] entries= new IClasspathEntry[] {
+ JavaCore.newSourceEntry(project.getFolder("dsrc1").getFullPath()),
+ JavaCore.newSourceEntry(project.getFolder("dsrc2").getFullPath())
+ };
+
+ fWizardPage.setDefaultOutputFolder(folderPath);
+ fWizardPage.setDefaultClassPath(entries, true);
+
+ IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(fWizardPage.getRunnable());
+ op.run(null);
+
+ IProject proj= fWizardPage.getNewJavaProject().getProject();
+
+ fWizardPage.setDefaultClassPath(null, false);
+ fWizardPage.setDefaultOutputFolder(null);
+ fWizardPage.setProjectHandle(proj);
+
+ // reads from existing
+ fWizardPage.initBuildPath();
+
+ IPath outputLocation1= fWizardPage.getOutputLocation();
+ IClasspathEntry[] classpath1= fWizardPage.getRawClassPath();
+ assertUserBuildPath(project, outputLocation1, classpath1);
+ }
+
+ public void testExistingOverwrite() throws Exception {
+ IProject project= fWizardPage.getProjectHandle();
+
+ IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(fWizardPage.getRunnable());
+ op.run(null);
+
+ IPath folderPath= project.getFolder("dbin").getFullPath();
+ IClasspathEntry[] entries= new IClasspathEntry[] {
+ JavaCore.newSourceEntry(project.getFolder("dsrc1").getFullPath()),
+ JavaCore.newSourceEntry(project.getFolder("dsrc2").getFullPath())
+ };
+
+ fWizardPage.setDefaultOutputFolder(folderPath);
+ fWizardPage.setDefaultClassPath(entries, true);
+
+ // should overwrite existing
+ IRunnableWithProgress op1= new WorkspaceModifyDelegatingOperation(fWizardPage.getRunnable());
+ op1.run(null);
+
+ IJavaProject jproj= fWizardPage.getNewJavaProject();
+
+ IPath outputLocation1= jproj.getOutputLocation();
+ IClasspathEntry[] classpath1= jproj.getRawClasspath();
+ assertUserBuildPath(project, outputLocation1, classpath1);
+ }
+}
+
+
+

Back to the top