package org.fluentlenium.integration;
import org.fluentlenium.core.domain.FluentList;
import org.fluentlenium.core.domain.FluentWebElement;
import org.fluentlenium.integration.localtest.IntegrationFluentTest;
import org.junit.Test;
import org.openqa.selenium.support.ui.Select;
import static org.assertj.core.api.Assertions.assertThat;
import static org.fluentlenium.core.filter.FilterConstructor.withClass;
import static org.fluentlenium.core.filter.FilterConstructor.withId;
import static org.fluentlenium.core.filter.FilterConstructor.withName;
import static org.fluentlenium.core.filter.FilterConstructor.withText;
public class SearchOnlyWithFiltersTest extends IntegrationFluentTest {
@Test
public void checkWithNameWorks() {
goTo(DEFAULT_URL);
FluentList list = find(withName("name"));
assertThat(list.ids()).containsOnly("id");
}
@Test
public void checkWithTextWorks() {
goTo(DEFAULT_URL);
FluentList list = find(withText("Pharmacy"));
assertThat(list.ids()).containsOnly("location");
}
@Test
public void checkWithTextStartsWithWorks() {
goTo(DEFAULT_URL);
FluentList list = find(withText().startsWith("Pharmac"));
assertThat(list.ids()).containsOnly("location");
}
@Test
public void checkWithTextContentStartsWithWorks() {
goTo(DEFAULT_URL);
FluentList list = find(withText().startsWith("Pharmac"));
assertThat(list.ids()).containsOnly("location");
}
@Test
public void checkIndexWorks() {
goTo(DEFAULT_URL);
FluentWebElement element = find(withClass("small")).index(1);
assertThat(element.loaded()).isFalse();
assertThat(element.id()).isEqualTo("id2");
}
@Test
public void checkFindFirstWorks() {
goTo(DEFAULT_URL);
FluentWebElement element = el(withClass("small"));
assertThat(element.id()).isEqualTo("id");
}
@Test
public void checkMultipleWithWorks() {
goTo(DEFAULT_URL);
FluentList list = find(withClass("small"), withName("name"));
assertThat(list.ids()).containsOnly("id");
}
@Test
public void checkDollarWorks() {
goTo(DEFAULT_URL);
FluentList list = $(withName("name"));
assertThat(list.ids()).containsOnly("id");
}
@Test
public void checkDollarAndIndexWorks() {
goTo(DEFAULT_URL);
FluentWebElement element = $(withClass("small")).index(1);
assertThat(element.id()).isEqualTo("id2");
}
@Test
public void checkFillWorks() {
goTo(DEFAULT_URL);
$(withId("name")).fill().with("FillTest");
assertThat($("#name").value()).isEqualTo("FillTest");
}
@Test
public void checkFillSelectWorks() {
goTo(DEFAULT_URL);
Select select = new Select(el("#select").getElement());
assertThat(select.getFirstSelectedOption().getText()).isEqualTo("value 1");
$(withId("select")).fillSelect().withValue("value-3");
assertThat(select.getFirstSelectedOption().getText()).isEqualTo("value 3");
}
@Test
public void checkClickWorks() {
goTo(DEFAULT_URL);
assertThat(window().title()).contains("Selenium");
$(withId("linkToPage2")).click();
assertThat(window().title()).isEqualTo("Page 2");
}
@Test
public void checkClearWorks() {
goTo(DEFAULT_URL);
assertThat($("#name").value()).isEqualTo("John");
$(withId("name")).clear();
assertThat($("#name").value()).isEqualTo("");
}
@Test
public void checkTextWorks() {
goTo(DEFAULT_URL);
assertThat($(withName("name")).texts()).containsOnly("Small 1");
}
@Test
public void checkValueWorks() {
goTo(DEFAULT_URL);
assertThat($(withId("name")).values()).containsOnly("John");
}
@Test
public void checkFindChildFindWorks() {
goTo(DEFAULT_URL);
FluentList list = find(withClass("parent")).find(withClass("child"));
assertThat(list.texts()).containsOnly("Alex");
}
@Test
public void checkFindChildFindWithIndexWorks() {
goTo(DEFAULT_URL);
FluentWebElement element = find(withClass("parent")).find(withClass("child")).index(0);
assertThat(element.text()).isEqualTo("Alex");
}
@Test
public void checkFindChildFindFirstWorks() {
goTo(DEFAULT_URL);
FluentWebElement element = find(withClass("parent")).el(withClass("child"));
assertThat(element.text()).isEqualTo("Alex");
}
@Test
public void checkFindFirstChildFindWorks() {
goTo(DEFAULT_URL);
FluentList list = el(withClass("parent")).find(withClass("child"));
assertThat(list.texts()).containsOnly("Alex");
}
@Test
public void checkFindFirstChildFindWithIndexWorks() {
goTo(DEFAULT_URL);
FluentWebElement element = el(withClass("parent")).find(withClass("child")).index(0);
assertThat(element.text()).isEqualTo("Alex");
}
@Test
public void checkFindFirstChildFindFirstWorks() {
goTo(DEFAULT_URL);
FluentWebElement element = el(withClass("parent")).el(withClass("child"));
assertThat(element.text()).isEqualTo("Alex");
}
}