package com.vaadin.tests.fieldgroup;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.remote.DesiredCapabilities;
public class BooleanTextFieldTest extends BasicPersonFormTest {
@Override
protected boolean requireWindowFocusForIE() {
return true;
}
@Test
public void testSetBooleanTextField() throws Exception {
openTestURL();
getLastNameArea().clear();
getLastNameArea().click();
getLastNameArea().sendKeys("Dover");
assertBeanValuesUnchanged();
getDeceasedField().click();
while (!getDeceasedField().getValue().isEmpty()) {
getDeceasedField().sendKeys(Keys.BACK_SPACE);
}
getDeceasedField().sendKeys("false", Keys.ENTER);
/* error indicator */
Assert.assertEquals("Incorrect amount of error indicators on page.", 1,
findElements(By.className("v-errorindicator")).size());
Assert.assertEquals("false", getDeceasedField().getAttribute("value"));
assertBeanValuesUnchanged();
/* error message in tooltip */
getDeceasedField().showTooltip();
Assert.assertEquals("Could not convert value to Boolean",
getTooltipErrorElement().getText());
getDeceasedField().click();
while (!getDeceasedField().getValue().isEmpty()) {
getDeceasedField().sendKeys(Keys.BACK_SPACE);
}
getDeceasedField().sendKeys("YAY!", Keys.ENTER);
/* no error indicator */
Assert.assertFalse(isElementPresent(By.className("v-errorindicator")));
assertCommitSuccessful();
/* commit last name and new deceased status */
showBeanValues();
Assert.assertEquals(
"4. Person [firstName=John, lastName=Dover, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=true, salary=null, salaryDouble=null, rent=null]",
getLogRow(0));
}
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
// this test also works on IEs, but Firefox has problems with tooltips
return getBrowsersExcludingFirefox();
}
}