This test exercises the CSSMatrix interface

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


CSSMatrix constructors
PASS default constructor
PASS object constructor
PASS string constructor

Test toString
PASS a[0] is "matrix"
PASS parseFloat(a2[0]) is 1
PASS parseFloat(a2[1]) is 0
PASS parseFloat(a2[2]) is 0
PASS parseFloat(a2[3]) is 1
PASS parseFloat(a2[4]) is 0
PASS parseFloat(a3[0]) is 0
PASS a3[1] is ""

Test bad input to string constructor
PASS new WebKitCSSMatrix("banana") threw exception Error: SYNTAX_ERR: DOM Exception 12.

Test attributes on default matrix
PASS m.a is 1
PASS m.b is 0
PASS m.c is 0
PASS m.d is 1
PASS m.e is 0
PASS m.f is 0

Test attributes on custom matrix
PASS m.a is 11
PASS m.b is 12
PASS m.c is 21
PASS m.d is 22
PASS m.e is 41
PASS m.f is 42

Test setMatrixValue - set to matrix()
PASS m.a is 11
PASS m.b is 12
PASS m.c is 21
PASS m.d is 22
PASS m.e is 41
PASS m.f is 42

Test setMatrixValue - set to translate(10px, 20px) scale(2, 3)
PASS m.a is 2
PASS m.b is 0
PASS m.c is 0
PASS m.d is 3
PASS m.e is 10
PASS m.f is 20

Test throwing exception from setMatrixValue
PASS m.setMatrixValue("banana") threw exception Error: SYNTAX_ERR: DOM Exception 12.
PASS m.setMatrixValue("translate(10em, 20%)") threw exception Error: SYNTAX_ERR: DOM Exception 12.
PASS m.setMatrixValue("translate(10px, 20px) scale()") threw exception Error: SYNTAX_ERR: DOM Exception 12.

Test multiply
PASS parseFloat(m3.a) is 25
PASS parseFloat(m3.b) is 28
PASS parseFloat(m3.c) is 57
PASS parseFloat(m3.d) is 64
PASS parseFloat(m3.e) is 100
PASS parseFloat(m3.f) is 112

Test multiply with missing argument
PASS m2 is null

Test immutability of multiply
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 2
PASS parseFloat(m.c) is 3
PASS parseFloat(m.d) is 4
PASS parseFloat(m.e) is 5
PASS parseFloat(m.f) is 6

Test inverse
PASS parseFloat(m2.a) is 0.5
PASS parseFloat(m2.b) is 0
PASS parseFloat(m2.c) is 0
PASS parseFloat(m2.d) is 0.5
PASS parseFloat(m2.e) is -5
PASS parseFloat(m2.f) is -10

Test immutability of inverse
PASS parseFloat(m.a) is 2
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 2
PASS parseFloat(m.e) is 10
PASS parseFloat(m.f) is 20

Test throwing exception from inverse
PASS m.inverse() threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.

Test translate
PASS m2.a is 1
PASS m2.b is 0
PASS m2.c is 0
PASS m2.d is 1
PASS m2.e is 10
PASS m2.f is 20

Test immutability of translate
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 1
PASS parseFloat(m.e) is 0
PASS parseFloat(m.f) is 0

Test scale
PASS m2.a is 10
PASS m2.b is 0
PASS m2.c is 0
PASS m2.d is 20
PASS m2.e is 0
PASS m2.f is 0

Test immutability of scale
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 1
PASS parseFloat(m.e) is 0
PASS parseFloat(m.f) is 0

Test rotate
PASS parseFloat(m2.a.toPrecision(6)) is 0.984808
PASS parseFloat(m2.b.toPrecision(6)) is 0.173648
PASS parseFloat(m2.c.toPrecision(6)) is -0.173648
PASS parseFloat(m2.d.toPrecision(6)) is 0.984808
PASS m.e is 0
PASS m.f is 0

Test immutability of rotate
PASS parseFloat(m.a) is 1
PASS parseFloat(m.b) is 0
PASS parseFloat(m.c) is 0
PASS parseFloat(m.d) is 1
PASS parseFloat(m.e) is 0
PASS parseFloat(m.f) is 0

PASS successfullyParsed is true

TEST COMPLETE

