blob: ad2cfc73eb1b86145f339fdce64d8bb0867ec23e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 Ketan Padegaonkar 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:
* Ketan Padegaonkar - initial API and implementation
* Lorenzo Bettini - https://bugs.eclipse.org/bugs/show_bug.cgi?id=464687
*******************************************************************************/
package org.eclipse.swtbot.forms.finder.test.widgets;
import java.util.List;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.forms.finder.SWTFormsBot;
import org.eclipse.swtbot.swt.finder.SWTBot;
import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
import org.junit.After;
import org.junit.BeforeClass;
public abstract class AbstractSWTBotFormsTest {
protected static SWTFormsBot bot = new SWTFormsBot();
protected static SWTWorkbenchBot workbench = new SWTWorkbenchBot();
@BeforeClass
public static void beforeClass() {
closeWelcomePage();
closeAllViews();
showFormsView();
}
private static void showFormsView() {
// don't use recursion when searching for "Window" menu
// to avoid a bug in ShowInMenu in Luna; "Show In..." is a submenu
// of "Navigate" which comes before "Window"
bot.menu("Window", false).menu("Show View").menu("Other...").click();
SWTBot showViewDialogBot = bot.shell("Show View").bot();
showViewDialogBot.tree().getTreeItem("Eclipse Forms Examples").expand().getNode("Eclipse Form").select();
showViewDialogBot.button("OK").click();
workbench.viewByTitle("Eclipse Form");
}
private static void closeAllViews() {
List<SWTBotView> views = workbench.views();
for (SWTBotView view : views) {
view.close();
}
}
private static void closeWelcomePage() {
try {
SWTBotPreferences.TIMEOUT = 0;
System.setProperty("org.eclipse.swtbot.search.timeout", "0");
workbench.viewByTitle("Welcome").close();
} catch (WidgetNotFoundException e) {
// do nothing
} finally {
SWTBotPreferences.TIMEOUT = 5000;
}
}
@After
public void tearDown() throws Exception {
saveAndCloseAllEditors();
}
/**
* @throws WidgetNotFoundException
*/
private void saveAndCloseAllEditors() {
List<? extends SWTBotEditor> editors = workbench.editors();
for (SWTBotEditor editor : editors) {
editor.saveAndClose();
}
}
}