package com.windowtester.test.eclipse; import java.io.File; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import com.windowtester.runtime.IUIContext; import com.windowtester.runtime.WT; import com.windowtester.runtime.swt.UITestCaseSWT; import com.windowtester.runtime.swt.condition.eclipse.JobsCompleteCondition; 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.MenuItemLocator; import com.windowtester.runtime.swt.locator.SWTWidgetLocator; import com.windowtester.runtime.swt.locator.TableItemLocator; import com.windowtester.runtime.swt.locator.TreeItemLocator; import com.windowtester.test.util.TypingLinuxHelper; /******************************************************************************* * Copyright (c) 2012 Google, Inc. * 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: * Google, Inc. - initial API and implementation *******************************************************************************/ public class ImportProjectTest extends UITestCaseSWT { public void testImportContactManagerSwing() throws Exception { importProject("ContactManagerSwing"); } private void importProject(String projectName) throws Exception { File rootDir = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile(); String projectPath = new File(rootDir, projectName).getPath(); try{ TypingLinuxHelper.switchToInsertStrategyIfNeeded(); IUIContext ui = getUI(); ui.click(new MenuItemLocator("File/Import...")); ui.wait(new ShellShowingCondition("Import")); // Eclipse 3.1 uses a table while Eclipse 3.2 and beyond use a tree if (EclipseUtil.isVersion_31()) ui.click(new TableItemLocator("Existing Projects into Workspace")); else ui.click(new TreeItemLocator("General/Existing Projects into Workspace")); ui.click(new ButtonLocator("Next >")); ui.click(new SWTWidgetLocator(Text.class, 0, new SWTWidgetLocator(Composite.class))); ui.enterText(projectPath); ui.keyClick(WT.TAB); ui.click(new ButtonLocator("Finish")); ui.wait(new ShellDisposedCondition("Import")); ui.wait(new JobsCompleteCondition()); }finally{ TypingLinuxHelper.restoreOriginalStrategy(); } } }