package com.constellio.app.ui.tools;
import org.openqa.selenium.By;
import com.constellio.app.ui.pages.search.AdvancedSearchViewImpl;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebElement;
public class AdvancedResearchWebElement {
ConstellioWebElement nestedElement;
public AdvancedResearchWebElement(ConstellioWebDriver driver) {
this.nestedElement = driver.findElement(By.className("header-show-advanced-search-button-popup-hidden"));
}
public ResearchResultWebElement advancedResearchThenBatchProcessingWith(ConstellioWebDriver driver, String researchType) {
displayAdvancedSearchPanelAndSelectIt(driver);
selectTypeDropDownElement(researchType);
ResearchResultWebElement resultWebElement = clickSearchButtonAndGetResultWebElement(driver);
resultWebElement.toggleFirstCheckBoxInResult();
resultWebElement.clickBatchProcessingLinkAndRefreshDriver(driver);
return resultWebElement;
}
public ResearchResultWebElement clickSearchButtonAndGetResultWebElement(ConstellioWebDriver driver) {
ConstellioWebElement button = nestedElement.findElement(By.className("advanced-search-button"));
button.click();
driver.waitUntilElementExist(By.className(AdvancedSearchViewImpl.BATCH_PROCESS_BUTTONSTYLE));
return new ResearchResultWebElement(driver);
}
public AdvancedResearchWebElement displayAdvancedSearchPanelAndSelectIt(ConstellioWebDriver driver) {
nestedElement.click();
nestedElement = driver.waitUntilElementExist(By.className("header-advanced-search-form-content"));
return this;
}
public AdvancedResearchWebElement selectTypeDropDownElement(String type) {
getDropDown().selectItemContainingText(type);
return this;
}
public AutocompleteWebElement getDropDown() {
return new DropDownWebElement(getField("v-filterselect-prompt"));
}
public ConstellioWebElement getField(String metadataCode) {
nestedElement.waitUntilElementExist(By.className(metadataCode));
return nestedElement.findElement(By.className(metadataCode));
}
}