Skip to content

Commit

Permalink
Added CharSequence[] keysToSend in *ChangeValueOf event + test
Browse files Browse the repository at this point in the history
Signed-off-by: Luke Inman-Semerau <luke.semerau@gmail.com>
  • Loading branch information
kuhtich authored and lukeis committed Mar 16, 2016
1 parent 81d10fb commit 969f586
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,11 @@ public void afterClickOn(WebElement element, WebDriver driver) {
// Do nothing.
}

public void beforeChangeValueOf(WebElement element, WebDriver driver) {
public void beforeChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
// Do nothing.
}

public void afterChangeValueOf(WebElement element, WebDriver driver) {
public void afterChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
// Do nothing.
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -354,15 +354,15 @@ public void submit() {
}

public void sendKeys(CharSequence... keysToSend) {
dispatcher.beforeChangeValueOf(element, driver);
dispatcher.beforeChangeValueOf(element, driver, keysToSend);
element.sendKeys(keysToSend);
dispatcher.afterChangeValueOf(element, driver);
dispatcher.afterChangeValueOf(element, driver, keysToSend);
}

public void clear() {
dispatcher.beforeChangeValueOf(element, driver);
dispatcher.beforeChangeValueOf(element, driver, null);
element.clear();
dispatcher.afterChangeValueOf(element, driver);
dispatcher.afterChangeValueOf(element, driver, null);
}

public String getTagName() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public interface WebDriverEventListener {
* @param driver WebDriver
* @param element the WebElement being used for the action
*/
void beforeChangeValueOf(WebElement element, WebDriver driver);
void beforeChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend);

/**
* Called after {@link WebElement#clear WebElement.clear()}, {@link WebElement#sendKeys
Expand All @@ -142,7 +142,7 @@ public interface WebDriverEventListener {
* @param driver WebDriver
* @param element the WebElement being used for the action
*/
void afterChangeValueOf(WebElement element, WebDriver driver);
void afterChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend);

/**
* Called before {@link org.openqa.selenium.remote.RemoteWebDriver#executeScript(java.lang.String, java.lang.Object[]) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import org.openqa.selenium.internal.WrapsElement;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

/**
Expand Down Expand Up @@ -176,30 +177,34 @@ public void changeValueEvent() {
EventFiringWebDriver testedDriver =
new EventFiringWebDriver(mockedDriver).register(new AbstractWebDriverEventListener() {
@Override
public void beforeChangeValueOf(WebElement element, WebDriver driver) {
log.append("beforeChangeValueOf\n");
public void beforeChangeValueOf(WebElement element, WebDriver driver,
CharSequence[] keysToSend) {
log.append("beforeChangeValueOf" + " " + Arrays.toString(keysToSend) + "\n");
}

@Override
public void afterChangeValueOf(WebElement element, WebDriver driver) {
log.append("afterChangeValueOf\n");
public void afterChangeValueOf(WebElement element, WebDriver driver,
CharSequence[] keysToSend) {
log.append("afterChangeValueOf" + " " + Arrays.toString(keysToSend) + "\n");
}
});

String someText = "some text";

testedDriver.findElement(By.name("foo")).clear();
testedDriver.findElement(By.name("foo")).sendKeys("some text");
testedDriver.findElement(By.name("foo")).sendKeys(someText);
testedDriver.findElement(By.name("foo")).click();

assertEquals(
"beforeChangeValueOf\n" +
"afterChangeValueOf\n" +
"beforeChangeValueOf\n" +
"afterChangeValueOf\n",
"beforeChangeValueOf null\n" +
"afterChangeValueOf null\n" +
"beforeChangeValueOf [" + someText +"]\n" +
"afterChangeValueOf [" + someText +"]\n",
log.toString());

InOrder order = Mockito.inOrder(mockedElement);
order.verify(mockedElement).clear();
order.verify(mockedElement).sendKeys("some text");
order.verify(mockedElement).sendKeys(someText);
order.verify(mockedElement).click();
order.verifyNoMoreInteractions();

Expand Down

0 comments on commit 969f586

Please sign in to comment.