package org.axway.grapes.tests.acceptance.pages; import net.thucydides.core.annotations.DefaultUrl; import net.thucydides.core.annotations.NamedUrl; import net.thucydides.core.annotations.NamedUrls; import net.thucydides.core.annotations.findby.FindBy; import net.thucydides.core.matchers.BeanMatcher; import net.thucydides.core.pages.PageObject; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import static com.thoughtworks.selenium.SeleneseTestBase.assertEquals; import static net.thucydides.core.pages.components.HtmlTable.filterRows; @DefaultUrl("http://localhost:8080") @NamedUrls( { @NamedUrl(name = "module.info" , url ="/module/{1}/{2}") } ) public class ModulePage extends PageObject{ @FindBy(id = "module.info") private WebElement moduleInfo; @FindBy(id = "module.artifacts") private WebElement artifactTable; public ModulePage(final WebDriver driver) { super(driver); } public void has_title(final String title) { getTitle().equals(title); } public void displays_name(final String name) { element(moduleInfo).isCurrentlyVisible(); element(moduleInfo).containsText("Name: " + name); } public void displays_version(final String version) { element(moduleInfo).isCurrentlyVisible(); element(moduleInfo).containsText("Version: " + version); } public void has_artifact(BeanMatcher... matchers){ assertEquals(1, filterRows(artifactTable, matchers).size()); } public void is_promoted() { element(moduleInfo).containsText("Promoted"); } }