package integration;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import static com.codeborne.selenide.CollectionCondition.empty;
import static com.codeborne.selenide.Condition.cssClass;
import static com.codeborne.selenide.Condition.value;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.executeJavaScript;
import static org.junit.Assert.assertEquals;
public class ReplacingElementTest extends IntegrationTest {
@Before
public void openTestPage() {
openFile("page_with_replacing_elements.html");
}
@Test
public void shouldWaitsUntilElementIsReplaced() {
$("#dynamic-element").shouldHave(value("I will be replaced soon"));
executeJavaScript("replaceElement()");
$("#dynamic-element").shouldHave(value("Hello, I am back"), cssClass("reloaded"));
$("#dynamic-element").setValue("New value");
}
@Test
public void getInnerText() {
assertEquals("", $("#dynamic-element").innerText());
}
@Test
public void getInnerHtml() {
assertEquals("", $("#dynamic-element").innerHtml());
}
@Test
public void findAll() {
$("#dynamic-element").findAll(".child").shouldBe(empty);
}
@Test
public void testToString() {
assertEquals("<input id=\"dynamic-element\" type=\"text\" value=\"I will be replaced soon\"></input>",
$("#dynamic-element").toString());
}
@Test @Ignore
public void tryToCatchStaleElementException() {
executeJavaScript("startRegularReplacement()");
for (int i = 0; i < 10; i++) {
$("#dynamic-element").shouldHave(value("I am back"), cssClass("reloaded")).setValue("New value from test");
}
}
}