| OLD | NEW |
| 1 description("Test that getting color properties from a CanvasRenderingContext2D
returns properly formatted values."); | 1 description("Test that getting color properties from a CanvasRenderingContext2D
returns properly formatted values."); |
| 2 | 2 |
| 3 ctx = document.createElement('canvas').getContext('2d'); | 3 ctx = document.createElement('canvas').getContext('2d'); |
| 4 | 4 |
| 5 function trySettingStrokeStyle(value) { | 5 function trySettingStrokeStyle(value) { |
| 6 ctx.strokeStyle = '#666'; | 6 ctx.strokeStyle = '#666'; |
| 7 ctx.strokeStyle = value; | 7 ctx.strokeStyle = value; |
| 8 return ctx.strokeStyle; | 8 return ctx.strokeStyle; |
| 9 } | 9 } |
| 10 | 10 |
| 11 function trySettingFillStyle(value) { | 11 function trySettingFillStyle(value) { |
| 12 ctx.fillStyle = '#666'; | 12 ctx.fillStyle = '#666'; |
| 13 ctx.fillStyle = value; | 13 ctx.fillStyle = value; |
| 14 return ctx.fillStyle; | 14 return ctx.fillStyle; |
| 15 } | 15 } |
| 16 | 16 |
| 17 function trySettingShadowColor(value) { | 17 function trySettingShadowColor(value) { |
| 18 ctx.shadowColor = '#666'; | 18 ctx.shadowColor = '#666'; |
| 19 ctx.shadowColor = value; | 19 ctx.shadowColor = value; |
| 20 return ctx.shadowColor; | 20 return ctx.shadowColor; |
| 21 } | 21 } |
| 22 | 22 |
| 23 function trySettingColor(value, expected) { | 23 function trySettingColor(value, expected) { |
| 24 shouldBe("trySettingStrokeStyle(" + value + ")", expected); | 24 shouldBe("trySettingStrokeStyle(" + value + ")", expected); |
| 25 shouldBe("trySettingFillStyle(" + value + ")", expected); | 25 shouldBe("trySettingFillStyle(" + value + ")", expected); |
| 26 shouldBe("trySettingShadowColor(" + value + ")", expected); | 26 shouldBe("trySettingShadowColor(" + value + ")", expected); |
| 27 } | 27 } |
| 28 | 28 |
| 29 function trySettingStrokeColorWithSetter(value) { | |
| 30 ctx.strokeStyle = '#666'; | |
| 31 ctx.setStrokeColor(value); | |
| 32 return ctx.strokeStyle; | |
| 33 } | |
| 34 | |
| 35 function trySettingFillColorWithSetter(value) { | |
| 36 ctx.fillStyle = '#666'; | |
| 37 ctx.setFillColor(value); | |
| 38 return ctx.fillStyle; | |
| 39 } | |
| 40 | |
| 41 function trySettingShadowWithSetter(value) { | |
| 42 ctx.shadowColor = '#666'; | |
| 43 ctx.setShadow(0, 0, 0, value); | |
| 44 return ctx.shadowColor; | |
| 45 } | |
| 46 | |
| 47 function trySettingColorWithSetter(value, expected) { | |
| 48 shouldBe("trySettingStrokeColorWithSetter(" + value + ")", expected); | |
| 49 shouldBe("trySettingFillColorWithSetter(" + value + ")", expected); | |
| 50 shouldBe("trySettingShadowWithSetter(" + value + ")", expected); | |
| 51 } | |
| 52 | |
| 53 function trySettingFillColorRGBA(r, g, b, a) { | |
| 54 ctx.fillStyle = '#666'; | |
| 55 ctx.setFillColor(r, g, b, a); | |
| 56 return ctx.fillStyle; | |
| 57 } | |
| 58 | |
| 59 function trySettingStrokeColorRGBA(r, g, b, a) { | |
| 60 ctx.strokeStyle = '#666'; | |
| 61 ctx.setStrokeColor(r, g, b, a); | |
| 62 return ctx.strokeStyle; | |
| 63 } | |
| 64 | |
| 65 function trySettingShadowRGBA(r, g, b, a) { | |
| 66 ctx.strokeStyle = '#666'; | |
| 67 ctx.setStrokeColor(r, g, b, a); | |
| 68 return ctx.strokeStyle; | |
| 69 } | |
| 70 | |
| 71 function trySettingRGBA(r, g, b, a, expected) { | |
| 72 shouldBe("trySettingFillColorRGBA(" + r + ", " + g + ", " + b + ", " + a + "
)", expected); | |
| 73 shouldBe("trySettingStrokeColorRGBA(" + r + ", " + g + ", " + b + ", " + a +
")", expected); | |
| 74 shouldBe("trySettingShadowRGBA(" + r + ", " + g + ", " + b + ", " + a + ")",
expected); | |
| 75 } | |
| 76 | |
| 77 function trySettingFillColorCMYKA(c, m, y, k, a) { | |
| 78 ctx.fillStyle = '#666'; | |
| 79 ctx.setFillColor(c, m, y, k, a); | |
| 80 return ctx.fillStyle; | |
| 81 } | |
| 82 | |
| 83 function trySettingStrokeColorCMYKA(c, m, y, k, a) { | |
| 84 ctx.strokeStyle = '#666'; | |
| 85 ctx.setStrokeColor(c, m, y, k, a); | |
| 86 return ctx.strokeStyle; | |
| 87 } | |
| 88 | |
| 89 function trySettingShadowCMYKA(c, m, y, k, a) { | |
| 90 ctx.strokeStyle = '#666'; | |
| 91 ctx.setStrokeColor(c, m, y, k, a); | |
| 92 return ctx.strokeStyle; | |
| 93 } | |
| 94 | |
| 95 function trySettingCMYKA(c, m, y, k, a, expected) { | |
| 96 shouldBe("trySettingFillColorCMYKA(" + c + ", " + m + ", " + y + ", " + k +
", " + a + ")", expected); | |
| 97 shouldBe("trySettingStrokeColorCMYKA(" + c + ", " + m + ", " + y + ", " + k
+ ", " + a + ")", expected); | |
| 98 shouldBe("trySettingShadowCMYKA(" + c + ", " + m + ", " + y + ", " + k + ",
" + a + ")", expected); | |
| 99 } | |
| 100 | |
| 101 function trySettingFillColorWithOverrideAlpha(color, alpha) { | |
| 102 ctx.fillStyle = '#666'; | |
| 103 ctx.setFillColor(color, alpha); | |
| 104 return ctx.fillStyle; | |
| 105 } | |
| 106 | |
| 107 function trySettingStrokeColorWithOverrideAlpha(color, alpha) { | |
| 108 ctx.strokeStyle = '#666'; | |
| 109 ctx.setStrokeColor(color, alpha); | |
| 110 return ctx.strokeStyle; | |
| 111 } | |
| 112 | |
| 113 function trySettingShadowWithOverrideAlpha(color, alpha) { | |
| 114 ctx.shadowColor = '#666'; | |
| 115 ctx.setShadow(0, 0, 0, color, alpha); | |
| 116 return ctx.shadowColor; | |
| 117 } | |
| 118 | |
| 119 function trySettingColorWithOverrideAlpha(color, alpha, expected) { | |
| 120 shouldBe("trySettingFillColorWithOverrideAlpha(" + color + ", " + alpha + ")
", expected); | |
| 121 shouldBe("trySettingStrokeColorWithOverrideAlpha(" + color + ", " + alpha +
")", expected); | |
| 122 shouldBe("trySettingShadowWithOverrideAlpha(" + color + ", " + alpha + ")",
expected); | |
| 123 } | |
| 124 | |
| 125 function trySettingFillColorGrayLevel(grayLevel) { | |
| 126 ctx.fillStyle = '#666'; | |
| 127 ctx.setFillColor(grayLevel); | |
| 128 return ctx.fillStyle; | |
| 129 } | |
| 130 | |
| 131 function trySettingStrokeColorGrayLevel(grayLevel) { | |
| 132 ctx.strokeStyle = '#666'; | |
| 133 ctx.setStrokeColor(grayLevel); | |
| 134 return ctx.strokeStyle; | |
| 135 } | |
| 136 | |
| 137 function trySettingShadowGrayLevel(grayLevel) { | |
| 138 ctx.shadowColor = '#666'; | |
| 139 ctx.setShadow(0, 0, 0, grayLevel); | |
| 140 return ctx.shadowColor; | |
| 141 } | |
| 142 | |
| 143 function trySettingGrayLevel(grayLevel, expected) { | |
| 144 shouldBe("trySettingFillColorGrayLevel(" + grayLevel + ")", expected); | |
| 145 shouldBe("trySettingStrokeColorGrayLevel(" + grayLevel + ")", expected); | |
| 146 shouldBe("trySettingShadowGrayLevel(" + grayLevel + ")", expected); | |
| 147 } | |
| 148 | |
| 149 function trySettingFillColorGrayLevelWithAlpha(grayLevel, alpha) { | |
| 150 ctx.fillStyle = '#666'; | |
| 151 ctx.setFillColor(grayLevel, alpha); | |
| 152 return ctx.fillStyle; | |
| 153 } | |
| 154 | |
| 155 function trySettingStrokeColorGrayLevelWithAlpha(grayLevel, alpha) { | |
| 156 ctx.strokeStyle = '#666'; | |
| 157 ctx.setStrokeColor(grayLevel, alpha); | |
| 158 return ctx.strokeStyle; | |
| 159 } | |
| 160 | |
| 161 function trySettingShadowGrayLevelWithAlpha(grayLevel, alpha) { | |
| 162 ctx.shadowColor = '#666'; | |
| 163 ctx.setShadow(0, 0, 0, grayLevel, alpha); | |
| 164 return ctx.shadowColor; | |
| 165 } | |
| 166 | |
| 167 function trySettingGrayLevelWithAlpha(grayLevel, alpha, expected) { | |
| 168 shouldBe("trySettingFillColorGrayLevelWithAlpha(" + grayLevel + ", " + alpha
+ ")", expected); | |
| 169 shouldBe("trySettingStrokeColorGrayLevelWithAlpha(" + grayLevel + ", " + alp
ha + ")", expected); | |
| 170 shouldBe("trySettingShadowGrayLevelWithAlpha(" + grayLevel + ", " + alpha +
")", expected); | |
| 171 } | |
| 172 | |
| 173 function tryClearShadowAfterSettingColor(value) { | |
| 174 ctx.shadowColor = value; | |
| 175 ctx.clearShadow(); | |
| 176 return ctx.shadowColor; | |
| 177 } | |
| 178 | |
| 179 function checkDefaultValue(value) { | 29 function checkDefaultValue(value) { |
| 180 return value; | 30 return value; |
| 181 } | 31 } |
| 182 | 32 |
| 183 shouldBe("checkDefaultValue(ctx.strokeStyle)", "'#000000'"); | 33 shouldBe("checkDefaultValue(ctx.strokeStyle)", "'#000000'"); |
| 184 shouldBe("checkDefaultValue(ctx.fillStyle)", "'#000000'"); | 34 shouldBe("checkDefaultValue(ctx.fillStyle)", "'#000000'"); |
| 185 shouldBe("checkDefaultValue(ctx.shadowColor)", "'rgba(0, 0, 0, 0)'"); | 35 shouldBe("checkDefaultValue(ctx.shadowColor)", "'rgba(0, 0, 0, 0)'"); |
| 186 | 36 |
| 187 trySettingColorWithOverrideAlpha("'red'", 0, "'rgba(255, 0, 0, 0)'"); | |
| 188 trySettingColorWithOverrideAlpha("'black'", 1, "'#000000'"); | |
| 189 | |
| 190 trySettingRGBA(0, 0, 0, 0.0, "'rgba(0, 0, 0, 0)'"); | |
| 191 trySettingRGBA(255, 255, 255, 1.0, "'#ffffff'"); | |
| 192 trySettingRGBA(255, 0, 0, 0.0, "'rgba(255, 0, 0, 0)'"); | |
| 193 trySettingRGBA(255, 0, 0, 0.4, "'rgba(255, 0, 0, 0.4)'"); | |
| 194 | |
| 195 trySettingCMYKA(0, 0, 0, 0, 0.0, "'rgba(255, 255, 255, 0)'"); | |
| 196 trySettingCMYKA(0, 0, 0, 0, 1.0, "'#ffffff'"); | |
| 197 trySettingCMYKA(0, 1, 0, 0, 0.0, "'rgba(255, 0, 255, 0)'"); | |
| 198 trySettingCMYKA(0, 1, 0, 0, 1.0, "'#ff00ff'"); | |
| 199 trySettingCMYKA(0, 0, 0, 1, 0.0, "'rgba(0, 0, 0, 0)'"); | |
| 200 trySettingCMYKA(0, 0, 0, 1, 1.0, "'#000000'"); | |
| 201 | |
| 202 trySettingGrayLevel(0.0, "'#000000'"); | |
| 203 trySettingGrayLevel(0.5, "'#808080'"); | |
| 204 trySettingGrayLevel(1.0, "'#ffffff'"); | |
| 205 | |
| 206 trySettingGrayLevelWithAlpha(0.0, 0.0, "'rgba(0, 0, 0, 0)'"); | |
| 207 trySettingGrayLevelWithAlpha(0.0, 0.4, "'rgba(0, 0, 0, 0.4)'"); | |
| 208 trySettingGrayLevelWithAlpha(0.0, 1.0, "'#000000'"); | |
| 209 trySettingGrayLevelWithAlpha(0.5, 0.0, "'rgba(128, 128, 128, 0)'"); | |
| 210 trySettingGrayLevelWithAlpha(0.5, 0.4, "'rgba(128, 128, 128, 0.4)'"); | |
| 211 trySettingGrayLevelWithAlpha(0.5, 1.0, "'#808080'"); | |
| 212 trySettingGrayLevelWithAlpha(1.0, 0.0, "'rgba(255, 255, 255, 0)'"); | |
| 213 trySettingGrayLevelWithAlpha(1.0, 0.4, "'rgba(255, 255, 255, 0.4)'"); | |
| 214 trySettingGrayLevelWithAlpha(1.0, 1.0, "'#ffffff'"); | |
| 215 | |
| 216 trySettingColor("'transparent'", "'rgba(0, 0, 0, 0)'"); | 37 trySettingColor("'transparent'", "'rgba(0, 0, 0, 0)'"); |
| 217 trySettingColor("'red'", "'#ff0000'"); | 38 trySettingColor("'red'", "'#ff0000'"); |
| 218 trySettingColor("'white'", "'#ffffff'"); | 39 trySettingColor("'white'", "'#ffffff'"); |
| 219 trySettingColor("''", "'#666666'"); | 40 trySettingColor("''", "'#666666'"); |
| 220 trySettingColor("'RGBA(0, 0, 0, 0)'", "'rgba(0, 0, 0, 0)'"); | 41 trySettingColor("'RGBA(0, 0, 0, 0)'", "'rgba(0, 0, 0, 0)'"); |
| 221 trySettingColor("'rgba(0,255,0,1.0)'", "'#00ff00'"); | 42 trySettingColor("'rgba(0,255,0,1.0)'", "'#00ff00'"); |
| 222 trySettingColor("'rgba(1,2,3,0.4)'", "'rgba(1, 2, 3, 0.4)'"); | 43 trySettingColor("'rgba(1,2,3,0.4)'", "'rgba(1, 2, 3, 0.4)'"); |
| 223 trySettingColor("'RgB(1,2,3)'", "'#010203'"); | 44 trySettingColor("'RgB(1,2,3)'", "'#010203'"); |
| 224 trySettingColor("'rGbA(1,2,3,0)'", "'rgba(1, 2, 3, 0)'"); | 45 trySettingColor("'rGbA(1,2,3,0)'", "'rgba(1, 2, 3, 0)'"); |
| 225 trySettingColor("true", "'#666666'"); | 46 trySettingColor("true", "'#666666'"); |
| 226 trySettingColor("false", "'#666666'"); | 47 trySettingColor("false", "'#666666'"); |
| 227 trySettingColor("0", "'#666666'"); | 48 trySettingColor("0", "'#666666'"); |
| 228 trySettingColor("1", "'#666666'"); | 49 trySettingColor("1", "'#666666'"); |
| 229 trySettingColor("-1", "'#666666'"); | 50 trySettingColor("-1", "'#666666'"); |
| 230 trySettingColor("NaN", "'#666666'"); | 51 trySettingColor("NaN", "'#666666'"); |
| 231 trySettingColor("Infinity", "'#666666'"); | 52 trySettingColor("Infinity", "'#666666'"); |
| 232 trySettingColor("null", "'#666666'"); | 53 trySettingColor("null", "'#666666'"); |
| 233 | 54 |
| 234 trySettingColorWithSetter("'transparent'", "'rgba(0, 0, 0, 0)'"); | |
| 235 trySettingColorWithSetter("'red'", "'#ff0000'"); | |
| 236 trySettingColorWithSetter("'white'", "'#ffffff'"); | |
| 237 trySettingColorWithSetter("''", "'#666666'"); | |
| 238 trySettingColorWithSetter("'RGBA(0, 0, 0, 0)'", "'rgba(0, 0, 0, 0)'"); | |
| 239 trySettingColorWithSetter("'rgba(0,255,0,1.0)'", "'#00ff00'"); | |
| 240 trySettingColorWithSetter("'rgba(1,2,3,0.4)'", "'rgba(1, 2, 3, 0.4)'"); | |
| 241 trySettingColorWithSetter("'RgB(1,2,3)'", "'#010203'"); | |
| 242 trySettingColorWithSetter("'rGbA(1,2,3,0)'", "'rgba(1, 2, 3, 0)'"); | |
| 243 | |
| 244 shouldBe("tryClearShadowAfterSettingColor('red')", "'rgba(0, 0, 0, 0)'"); | |
| 245 shouldBe("tryClearShadowAfterSettingColor('rgba(0, 5, 10, 0.4)')", "'rgba(0, 0,
0, 0)'"); | |
| OLD | NEW |