Author: jlukas(a)redhat.com
Date: 2010-09-29 05:05:49 -0400 (Wed, 29 Sep 2010)
New Revision: 25288
Added:
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/CdiATWizardTest.launch
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizard.java
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizardType.java
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/Wizard.java
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/wizard/CdiATWizardTest.java
Log:
adding bot tests for Interceptor and Decorator wizards
Added: trunk/cdi/tests/org.jboss.tools.cdi.bot.test/CdiATWizardTest.launch
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.bot.test/CdiATWizardTest.launch
(rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.bot.test/CdiATWizardTest.launch 2010-09-29
09:05:49 UTC (rev 25288)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
+<launchConfiguration
type="org.eclipse.swtbot.eclipse.ui.launcher.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation"
value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location"
value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry
value="/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/wizard/CdiATWizardTest.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<mapAttribute key="org.eclipse.debug.core.environmentVariables">
+<mapEntry key="DISPLAY" value=":1"/>
+</mapAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER"
value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR"
value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME"
value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND"
value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JAVA_COMMAND"
value="java"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER"
value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="org.jboss.tools.cdi.bot.test.wizard.CdiATWizardTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}
-consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="org.jboss.tools.cdi.bot.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER"
value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=256m
-Djava.library.path=/space/java/sdk/jdk1.6.0_20/jre/lib/i386/client:/space/java/sdk/jdk1.6.0_20/jre/lib/i386:/usr/lib/xulrunner-addons:/usr/lib/xulrunner-addons:/usr/java/packages/lib/i386:/lib:/usr/lib:/usr/lib/jni
-Xms512m -Xmx1024m -Dswtbot.test.properties.file=/home/lukas/swtbot.properties
-Dusage_reporting_enabled=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product"
value="org.eclipse.epp.package.jee.product"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig"
value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizard.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizard.java 2010-09-29
04:32:38 UTC (rev 25287)
+++
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizard.java 2010-09-29
09:05:49 UTC (rev 25288)
@@ -12,11 +12,18 @@
import java.util.Arrays;
import java.util.List;
+import java.util.logging.Logger;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
+import org.eclipse.swtbot.swt.finder.results.BoolResult;
+import org.eclipse.swtbot.swt.finder.results.VoidResult;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotCombo;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotRadio;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
public class CDIWizard extends Wizard {
@@ -171,6 +178,7 @@
switch (type) {
case INTERCEPTOR_BINDING:
case STEREOTYPE:
+ case INTERCEPTOR:
bot().button("Add", 0).click();
SWTBotShell sh = bot().activeShell();
sh.bot().text().setText(ib);
@@ -204,7 +212,106 @@
return Arrays.asList(bot().listWithLabel("Stereotypes:").getItems());
}
+ public CDIWizard setPublic(boolean isPublic) {
+ switch (type) {
+ case DECORATOR:
+ if (isPublic) {
+ bot().radio("public").click();
+ } else {
+ class Radio2 extends SWTBotRadio {
+ Radio2(Button b) {
+ super(b);
+ }
+
+ @Override
+ public SWTBotRadio click() {
+ return (SWTBotRadio) click(true);
+ }
+ }
+ final Button b = bot().radio("default").widget;
+ new Radio2(b).click();
+ }
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ return this;
+ }
+ public CDIWizard setFieldName(String name) {
+ switch (type) {
+ case DECORATOR:
+ setText("Delegate Field Name:", name);
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ return this;
+ }
+
+ public CDIWizard addInterface(String intf) {
+ switch (type) {
+ case DECORATOR:
+ bot().button("Add...", 0).click();
+ SWTBotShell sh = bot().activeShell();
+ sh.bot().text().setText(intf);
+ sh.bot().table().getTableItem(0).select();
+ sh.bot().button("OK").click();
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ return this;
+ }
+
+ public CDIWizard setAbstract(boolean isAbstract) {
+ switch (type) {
+ case DECORATOR:
+ setCheckbox("abstract", isAbstract);
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ return this;
+ }
+
+ public CDIWizard setFinal(boolean isFinal) {
+ switch (type) {
+ case DECORATOR:
+ setCheckbox("final", isFinal);
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ return this;
+ }
+
+ public CDIWizard setSuperclass(String name) {
+ switch (type) {
+ case INTERCEPTOR:
+ bot().button("Browse...", 2).click();
+ SWTBotShell sh = bot().activeShell();
+ sh.bot().text().setText(name);
+ sh.bot().table().getTableItem(0).select();
+ sh.bot().button("OK").click();
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ return this;
+ }
+
+ public CDIWizard setMethodName(String name) {
+ switch (type) {
+ case INTERCEPTOR:
+ setText("Around Invoke Method Name:", name);
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ return this;
+ }
+
private void setCheckbox(String label, boolean set) {
SWTBotCheckBox c = bot().checkBox(label);
if (c.isChecked() != set) {
@@ -225,4 +332,5 @@
SWTBotCombo c = bot().comboBoxWithLabel(label);
c.setSelection(value);
}
+
}
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizardType.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizardType.java 2010-09-29
04:32:38 UTC (rev 25287)
+++
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/CDIWizardType.java 2010-09-29
09:05:49 UTC (rev 25288)
@@ -11,7 +11,7 @@
package org.jboss.tools.cdi.bot.test.uiutils.wizards;
public enum CDIWizardType {
- INTERCEPTOR_BINDING, QUALIFIER, SCOPE, STEREOTYPE;
+ INTERCEPTOR_BINDING, QUALIFIER, SCOPE, STEREOTYPE, DECORATOR, INTERCEPTOR;
String getName() {
switch (this) {
@@ -23,12 +23,20 @@
return "Scope";
case STEREOTYPE:
return "Stereotype";
+ case DECORATOR:
+ return "Decorator";
+ case INTERCEPTOR:
+ return "Interceptor";
default:
throw new AssertionError("Unknown type");
}
}
public String getAnnotationType() {
- return getName() + " Annotation Type";
+ return isAnnotation() ? getName() + " Annotation Type" : getName() + "
Type";
}
+
+ private boolean isAnnotation() {
+ return this.ordinal() < DECORATOR.ordinal();
+ }
}
\ No newline at end of file
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/Wizard.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/Wizard.java 2010-09-29
04:32:38 UTC (rev 25287)
+++
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/uiutils/wizards/Wizard.java 2010-09-29
09:05:49 UTC (rev 25288)
@@ -62,6 +62,7 @@
protected void setText(String label, String text) {
SWTBotText t = bot().textWithLabel(label);
+ t.setFocus();
t.setText(text);
}
}
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/wizard/CdiATWizardTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/wizard/CdiATWizardTest.java 2010-09-29
04:32:38 UTC (rev 25287)
+++
trunk/cdi/tests/org.jboss.tools.cdi.bot.test/src/org/jboss/tools/cdi/bot/test/wizard/CdiATWizardTest.java 2010-09-29
09:05:49 UTC (rev 25288)
@@ -255,6 +255,74 @@
assertFalse(code.startsWith("/**"));
}
+ @Test
+ public void testDecorator() {
+ CDIWizard w = decorator("cdi", "",
"java.lang.Comparable", null, true, true, false, false);
+ w.finish();
+ util.waitForNonIgnoredJobs();
+ SWTBotEditor ed = new SWTWorkbenchBot().activeEditor();
+ assertTrue(("ComparableDecorator.java").equals(ed.getTitle()));
+ String code = ed.toTextEditor().getText();
+ L.fine(code);
+ assertTrue(code.contains("@Decorator"));
+ assertTrue(code.contains("abstract class"));
+ assertTrue(code.contains("@Delegate"));
+ assertTrue(code.contains("@Inject"));
+ assertTrue(code.contains("@Any"));
+ assertTrue(code.contains("private Comparable<T> comparable;"));
+ assertFalse(code.contains("final"));
+ assertFalse(code.startsWith("/**"));
+
+ w = decorator("cdi", "", "java.util.Map",
"field", false, false, true, true);
+ w.finish();
+ util.waitForNonIgnoredJobs();
+ ed = new SWTWorkbenchBot().activeEditor();
+ assertTrue(("MapDecorator.java").equals(ed.getTitle()));
+ code = ed.toTextEditor().getText();
+ L.fine(code);
+ assertTrue(code.contains("@Decorator"));
+ assertFalse(code.contains("abstract"));
+ assertTrue(code.contains("@Delegate"));
+ assertTrue(code.contains("@Inject"));
+ assertTrue(code.contains("@Any"));
+ assertTrue(code.contains("private Map<K, V> field;"));
+ assertTrue(code.contains("final class"));
+ assertFalse(code.contains("public final"));
+ assertTrue(code.startsWith("/**"));
+ }
+
+ @Test
+ public void testInterceptor() {
+ CDIWizard w = interceptor("cdi", "I1", "B2", null, null,
false);
+ w.finish();
+ util.waitForNonIgnoredJobs();
+ SWTBotEditor ed = new SWTWorkbenchBot().activeEditor();
+ assertTrue(("I1.java").equals(ed.getTitle()));
+ String code = ed.toTextEditor().getText();
+ L.fine(code);
+ assertTrue(code.contains("@B2"));
+ assertTrue(code.contains("@Interceptor"));
+ assertTrue(code.contains("@AroundInvoke"));
+ assertTrue(code.contains("public Object manage(InvocationContext ic) throws
Exception {"));
+ assertFalse(code.contains("final"));
+ assertFalse(code.startsWith("/**"));
+
+ w = interceptor("cdi", "I2", "B4",
"java.util.Date", "sample", true);
+ w.finish();
+ util.waitForNonIgnoredJobs();
+ ed = new SWTWorkbenchBot().activeEditor();
+ assertTrue(("I2.java").equals(ed.getTitle()));
+ code = ed.toTextEditor().getText();
+ L.fine(code);
+ assertTrue(code.contains("@B4"));
+ assertTrue(code.contains("@Interceptor"));
+ assertTrue(code.contains("@AroundInvoke"));
+ assertTrue(code.contains("public Object sample(InvocationContext ic) throws
Exception {"));
+ assertFalse(code.contains("final"));
+ assertTrue(code.startsWith("/**"));
+ assertTrue(code.contains("extends Date"));
+ }
+
private static SWTBotMenu nodeContextMenu(final SWTBotTree tree,
SWTBotTreeItem item, final String... menu) {
assert menu.length > 0;
@@ -303,11 +371,33 @@
return target != null ? w.setTarget(target) : w;
}
+ private CDIWizard decorator(String pkg, String name, String intf, String fieldName,
+ boolean isPublic, boolean isAbstract, boolean isFinal, boolean comments) {
+ CDIWizard w = create(CDIWizardType.DECORATOR, pkg, name, comments);
+ w =
w.addInterface(intf).setPublic(isPublic).setFinal(isFinal).setAbstract(isAbstract);
+ return fieldName != null ? w.setFieldName(fieldName) : w;
+ }
+
+ private CDIWizard interceptor(String pkg, String name, String ibinding,
+ String superclass, String method, boolean comments) {
+ CDIWizard w = create(CDIWizardType.INTERCEPTOR, pkg, name, comments);
+ if (superclass != null) {
+ w = w.setSuperclass(superclass);
+ }
+ if (method != null) {
+ w = w.setMethodName(method);
+ }
+ return w.addIBinding(ibinding);
+ }
+
private CDIWizard create(CDIWizardType type, String pkg, String name,
boolean inherited, boolean comments) {
+ return create(type, pkg, name, comments).setInherited(inherited);
+ }
+
+ private CDIWizard create(CDIWizardType type, String pkg, String name, boolean comments)
{
CDIWizard p = new NewCDIFileWizard(type).run();
- return p.setPackage(pkg).setName(name).setInherited(inherited)
- .setGenerateComments(comments);
+ return p.setPackage(pkg).setName(name).setGenerateComments(comments);
}
}