blob: f452472000101ef25d1f2e459b5a23d380dc0f8d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2015 Lorenzo Bettini 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:
* Lorenzo Bettini - initial API and implementation
* Stephane Bouchet (Intel Corporation) - added testCase for bug 451547
* Patrick Tasse - Speed up SWTBot tests
*******************************************************************************/
package org.eclipse.swtbot.eclipse.finder.widgets;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.helpers.NewJavaClass;
import org.eclipse.swtbot.eclipse.finder.widgets.helpers.NewJavaProject;
import org.eclipse.swtbot.eclipse.finder.widgets.helpers.PackageExplorerView;
import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* @author Lorenzo Bettini <bettini [at] dsi [dot] unifi [dot] it>
* @version $Id$
*/
@RunWith(SWTBotJunit4ClassRunner.class)
public class SWTBotEclipseProjectTest extends AbstractSWTBotEclipseTest {
private static final String PROJECT_NAME = "FooBarProject";
private static final String PACKAGE_NAME = "org.eclipse.swtbot.eclipse.test";
private static final String CLASS_NAME = "HelloWorld";
private static final String CLASS_FILE_NAME = CLASS_NAME + ".java";
private NewJavaClass javaClass = new NewJavaClass();
private NewJavaProject javaProject = new NewJavaProject();
private PackageExplorerView packageExplorerView = new PackageExplorerView();
private static SWTWorkbenchBot bot = new SWTWorkbenchBot();
@Before
public void setUp() throws Exception {
javaProject.createProject(PROJECT_NAME);
javaClass.createClass(PACKAGE_NAME, CLASS_NAME);
}
@After
public void tearDown() throws Exception {
super.tearDown();
packageExplorerView.deleteProject(PROJECT_NAME);
}
@Test
public void canRefreshProject() {
packageExplorerTree().expandNode(PROJECT_NAME, "src")
.contextMenu("Refresh").click();
}
@Test
public void canAccessOpen() {
javaClassFileTreeItem().contextMenu("Open").click();
}
@Test
public void canAccessContextMenuWithSubmenus() {
javaClassFileTreeItem().contextMenu("Open With");
}
@Test
public void canAccessContextMenuCopyQualifiedName() {
javaClassFileTreeItem().contextMenu("Copy Qualified Name");
}
@Test
public void canAccessContextMenuSubmenu() {
SWTBotMenu openWithMenu = javaClassFileTreeItem().contextMenu("Open With");
openWithMenu.menu("Text Editor").click();
}
@Test
public void canAccessContextMenuOnMultipleSelection() {
NewJavaClass javaClass2 = new NewJavaClass();
javaClass2.createClass("org.eclipse.swtbot.eclipse.test.other", CLASS_NAME);
SWTBotTreeItem javaClass2item = packageExplorerTree().expandNode(PROJECT_NAME, "src", "org.eclipse.swtbot.eclipse.test.other",
CLASS_FILE_NAME);
packageExplorerTree().select(javaClassFileTreeItem(), javaClass2item);
packageExplorerTree().contextMenu("Compare With").menu("Each Other").click();
}
private SWTBotTreeItem javaClassFileTreeItem() {
return packageExplorerTree().expandNode(PROJECT_NAME, "src",
PACKAGE_NAME, CLASS_FILE_NAME);
}
private SWTBotTree packageExplorerTree() {
return bot.viewByTitle("Package Explorer").bot().tree();
}
}