package org.fluentlenium.integration; import org.fluentlenium.core.domain.FluentWebElement; import org.fluentlenium.core.events.ElementListener; import org.fluentlenium.core.events.FindByListener; import org.fluentlenium.core.events.NavigateAllListener; import org.fluentlenium.core.events.NavigateListener; import org.fluentlenium.integration.localtest.IntegrationFluentTest; import org.junit.Test; import org.mockito.Mockito; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class EventsTest extends IntegrationFluentTest { @Test public void clickOn() { ElementListener beforeListener = Mockito.mock(ElementListener.class); ElementListener afterListener = Mockito.mock(ElementListener.class); events().beforeClickOn(beforeListener); events().afterClickOn(afterListener); goTo(DEFAULT_URL); $("button").click(); Mockito.verify(beforeListener).on(Mockito.<FluentWebElement>anyObject(), Mockito.<WebDriver>anyObject()); Mockito.verify(afterListener).on(Mockito.<FluentWebElement>anyObject(), Mockito.<WebDriver>anyObject()); } @Test public void findBy() { FindByListener beforeListener = Mockito.mock(FindByListener.class); FindByListener afterListener = Mockito.mock(FindByListener.class); events().beforeFindBy(beforeListener); events().afterFindBy(afterListener); goTo(DEFAULT_URL); el("button").now(); Mockito.verify(beforeListener) .on(Mockito.<By>anyObject(), Mockito.<FluentWebElement>anyObject(), Mockito.<WebDriver>anyObject()); Mockito.verify(afterListener) .on(Mockito.<By>anyObject(), Mockito.<FluentWebElement>anyObject(), Mockito.<WebDriver>anyObject()); } @Test public void navigate() { NavigateAllListener beforeListener = Mockito.mock(NavigateAllListener.class); NavigateAllListener afterListener = Mockito.mock(NavigateAllListener.class); events().beforeNavigate(beforeListener); events().afterNavigate(afterListener); goTo(DEFAULT_URL); Mockito.verify(beforeListener, Mockito.times(1)) .on(Mockito.eq(DEFAULT_URL), Mockito.<WebDriver>anyObject(), Mockito.<NavigateAllListener.Direction>anyObject()); Mockito.verify(afterListener, Mockito.times(1)) .on(Mockito.eq(DEFAULT_URL), Mockito.<WebDriver>anyObject(), Mockito.<NavigateAllListener.Direction>anyObject()); getDriver().navigate().refresh(); Mockito.verify(beforeListener, Mockito.times(1)) .on((String) Mockito.isNull(), Mockito.<WebDriver>anyObject(), Mockito.eq(NavigateAllListener.Direction.REFRESH)); Mockito.verify(afterListener, Mockito.times(1)) .on((String) Mockito.isNull(), Mockito.<WebDriver>anyObject(), Mockito.eq(NavigateAllListener.Direction.REFRESH)); } @Test public void refresh() { NavigateListener beforeListener = Mockito.mock(NavigateListener.class); NavigateListener afterListener = Mockito.mock(NavigateListener.class); events().beforeNavigateRefresh(beforeListener); events().afterNavigateRefresh(afterListener); goTo(DEFAULT_URL); Mockito.verify(beforeListener, Mockito.times(0)).on(Mockito.<WebDriver>anyObject()); Mockito.verify(afterListener, Mockito.times(0)).on(Mockito.<WebDriver>anyObject()); getDriver().navigate().refresh(); Mockito.verify(beforeListener, Mockito.times(1)).on(Mockito.<WebDriver>anyObject()); Mockito.verify(afterListener, Mockito.times(1)).on(Mockito.<WebDriver>anyObject()); } }