blob: 31eac6a681a94a188e95eecd1891bb22087be46c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2007 IBM Corporation and others.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
*******************************************************************************/
package org.eclipse.dltk.tcl.ui.tests.dialogs;
import java.util.ArrayList;
import java.util.List;
import junit.extensions.TestSetup;
import junit.framework.Test;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.dltk.core.DLTKCore;
import org.eclipse.dltk.core.IBuildpathEntry;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.ModelException;
import org.eclipse.dltk.internal.ui.util.CoreUtility;
import org.eclipse.dltk.ui.DLTKUIPlugin;
import org.eclipse.dltk.ui.tests.ScriptProjectHelper;
import org.eclipse.dltk.ui.tests.TestOptions;
public class NewProjectTestSetup extends TestSetup {
public static final String WORKSPACE_PROJECT= "WorkspaceProject";
public static final String WORKSPACE_PROJECT_SRC= "WorkspaceProjectWithSourceAndInFolder";
public static IScriptProject getProject(String projectName) throws CoreException {
return ScriptProjectHelper.createScriptProject(projectName);
}
// public static IBuildpathEntry[] getDefaultBuildpath() {
// //return PreferenceConstants.getDefaultInterpreterEnvironmentLibrary();
// return null;
// }
private IScriptProject fWorkspaceProject;
private IScriptProject fWorkspaceProjectWithSrc;
private IScriptProject fExternalProject;
private boolean fAutobuilding;
public NewProjectTestSetup(Test test) {
super(test);
try {
fAutobuilding= ScriptProjectHelper.setAutoBuilding(false);
} catch (CoreException e) {
DLTKUIPlugin.log(e);
}
}
public IScriptProject getProject(IScriptProject currentProject) throws CoreException {
String name= currentProject.getElementName();
currentProject.getProject().delete(true, null);
if (name.equals(WORKSPACE_PROJECT))
return getWorkspaceProject();
if (name.equals(WORKSPACE_PROJECT_SRC))
return getWorkspaceProjectWithSrc();
return null;
}
public IScriptProject getWorkspaceProject() {
try {
fWorkspaceProject= getProject(WORKSPACE_PROJECT);
List cpEntries= new ArrayList();
IPath projectPath= fWorkspaceProject.getProject().getFullPath();
cpEntries.add(DLTKCore.newSourceEntry(projectPath));
//cpEntries.addAll(Arrays.asList(getDefaultBuildpath()));
IBuildpathEntry[] entries= (IBuildpathEntry[]) cpEntries.toArray(new IBuildpathEntry[cpEntries.size()]);
fWorkspaceProject.setRawBuildpath(entries, new NullProgressMonitor());
} catch (ModelException e) {
DLTKUIPlugin.log(e);
} catch (CoreException e) {
DLTKUIPlugin.log(e);
}
return fWorkspaceProject;
}
public IScriptProject getWorkspaceProjectWithSrc() {
try {
fWorkspaceProjectWithSrc= getProject(WORKSPACE_PROJECT_SRC);
createWithSrcAndBinFolder(fWorkspaceProjectWithSrc);
} catch (CoreException e) {
DLTKUIPlugin.log(e);
}
return fWorkspaceProjectWithSrc;
}
public IScriptProject getExternalProject() throws CoreException {
return fExternalProject;
}
/* (non-Javadoc)
* @see junit.extensions.TestSetup#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
DLTKCore.setOptions(TestOptions.getDefaultOptions());
TestOptions.initializeCodeGenerationOptions();
//DLTKUIPlugin.getDefault().getCodeTemplateStore().load();
}
protected void tearDown() throws Exception {
if (fWorkspaceProject != null && fWorkspaceProject.exists())
ScriptProjectHelper.delete(fWorkspaceProject);
if (fWorkspaceProjectWithSrc != null && fWorkspaceProjectWithSrc.exists())
ScriptProjectHelper.delete(fWorkspaceProjectWithSrc);
if (fExternalProject != null && fExternalProject.exists())
ScriptProjectHelper.delete(fExternalProject);
ScriptProjectHelper.setAutoBuilding(fAutobuilding);
}
private void createWithSrcAndBinFolder(IScriptProject project) {
IPath srcPath= new Path("src");
try {
if (srcPath.segmentCount() > 0) {
IFolder folder= project.getProject().getFolder(srcPath);
CoreUtility.createFolder(folder, true, true, null);
}
final IPath projectPath= project.getProject().getFullPath();
// configure the buildpath entries, including the default InterpreterEnvironment library.
List cpEntries= new ArrayList();
cpEntries.add(DLTKCore.newSourceEntry(projectPath.append(srcPath)));
//cpEntries.addAll(Arrays.asList(PreferenceConstants.getDefaultInterpreterEnvironmentLibrary()));
IBuildpathEntry[] entries= (IBuildpathEntry[]) cpEntries.toArray(new IBuildpathEntry[cpEntries.size()]);
project.setRawBuildpath(entries, null);
} catch (CoreException e) {
DLTKUIPlugin.log(e);
}
}
}