+++ /dev/null
-package org.argeo.slc.jemmytest;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.slc.detached.DetachedContext;
-import org.argeo.slc.detached.DetachedStep;
-import org.argeo.slc.detached.DetachedAnswer;
-import org.argeo.slc.detached.DetachedRequest;
-import org.netbeans.jemmy.operators.JButtonOperator;
-import org.netbeans.jemmy.operators.JDialogOperator;
-import org.netbeans.jemmy.operators.JFrameOperator;
-import org.netbeans.jemmy.operators.JLabelOperator;
-
-public class DummyStep implements DetachedStep {
- private final static Log log = LogFactory.getLog(DummyStep.class);
-
- public DetachedAnswer execute(DetachedContext detachedContext,
- DetachedRequest request) {
-
- // Find components
- JFrameOperator jFrameOperator = new JFrameOperator("HelloWorldSwing");
- JButtonOperator jButtonOperator = new JButtonOperator(jFrameOperator,
- "Button");
- JButtonOperator jButtonStartOperator = new JButtonOperator(
- jFrameOperator, "Start");
- String label = request.getProperties().getProperty("jemmyTest.label");
- JLabelOperator jLabelOperator = new JLabelOperator(jFrameOperator,
- label);
-
- // Execute actions
- jButtonOperator.push();
- jButtonStartOperator.push();
-
- // Find some more components
- JDialogOperator jDialogOperator = new JDialogOperator("TestDialog");
- JLabelOperator jLabelOperatorDialog = new JLabelOperator(
- jDialogOperator, "Dialog Open");
- String textLabelDialog = jLabelOperatorDialog.getText();
- jDialogOperator.close();
-
- // Performs checks
- String textAfterPush = jLabelOperator.getText();
- log.info("textAfterPush=" + textAfterPush);
-
- DetachedAnswer answer = new DetachedAnswer(request,
- "DummyStep passed!! textAfterPush=" + textAfterPush);
- answer.getProperties().setProperty("jemmyTest.label", textAfterPush);
- answer.getProperties().setProperty("jemmyTest.labelDialog",
- textLabelDialog);
- return answer;
- }
-
-}
--- /dev/null
+package org.argeo.slc.jemmytest.steps;
+
+import org.argeo.slc.detached.DetachedAnswer;
+import org.argeo.slc.detached.DetachedContext;
+import org.argeo.slc.detached.DetachedRequest;
+import org.argeo.slc.detached.ui.UiStep;
+import org.argeo.slc.jemmytest.uiparts.ComplexPanel;
+
+public class ComplexPanelValues extends UiStep {
+ private ComplexPanel complexPanel;
+
+ protected DetachedAnswer executeUiStep(DetachedContext context,
+ DetachedRequest request) {
+ complexPanel.computeTime();
+ String time = complexPanel.getTime();
+
+ DetachedAnswer answer = new DetachedAnswer(request,
+ "ComplexPanelValues executed");
+ answer.getProperties().setProperty("jemmyTest.complexPanel.time", time);
+ return answer;
+ }
+
+ public void setComplexPanel(ComplexPanel complexPanel) {
+ this.complexPanel = complexPanel;
+ }
+
+}
import org.argeo.slc.jemmytest.uiparts.MainFrame;
public class MainFrameLabel extends UiStep {
+ private MainFrame mainFrame;
protected DetachedAnswer executeUiStep(DetachedContext context,
DetachedRequest request) {
- MainFrame mainFrame = (MainFrame) getUiPart();
+ mainFrame.init(context, request);
+
mainFrame.changeLabel();
String textAfterPush = mainFrame.getLabelText();
return answer;
}
+ public void setMainFrame(MainFrame mainFrame) {
+ this.mainFrame = mainFrame;
+ }
+
}
--- /dev/null
+package org.argeo.slc.jemmytest.steps;
+
+import org.argeo.slc.detached.DetachedAnswer;
+import org.argeo.slc.detached.DetachedContext;
+import org.argeo.slc.detached.DetachedRequest;
+import org.argeo.slc.detached.ui.UiStep;
+import org.argeo.slc.jemmytest.uiparts.TestDialog;
+
+public class TestDialogLabel extends UiStep {
+ private TestDialog testDialog;
+
+ protected DetachedAnswer executeUiStep(DetachedContext context,
+ DetachedRequest request) {
+ String labelText = testDialog.getLabelText();
+ testDialog.close();
+
+ DetachedAnswer answer = new DetachedAnswer(request,
+ "TestDialogLabel executed");
+ answer.getProperties().setProperty("jemmyTest.labelDialog", labelText);
+ return answer;
+ }
+
+ public void setTestDialog(TestDialog testDialog) {
+ this.testDialog = testDialog;
+ }
+
+}
--- /dev/null
+package org.argeo.slc.jemmytest.steps;
+
+import org.argeo.slc.detached.DetachedAnswer;
+import org.argeo.slc.detached.DetachedContext;
+import org.argeo.slc.detached.DetachedRequest;
+import org.argeo.slc.detached.ui.UiStep;
+import org.argeo.slc.jemmytest.uiparts.MainFrame;
+import org.argeo.slc.jemmytest.uiparts.TestDialog;
+
+public class TestDialogOpen extends UiStep {
+ private MainFrame mainFrame;
+ private TestDialog testDialog;
+
+ protected DetachedAnswer executeUiStep(DetachedContext context,
+ DetachedRequest request) {
+
+ mainFrame.openDialog();
+ testDialog.init(context, request);
+
+ DetachedAnswer answer = new DetachedAnswer(request,
+ "TestDialogOpen executed");
+ return answer;
+ }
+
+ public void setTestDialog(TestDialog testDialog) {
+ this.testDialog = testDialog;
+ }
+
+ public void setMainFrame(MainFrame mainFrame) {
+ this.mainFrame = mainFrame;
+ }
+
+}
--- /dev/null
+package org.argeo.slc.jemmytest.uiparts;
+
+import java.awt.Component;
+import java.awt.Container;
+
+import javax.swing.JTextField;
+
+import org.argeo.slc.detached.DetachedContext;
+import org.argeo.slc.detached.DetachedRequest;
+import org.argeo.slc.detached.ui.UiPart;
+import org.netbeans.jemmy.ComponentChooser;
+import org.netbeans.jemmy.operators.ContainerOperator;
+import org.netbeans.jemmy.operators.JButtonOperator;
+import org.netbeans.jemmy.operators.JTextFieldOperator;
+
+public class ComplexPanel extends UiPart {
+ private JButtonOperator buttonTime = null;
+ private JTextFieldOperator textTime = null;
+
+ protected void initUi(DetachedContext context, DetachedRequest request) {
+ ContainerOperator complexPanel = new ContainerOperator(
+ (Container) context.getDynamicRef(MainFrame.PROP_CONTENT_PANE));
+ buttonTime = new JButtonOperator(complexPanel, "Now!");
+ textTime = new JTextFieldOperator(complexPanel, new ComponentChooser() {
+
+ public boolean checkComponent(Component comp) {
+ if (comp instanceof JTextField) {
+ try {
+ Long.parseLong(((JTextField) comp).getText());
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ } else
+ return false;
+ }
+
+ public String getDescription() {
+ return "Find based on text format: has to be a long";
+ }
+ });
+ }
+
+ public void computeTime() {
+ buttonTime.push();
+ }
+
+ public String getTime() {
+ return textTime.getText();
+ }
+}
package org.argeo.slc.jemmytest.uiparts;
+import java.awt.Container;
+
import org.argeo.slc.detached.DetachedContext;
import org.argeo.slc.detached.DetachedRequest;
import org.argeo.slc.detached.ui.UiPart;
+import org.netbeans.jemmy.operators.ContainerOperator;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JLabelOperator;
-public class MainFrame implements UiPart {
+public class MainFrame extends UiPart {
private JFrameOperator frame = null;
private JButtonOperator button = null;
private JButtonOperator buttonStart = null;
private JLabelOperator label = null;
- public void init(DetachedContext context, DetachedRequest request) {
+ private ComplexPanel complexPanel;
+ public final static String PROP_CONTENT_PANE = "jemmytest.ui.contentPane";
+
+ protected void initUi(DetachedContext context, DetachedRequest request) {
frame = new JFrameOperator("HelloWorldSwing");
button = new JButtonOperator(frame, "Button");
buttonStart = new JButtonOperator(frame, "Start");
String labelStr = request.getProperties()
.getProperty("jemmyTest.label");
label = new JLabelOperator(frame, labelStr);
+
+ context.setDynamicRef(MainFrame.PROP_CONTENT_PANE, frame
+ .getContentPane());
+ complexPanel.init(context, request);
}
public void changeLabel() {
public String getLabelText() {
return label.getText();
}
+
+ public void setComplexPanel(ComplexPanel complexPanel) {
+ this.complexPanel = complexPanel;
+ }
+
}
import org.netbeans.jemmy.operators.JDialogOperator;
import org.netbeans.jemmy.operators.JLabelOperator;
-public class TestDialog implements UiPart {
+public class TestDialog extends UiPart {
private JDialogOperator dialog = null;
private JLabelOperator label = null;
- public void init(DetachedContext context, DetachedRequest request) {
+ protected void initUi(DetachedContext context, DetachedRequest request) {
dialog = new JDialogOperator("TestDialog");
label = new JLabelOperator(dialog, "Dialog Open");
}
public void close() {
dialog.close();
}
+
}
Manifest-Version: 1.0\r
-Export-Package: org.argeo.slc.jemmytest;uses:="org.argeo.slc.detached.\r
- ui,org.apache.commons.logging,org.netbeans.jemmy.operators,org.argeo.\r
- slc.detached"\r
+Export-Package: org.argeo.slc.jemmytest.uiparts;uses:="org.argeo.slc.d\r
+ etached.ui,javax.swing,org.netbeans.jemmy,org.netbeans.jemmy.operator\r
+ s,org.argeo.slc.detached",org.argeo.slc.jemmytest;uses:="org.apache.c\r
+ ommons.logging,org.netbeans.jemmy.operators,org.argeo.slc.detached",o\r
+ rg.argeo.slc.jemmytest.steps;uses:="org.argeo.slc.jemmytest.uiparts,o\r
+ rg.argeo.slc.detached.ui,org.argeo.slc.detached"\r
Built-By: mbaudier\r
Tool: Bnd-0.0.255\r
Bundle-Name: SLC Sandbox JemmyTest\r
Bundle-Vendor: Argeo\r
Build-Jdk: 1.6.0\r
Bundle-Version: 0.11.1.SNAPSHOT\r
-Bnd-LastModified: 1223213686474\r
+Bnd-LastModified: 1223229086154\r
Bundle-Activator: org.argeo.slc.jemmytest.JemmyTestActivator\r
Bundle-ManifestVersion: 2\r
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt\r
Bundle-Description: SLC Distribution\r
-Import-Package: org.apache.commons.logging,org.argeo.slc.detached,org.\r
- argeo.slc.detached.ui,org.argeo.slc.jemmytest,org.netbeans.jemmy.oper\r
- ators,org.springframework.beans.factory.xml;version="2.0.8"\r
+Import-Package: javax.swing,org.apache.commons.logging,org.argeo.slc.d\r
+ etached,org.argeo.slc.detached.ui,org.argeo.slc.jemmytest,org.argeo.s\r
+ lc.jemmytest.steps,org.argeo.slc.jemmytest.uiparts,org.netbeans.jemmy\r
+ ,org.netbeans.jemmy.operators,org.springframework.beans.factory.xml;v\r
+ ersion="2.0.8"\r
Bundle-SymbolicName: org.argeo.slc.sandbox.jemmytest\r
Bundle-DocURL: http://www.argeo.org\r
Originally-Created-By: Apache Maven Bundle Plugin\r
<import resource="classpath:/org/argeo/slc/detached/spring.xml" />
- <bean id="step.mainFrameLabel"
+ <!-- UI Parts -->
+ <bean id="uipart.MainFrame"
+ class="org.argeo.slc.jemmytest.uiparts.MainFrame">
+ <property name="complexPanel" ref="uipart.ComplexPanel" />
+ </bean>
+
+ <bean id="uipart.TestDialog"
+ class="org.argeo.slc.jemmytest.uiparts.TestDialog">
+ </bean>
+
+ <bean id="uipart.ComplexPanel"
+ class="org.argeo.slc.jemmytest.uiparts.ComplexPanel">
+ </bean>
+
+ <!-- Steps -->
+ <bean id="step.MainFrameLabel"
class="org.argeo.slc.jemmytest.steps.MainFrameLabel">
- <property name="uiPart" ref="uipart.mainFrame" />
+ <property name="mainFrame" ref="uipart.MainFrame" />
</bean>
- <bean id="uipart.mainFrame"
- class="org.argeo.slc.jemmytest.uiparts.MainFrame">
+ <bean id="step.TestDialogOpen"
+ class="org.argeo.slc.jemmytest.steps.TestDialogOpen">
+ <property name="mainFrame" ref="uipart.MainFrame" />
+ <property name="testDialog" ref="uipart.TestDialog" />
+ </bean>
+
+ <bean id="step.TestDialogLabel"
+ class="org.argeo.slc.jemmytest.steps.TestDialogLabel">
+ <property name="testDialog" ref="uipart.TestDialog" />
+ </bean>
+
+ <bean id="step.ComplexPanelValues"
+ class="org.argeo.slc.jemmytest.steps.ComplexPanelValues">
+ <property name="complexPanel" ref="uipart.ComplexPanel" />
</bean>
+ <!-- Runtime -->
<bean id="slcDetached.driver"
class="org.argeo.slc.detached.drivers.FileDriver">
<property name="baseDir" value="file:${slc.workDir}/detached" />
<import resource="classpath:/META-INF/spring/slc-detached.xml" />
<bean id="detachedTestDef"
- class="org.argeo.slc.lib.detached.DetachedTestDefinition">
+ parent="slcTemplate.detached.testDefinition"
+ scope="prototype">
<property name="client" ref="slcDetached.driver" />
- <property name="step" ref="step.mainFrameLabel" />
</bean>
<bean id="slcDetached.driver"
ref="slcDefault.detached.xmlConverterCastor" />
</bean>
- <bean id="detachedTestData1"
+ <bean id="testData.mainFrameLabel1"
class="org.argeo.slc.lib.detached.DetachedTestData"
scope="prototype">
<property name="values">
</property>
</bean>
- <bean id="detachedTestData2"
+ <bean id="testData.mainFrameLabel2"
class="org.argeo.slc.lib.detached.DetachedTestData"
scope="prototype">
<property name="values">
</map>
</property>
</bean>
+
+ <bean id="testData.testDialogLabel"
+ class="org.argeo.slc.lib.detached.DetachedTestData"
+ scope="prototype">
+ <property name="expectedValues">
+ <map>
+ <entry key="jemmyTest.labelDialog" value="Dialog open" />
+ </map>
+ </property>
+ </bean>
</beans>
\ No newline at end of file
</properties>
</slc.detached>
+ <!-- Main frame label -->
<slc.test>
- <testDefinition bean="detachedTestDef" />
- <testData bean="detachedTestData1" />
+ <testDefinition bean="detachedTestDef">
+ <override name="step" bean="step.MainFrameLabel" />
+ </testDefinition>
+ <testData bean="testData.mainFrameLabel1" />
</slc.test>
<slc.test>
- <testDefinition bean="detachedTestDef" />
- <testData bean="detachedTestData2" />
+ <testDefinition bean="detachedTestDef">
+ <override name="step" bean="step.MainFrameLabel" />
+ </testDefinition>
+ <testData bean="testData.mainFrameLabel2" />
+ </slc.test>
+
+ <!-- Test dialog -->
+ <slc.test>
+ <testDefinition bean="detachedTestDef">
+ <override name="step" bean="step.TestDialogOpen" />
+ </testDefinition>
+ </slc.test>
+
+ <slc.test>
+ <testDefinition bean="detachedTestDef">
+ <override name="step" bean="step.TestDialogLabel" />
+ </testDefinition>
+ <testData bean="testData.testDialogLabel" />
+ </slc.test>
+
+ <!-- Complex Panel -->
+ <slc.test>
+ <testDefinition bean="detachedTestDef">
+ <override name="step" bean="step.ComplexPanelValues" />
+ </testDefinition>
</slc.test>
<slc.detached action="slcDefault.detached.admin.closeSession" />