You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DateFieldWhenChangingValueAndEnablingParentTest.java 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.vaadin.tests.components.datefield;
  2. import static org.junit.Assert.assertFalse;
  3. import static org.junit.Assert.assertTrue;
  4. import org.junit.Test;
  5. import org.openqa.selenium.By;
  6. import com.vaadin.testbench.elements.AbstractDateFieldElement;
  7. import com.vaadin.testbench.elements.CheckBoxElement;
  8. import com.vaadin.testbench.elements.DateFieldElement;
  9. import com.vaadin.tests.tb3.SingleBrowserTest;
  10. public class DateFieldWhenChangingValueAndEnablingParentTest
  11. extends SingleBrowserTest {
  12. @Test
  13. public void ensureCorrectStateAfterEnabling() {
  14. openTestURL();
  15. $(CheckBoxElement.class).first().click();
  16. assertState($(AbstractDateFieldElement.class).id("DATEFIELD_ENABLED"),
  17. true, true);
  18. assertState($(AbstractDateFieldElement.class).id("DATEFIELD_DISABLED"),
  19. false, false);
  20. assertState($(DateFieldElement.class).id("DATEFIELD_ENABLED_ENABLED"),
  21. true, true);
  22. assertState($(DateFieldElement.class).id("DATEFIELD_ENABLED_DISABLED"),
  23. true, false);
  24. // disabling widget should always disable input
  25. assertState($(DateFieldElement.class).id("DATEFIELD_DISABLED_ENABLED"),
  26. false, false);
  27. assertState($(DateFieldElement.class).id("DATEFIELD_DISABLED_DISABLED"),
  28. false, false);
  29. }
  30. private void assertState(AbstractDateFieldElement id, boolean widgetEnabled,
  31. boolean textInputEnabled) {
  32. assertDateFieldEnabled(id, widgetEnabled);
  33. assertTextInputEnabled(id, textInputEnabled);
  34. }
  35. private void assertDateFieldEnabled(AbstractDateFieldElement id,
  36. boolean assertEnabled) {
  37. boolean hasClass = hasCssClass(id, "v-disabled");
  38. boolean fieldEnabled = !hasClass;
  39. if (assertEnabled) {
  40. assertTrue("Field " + id.getAttribute("id") + " should be enabled",
  41. fieldEnabled);
  42. } else {
  43. assertFalse(
  44. "Field " + id.getAttribute("id") + " should be disabled",
  45. fieldEnabled);
  46. }
  47. }
  48. private void assertTextInputEnabled(AbstractDateFieldElement id,
  49. boolean enabled) {
  50. String disabledAttr = id.findElement(By.xpath("./input"))
  51. .getAttribute("disabled");
  52. boolean textinputEnabled = (disabledAttr == null);
  53. if (enabled) {
  54. assertTrue(
  55. "Field " + id.getAttribute("id")
  56. + " text field should be enabled",
  57. textinputEnabled);
  58. } else {
  59. assertFalse(
  60. "Field " + id.getAttribute("id")
  61. + " text field should be disabled",
  62. textinputEnabled);
  63. }
  64. }
  65. }