package org.erlide.tests.ui.projects;
import static com.windowtester.runtime.swt.locator.eclipse.EclipseLocators.view;
import static com.windowtester.runtime.swt.locator.eclipse.EclipseLocators.workbench;
import static org.hamcrest.MatcherAssert.assertThat;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import com.windowtester.runtime.IUIContext;
import com.windowtester.runtime.WT;
import com.windowtester.runtime.swt.UITestCaseSWT;
import com.windowtester.runtime.swt.condition.shell.ShellDisposedCondition;
import com.windowtester.runtime.swt.condition.shell.ShellShowingCondition;
import com.windowtester.runtime.swt.locator.ButtonLocator;
import com.windowtester.runtime.swt.locator.FilteredTreeItemLocator;
import com.windowtester.runtime.swt.locator.LabeledTextLocator;
import com.windowtester.runtime.swt.locator.MenuItemLocator;
import com.windowtester.runtime.swt.locator.TreeItemLocator;
import com.windowtester.runtime.swt.locator.eclipse.ViewLocator;
/**
* Just a demo test
*/
public class CreateProjectTest extends UITestCaseSWT {
/*
* @see junit.framework.TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
super.setUp();
final IUIContext ui = getUI();
ui.ensureThat(workbench().hasFocus());
ui.ensureThat(view("Welcome").isClosed());
ResourcesPlugin.getWorkspace().getRoot().delete(true, null);
}
/**
* Main test method.
*/
public void testCreateProject() throws Exception {
final IUIContext ui = getUI();
ui.click(new MenuItemLocator("File/New/Project..."));
ui.wait(new ShellShowingCondition("New Project"));
ui.click(2, new FilteredTreeItemLocator("General/Project"));
ui.click(new LabeledTextLocator("&Project name:"));
ui.enterText("poi");
ui.click(new ButtonLocator("&Finish"));
ui.wait(new ShellDisposedCondition("New Project"));
ui.contextClick(new TreeItemLocator("poi", new ViewLocator(
"org.eclipse.jdt.ui.PackageExplorer")), "New/Folder");
ui.wait(new ShellShowingCondition("New Folder"));
ui.enterText("fold");
ui.keyClick(WT.CR);
ui.wait(new ShellDisposedCondition("New Folder"));
assert_folderExists();
}
private void assert_folderExists() throws URISyntaxException,
MalformedURLException, IOException {
final IWorkspaceRoot w = ResourcesPlugin.getWorkspace().getRoot();
final IProject prj = w.getProject("poi");
assertThat("prj exists", prj.exists());
final IFolder fold = prj.getFolder("fold");
assertThat("fld exists", fold.exists());
final IFolder fold1 = prj.getFolder("fold1");
assertThat("fld1 doesn't exists", !fold1.exists());
}
}