From 3c9a43ea72d614e93fcaf8f0a5033f34d68e3024 Mon Sep 17 00:00:00 2001 From: David Wendt Date: Mon, 8 Jun 2020 18:40:21 -0400 Subject: [PATCH] Add a regression test for newlines. This test includes tests for HTML newlines, which causes the XML parser in Ruffle to throw errors. Hence why it's currently ignored. --- core/tests/regression_tests.rs | 1 + .../swfs/avm1/edittext_newlines/output.txt | 30 ++++++++++++++++++ .../swfs/avm1/edittext_newlines/test.fla | Bin 0 -> 55296 bytes .../swfs/avm1/edittext_newlines/test.swf | Bin 0 -> 12356 bytes 4 files changed, 31 insertions(+) create mode 100644 core/tests/swfs/avm1/edittext_newlines/output.txt create mode 100644 core/tests/swfs/avm1/edittext_newlines/test.fla create mode 100644 core/tests/swfs/avm1/edittext_newlines/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index 842cc9c0d..95b6768d4 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -201,6 +201,7 @@ swf_tests! { (edittext_html_defaults, "avm1/edittext_html_defaults", 1), (edittext_align, "avm1/edittext_align", 1), (edittext_leading, "avm1/edittext_leading", 1), + #[ignore] (edittext_newlines, "avm1/edittext_newlines", 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/edittext_newlines/output.txt b/core/tests/swfs/avm1/edittext_newlines/output.txt new file mode 100644 index 000000000..dfd3000c5 --- /dev/null +++ b/core/tests/swfs/avm1/edittext_newlines/output.txt @@ -0,0 +1,30 @@ +//Sample text with wordwrap +//field.textWidth +163 +//field.textHeight +52 +//Sample text without wordwrap +//field.textWidth +380 +//field.textHeight +18 +//Newline-having text with wordwrap +//field.textWidth +163 +//field.textHeight +89 +//Newline-having text without wordwrap +//field.textWidth +251 +//field.textHeight +52 +//Newline-having HTML with wordwrap +//field.textWidth +164 +//field.textHeight +107 +//Newline-having HTML without wordwrap +//field.textWidth +741 +//field.textHeight +18 diff --git a/core/tests/swfs/avm1/edittext_newlines/test.fla b/core/tests/swfs/avm1/edittext_newlines/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..58b6b35fa844988bd9dd26d4c51d63ff1d548ac3 GIT binary patch literal 55296 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 ZTa?;n92SGb-np@#RsSo0e){_V{{bM)i|haZ literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm1/edittext_newlines/test.swf b/core/tests/swfs/avm1/edittext_newlines/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..45f22f9f4e4b9b3cc814a317e9d4e2b65ddb1a55 GIT binary patch literal 12356 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 literal 0 HcmV?d00001