package net.thucydides.demo.steps; import net.thucydides.core.annotations.Step; import net.thucydides.core.annotations.StepGroup; import net.thucydides.core.pages.Pages; import net.thucydides.core.steps.ScenarioSteps; import net.thucydides.demo.pages.GoogleHomePage; import net.thucydides.demo.pages.GoogleResultsPage; import java.util.List; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.hasItem; public class GoogleSearchSteps extends ScenarioSteps { public GoogleSearchSteps(Pages pages) { super(pages); } @Step public void open_home_page() { getPages().currentPageAt(GoogleHomePage.class); } @Step public void searchFor(String term) { GoogleHomePage page = (GoogleHomePage) getPages().currentPageAt(GoogleHomePage.class); page.searchFor(term); } @Step public void resultListShouldContain(String term) { GoogleResultsPage page = (GoogleResultsPage) getPages().currentPageAt(GoogleResultsPage.class); List<String> resultHeadings = page.getResultTitles(); assertThat(resultHeadings, hasItem(containsString(term))); } @StepGroup("Open Google and search for term") public void open_google_and_search_for(String term) { open_home_page(); searchFor(term); } }