package com.windowtester.test.eclipse.codegen;
import com.windowtester.runtime.IUIContext;
import com.windowtester.runtime.WidgetSearchException;
import com.windowtester.runtime.condition.TimeElapsedCondition;
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.CTabItemLocator;
import com.windowtester.runtime.swt.locator.MenuItemLocator;
import com.windowtester.runtime.swt.locator.TreeItemLocator;
import com.windowtester.runtime.swt.locator.eclipse.ContributedToolItemLocator;
import com.windowtester.runtime.swt.locator.eclipse.PullDownMenuItemLocator;
import com.windowtester.runtime.swt.locator.eclipse.ViewLocator;
import com.windowtester.test.eclipse.EclipseUtil;
import com.windowtester.test.eclipse.helpers.WorkBenchHelper;
import com.windowtester.test.eclipse.helpers.WorkBenchHelper.Perspective;
import com.windowtester.test.eclipse.helpers.WorkBenchHelper.View;
/*******************************************************************************
* 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 EclipseRecorderSmokeTests extends AbstractRecorderSmokeTest
{
@Override
protected void setUp() throws Exception {
closeWelcomePageIfNecessary();
openJavaPerspective();
openPackageExplorer();
super.setUp(); //<-- NOW START RECORDING!
}
private void openPackageExplorer() throws WidgetSearchException {
WorkBenchHelper.openView(getUI(), View.JAVA_PACKAGEEXPLORER);
}
private void openJavaPerspective() throws WidgetSearchException {
WorkBenchHelper.openPerspective(getUI(), Perspective.JAVA);
}
public void testViewMenu() throws Exception {
IUIContext ui = getUI();
// View menu locator not implemented in Eclipse 3.1
if (EclipseUtil.isVersion_31())
return;
ui.click(new MenuItemLocator("Window/Show View/Package Explorer"));
ui.click(new PullDownMenuItemLocator("Filters...", new ViewLocator("org.eclipse.jdt.ui.PackageExplorer")));
ui.wait(new ShellShowingCondition("Java Element Filters"));
ui.click(new ButtonLocator("&Name filter patterns (matching names will be hidden):"));
ui.click(new ButtonLocator("Cancel"));
ui.wait(new ShellDisposedCondition("Java Element Filters"));
}
public void testRunToolItemPullDown() throws Exception {
IUIContext ui = getUI();
String menuPath = EclipseUtil.isVersion_32() ? "Ru&n..." : "Open Run Dialog...";
//ugh 3.4...
if (EclipseUtil.isAtLeastVersion_34())
menuPath = "Run Configurations...";
ui.click(new PullDownMenuItemLocator(menuPath, new ContributedToolItemLocator("org.eclipse.debug.internal.ui.actions.RunDropDownAction")));
ui.wait(new ShellShowingCondition("Run( Configurations)?")); //3.4M7+
ui.click(new ButtonLocator("Close"));
ui.wait(new ShellDisposedCondition("Run( Configurations)?")); //3.4M7+
}
public void testJavaProjectClickInPackageExplorer() throws WidgetSearchException {
IUIContext ui = getUI();
ui.click(new MenuItemLocator("File/New/Project..."));
ui.wait(new ShellShowingCondition("New Project"));
ui.click(new TreeItemLocator("Java/Java Project"));
ui.click(new ButtonLocator("&Next >"));
ui.enterText("EclipseRecorderSmokeTest_JPClickTestProject");
ui.click(new ButtonLocator("&Finish"));
ui.wait(new ShellDisposedCondition("New Java Project"));
ui.click(new TreeItemLocator("EclipseRecorderSmokeTest_JPClickTestProject", new ViewLocator("org.eclipse.jdt.ui.PackageExplorer")));
ui.wait(TimeElapsedCondition.milliseconds(2000));//give the recorder a moment to catch the click
}
public void testCTabItemClose() throws Exception {
IUIContext ui = getUI();
ui.click(new MenuItemLocator("Window/Show View/Error Log"));
ui.ensureThat(new CTabItemLocator("Error Log").isClosed());
}
}