From c86daed707d99f782f49c40b2226a2d63687c0da Mon Sep 17 00:00:00 2001 From: Kamil Jarosz Date: Thu, 14 Mar 2024 22:25:33 +0100 Subject: [PATCH] tests: Add tab_ordering_children test This test verifies the behavior of `tabChildren`: how it affects automatic and custom tabbing, and how it behaves in a hierarchy. --- .../avm1/tab_ordering_children/input.json | 78 +++++++ .../avm1/tab_ordering_children/output.txt | 208 ++++++++++++++++++ .../swfs/avm1/tab_ordering_children/test.as | 97 ++++++++ .../swfs/avm1/tab_ordering_children/test.swf | Bin 0 -> 12004 bytes .../swfs/avm1/tab_ordering_children/test.toml | 1 + 5 files changed, 384 insertions(+) create mode 100644 tests/tests/swfs/avm1/tab_ordering_children/input.json create mode 100644 tests/tests/swfs/avm1/tab_ordering_children/output.txt create mode 100644 tests/tests/swfs/avm1/tab_ordering_children/test.as create mode 100644 tests/tests/swfs/avm1/tab_ordering_children/test.swf create mode 100644 tests/tests/swfs/avm1/tab_ordering_children/test.toml diff --git a/tests/tests/swfs/avm1/tab_ordering_children/input.json b/tests/tests/swfs/avm1/tab_ordering_children/input.json new file mode 100644 index 000000000000..a43f4b53d8be --- /dev/null +++ b/tests/tests/swfs/avm1/tab_ordering_children/input.json @@ -0,0 +1,78 @@ +[ + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 27 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 }, + { "type": "KeyDown", "key_code": 9 } +] diff --git a/tests/tests/swfs/avm1/tab_ordering_children/output.txt b/tests/tests/swfs/avm1/tab_ordering_children/output.txt new file mode 100644 index 000000000000..dee05bc76216 --- /dev/null +++ b/tests/tests/swfs/avm1/tab_ordering_children/output.txt @@ -0,0 +1,208 @@ +Focus changed + old: null + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.clipOuter.text3 +Tab pressed +Focus changed + old: _level0.clipOuter.text3 + new: _level0.clipOuter.text4 +Tab pressed +Focus changed + old: _level0.clipOuter.text4 + new: _level0.clipOuter.clipInner.text5 +Tab pressed +Focus changed + old: _level0.clipOuter.clipInner.text5 + new: _level0.clipOuter.clipInner.text6 +Tab pressed +Focus changed + old: _level0.clipOuter.clipInner.text6 + new: _level0.text1 +Escape pressed, moving to stage 1 +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Escape pressed, moving to stage 2 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.text1 +Escape pressed, moving to stage 3 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.clipOuter.text3 +Tab pressed +Focus changed + old: _level0.clipOuter.text3 + new: _level0.clipOuter.text4 +Tab pressed +Focus changed + old: _level0.clipOuter.text4 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.clipOuter.text3 +Escape pressed, moving to stage 4 +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Escape pressed, moving to stage 5 +Tab pressed +Focus changed + old: _level0.clipOuter.text3 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Escape pressed, moving to stage 6 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.clipOuter +Tab pressed +Focus changed + old: _level0.clipOuter + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.clipOuter +Tab pressed +Focus changed + old: _level0.clipOuter + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Escape pressed, moving to stage 7 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.clipOuter +Tab pressed +Focus changed + old: _level0.clipOuter + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.clipOuter +Tab pressed +Focus changed + old: _level0.clipOuter + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.text2 +Escape pressed, moving to stage 8 +Tab pressed +Focus changed + old: _level0.text2 + new: _level0.text1 +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Escape pressed, moving to stage 9 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.clipOuter.text3 +Tab pressed +Focus changed + old: _level0.clipOuter.text3 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.clipOuter.text3 +Tab pressed +Focus changed + old: _level0.clipOuter.text3 + new: _level0.text1 +Tab pressed +Focus changed + old: _level0.text1 + new: _level0.clipOuter.text3 +Tab pressed +Focus changed + old: _level0.clipOuter.text3 + new: _level0.text1 +Escape pressed, moving to stage 10 +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Tab pressed +Tab pressed diff --git a/tests/tests/swfs/avm1/tab_ordering_children/test.as b/tests/tests/swfs/avm1/tab_ordering_children/test.as new file mode 100644 index 000000000000..5d3b0d6a67c7 --- /dev/null +++ b/tests/tests/swfs/avm1/tab_ordering_children/test.as @@ -0,0 +1,97 @@ +var listener = new Object(); +listener.onSetFocus = function(oldFocus, newFocus) { + if (newFocus) { + trace("Focus changed"); + trace(" old: " + oldFocus); + trace(" new: " + newFocus); + } +}; +Selection.addListener(listener); + +var testStage = 0; +function setUpStage(stage) { + if (stage == 0) { + // already set up + } + if (stage == 1) { + _root.tabChildren = false; + clipOuter.tabChildren = true; + clipOuter.clipInner.tabChildren = true; + } + if (stage == 2) { + _root.tabChildren = true; + clipOuter.tabChildren = false; + clipOuter.clipInner.tabChildren = true; + } + if (stage == 3) { + _root.tabChildren = true; + clipOuter.tabChildren = true; + clipOuter.clipInner.tabChildren = false; + } + if (stage == 4) { + _root.tabChildren = false; + clipOuter.tabChildren = true; + clipOuter.clipInner.tabChildren = false; + } + if (stage == 5) { + _root.tabChildren = true; + clipOuter.tabChildren = false; + clipOuter.tabEnabled = false; + clipOuter.clipInner.tabChildren = true; + } + if (stage == 6) { + _root.tabChildren = true; + clipOuter.tabChildren = false; + clipOuter.tabEnabled = true; + clipOuter.clipInner.tabChildren = true; + } + if (stage == 7) { + _root.tabChildren = true; + _root.tabEnabled = false; + clipOuter.tabChildren = false; + clipOuter.clipInner.tabChildren = true; + } + if (stage == 8) { + _root.tabChildren = true; + _root.tabEnabled = undefined; + clipOuter.tabChildren = false; + clipOuter.tabEnabled = undefined; + clipOuter.clipInner.tabChildren = true; + + text1.tabIndex = 3; + clipOuter.text3.tabIndex = 1; + clipOuter.clipInner.text5.tabIndex = 2; + } + if (stage == 9) { + _root.tabChildren = true; + clipOuter.tabChildren = true; + clipOuter.clipInner.tabChildren = false; + + text1.tabIndex = 3; + clipOuter.text3.tabIndex = 1; + clipOuter.clipInner.text5.tabIndex = 2; + } + if (stage == 10) { + _root.tabChildren = false; + clipOuter.tabChildren = false; + clipOuter.clipInner.tabChildren = true; + + text1.tabIndex = 3; + clipOuter.text3.tabIndex = 1; + clipOuter.clipInner.text5.tabIndex = 2; + } +} + +var listener = new Object(); +listener.onKeyDown = function() { + if (Key.getCode() == 27) { + testStage += 1; + trace("Escape pressed, moving to stage " + testStage); + setUpStage(testStage); + } else if (Key.getCode() == 9) { + trace("Tab pressed"); + } +}; +Key.addListener(listener); + +Selection.setFocus(text1); diff --git a/tests/tests/swfs/avm1/tab_ordering_children/test.swf b/tests/tests/swfs/avm1/tab_ordering_children/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..fe78c733fb3e6a1983cdaac062c5d676cb8bcb95 GIT binary patch literal 12004 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 CoVM-& literal 0 HcmV?d00001 diff --git a/tests/tests/swfs/avm1/tab_ordering_children/test.toml b/tests/tests/swfs/avm1/tab_ordering_children/test.toml new file mode 100644 index 000000000000..cf6123969a1d --- /dev/null +++ b/tests/tests/swfs/avm1/tab_ordering_children/test.toml @@ -0,0 +1 @@ +num_ticks = 1