public RestoreCompleted waitForRestoreCompleted() { final long restoreStartTime = System.currentTimeMillis(); final DelayedBinder<RestoreCompleted> delayed = pageBinder.delayedBind(RestoreCompleted.class); while (!delayed.canBind()) { final long waitingTime = System.currentTimeMillis() - restoreStartTime; if (waitingTime > MAX_TIMEOUT_FOR_RESTORE) { // Don't allow test to take forever if the restore has trashed JIRA throw new AssertionError("The restore is taking too long!"); } } return delayed.bind(); } }
@Override public <P> P bind(Class<P> pageClass, Object... args) { checkNotNull(pageClass); return delayedBind(pageClass, args).bind(); }
<TT extends T> TT openTab(Class<TT> tabClass, Object... args) { final DelayedBinder<TT> tab = pageBinder.delayedBind(tabClass, args); final PageElement link = tabLinkContainer.find(By.id(tab.inject().get().linkId())); stateTrue("Link " + link + " for tab " + tabClass.getName() + " not found", link.isPresent()); link.click(); final TT realTab = tab.bind(); waitUntilTrue(realTab.isOpen()); return realTab; }
@Override public TimedCondition isAt() { return getDeplayed().get().isAt(); }
public boolean isAt(final Class<? extends Page> page) { return pageBinder.delayedBind(page).canBind(); }
private DelayedBinder<AddSubtaskTypeForm> getDeplayed() { if (delayedForm == null) { delayedForm = pageBinder.delayedBind(AddSubtaskTypeForm.class).inject(); } return delayedForm; } }
@Init public void init() { form = getDeplayed().bind(); }
@Override public TimedCondition isAt() { final AddIssueTypeForm typeForm = getDeplayed().get(); return typeForm.isAt(); }
private DelayedBinder<AddIssueTypeForm> getDeplayed() { if (delayedForm == null) { delayedForm = pageBinder.delayedBind(AddIssueTypeForm.class).inject(); } return delayedForm; } }
/** * Faster way of login when in testing environment by embedding the credentials in the url, * so we don't have to visit the login page every single time. */ public <M extends Page> M autoLoginEmbeddingCredentialsInUrl(UserWithDetails user, Class<M> destinationClass, Object... args) { checkNotNull(destinationClass); DelayedBinder<M> binder = pageBinder.delayedBind(destinationClass, args); M p = binder.get(); checkNotNull(p); URI uriBuilder = UriBuilder.fromUri(productInstance.getBaseUrl() + p.getUrl()) .queryParam("os_username", user.getUsername()) .queryParam("os_password", user.getPassword()) .build(); webDriverTester.gotoUrl(uriBuilder.toString()); return binder.bind(); }
@Init public void init() { form = getDeplayed().bind(); }
public <P extends Page> DelayedBinder<P> visitDelayed(final Class<P> pageClass, final Object... args) { final DelayedBinder<P> binder = pageBinder.delayedBind(pageClass, args); webDriverTester.gotoUrl(productInstance.getBaseUrl() + binder.get().getUrl()); return binder; }
public <P extends Page> P visitExternal(Class<P> pageClass, Object... args) { checkNotNull(pageClass); DelayedBinder<P> binder = pageBinder.delayedBind(pageClass, args); P p = binder.get(); checkNotNull(p); String pageUrl = p.getUrl(); try { getTester().gotoUrl(pageUrl); } catch (WebDriverException e) { throw new WebDriverException("Failed to load URL '" + pageUrl + "'", e); } return binder.bind(); }
public <P extends Page> P visit(Class<P> pageClass) { return visit(jira.getPageBinder().delayedBind(pageClass).bind().getUrl(), pageClass); }