/******************************************************************************* * Copyright (c) 2011 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.maven.ui.bot.test.conversion; import static org.junit.Assert.assertTrue; import org.jboss.ide.eclipse.as.reddeer.server.requirement.ServerReqType; import org.jboss.ide.eclipse.as.reddeer.server.requirement.ServerRequirement.JBossServer; import org.jboss.reddeer.eclipse.jdt.ui.packageexplorer.PackageExplorer; import org.jboss.reddeer.eclipse.ui.perspectives.JavaPerspective; import org.jboss.reddeer.requirements.cleanworkspace.CleanWorkspaceRequirement.CleanWorkspace; import org.jboss.reddeer.requirements.openperspective.OpenPerspectiveRequirement.OpenPerspective; import org.jboss.reddeer.requirements.server.ServerReqState; import org.jboss.reddeer.swt.api.TreeItem; import org.jboss.reddeer.core.condition.JobIsRunning; import org.jboss.reddeer.core.condition.ShellWithTextIsActive; import org.jboss.reddeer.swt.impl.button.CheckBox; import org.jboss.reddeer.swt.impl.button.PushButton; import org.jboss.reddeer.swt.impl.combo.LabeledCombo; import org.jboss.reddeer.swt.impl.menu.ContextMenu; import org.jboss.reddeer.swt.impl.menu.ShellMenu; import org.jboss.reddeer.swt.impl.shell.DefaultShell; import org.jboss.reddeer.swt.impl.tab.DefaultTabItem; import org.jboss.reddeer.swt.impl.tree.DefaultTree; import org.jboss.reddeer.swt.impl.tree.DefaultTreeItem; import org.jboss.reddeer.workbench.ui.dialogs.WorkbenchPreferenceDialog; import org.jboss.reddeer.common.wait.TimePeriod; import org.jboss.reddeer.common.wait.WaitUntil; import org.jboss.reddeer.common.wait.WaitWhile; import org.jboss.tools.maven.ui.bot.test.AbstractMavenSWTBotTest; import org.junit.Before; import org.junit.Test; /** * @author Rastislav Wagner * */ @OpenPerspective(JavaPerspective.class) @JBossServer(state=ServerReqState.PRESENT, type=ServerReqType.WILDFLY8x) public class MaterializeLibraryTest extends AbstractMavenSWTBotTest{ private String projectName = "example"; @Before public void setup(){ WorkbenchPreferenceDialog wp = new WorkbenchPreferenceDialog(); wp.open(); wp.select("JBoss Tools","Project Examples"); new CheckBox("Show Project Ready wizard").toggle(false); new CheckBox("Show readme/cheatsheet file").toggle(false); new CheckBox("Show Quick Fix dialog").toggle(false); wp.ok(); } @Test public void testMaterializeLibrary() throws Exception{ new ShellMenu("File","New","Example...").select(); new DefaultTreeItem("JBoss Tools","Project Examples").select(); new PushButton("Next >").click(); new DefaultShell("New Project Example"); new DefaultTreeItem("JBoss Maven Archetypes","Spring MVC Project").select(); new PushButton("Next >").click(); new PushButton("Next >").click(); new LabeledCombo("Project name").setText(projectName); new LabeledCombo("Package").setText(projectName); new PushButton("Finish").click(); new WaitWhile(new ShellWithTextIsActive("New Project Example"), TimePeriod.VERY_LONG); new WaitWhile(new JobIsRunning(), TimePeriod.VERY_LONG); PackageExplorer pexplorer = new PackageExplorer(); pexplorer.open(); new DefaultTreeItem(projectName,"Maven Dependencies").select(); new ContextMenu("Copy Classpath Libraries...").select(); new WaitUntil(new ShellWithTextIsActive("Copy Classpath Libraries"),TimePeriod.NORMAL); new PushButton("OK").click(); new PushButton("OK").click(); new WaitWhile(new ShellWithTextIsActive("Materialize Classpath Library"), TimePeriod.NORMAL); new WaitWhile(new JobIsRunning(), TimePeriod.LONG); testExcludedResources(projectName); } private void testExcludedResources(String project) throws Exception{ PackageExplorer pexplorer = new PackageExplorer(); pexplorer.open(); pexplorer.getProject(project).select(); new ContextMenu("Properties").select(); new WaitUntil(new ShellWithTextIsActive("Properties for "+project),TimePeriod.NORMAL); new DefaultTreeItem("Java Build Path").select(); new DefaultTabItem("Source").activate(); for(TreeItem item: new DefaultTree(1).getAllItems()){ if(item.getText().startsWith("Included")){ assertTrue("(All) expected in Included patterns",item.getText().endsWith("(All)")); } else if (item.getText().startsWith("Excluded")){ assertTrue("(None) expected in Excluded patterns",item.getText().endsWith("(None)")); } } new PushButton("OK").click(); new WaitWhile(new ShellWithTextIsActive("Properties for "+project),TimePeriod.NORMAL); deleteProjects(true); } }