123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package com.vaadin.tests.components.datefield;
-
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertTrue;
-
- import org.junit.Test;
- import org.openqa.selenium.By;
-
- import com.vaadin.testbench.elements.AbstractDateFieldElement;
- import com.vaadin.testbench.elements.CheckBoxElement;
- import com.vaadin.testbench.elements.DateFieldElement;
- import com.vaadin.tests.tb3.SingleBrowserTest;
-
- public class DateFieldWhenChangingValueAndEnablingParentTest
- extends SingleBrowserTest {
-
- @Test
- public void ensureCorrectStateAfterEnabling() {
- openTestURL();
- $(CheckBoxElement.class).first().click();
-
- assertState($(AbstractDateFieldElement.class).id("DATEFIELD_ENABLED"),
- true, true);
- assertState($(AbstractDateFieldElement.class).id("DATEFIELD_DISABLED"),
- false, false);
-
- assertState($(DateFieldElement.class).id("DATEFIELD_ENABLED_ENABLED"),
- true, true);
- assertState($(DateFieldElement.class).id("DATEFIELD_ENABLED_DISABLED"),
- true, false);
-
- // disabling widget should always disable input
- assertState($(DateFieldElement.class).id("DATEFIELD_DISABLED_ENABLED"),
- false, false);
- assertState($(DateFieldElement.class).id("DATEFIELD_DISABLED_DISABLED"),
- false, false);
-
- }
-
- private void assertState(AbstractDateFieldElement id, boolean widgetEnabled,
- boolean textInputEnabled) {
- assertDateFieldEnabled(id, widgetEnabled);
- assertTextInputEnabled(id, textInputEnabled);
-
- }
-
- private void assertDateFieldEnabled(AbstractDateFieldElement id,
- boolean assertEnabled) {
- boolean hasClass = hasCssClass(id, "v-disabled");
- boolean fieldEnabled = !hasClass;
- if (assertEnabled) {
- assertTrue("Field " + id.getAttribute("id") + " should be enabled",
- fieldEnabled);
- } else {
- assertFalse(
- "Field " + id.getAttribute("id") + " should be disabled",
- fieldEnabled);
- }
-
- }
-
- private void assertTextInputEnabled(AbstractDateFieldElement id,
- boolean enabled) {
- String disabledAttr = id.findElement(By.xpath("./input"))
- .getAttribute("disabled");
- boolean textinputEnabled = (disabledAttr == null);
-
- if (enabled) {
- assertTrue(
- "Field " + id.getAttribute("id")
- + " text field should be enabled",
- textinputEnabled);
- } else {
- assertFalse(
- "Field " + id.getAttribute("id")
- + " text field should be disabled",
- textinputEnabled);
- }
-
- }
- }
|