From bc9affb09d5d30ed7568fc9b9301ffdbb4b7fd0f Mon Sep 17 00:00:00 2001 From: David Wendt Date: Sat, 17 Apr 2021 17:44:07 -0400 Subject: [PATCH] tests: Add tests for stage access and basic display object properties --- core/tests/regression_tests.rs | 2 ++ core/tests/swfs/avm2/stage_access/output.txt | 10 ++++++++ core/tests/swfs/avm2/stage_access/test.fla | Bin 0 -> 4959 bytes core/tests/swfs/avm2/stage_access/test.swf | Bin 0 -> 756 bytes .../swfs/avm2/stage_properties/output.txt | 24 ++++++++++++++++++ .../tests/swfs/avm2/stage_properties/test.fla | Bin 0 -> 4365 bytes .../tests/swfs/avm2/stage_properties/test.swf | Bin 0 -> 823 bytes 7 files changed, 36 insertions(+) create mode 100644 core/tests/swfs/avm2/stage_access/output.txt create mode 100644 core/tests/swfs/avm2/stage_access/test.fla create mode 100644 core/tests/swfs/avm2/stage_access/test.swf create mode 100644 core/tests/swfs/avm2/stage_properties/output.txt create mode 100644 core/tests/swfs/avm2/stage_properties/test.fla create mode 100644 core/tests/swfs/avm2/stage_properties/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index 7d0e8da25..bd0d44a83 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -560,6 +560,8 @@ swf_tests! { (as3_op_coerce, "avm2/op_coerce", 1), (as3_domain_memory, "avm2/domain_memory", 1), (as3_movieclip_symbol_constr, "avm2/movieclip_symbol_constr", 1), + (as3_stage_access, "avm2/stage_access", 1), + (as3_stage_properties, "avm2/stage_properties", 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/avm2/stage_access/output.txt b/core/tests/swfs/avm2/stage_access/output.txt new file mode 100644 index 000000000..84a198640 --- /dev/null +++ b/core/tests/swfs/avm2/stage_access/output.txt @@ -0,0 +1,10 @@ +// (in MainTimeline...) +// this.stage +[object Stage] +// this.parent +[object Stage] +// (in Child...) +// this.stage +[object Stage] +// this.parent.parent +[object Stage] diff --git a/core/tests/swfs/avm2/stage_access/test.fla b/core/tests/swfs/avm2/stage_access/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..3f92eea887b26e3fc83ab1954239fe8ab19f80a7 GIT binary patch literal 4959 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 literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm2/stage_properties/test.swf b/core/tests/swfs/avm2/stage_properties/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..c23ae988ddd317e42b172e2c73a427db4f0a6977 GIT binary patch literal 823 zcmV-71IYYCS5qs81pokeoQ0F!ZqrB<$7d!UPm(5SzU-v1-NF(+3yA|Npn|j?=`Jcu z>1w+dAf;+tXF?2a9NE**a)pG1gv3Me3OoUq?A0odu-birbj5x4jHgBQs%R~H&fmXt z&dm56&mN*%2+h7jsEW}_A&C%bk?C~$Lj|FQ{O(+>S^M=x&3C-UFRf>{x=*)n-+Z|1 ze80N3-fW@|MhW6E+Hm-QpJ{^X1@;baqG_6e;{JlHV)cry;}zI|x?_2wnU zfYB6}Gyw(zdtQ~{CVNi{d*7oeEC|}G322S<@cJL0Ioc$OVdE-1rNnm&$E}; zY)TJcBQmOmd<2yUXMdDt1=?u~r_Y1z zit4NiEvya%hu#Ty#1%1P{+2%wumBJAjbY#lzO=gBZuwo_4t9GzkGCB^;BC3HupK_{ zg>8GZbG;pX!qzbGhddB258KStOud?{XeKr5p$V~9Mh9_iG8~12WmpTECSt&FHnbZ_uK?+^Lq|^*x zNs6R`DXCKc4JpzJrlp<%Sdk*5;EdE+fOAsh6wF9H3-GiQc?Gjl7XZ#nQB*J|bqU~t z6lDdYJsSYeN?|IPm%0M*oD@|BqYs&bT95?P!W>)URkT?=xG=#rH0~wVi)2E;n;=lN z#j(Xvr(|`?R>!b9rq!ufovPI#a6dxx>gwZz`lJde-