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.

ValoColorPickerInputFormatsTest.java 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package com.vaadin.tests.components.colorpicker;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertFalse;
  4. import static org.junit.Assert.assertTrue;
  5. import java.util.List;
  6. import org.junit.Before;
  7. import org.junit.Test;
  8. import org.openqa.selenium.Keys;
  9. import org.openqa.selenium.WebElement;
  10. import org.openqa.selenium.remote.DesiredCapabilities;
  11. import com.vaadin.testbench.elements.ColorPickerElement;
  12. import com.vaadin.testbench.elements.ColorPickerPreviewElement;
  13. import com.vaadin.testbench.parallel.Browser;
  14. import com.vaadin.tests.tb3.MultiBrowserTest;
  15. /**
  16. * Test legal color values according to
  17. * http://www.w3schools.com/cssref/css_colors_legal.asp
  18. */
  19. public class ValoColorPickerInputFormatsTest extends MultiBrowserTest {
  20. @Override
  21. public List<DesiredCapabilities> getBrowsersToTest() {
  22. // Ignoring Phantom JS
  23. return getBrowserCapabilities(Browser.IE11, Browser.FIREFOX,
  24. Browser.CHROME);
  25. }
  26. private ColorPickerPreviewElement previewElement;
  27. @Before
  28. public void setUp() {
  29. openTestURL();
  30. getPreviewElement();
  31. }
  32. private void getPreviewElement() {
  33. ColorPickerElement cpElement = $(ColorPickerElement.class)
  34. .id("colorpicker1");
  35. // Open ColorPicker
  36. cpElement.click();
  37. // Find preview element
  38. previewElement = $(ColorPickerPreviewElement.class).first();
  39. }
  40. @Override
  41. protected Class<?> getUIClass() {
  42. return ValoColorPickerTestUI.class;
  43. }
  44. @Test
  45. public void testRGBValue() throws Exception {
  46. setColorpickerValue("rgb(100 100 100)");
  47. assertEquals("#646464", previewElement.getColorFieldValue());
  48. }
  49. @Test
  50. public void testRGBAValue() {
  51. setColorpickerValue("rgba(100,100,100, 0.5)");
  52. assertEquals("#646464", previewElement.getColorFieldValue());
  53. }
  54. @Test
  55. public void testHSLValue() {
  56. setColorpickerValue("hsl(120,100%, 50%)");
  57. assertEquals("#00ff00", previewElement.getColorFieldValue());
  58. }
  59. @Test
  60. public void testHSLAValue() {
  61. setColorpickerValue("hsla(120, 0, 50%, 0.3)");
  62. assertEquals("#00ff00", previewElement.getColorFieldValue());
  63. }
  64. @Test
  65. public void testHexTextInputValidation() {
  66. // set valid hex value to ColorTextField
  67. setColorpickerValue("#AAbb33");
  68. assertFalse(previewElement.getColorFieldContainsErrors());
  69. }
  70. @Test
  71. public void testRGBTextInputValidation() {
  72. String rgbString = "rgb(255 10 0)";
  73. // set valid rgb value to ColorTextField
  74. setColorpickerValue(rgbString);
  75. assertFalse(previewElement.getColorFieldContainsErrors());
  76. }
  77. @Test
  78. public void testHSLTextInputValidation() {
  79. String hslString = "HSL(300, 60, 100)";
  80. setColorpickerValue(hslString);
  81. assertFalse(previewElement.getColorFieldContainsErrors());
  82. }
  83. @Test
  84. public void testHexTextInputValidationError() {
  85. // set invalid hex value to ColorTextField
  86. setColorpickerValue("#xyz");
  87. assertTrue(previewElement.getColorFieldContainsErrors());
  88. }
  89. @Test
  90. public void testRGBTextInputValidationError() {
  91. String rgbString = "rgb(300, 60, 90)";
  92. // set invalid rgb value to ColorTextField
  93. setColorpickerValue(rgbString);
  94. assertTrue(previewElement.getColorFieldContainsErrors());
  95. }
  96. @Test
  97. public void testRGBATextInputValidationError() {
  98. String rgbaString = "rgba(250, 0, 10, 6.0)";
  99. // set invalid rgba value to ColorTextField
  100. setColorpickerValue(rgbaString);
  101. assertTrue(previewElement.getColorFieldContainsErrors());
  102. }
  103. @Test
  104. public void testHSLTextInputValidationError() {
  105. String hslString = "hsl(370,60%,120%)";
  106. // set invalid hsl value to ColorTextField
  107. setColorpickerValue(hslString);
  108. assertTrue(previewElement.getColorFieldContainsErrors());
  109. }
  110. @Test
  111. public void testHSLATextInputValidationError() {
  112. String hslaString = "hsla(300, 50, 10, 1.1)";
  113. // set invalid hsla value to ColorTextField
  114. setColorpickerValue(hslaString);
  115. assertTrue(previewElement.getColorFieldContainsErrors());
  116. }
  117. @Test
  118. public void testFailedValidationResult() {
  119. // set invalid hex value to ColorTextField
  120. setColorpickerValue("#xyz");
  121. // verify there are errors
  122. assertTrue(previewElement.getColorFieldContainsErrors());
  123. // verify value has not been changed
  124. assertEquals(previewElement.getColorFieldValue(), "#xyz");
  125. }
  126. private void setColorpickerValue(String value) {
  127. WebElement field = previewElement.getColorTextField();
  128. // Select all text
  129. field.sendKeys(Keys.chord(Keys.CONTROL, "a"));
  130. // Replace with new value
  131. field.sendKeys(value);
  132. // Submit
  133. field.sendKeys(Keys.RETURN);
  134. }
  135. }