1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
30 |
|
|
31 |
|
|
32 |
|
|
33 |
|
|
34 |
|
package info.magnolia.imaging.util; |
35 |
|
|
36 |
|
import static org.junit.Assert.assertEquals; |
37 |
|
|
38 |
|
import java.awt.Color; |
39 |
|
|
40 |
|
import org.junit.Rule; |
41 |
|
import org.junit.Test; |
42 |
|
import org.junit.rules.ExpectedException; |
43 |
|
|
|
|
| 58.3% |
Uncovered Elements: 30 (72) |
Complexity: 18 |
Complexity Density: 0.33 |
|
44 |
|
public class ColorConverterTest { |
45 |
|
|
46 |
|
@Rule |
47 |
|
public ExpectedException expectedException = ExpectedException.none(); |
48 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
1PASS
|
|
49 |
1 |
@Test... |
50 |
|
public void canDecodeHexa() { |
51 |
1 |
assertEquals(Color.white, ColorConverter.toColor("#ffffff")); |
52 |
1 |
assertEquals(Color.black, ColorConverter.toColor("#000000")); |
53 |
1 |
assertEquals(Color.red, ColorConverter.toColor("#ff0000")); |
54 |
1 |
assertEquals(new Color(128, 64, 23), ColorConverter.toColor("#804017")); |
55 |
|
} |
56 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
1PASS
|
|
57 |
1 |
@Test... |
58 |
|
public void canDecode3CharHexa() { |
59 |
1 |
assertEquals(Color.white, ColorConverter.toColor("#fff")); |
60 |
1 |
assertEquals(Color.black, ColorConverter.toColor("#000")); |
61 |
1 |
assertEquals(Color.red, ColorConverter.toColor("#f00")); |
62 |
1 |
assertEquals(new Color(136, 68, 34), ColorConverter.toColor("#842")); |
63 |
|
} |
64 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
65 |
1 |
@Test... |
66 |
|
public void canDecodeNames() { |
67 |
1 |
assertEquals(Color.white, ColorConverter.toColor("white")); |
68 |
1 |
assertEquals(Color.red, ColorConverter.toColor("RED")); |
69 |
|
} |
70 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
71 |
1 |
@Test... |
72 |
|
public void canDecodeNamesCaseInsensitively() { |
73 |
1 |
assertEquals(Color.black, ColorConverter.toColor("Black")); |
74 |
1 |
assertEquals(Color.yellow, ColorConverter.toColor("yelLoW")); |
75 |
|
} |
76 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
77 |
1 |
@Test... |
78 |
|
public void canDecodeRgbCssLikeFunction() { |
79 |
1 |
assertEquals(new Color(128, 64, 23, 255), ColorConverter.toColor("rgb(128,64,23)")); |
80 |
1 |
assertEquals(new Color(128, 64, 23, 255), ColorConverter.toColor(" rgb ( 128, 064, 23 ) ")); |
81 |
|
} |
82 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
1PASS
|
|
83 |
1 |
@Test... |
84 |
|
public void canDecodeRgbaCssLikeFunction() { |
85 |
1 |
assertEquals(new Color(128, 64, 23, 51), ColorConverter.toColor("rgba(128, 64, 23, 0.2)")); |
86 |
|
} |
87 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
1PASS
|
|
88 |
1 |
@Test... |
89 |
|
public void canDecodeHslCssLikeFunction() { |
90 |
1 |
assertEquals(new Color(166, 102, 89), ColorConverter.toColor("hsl(10, 30%, 50%)")); |
91 |
|
} |
92 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
1PASS
|
|
93 |
1 |
@Test... |
94 |
|
public void canDecodeHslaCssLikeFunction() { |
95 |
1 |
final Color actual = ColorConverter.toColor("hsla(10, 30%, 50%, 0.5)"); |
96 |
1 |
final Color expected = new Color(166, 102, 89, 127); |
97 |
1 |
assertEquals(expected, actual); |
98 |
|
} |
99 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
3FAIL
|
|
100 |
0 |
@Test... |
101 |
|
public void failsOnUnknownName() { |
102 |
0 |
assertFailsOnColor("foo", "Can't decode color foo: please provide either an #ffffff or #fff hexadecimal value or a known named color."); |
103 |
|
} |
104 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
3FAIL
|
|
105 |
0 |
@Test... |
106 |
|
public void failsOnNull() { |
107 |
0 |
assertFailsOnColor(null, "Can't decode color null: please provide either an #ffffff or #fff hexadecimal value or a known named color."); |
108 |
|
} |
109 |
|
|
|
|
| 0% |
Uncovered Elements: 2 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
3FAIL
|
|
110 |
0 |
@Test... |
111 |
|
public void failsOnBadHexa() { |
112 |
0 |
assertFailsOnColor("#12345G", "Can't decode color #12345G: please provide either an #ffffff or #fff hexadecimal value or a known named color."); |
113 |
0 |
assertFailsOnColor("#1234", "Can't decode color #1234: please provide a 6 or 3 digit long hexadecimal string, e.g #ffffff or #fff."); |
114 |
|
} |
115 |
|
|
|
|
| 0% |
Uncovered Elements: 2 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
3FAIL
|
|
116 |
0 |
@Test... |
117 |
|
public void failsOnBadRgb() { |
118 |
0 |
assertFailsOnColor("rgb(10,20,256)", "Can't decode color rgb(10,20,256): 256 is not in the allowed 0-255 range."); |
119 |
|
|
120 |
0 |
assertFailsOnColor("rgb(-10,20,256)", "Can't decode color rgb(-10,20,256): please provide either an #ffffff or #fff hexadecimal value or a known named color."); |
121 |
|
} |
122 |
|
|
|
|
| 0% |
Uncovered Elements: 3 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
3FAIL
|
|
123 |
0 |
@Test... |
124 |
|
public void failsOnBadAlpha() { |
125 |
0 |
assertFailsOnColor("rgba(10,20,255, 10)", "Can't decode color rgba(10,20,255, 10): 10 is not in the allowed 0.0-1.0 <alphavalue> range."); |
126 |
|
|
127 |
0 |
assertFailsOnColor("rgba(10,20,255, -0.2)", "Can't decode color rgba(10,20,255, -0.2): please provide either an #ffffff or #fff hexadecimal value or a known named color."); |
128 |
0 |
assertFailsOnColor("rgba(10,20,255, 1.2)", "Can't decode color rgba(10,20,255, 1.2): 1.2 is not in the allowed 0.0-1.0 <alphavalue> range."); |
129 |
|
} |
130 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
3FAIL
|
|
131 |
0 |
@Test... |
132 |
|
public void failsOnAlphaValueWithAlphaLessFunction() { |
133 |
0 |
assertFailsOnColor("rgb(10,20,255, 0.5)", "Can't decode color rgb(10,20,255, 0.5): the rgb() function does not take an <alphavalue> argument."); |
134 |
|
} |
135 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (14) |
Complexity: 1 |
Complexity Density: 0.07 |
1PASS
|
|
136 |
1 |
@Test... |
137 |
|
public void normalizeAngle() { |
138 |
1 |
assertEquals(0, ColorConverter.normalizeAngle(0)); |
139 |
1 |
assertEquals(0, ColorConverter.normalizeAngle(-0)); |
140 |
1 |
assertEquals(1, ColorConverter.normalizeAngle(1)); |
141 |
1 |
assertEquals(359, ColorConverter.normalizeAngle(-1)); |
142 |
1 |
assertEquals(0, ColorConverter.normalizeAngle(360)); |
143 |
1 |
assertEquals(0, ColorConverter.normalizeAngle(720)); |
144 |
1 |
assertEquals(0, ColorConverter.normalizeAngle(3600)); |
145 |
1 |
assertEquals(10, ColorConverter.normalizeAngle(370)); |
146 |
1 |
assertEquals(10, ColorConverter.normalizeAngle(730)); |
147 |
1 |
assertEquals(10, ColorConverter.normalizeAngle(1450)); |
148 |
1 |
assertEquals(10, ColorConverter.normalizeAngle(-350)); |
149 |
1 |
assertEquals(10, ColorConverter.normalizeAngle(-710)); |
150 |
1 |
assertEquals(10, ColorConverter.normalizeAngle(-1070)); |
151 |
1 |
assertEquals(10, ColorConverter.normalizeAngle(-1430)); |
152 |
|
} |
153 |
|
|
|
|
| 0% |
Uncovered Elements: 5 (5) |
Complexity: 1 |
Complexity Density: 0.2 |
3FAIL
|
|
154 |
0 |
@Test... |
155 |
|
public void percentage() { |
156 |
0 |
assertFailsOnPercentage("abc", "blah abc blah", "Can't decode color blah abc blah: abc should be a percentage value."); |
157 |
0 |
assertFailsOnPercentage("88", "blah 88 blah", "Can't decode color blah 88 blah: 88 should be a percentage value."); |
158 |
0 |
assertFailsOnPercentage("120%", "blah 120% blah", "Can't decode color blah 120% blah: 120 is not in the allowed 0-100 range."); |
159 |
0 |
assertFailsOnPercentage("-12%", "blah -12% blah", "Can't decode color blah -12% blah: -12 is not in the allowed 0-100 range."); |
160 |
0 |
assertEquals(ColorConverter.percentage("88%", ""), 88); |
161 |
|
} |
162 |
|
|
|
|
| 0% |
Uncovered Elements: 3 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
163 |
0 |
private void assertFailsOnColor(final String input, String expectedMessage) {... |
164 |
0 |
expectedException.expect(RuntimeException.class); |
165 |
0 |
expectedException.expectMessage(expectedMessage); |
166 |
0 |
ColorConverter.toColor(input); |
167 |
|
} |
168 |
|
|
|
|
| 0% |
Uncovered Elements: 3 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
169 |
0 |
private void assertFailsOnPercentage(final String percentage, final String input, String expectedMessage) {... |
170 |
0 |
expectedException.expect(IllegalArgumentException.class); |
171 |
0 |
expectedException.expectMessage(expectedMessage); |
172 |
0 |
ColorConverter.percentage(percentage, input); |
173 |
|
} |
174 |
|
|
175 |
|
} |