package org.fluentlenium.core.wait;
import org.fluentlenium.core.FluentControl;
import java.util.function.Predicate;
/**
* Window wait conditions.
*/
public class FluentWaitWindowConditions extends BaseWaitConditions {
private final FluentWait wait;
private final String windowName;
/**
* Creates a new window wait conditions.
*
* @param wait underlying wait
* @param windowName window name
*/
protected FluentWaitWindowConditions(FluentWait wait, String windowName) {
this.wait = wait;
this.windowName = windowName;
}
/**
* Check if the window is displayed.
*
* @return true
*/
public boolean displayed() {
Predicate<FluentControl> displayed = fluent -> fluent.getDriver().getWindowHandles().contains(windowName);
until(wait, displayed, String.format("Window %s should be displayed.", windowName));
return true;
}
/**
* Check if the window is not displayed.
*
* @return true
*/
public boolean notDisplayed() {
Predicate<FluentControl> notDisplayed = fluent -> !fluent.getDriver().getWindowHandles().contains(windowName);
until(wait, notDisplayed, String.format("Window %s should not be displayed.", windowName));
return true;
}
}