Skip to content
Snippets Groups Projects
Commit b9f03594 authored by anttil's avatar anttil
Browse files

SWE-2 / SP-263: Build simplified. Browser refresh wait is now based on paging toolbar values.

SVN: 26778
parent be087d38
No related branches found
No related tags found
No related merge requests found
Showing
with 65 additions and 45 deletions
......@@ -19,19 +19,10 @@
<target name="run-tests-ui" depends="compile-tests">
<delete dir="${output.test}" />
<antcall target="_run-testng-ui">
<param name="test.suite" value="${test.suite}" />
<param name="failure.property" value="tests.failed" />
</antcall>
<junitreport todir="${output.test}">
<fileset dir="${output.test}">
<include name="*/*.xml" />
</fileset>
<report format="noframes" todir="${output.test}" />
</junitreport>
<fail if="tests.failed" message="At least one test failed." />
</target>
<target name="_run-testng-ui">
......@@ -44,11 +35,13 @@
workingDir="."
outputdir="${output.test}"
failureproperty="${failure.property}">
<xmlfileset dir="${sources.test}" includes="${test.suite}" />
<xmlfileset dir="source/java" includes="${test.suite}" />
<jvmarg value="-Xmx1024M" />
<jvmarg value="-XX:MaxPermSize=512m" />
<jvmarg value="-Dui-test.url=${internal-url}" />
</testng>
<fail if="${failure.property}" />
</target>
......
......@@ -151,6 +151,7 @@ public class ApplicationRunner
{
browser.delete();
}
browser.resetFilters();
}
public void delete(Vocabulary vocabulary)
......
......@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.uitest.infra.webdriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.support.ui.FluentWait;
import com.google.common.base.Predicate;
......@@ -30,14 +31,12 @@ import ch.systemsx.cisd.openbis.uitest.widget.Refreshable;
public class WaitForRefreshOf<T> extends FluentWait<Refreshable>
{
private final String state;
private Action<T> action;
public WaitForRefreshOf(Refreshable widget)
{
super(widget);
this.state = widget.getState();
widget.prepareWait();
}
@SuppressWarnings("hiding")
......@@ -52,16 +51,24 @@ public class WaitForRefreshOf<T> extends FluentWait<Refreshable>
T result = action.execute();
if (action.shouldWait(result))
{
withTimeout(seconds, TimeUnit.SECONDS)
.pollingEvery(100, TimeUnit.MILLISECONDS)
.until(new Predicate<Refreshable>()
{
@Override
public boolean apply(Refreshable widget)
try
{
withTimeout(seconds, TimeUnit.SECONDS)
.pollingEvery(100, TimeUnit.MILLISECONDS)
.until(new Predicate<Refreshable>()
{
return !state.equals(widget.getState());
}
});
@Override
public boolean apply(Refreshable widget)
{
return widget.hasRefreshed();
}
});
} catch (TimeoutException e)
{
System.out.println("TIMEOUT");
throw e;
}
}
return result;
}
......
......@@ -25,6 +25,7 @@ import ch.systemsx.cisd.openbis.uitest.type.Project;
import ch.systemsx.cisd.openbis.uitest.widget.Button;
import ch.systemsx.cisd.openbis.uitest.widget.DeletionConfirmationBox;
import ch.systemsx.cisd.openbis.uitest.widget.Grid;
import ch.systemsx.cisd.openbis.uitest.widget.PagingToolBar;
import ch.systemsx.cisd.openbis.uitest.widget.TreeGrid;
public class ExperimentBrowser implements Browser<Experiment>
......@@ -32,6 +33,7 @@ public class ExperimentBrowser implements Browser<Experiment>
@Locate("openbis_select-project")
private TreeGrid projectTree;
@SuppressWarnings("unused")
@Locate("openbis_experiment-browser-grid-grid")
private Grid grid;
......@@ -42,9 +44,13 @@ public class ExperimentBrowser implements Browser<Experiment>
@Locate("deletion-confirmation-dialog")
private DeletionConfirmationBox deletionDialog;
@Lazy
@Locate("openbis_experiment-browser-grid-grid-paging-toolbar")
private PagingToolBar paging;
public boolean selectProject(final Project project)
{
return new WaitForRefreshOf<Boolean>(grid).after(new Action<Boolean>()
return new WaitForRefreshOf<Boolean>(paging).after(new Action<Boolean>()
{
@Override
public Boolean execute()
......@@ -57,7 +63,7 @@ public class ExperimentBrowser implements Browser<Experiment>
{
return result;
}
}).withTimeoutOf(10);
}).withTimeoutOf(20);
}
public void deleteAll()
......
......@@ -79,7 +79,7 @@ public class ExperimentTypeBrowser implements Browser<ExperimentType>
public void filter(final ExperimentType type)
{
paging.filters();
filters.setCode(type.getCode(), grid);
filters.setCode(type.getCode(), paging);
}
@Override
......
......@@ -67,7 +67,7 @@ public class ProjectBrowser implements Browser<Project>
public void filter(Project project)
{
paging.filters();
filters.setCode(project.getCode(), grid);
filters.setCode(project.getCode(), paging);
}
@Override
......
......@@ -60,7 +60,7 @@ public class PropertyTypeAssignmentBrowser implements Browser<PropertyTypeAssign
public void filter(PropertyTypeAssignment assignment)
{
paging.filters();
filters.setCode(assignment.getPropertyType().getCode(), grid);
filters.setCode(assignment.getPropertyType().getCode(), paging);
}
@Override
......
......@@ -71,7 +71,7 @@ public class PropertyTypeBrowser implements Browser<PropertyType>
public void filter(PropertyType propertyType)
{
paging.filters();
filters.setCode(propertyType.getCode(), grid);
filters.setCode(propertyType.getCode(), paging);
}
@Override
......
......@@ -86,7 +86,7 @@ public class SampleBrowser implements Browser<Sample>
public void filter(Sample sample)
{
paging.filters();
filters.setCode(sample.getCode(), grid);
filters.setCode(sample.getCode(), paging);
}
@Override
......
......@@ -82,7 +82,7 @@ public class SampleTypeBrowser implements Browser<SampleType>
public void filter(SampleType type)
{
paging.filters();
filters.setCode(type.getCode(), grid);
filters.setCode(type.getCode(), paging);
}
@Override
......
......@@ -75,7 +75,7 @@ public class SpaceBrowser implements Browser<Space>
public void filter(final Space space)
{
paging.filters();
filters.setCode(space.getCode(), grid);
filters.setCode(space.getCode(), paging);
}
@Override
......
......@@ -74,7 +74,7 @@ public class VocabularyBrowser implements Browser<Vocabulary>
public void filter(Vocabulary vocabulary)
{
paging.filters();
filters.setCode(vocabulary.getCode(), grid);
filters.setCode(vocabulary.getCode(), paging);
}
@Override
......
......@@ -103,7 +103,7 @@ public abstract class SeleniumTest
{
uid = new DictionaryUidGenerator(new File("resource/corncob_lowercase.txt"));
// System.setProperty("webdriver.firefox.profile", "default");
System.setProperty("webdriver.firefox.profile", "default");
driver = new FirefoxDriver();
setImplicitWaitToDefault();
......
......@@ -28,11 +28,11 @@ public class FilterToolBar implements Widget
private WidgetContext context;
public void setCode(final String text, Grid refreshingGrid)
public void setCode(final String text, Refreshable refresher)
{
final Text t = context.find(".//input[contains(@id, 'Code-input')]", Text.class);
new WaitForRefreshOf<Void>(refreshingGrid)
new WaitForRefreshOf<Void>(refresher)
.after(new DeterminateAction<Void>()
{
@Override
......@@ -41,7 +41,7 @@ public class FilterToolBar implements Widget
t.write(text);
return null;
}
}).withTimeoutOf(10);
}).withTimeoutOf(20);
}
......
......@@ -32,7 +32,7 @@ import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
/**
* @author anttil
*/
public class Grid implements Widget, Refreshable
public class Grid implements Widget
{
private WidgetContext context;
......@@ -133,12 +133,6 @@ public class Grid implements Widget, Refreshable
return s;
}
@Override
public synchronized String getState()
{
return "" + this.getCells().size() + "/" + this.getColumns().size();
}
@Override
public void setContext(WidgetContext context)
{
......
......@@ -21,7 +21,7 @@ import ch.systemsx.cisd.openbis.uitest.infra.webdriver.WidgetContext;
/**
* @author anttil
*/
public class PagingToolBar implements Widget
public class PagingToolBar implements Widget, Refreshable
{
private WidgetContext context;
......@@ -40,4 +40,21 @@ public class PagingToolBar implements Widget
{
this.context = context;
}
String displayText;
@Override
public void prepareWait()
{
displayText = context.find(".//div[contains(@class, 'my-paging-display')]").getText();
}
@Override
public boolean hasRefreshed()
{
String currentText =
context.find(".//div[contains(@class, 'my-paging-display')]").getText();
System.out.println("comparing " + displayText + " with " + currentText);
return (this.displayText.equals(currentText) == false);
}
}
......@@ -21,5 +21,7 @@ package ch.systemsx.cisd.openbis.uitest.widget;
*/
public interface Refreshable
{
public String getState();
public void prepareWait();
public boolean hasRefreshed();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment