blob: 32fc82b1c845fff95178b08aeb263b0b19b70865 [file] [log] [blame]
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