Author: psrna
Date: 2011-12-02 04:56:55 -0500 (Fri, 02 Dec 2011)
New Revision: 36870
Added:
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.classpath
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.project
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/META-INF/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/META-INF/MANIFEST.MF
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/build.properties
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/pom.xml
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ForgeViewTest.java
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ProjectTest.java
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeAllTest.java
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeTest.java
Log:
* new eclipse-test-plugin
Added: trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.classpath
===================================================================
--- trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.classpath
(rev 0)
+++ trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.classpath 2011-12-02 09:56:55 UTC
(rev 36870)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.project
===================================================================
--- trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.project
(rev 0)
+++ trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/.project 2011-12-02 09:56:55 UTC
(rev 36870)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.forge.ui.bot.test</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/META-INF/MANIFEST.MF
(rev 0)
+++ trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/META-INF/MANIFEST.MF 2011-12-02
09:56:55 UTC (rev 36870)
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.jboss.tools.forge.ui.bot.test
+Bundle-SymbolicName: org.jboss.tools.forge.ui.bot.test;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: JBoss by Red Hat
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.swtbot.go,
+ org.jboss.tools.ui.bot.ext;bundle-version="3.2.0",
+ org.jboss.tools.forge.ui;bundle-version="1.0.0",
+ org.jboss.tools.forge.core;bundle-version="1.0.0",
+ org.jboss.tools.forge.runtime;bundle-version="1.0.0",
+ org.jboss.tools.forge.runtime.ext;bundle-version="1.0.0",
+ org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.console,
+ org.eclipse.jface.text,
+ org.eclipse.debug.ui,
+ org.eclipse.jdt.launching,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.ide,
+ org.eclipse.m2e.core;bundle-version="[1.0,2.0)",
+ org.eclipse.m2e.maven.runtime;bundle-version="[1.0,2.0)",
+ org.eclipse.jdt.core,
+ org.eclipse.ui.views,
+ org.eclipse.core.filesystem;bundle-version="1.3.100",
+ org.eclipse.ui.navigator;bundle-version="3.5.100"
Added: trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/build.properties
===================================================================
--- trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/build.properties
(rev 0)
+++ trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/build.properties 2011-12-02
09:56:55 UTC (rev 36870)
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
Added: trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/pom.xml
===================================================================
--- trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/pom.xml
(rev 0)
+++ trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/pom.xml 2011-12-02 09:56:55 UTC
(rev 36870)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools.forge</groupId>
+ <artifactId>tests</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.forge.tests</groupId>
+ <artifactId>org.jboss.tools.forge.ui.bot.test</artifactId>
+
+ <packaging>eclipse-test-plugin</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-surefire-plugin</artifactId>
+ <configuration>
+ <useUIThread>false</useUIThread>
+ <testSuite>org.jboss.tools.forge.ui.bot.test</testSuite>
+ <testClass>org.jboss.tools.forge.ui.bot.test.suite.ForgeAllTest</testClass>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added:
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ForgeViewTest.java
===================================================================
---
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ForgeViewTest.java
(rev 0)
+++
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ForgeViewTest.java 2011-12-02
09:56:55 UTC (rev 36870)
@@ -0,0 +1,61 @@
+package org.jboss.tools.forge.ui.bot.test;
+
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.ui.part.PageBook;
+import org.hamcrest.Matcher;
+import org.jboss.tools.forge.ui.bot.test.suite.ForgeTest;
+import org.jboss.tools.ui.bot.ext.SWTUtilExt;
+import org.junit.Test;
+
+/**
+ *
+ * @author psrna
+ *
+ */
+public class ForgeViewTest extends ForgeTest {
+
+ @Test
+ public void forgeViewPresent () {
+ openForgeView();
+ assertTrue(isForgeViewActive());
+
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+ bot.sleep(TIME_20S);
+
+
+ }
+
+
+ public void forgeStartStop() {
+
+ if(isForgeRunning())
+ stopForge();
+
+ startForge();
+ assertTrue(isForgeRunning());
+ stopForge();
+ assertTrue(!isForgeRunning());
+ }
+
+}
Added:
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ProjectTest.java
===================================================================
---
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ProjectTest.java
(rev 0)
+++
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/ProjectTest.java 2011-12-02
09:56:55 UTC (rev 36870)
@@ -0,0 +1,41 @@
+package org.jboss.tools.forge.ui.bot.test;
+
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.ui.part.PageBook;
+import org.jboss.tools.forge.ui.bot.test.suite.ForgeTest;
+import org.junit.Test;
+
+/**
+ *
+ * @author psrna
+ *
+ */
+public class ProjectTest extends ForgeTest {
+
+ private static final String PROJECT_NAME = "testproject";
+ private static final String PACKAGE_NAME = "org.jboss.testproject";
+
+ @Test
+ public void newProject() {
+
+ openForgeView();
+ startForge();
+ clear();
+
+ getStyledText().setText("new-project\n");
+ getStyledText().setText(PROJECT_NAME + "\n");
+ getStyledText().setText(PACKAGE_NAME + "\n");
+ getStyledText().setText("Y\n");
+
+ bot.sleep(TIME_10S);
+
+ String text = getStyledText().getText();
+ assertTrue(text.contains("***SUCCESS*** Created project [" + PROJECT_NAME +
"]"));
+ assertTrue(pExplorer.existsResource(PROJECT_NAME));
+
+ }
+
+}
Added:
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeAllTest.java
===================================================================
---
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeAllTest.java
(rev 0)
+++
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeAllTest.java 2011-12-02
09:56:55 UTC (rev 36870)
@@ -0,0 +1,22 @@
+package org.jboss.tools.forge.ui.bot.test.suite;
+
+import org.jboss.tools.forge.ui.bot.test.ForgeViewTest;
+import org.jboss.tools.forge.ui.bot.test.ProjectTest;
+import org.jboss.tools.ui.bot.ext.RequirementAwareSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite.SuiteClasses;
+
+
+/**
+ *
+ * @author psrna
+ *
+ */
+@SuiteClasses({
+ ForgeViewTest.class
+ //ProjectTest.class
+})
+(a)RunWith(RequirementAwareSuite.class)
+public class ForgeAllTest {
+
+}
Added:
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeTest.java
===================================================================
---
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeTest.java
(rev 0)
+++
trunk/forge/tests/org.jboss.tools.forge.ui.bot.test/src/org/jboss/tools/forge/ui/bot/test/suite/ForgeTest.java 2011-12-02
09:56:55 UTC (rev 36870)
@@ -0,0 +1,133 @@
+package org.jboss.tools.forge.ui.bot.test.suite;
+
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotStyledText;
+import org.eclipse.ui.part.PageBook;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.view.PackageExplorer;
+
+/**
+ *
+ * @author psrna
+ *
+ */
+public class ForgeTest extends SWTTestExt {
+
+ protected PackageExplorer pExplorer = new PackageExplorer();
+
+ protected SWTBotView openForgeView(){
+ if(isForgeViewActive())
+ return getForgeView();
+
+ bot.menu(IDELabel.Menu.WINDOW)
+ .menu(IDELabel.Menu.SHOW_VIEW)
+ .menu(IDELabel.Menu.OTHER).click();
+
+ SWTBotShell shell = bot.shell("Show View");
+ shell.activate();
+ shell.bot().tree().expandNode("Forge", false).select("Forge
Console");
+
+ open.finish(bot.activeShell().bot(), IDELabel.Button.OK);
+
+ SWTBotView view = getForgeView();
+ return view;
+ }
+
+ protected void clear() {
+ if(!isForgeViewActive())
+ openForgeView();
+ if(!isForgeRunning())
+ return;
+
+ getStyledText().setText("clear\n");
+ bot.sleep(TIME_5S);
+ }
+
+ /*
+ * This is private, use openForgeView method outside this class to get
+ * Forge Console View.
+ */
+ private SWTBotView getForgeView(){
+ SWTBotView view = bot.viewByTitle("Forge Console");
+ view.setFocus();
+ view.show();
+ return view;
+ }
+
+ protected boolean isForgeViewActive(){
+
+ try{
+ SWTBotView view = getForgeView();
+ if(view.isActive()){
+ log.info("Forge Console View is active.");
+ return true;
+ }
+ }catch (Exception e){
+ }
+ log.info("Forge Console View NOT active.");
+ return false;
+ }
+
+ protected boolean isForgeRunning(){
+
+ if(!isForgeViewActive())
+ openForgeView();
+
+ try{
+ SWTBotView view = openForgeView();
+ PageBook pb = view.bot().widget(widgetOfType(PageBook.class));
+ SWTBot pbbot = new SWTBot(pb);
+ pbbot.styledText().setText("clear\n");
+ bot.sleep(TIME_5S);
+
+ log.info("Sending 'about' command to get forge version");
+ pbbot.styledText().setText("about\n");
+ log.info("'about' Command sent");
+ bot.sleep(TIME_5S); //wait for response
+
+ String text = pbbot.styledText(0).getText();
+
+ if(text.contains("Forge")){
+ pbbot.styledText().setText("clear\n");
+ return true;
+ }else{
+ log.info("Response from 'about' command does NOT contain Forge
info");
+ }
+ }catch (Exception e) {
+ }
+ return false;
+ }
+
+ protected void startForge(){
+
+ if(!isForgeViewActive())
+ openForgeView();
+
+ SWTBotView view = getForgeView();
+ view.toolbarButton("Start Forge").click();
+ bot.sleep(TIME_5S);
+ }
+
+ protected void stopForge(){
+
+ if(!isForgeViewActive())
+ openForgeView();
+
+ SWTBotView view = getForgeView();
+ view.toolbarButton("Stop Forge").click();
+ bot.sleep(TIME_1S);
+ }
+
+ protected SWTBotStyledText getStyledText(){
+ SWTBotView view = getForgeView();
+ PageBook pb = view.bot().widget(widgetOfType(PageBook.class));
+ SWTBot pbbot = new SWTBot(pb);
+ return pbbot.styledText();
+ }
+
+}