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.

HSLPatternParsingTest.java 3.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.vaadin.tests.server.component.colorpicker;
  2. import static org.junit.Assert.assertTrue;
  3. import java.util.ArrayList;
  4. import java.util.Collection;
  5. import java.util.Collections;
  6. import java.util.regex.Matcher;
  7. import org.junit.Test;
  8. import org.junit.runner.RunWith;
  9. import org.junit.runners.Parameterized;
  10. import org.junit.runners.Parameterized.Parameter;
  11. import org.junit.runners.Parameterized.Parameters;
  12. import com.vaadin.shared.ui.colorpicker.Color;
  13. import com.vaadin.ui.components.colorpicker.ColorUtil;
  14. @RunWith(value = Parameterized.class)
  15. public class HSLPatternParsingTest {
  16. @Parameter(value = 0)
  17. public String input;
  18. @Parameter(value = 1)
  19. public Color expectedColor;
  20. @Parameter(value = 2)
  21. public boolean expectedMatches;
  22. @Parameters(name = "{index}: testHSLData({0}) = ({1},{2})")
  23. public static Collection<Object[]> hsldata() {
  24. Object[][] validValues = {
  25. { "hsl(0,0,0)", new Color(Color.HSLtoRGB(0, 0, 0)), true },
  26. { "hsl(0, 0, 0)", new Color(Color.HSLtoRGB(0, 0, 0)), true },
  27. { "hsl(0,0%,0% )", new Color(Color.HSLtoRGB(0, 0, 0)), true },
  28. { "hsl(0 0 0)", new Color(Color.HSLtoRGB(0, 0, 0)), true },
  29. { "hsl(0 0% 0%)", new Color(Color.HSLtoRGB(0, 0, 0)), true },
  30. { "hsl(360,100,100)", new Color(Color.HSLtoRGB(360, 100, 100)),
  31. true },
  32. { "hsl(360, 100, 100)",
  33. new Color(Color.HSLtoRGB(360, 100, 100)), true },
  34. { "hsl(360, 100%, 100%)",
  35. new Color(Color.HSLtoRGB(360, 100, 100)), true },
  36. { "hsl(360 100% 100%)",
  37. new Color(Color.HSLtoRGB(360, 100, 100)), true },
  38. { "hsl(20, 10, 10)", new Color(Color.HSLtoRGB(20, 10, 10)),
  39. true },
  40. { "hsl(100, 0, 50)", new Color(Color.HSLtoRGB(100, 0, 50)),
  41. true },
  42. { "hsl(200, 50, 0)", new Color(Color.HSLtoRGB(200, 50, 0)),
  43. true },
  44. { "hsl(200, 50, 05)", new Color(Color.HSLtoRGB(200, 50, 5)),
  45. true } };
  46. Object[][] invalidValues = { { "hsl(361,0,0)", null, false },
  47. { "hsl(-0, 0, 0)", null, false },
  48. { "hsl (100%,0%,0% )", null, false },
  49. { "hsl(0 101 0)", null, false },
  50. { "hsl(0 0% -99%)", null, false },
  51. { "hsl(360,100,10 0)", null, false },
  52. { "hsl(360, 100, 101)", null, false },
  53. { "hsl(360, 110%, 100%)", null, false },
  54. { "hsl(3600 100% 100%)", null, false },
  55. { "hs l(420, 10, 10)", null, false },
  56. { "hsl(100, 0, 5,0)", null, false },
  57. { "hsla(200, 50, 0)", null, false },
  58. { "hsl(0,0,0", null, false }, { "rgb\\(\\.*", null, false },
  59. { "hsl(\\.*)", null, false }, { "#\\d.*", null, false },
  60. { "", null, false } };
  61. ArrayList<Object[]> values = new ArrayList<>();
  62. Collections.addAll(values, validValues);
  63. Collections.addAll(values, invalidValues);
  64. return values;
  65. }
  66. @Test
  67. public void testHSLData() {
  68. Matcher m = ColorUtil.HSL_PATTERN.matcher(input);
  69. boolean matches = m.matches();
  70. if (expectedMatches) {
  71. Color c1 = ColorUtil.getHSLPatternColor(m);
  72. assertTrue(expectedColor.equals(c1));
  73. } else {
  74. assertTrue(!matches);
  75. }
  76. }
  77. }