package com.autonomy.abc.selenium.find.preview; import com.autonomy.abc.selenium.find.results.DocumentViewer; import com.hp.autonomy.frontend.selenium.util.Waits; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class InlinePreview extends DocumentViewer { private static final By LOCATOR = By.cssSelector(".preview-mode-wrapper:not(.hide) .preview-mode-container"); private final WebElement preview; private InlinePreview(final WebDriver driver){ super(driver, driver.findElement(LOCATOR)); preview = driver.findElement(LOCATOR); } public static InlinePreview make(final WebDriver driver){ new WebDriverWait(driver, 10) .withMessage("Preview did not open") .until(ExpectedConditions.visibilityOfElementLocated(LOCATOR)); final InlinePreview docPreviewer = new InlinePreview(driver); docPreviewer.waitForLoad(); return docPreviewer; } private WebElement closeButton(){ return findElement(By.tagName("i")); } @Override public void close(){ closeButton().click(); Waits.loadOrFadeWait(); } public DetailedPreviewPage openPreview(){ findElement(By.className("preview-mode-open-detail-button")).click(); return new DetailedPreviewPage.Factory().create(getDriver()); } public boolean loadingIndicatorExists() { return !findElements(By.className("view-server-loading-indicator")).isEmpty(); } public WebElement loadingIndicator(){ return findElement(By.className("view-server-loading-indicator")); } @Override public boolean previewPresent(){return !findElements(By.className("preview-mode-document")).isEmpty();} public boolean docFillsMoreThanHalfOfPreview () { final int frameHeight = frame().getSize().height; final int previewHeight = preview.getSize().height; return previewHeight > frameHeight/2; } }