Author: ljelinko
Date: 2011-11-29 06:38:37 -0500 (Tue, 29 Nov 2011)
New Revision: 36720
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/TaskDuration.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitUntilTask.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitWhileTask.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/NonSystemJobRunsCondition.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/ShellIsActiveCondition.java
Removed:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/progress/
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/AllJobsFinishedWaitingTask.java
Modified:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wizard/WizardFillingTask.java
Log:
changed the way swtbot waits for wizard to complete
Deleted:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/AllJobsFinishedWaitingTask.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/progress/AllJobsFinishedWaitingTask.java 2011-11-28
16:20:04 UTC (rev 36703)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/AllJobsFinishedWaitingTask.java 2011-11-29
11:38:37 UTC (rev 36720)
@@ -1,57 +0,0 @@
-package org.jboss.tools.portlet.ui.bot.task.progress;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.waits.ICondition;
-import org.jboss.tools.portlet.ui.bot.task.AbstractSWTTask;
-
-/**
- * Waits until there is no job running.
- *
- * @author Lucia Jelinkova
- *
- */
-public class AllJobsFinishedWaitingTask extends AbstractSWTTask {
-
- public enum JobDuration {
- SHORT(1 * 1000), NORMAL(10 * 1000), LONG(1 * 60 * 1000), VERY_LONG(10 * 60 * 1000);
-
- private long timeout;
-
- private JobDuration(long timeout) {
- this.timeout = timeout;
- }
-
- public long getTimeout() {
- return timeout;
- }
- }
-
- private JobDuration jobDuration;
-
- public AllJobsFinishedWaitingTask(JobDuration timeout) {
- super();
- this.jobDuration = timeout;
- }
-
- @Override
- public void perform() {
- getBot().waitUntil(new ICondition() {
-
- @Override
- public boolean test() throws Exception {
- return Job.getJobManager().isIdle();
- }
-
- @Override
- public void init(SWTBot bot) {
-
- }
-
- @Override
- public String getFailureMessage() {
- return null;
- }
- }, jobDuration.getTimeout());
- }
-}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/TaskDuration.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/TaskDuration.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/TaskDuration.java 2011-11-29
11:38:37 UTC (rev 36720)
@@ -0,0 +1,15 @@
+package org.jboss.tools.portlet.ui.bot.task.wait;
+
+public enum TaskDuration {
+ SHORT(1 * 1000), NORMAL(10 * 1000), LONG(1 * 60 * 1000), VERY_LONG(10 * 60 * 1000);
+
+ private long timeout;
+
+ private TaskDuration(long timeout) {
+ this.timeout = timeout;
+ }
+
+ public long getTimeout() {
+ return timeout;
+ }
+}
\ No newline at end of file
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitUntilTask.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitUntilTask.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitUntilTask.java 2011-11-29
11:38:37 UTC (rev 36720)
@@ -0,0 +1,27 @@
+package org.jboss.tools.portlet.ui.bot.task.wait;
+
+import org.eclipse.swtbot.swt.finder.waits.ICondition;
+import org.jboss.tools.portlet.ui.bot.task.AbstractSWTTask;
+
+/**
+ * Waits for the specified condition with the specified timeout.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public class WaitUntilTask extends AbstractSWTTask {
+
+ private TaskDuration taskDuration;
+
+ private ICondition condition;
+
+ public WaitUntilTask(ICondition condition, TaskDuration taskDuration) {
+ this.condition = condition;
+ this.taskDuration = taskDuration;
+ }
+
+ @Override
+ public void perform() {
+ getBot().waitUntil(condition, taskDuration.getTimeout());
+ }
+}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitWhileTask.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitWhileTask.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/WaitWhileTask.java 2011-11-29
11:38:37 UTC (rev 36720)
@@ -0,0 +1,27 @@
+package org.jboss.tools.portlet.ui.bot.task.wait;
+
+import org.eclipse.swtbot.swt.finder.waits.ICondition;
+import org.jboss.tools.portlet.ui.bot.task.AbstractSWTTask;
+
+/**
+ * Waits while the specified condition is valid with the specified timeout.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public class WaitWhileTask extends AbstractSWTTask {
+
+ private TaskDuration taskDuration;
+
+ private ICondition condition;
+
+ public WaitWhileTask(ICondition condition, TaskDuration taskDuration) {
+ this.condition = condition;
+ this.taskDuration = taskDuration;
+ }
+
+ @Override
+ public void perform() {
+ getBot().waitWhile(condition, taskDuration.getTimeout());
+ }
+}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/NonSystemJobRunsCondition.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/NonSystemJobRunsCondition.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/NonSystemJobRunsCondition.java 2011-11-29
11:38:37 UTC (rev 36720)
@@ -0,0 +1,46 @@
+package org.jboss.tools.portlet.ui.bot.task.wait.condition;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.waits.ICondition;
+
+/**
+ * Returns true, if there is a non system job running, false
+ * otherwise.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public class NonSystemJobRunsCondition implements ICondition {
+
+ @Override
+ public boolean test() throws Exception {
+ return getJobs().size() != 0;
+ }
+
+ @Override
+ public void init(SWTBot bot) {
+ }
+
+ @Override
+ public String getFailureMessage() {
+ StringBuilder msg = new StringBuilder("Expected no running jobs, found the
following jobs: \n");
+ for (Job job : getJobs()){
+ msg.append(job.getName() + "\n");
+ }
+ return msg.toString();
+ }
+
+ private List<Job> getJobs(){
+ List<Job> jobs = new ArrayList<Job>();
+ for (Job job : Job.getJobManager().find(null)){
+ if (!job.isSystem()){
+ jobs.add(job);
+ }
+ }
+ return jobs;
+ }
+}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/ShellIsActiveCondition.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/ShellIsActiveCondition.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wait/condition/ShellIsActiveCondition.java 2011-11-29
11:38:37 UTC (rev 36720)
@@ -0,0 +1,35 @@
+package org.jboss.tools.portlet.ui.bot.task.wait.condition;
+
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.waits.ICondition;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+
+/**
+ * Returns true while the specified shell is active.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public class ShellIsActiveCondition implements ICondition {
+
+ private SWTBotShell shell;
+
+ public ShellIsActiveCondition(SWTBotShell shell) {
+ super();
+ this.shell = shell;
+ }
+
+ @Override
+ public void init(SWTBot bot) {
+ }
+
+ @Override
+ public boolean test() throws Exception {
+ return shell.isActive();
+ }
+
+ @Override
+ public String getFailureMessage() {
+ return "Expected the shell to become non active: " + shell;
+ }
+}
Modified:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wizard/WizardFillingTask.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wizard/WizardFillingTask.java 2011-11-29
10:30:25 UTC (rev 36719)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/wizard/WizardFillingTask.java 2011-11-29
11:38:37 UTC (rev 36720)
@@ -3,8 +3,12 @@
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.jboss.tools.portlet.ui.bot.task.CompositeSWTTask;
-import org.jboss.tools.portlet.ui.bot.task.progress.AllJobsFinishedWaitingTask;
+import org.jboss.tools.portlet.ui.bot.task.wait.TaskDuration;
+import org.jboss.tools.portlet.ui.bot.task.wait.WaitWhileTask;
+import org.jboss.tools.portlet.ui.bot.task.wait.condition.NonSystemJobRunsCondition;
+import org.jboss.tools.portlet.ui.bot.task.wait.condition.ShellIsActiveCondition;
/**
*
@@ -17,37 +21,50 @@
public class WizardFillingTask extends CompositeSWTTask<WizardPageFillingTask>{
private List<WizardPageFillingTask> wizardPages;
-
+
public WizardFillingTask() {
super();
wizardPages = new ArrayList<WizardPageFillingTask>();
}
-
+
@Override
public void perform() {
+ SWTBotShell activeShell = getActiveShell();
+
super.setTasks(wizardPages);
super.perform();
+
getBot().button("Finish").click();
-
- performInnerTask(new
AllJobsFinishedWaitingTask(AllJobsFinishedWaitingTask.JobDuration.LONG));
+ performInnerTask(new WaitWhileTask(new ShellIsActiveCondition(activeShell),
TaskDuration.LONG));
+ performInnerTask(new WaitWhileTask(new NonSystemJobRunsCondition(),
TaskDuration.LONG));
}
-
+
public void addWizardPage(WizardPageFillingTask task){
wizardPages.add(task);
}
-
+
public void addAllWizardPages(List<WizardPageFillingTask> tasks){
wizardPages.addAll(tasks);
}
-
+
@Override
protected void beforeTask(WizardPageFillingTask task) {
if (!isFirst(task)){
getBot().button("Next >").click();
}
}
-
+
private boolean isFirst(WizardPageFillingTask task){
return getTasks().indexOf(task) == 0;
}
+
+ private SWTBotShell getActiveShell(){
+ for (SWTBotShell shell : getBot().shells()){
+ if (shell.isActive()){
+ return shell;
+ }
+ }
+
+ throw new IllegalStateException("No active shell found");
+ }
}
Show replies by date