package com.autonomy.abc.selenium.find.comparison;
import com.hp.autonomy.frontend.selenium.element.ModalView;
import com.hp.autonomy.frontend.selenium.predicates.HasCssValuePredicate;
import com.hp.autonomy.frontend.selenium.util.ElementUtil;
import com.hp.autonomy.frontend.selenium.util.Locator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.util.List;
import static org.openqa.selenium.support.ui.ExpectedConditions.stalenessOf;
public class ComparisonModal extends ModalView {
private ComparisonModal(final WebElement $el, final WebDriver driver) {
super($el, driver);
}
public List<String> getItems() {
return ElementUtil.getTexts(findElements(By.className("secondary-model-title")));
}
public void select(final String savedSearchName) {
findElement(new Locator().havingClass("secondary-model-title").containingText(savedSearchName)).click();
}
public String getSelected() {
return findElement(By.className("primary-model-title")).getText();
}
public WebElement compareButton() {
return findElement(By.className("button-primary"));
}
public void waitForComparisonToLoad() {
waitForComparisonToLoad(60);
}
public void waitForComparisonToLoad(final int timeout) {
new WebDriverWait(getDriver(), timeout)
.withMessage("waiting for comparison to be fetched")
.until(stalenessOf(this));
}
public static ComparisonModal make(final WebDriver driver) {
final ComparisonModal modal = new ComparisonModal(driver.findElement(By.className("modal")), driver);
new WebDriverWait(driver, 10).until(new HasCssValuePredicate(modal, "opacity", "1"));
return modal;
}
}