package org.jboss.tools.mylyn.reddeer; /* Support routines for Mylyn tests */ import java.util.ArrayList; import java.util.List; import org.jboss.reddeer.common.logging.Logger; import org.jboss.reddeer.common.matcher.RegexMatcher; import org.jboss.reddeer.core.matcher.WithTextMatcher; import org.jboss.reddeer.eclipse.equinox.security.ui.StoragePreferencePage; import org.jboss.reddeer.swt.api.TableItem; import org.jboss.reddeer.swt.api.TreeItem; import org.jboss.reddeer.swt.exception.SWTLayerException; import org.jboss.reddeer.swt.impl.button.PushButton; import org.jboss.reddeer.swt.impl.menu.ShellMenu; import org.jboss.reddeer.swt.impl.shell.DefaultShell; import org.jboss.reddeer.swt.impl.tree.DefaultTree; import org.jboss.reddeer.swt.impl.tree.DefaultTreeItem; import org.jboss.reddeer.workbench.ui.dialogs.WorkbenchPreferenceDialog; public class TestSupport { private static final Logger log = Logger.getLogger(TestSupport.class); /* Test Setup part 1 */ public static List<TreeItem> mylynTestSetup1 () { log.debug("Open the Mylyn View"); new ShellMenu("Window", "Show View", "Other...").select(); /* Verify that the expected repos are defined */ log.debug("Verify that the Mylyn Features are Present"); DefaultTreeItem taskRepositories = new DefaultTreeItem ("Mylyn", "Task Repositories"); taskRepositories.select(); /* Slightly different text after update for * http://wiki.eclipse.org/Platform_UI/Juno_Performance_Investigation * installed - see: * https://issues.jboss.org/browse/JBDS-2441 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=385272 */ new PushButton(new WithTextMatcher(new RegexMatcher("OK|ok"))).click(); DefaultTree RepoTree = new DefaultTree(); List<TreeItem> repoItems = RepoTree.getAllItems(); return repoItems; } /* method */ /* Test Setup part 2 * * This is divided into 2 parts to enable tests to receive both List of repos, * and an ArrayList of the same items * * */ public static ArrayList<String> mylynTestSetup2 (List<TreeItem> repoItems) { ArrayList<String> repoList = new ArrayList<String>(); int i = 0; for (TreeItem item : repoItems) { log.debug("repo found: " + item.getText()); repoList.add(i++, item.getText()); } return repoList; } /* method */ public static void closeSecureStorageIfOpened () { log.debug("Attempting to close the Secure Storage Dialog"); try { new DefaultShell(new WithTextMatcher(new RegexMatcher("Secure Storage.*"))).close(); log.debug("Closed the Secure Storage Dialog"); } catch (SWTLayerException swtle){ log.error("Unable to close the Secure Storage Dialog - " + swtle.getMessage()); swtle.printStackTrace(); } } public static void disableSecureStorage () { log.debug("Disabling the Secure Storage Dialog"); WorkbenchPreferenceDialog preferenceDialog = new WorkbenchPreferenceDialog(); StoragePreferencePage storagePage = new StoragePreferencePage(); preferenceDialog.open(); preferenceDialog.select(storagePage); for (TableItem item : storagePage.getMasterPasswordProviders()) { item.setChecked(false); } storagePage.apply(); preferenceDialog.ok(); log.debug("Disabled the Secure Storage Dialog"); } } /* class */