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.

NativeSelectEmptySelectionTest.java 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.vaadin.tests.components.nativeselect;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertTrue;
  4. import java.util.Set;
  5. import java.util.stream.Collectors;
  6. import java.util.stream.IntStream;
  7. import org.junit.Test;
  8. import com.vaadin.testbench.TestBenchElement;
  9. import com.vaadin.testbench.elements.ButtonElement;
  10. import com.vaadin.testbench.elements.NativeSelectElement;
  11. import com.vaadin.tests.tb3.MultiBrowserTest;
  12. /**
  13. * @author Vaadin Ltd
  14. *
  15. */
  16. public class NativeSelectEmptySelectionTest extends MultiBrowserTest {
  17. @Test
  18. public void checkEmptySelection() {
  19. openTestURL();
  20. checkOptions("empty");
  21. // change the caption
  22. $(ButtonElement.class).first().click();
  23. checkOptions("updated");
  24. // disable empty caption
  25. $(ButtonElement.class).get(1).click();
  26. checkOptions(null);
  27. // enable back
  28. $(ButtonElement.class).get(2).click();
  29. checkOptions("updated");
  30. }
  31. private void checkOptions(String emptyCaption) {
  32. NativeSelectElement select = $(NativeSelectElement.class).first();
  33. Set<String> originalOptions = IntStream.range(1, 50)
  34. .mapToObj(index -> String.valueOf(index))
  35. .collect(Collectors.toSet());
  36. Set<String> options = select.getOptions().stream()
  37. .map(TestBenchElement::getText).collect(Collectors.toSet());
  38. if (emptyCaption == null) {
  39. assertEquals(49, options.size());
  40. assertTrue(options.containsAll(originalOptions));
  41. } else {
  42. options.contains(emptyCaption);
  43. assertEquals(50, options.size());
  44. assertTrue(options.containsAll(originalOptions));
  45. }
  46. }
  47. }