| Test the parsing of the color() function. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| |
| TEST: Basic sRGB white --> color(srgb 1 1 1) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 1)' |
| |
| TEST: White with lots of space --> color( srgb 1 1 1 ) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 1)' |
| |
| TEST: sRGB color --> color(srgb 0.25 0.5 0.75) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 0.25 0.5 0.75)' |
| |
| TEST: Different case for sRGB --> color(SrGb 0.25 0.5 0.75) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 0.25 0.5 0.75)' |
| |
| TEST: sRGB color with unnecessary decimals --> color(srgb 1.00000 0.500000 0.20) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 0.5 0.2)' |
| |
| TEST: sRGB white with 0.5 alpha --> color(srgb 1 1 1 / 0.5) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 1 / 0.5)' |
| |
| TEST: sRGB white with 0 alpha --> color(srgb 1 1 1 / 0) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 1 / 0)' |
| |
| TEST: sRGB white with 50% alpha --> color(srgb 1 1 1 / 50%) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 1 / 0.5)' |
| |
| TEST: sRGB white with 0% alpha --> color(srgb 1 1 1 / 0%) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 1 / 0)' |
| |
| TEST: One missing component is 0 --> color(srgb 1 1) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 0)' |
| |
| TEST: Two missing components are 0 --> color(srgb 1) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 0 0)' |
| |
| TEST: All components missing --> color(srgb) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 0 0 0)' |
| |
| TEST: Display P3 color --> color(display-p3 0.6 0.7 0.8) |
| PASS declaration.getPropertyValue('color') is 'color(display-p3 0.6 0.7 0.8)' |
| |
| TEST: Different case for Display P3 --> color(dIspLaY-P3 0.6 0.7 0.8) |
| PASS declaration.getPropertyValue('color') is 'color(display-p3 0.6 0.7 0.8)' |
| |
| |
| Fallback tests. |
| |
| |
| TEST: Unknown color space should fallback --> color(unknown 1 2 3, red) |
| FAIL declaration.getPropertyValue('color') should be color(unknown 1 2 3, red). Was . |
| |
| |
| Clamping tests. |
| |
| |
| TEST: sRGB color with negative component should not clamp to 0 --> color(srgb -0.25 0.5 0.75) |
| PASS declaration.getPropertyValue('color') is 'color(srgb -0.25 0.5 0.75)' |
| |
| TEST: sRGB color with component > 1 should not clamp --> color(srgb 0.25 1.5 0.75) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 0.25 1.5 0.75)' |
| |
| TEST: Display P3 color with negative component should not clamp to 0 --> color(display-p3 0.5 -199 0.75) |
| PASS declaration.getPropertyValue('color') is 'color(display-p3 0.5 -199 0.75)' |
| |
| TEST: Display P3 color with component > 1 should not clamp --> color(display-p3 184 1.00001 2347329746587) |
| PASS declaration.getPropertyValue('color') is 'color(display-p3 184 1.00001 2347329700000)' |
| |
| TEST: Alpha > 1 should clamp --> color(srgb 0.1 0.2 0.3 / 1.9) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 0.1 0.2 0.3)' |
| |
| TEST: Negative alpha should clamp --> color(srgb 1 1 1 / -0.2) |
| PASS declaration.getPropertyValue('color') is 'color(srgb 1 1 1 / 0)' |
| |
| |
| Invalid property value tests. |
| |
| |
| TEST: Empty --> color() |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: Bad color space --> color(banana 1 1 1) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: Bad Display P3 color space --> color(displayp3 1 1 1) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: No color space --> color(1 1 1) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: Too many parameters --> color(srgb 1 1 1 1) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: Way too many parameters --> color(srgb 1 1 1 1 1) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: Bad parameters --> color(srgb 1 eggs 1) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: Bad alpha --> color(srgb 1 1 1 / bacon) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| TEST: Junk after alpha --> color(srgb 1 1 1 / 1 cucumber) |
| PASS declaration.getPropertyValue('color') is '' |
| |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |