From b8f5a405b973eaecf9f80afa44431902cc30a6a7 Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Thu, 20 Aug 2020 04:56:33 -0700 Subject: [PATCH] tests: Add test for flash.geom.Transform --- core/tests/regression_tests.rs | 1 + core/tests/swfs/avm1/transform/output.txt | 62 ++++++++++++++++++++++ core/tests/swfs/avm1/transform/test.fla | Bin 0 -> 6829 bytes core/tests/swfs/avm1/transform/test.swf | Bin 0 -> 692 bytes 4 files changed, 63 insertions(+) create mode 100644 core/tests/swfs/avm1/transform/output.txt create mode 100644 core/tests/swfs/avm1/transform/test.fla create mode 100644 core/tests/swfs/avm1/transform/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index ee588d376..47454c6fd 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -296,6 +296,7 @@ swf_tests! { (nested_textfields_in_buttons, "avm1/nested_textfields_in_buttons", 1), (conflicting_instance_names, "avm1/conflicting_instance_names", 6), (button_children, "avm1/button_children", 1), + (transform, "avm1/transform", 1), } // TODO: These tests have some inaccuracies currently, so we use approx_eq to test that numeric values are close enough. diff --git a/core/tests/swfs/avm1/transform/output.txt b/core/tests/swfs/avm1/transform/output.txt new file mode 100644 index 000000000..79535eac1 --- /dev/null +++ b/core/tests/swfs/avm1/transform/output.txt @@ -0,0 +1,62 @@ +// t = clip.clip.transform: +[object Object] +// t.matrix: +(a=1, b=0, c=0, d=1, tx=71, ty=60) +// t.colorTransform: +(redMultiplier=0.5, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=64, blueOffset=32, alphaOffset=0) +// t.concatenatedMatrix: +(a=2, b=0, c=0, d=2, tx=352, ty=180) +// t.concatenatedColorTransform: +(redMultiplier=0.5, greenMultiplier=0.5, blueMultiplier=1, alphaMultiplier=1, redOffset=64, greenOffset=32, blueOffset=32, alphaOffset=0) +// t.pixelBounds: +(x=352, y=180, w=400, h=400) + +// t.matrix = new Matrix() +// clip.clip._x: +0 +// clip.clip._x = 50 +// t.matrix: +(a=1, b=0, c=0, d=1, tx=50, ty=0) + +// t2 = new Transform(clip.clip) +// t2.matrix: +(a=1, b=0, c=0, d=1, tx=50, ty=0) +50 +// clip.clip._x = 100 +// t2.matrix: +(a=1, b=0, c=0, d=1, tx=100, ty=0) + +// clip.transform.matrix = new Matrix() +// clip.transform.colorTransform = new ColorTransform(0.5, 1.0, 1.0, 1.0) +// t.concatenatedMatrix: +(a=1, b=0, c=0, d=1, tx=110, ty=10) +// t.concatenatedColorTransform: +(redMultiplier=0.5, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=64, blueOffset=-223, alphaOffset=0) + +// clip.clip.transform = clip2.transform +// t.matrix: +(a=1, b=0, c=0, d=1, tx=10, ty=10) +// t.colorTransform: +(redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) + +// t.matrix = {} +// t.matrix: +(a=1, b=0, c=0, d=1, tx=10, ty=10) +// t.colorTransform = {} +// t.colorTransform: +(redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0) + +// clip.clip.transform = {} +// t.matrix: +(a=1, b=0, c=0, d=1, tx=10, ty=10) +// t.matrix.tx = 999 +// t.matrix.tx: +10 + +// clip.transform == clip.transform: +false +// t.matrix == t.matrix +false +// t.colorTransform == t.colorTransform +false + diff --git a/core/tests/swfs/avm1/transform/test.fla b/core/tests/swfs/avm1/transform/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..3d436ded4c88bb367fc2608946e99f436fc2fd14 GIT binary patch literal 6829 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 literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm1/transform/test.swf b/core/tests/swfs/avm1/transform/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..4846a4d714d2cd0aaaaa114e3be547c05383d969 GIT binary patch literal 692 zcmV;l0!#fvS5ptk2LJ$goQ+jYZxTTmewKyZE&YJDet=?Gt5Q%yDWnI8D2kUJ#6!I! z0cuHrZD3W5F==9A^bc_MFL?3F)r(1Q`V;goco1i2_G9*g)J=GI=6Rp@nP=V^V1h^! zh;ULGulEcU4`js_lO7Bu|4rY7NIn+GtRL z4g-OWP;!3I(nq~X1?KOaKos^1RI+G_**>y1F9*E{ zx4)v@K)>K#pR!I!gdF@$47d&E9Vt2py&OePQ{TP| zx)63ESlB9JDtX-yDwoS1kle?Kf7fcYs(SCO%Tm=I2Rp0!Fib;GkebR+1UX8+KTjPX z9A}M1QX&6yz+%sO`RK|G888$JZ(x8(i4vI2pnS)jsw8}wi42p43oI&d} zZdi#`vWNupQ8p>_0(EuqkQ%;3nY>+r30-z4=)Q~AHUl=n7EaLpC;2*A@GgDjkT&Eh ztw{1B0X|XzK020<014*f8doJX&Tqq(n_nddVe@5SKA+n&4h{&4S3k}4|L;7Rch$XP z(oadbZaQ1k{eUaP#I~)(GT(ywBApu?J?fz^T;rzOFe#PJU+ET&8CSxHJG^q%eJtGg zfM#;Oa%;@;w_TR`@qxLDj2X6wPXWhB*C3yf5jk$eH-G+F`*HT_;rp*Ezyg(?4FQ1