package integration;
import com.codeborne.selenide.commands.Click;
import com.codeborne.selenide.commands.Commands;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebElement;
import java.util.concurrent.atomic.AtomicInteger;
import static com.codeborne.selenide.Selenide.$;
import static org.junit.Assert.assertEquals;
public class OverrideCommandsTest extends IntegrationTest {
private AtomicInteger clickCounter = new AtomicInteger();
@Before
public void openTestPageWithImages() {
openFile("page_with_images.html");
}
@After
public void tearDown() {
Commands.getInstance().resetDefaults();
}
@Test
public void userCanOverrideAnyCommand() {
Commands.getInstance().add("click", new MyClick());
$("#valid-image").click();
$("#invalid-image").click();
assertEquals(2, clickCounter.get());
}
private class MyClick extends Click {
@Override
protected void click(WebElement element) {
super.click(element);
clickCounter.incrementAndGet();
}
}
}