From 3d094ed68950a73073297f039bb4f1f2314567a5 Mon Sep 17 00:00:00 2001 From: David Wendt Date: Thu, 4 Jun 2020 19:31:28 -0400 Subject: [PATCH] Add margins test. This test is also approx'd to 1px due to the same issue where heights are off by one. --- core/tests/regression_tests.rs | 1 + .../swfs/avm1/edittext_margins/output.txt | 25 ++++++++++++++++++ .../tests/swfs/avm1/edittext_margins/test.fla | Bin 0 -> 52224 bytes .../tests/swfs/avm1/edittext_margins/test.swf | Bin 0 -> 12422 bytes 4 files changed, 26 insertions(+) create mode 100644 core/tests/swfs/avm1/edittext_margins/output.txt create mode 100644 core/tests/swfs/avm1/edittext_margins/test.fla create mode 100644 core/tests/swfs/avm1/edittext_margins/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index 17e09cc3e..e40d704f4 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -212,6 +212,7 @@ swf_tests_approx! { (stage_object_properties_swf6, "avm1/stage_object_properties_swf6", 4, 0.051), (movieclip_getbounds, "avm1/movieclip_getbounds", 1, 0.051), (edittext_letter_spacing, "avm1/edittext_letter_spacing", 1, 1.0), + (edittext_margins, "avm1/edittext_margins", 1, 1.0), } /// Wrapper around string slice that makes debug output `{:?}` to print string same way as `{}`. diff --git a/core/tests/swfs/avm1/edittext_margins/output.txt b/core/tests/swfs/avm1/edittext_margins/output.txt new file mode 100644 index 000000000..b58489b85 --- /dev/null +++ b/core/tests/swfs/avm1/edittext_margins/output.txt @@ -0,0 +1,25 @@ +//Creating left aligned indented text w/ wordwrap, multiline & long text +//field.textWidth +370 +//field.textHeight +75 +//Creating center aligned indented text w/ wordwrap, multiline & long text +//field.textWidth +367 +//field.textHeight +75 +//Creating right aligned indented text w/ wordwrap, multiline & long text +//field.textWidth +367 +//field.textHeight +75 +//Creating justified indented text w/ wordwrap, multiline & long text +//field.textWidth +367 +//field.textHeight +75 +//Creating marginless text w/ wordwrap, multiline & long text +//field.textWidth +376 +//field.textHeight +60 diff --git a/core/tests/swfs/avm1/edittext_margins/test.fla b/core/tests/swfs/avm1/edittext_margins/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..f0d1e25d664c46fe93e00fae1caaa3b50578eb3b GIT binary patch literal 52224 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'Xoz17_z?y}bPOYA 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 literal 0 HcmV?d00001