diff --git a/java/client/src/org/openqa/selenium/support/events/EventFiringWebDriver.java b/java/client/src/org/openqa/selenium/support/events/EventFiringWebDriver.java index c1d233d831044..1e6a52fde903b 100644 --- a/java/client/src/org/openqa/selenium/support/events/EventFiringWebDriver.java +++ b/java/client/src/org/openqa/selenium/support/events/EventFiringWebDriver.java @@ -421,7 +421,9 @@ public void click() { @Override public void submit() { + dispatcher.beforeClickOn(element, driver); element.submit(); + dispatcher.afterClickOn(element, driver); } @Override diff --git a/java/client/test/org/openqa/selenium/support/events/EventFiringWebDriverTest.java b/java/client/test/org/openqa/selenium/support/events/EventFiringWebDriverTest.java index e1766e8598cbe..23be54d5ed1fe 100644 --- a/java/client/test/org/openqa/selenium/support/events/EventFiringWebDriverTest.java +++ b/java/client/test/org/openqa/selenium/support/events/EventFiringWebDriverTest.java @@ -169,6 +169,40 @@ public void windowEvent() { verifyNoMoreInteractions(mockedTargetLocator, listener); } + @Test + public void submitEvent() { + final WebDriver mockedDriver = mock(WebDriver.class); + final WebElement mockedElement = mock(WebElement.class); + final StringBuilder log = new StringBuilder(); + + when(mockedDriver.findElement(By.name("foo"))).thenReturn(mockedElement); + + EventFiringWebDriver testedDriver = + new EventFiringWebDriver(mockedDriver).register(new AbstractWebDriverEventListener() { + @Override + public void beforeClickOn(WebElement element, WebDriver driver) { + log.append("beforeClickOn\n"); + } + + @Override + public void afterClickOn(WebElement element, WebDriver driver) { + log.append("afterClickOn\n"); + } + }); + + testedDriver.findElement(By.name("foo")).submit(); + + assertEquals( + "beforeClickOn\n" + + "afterClickOn\n", + log.toString()); + + InOrder order = Mockito.inOrder(mockedDriver, mockedElement); + order.verify(mockedDriver).findElement(By.name("foo")); + order.verify(mockedElement).submit(); + order.verifyNoMoreInteractions(); + } + @Test public void changeValueEvent() { final WebDriver mockedDriver = mock(WebDriver.class);