diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/output.txt b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/output.txt new file mode 100644 index 000000000..d6a1cec3d --- /dev/null +++ b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/output.txt @@ -0,0 +1,8 @@ +getQualifiedDefinitionNames() is Vector.: true +getQualifiedDefinitionNames().fixed: false +getQualifiedDefinitionNames().length: 5 +getQualifiedDefinitionNames() contains Test: true +getQualifiedDefinitionNames() contains VisibleFunction: true +getQualifiedDefinitionNames() contains VisibleNamespace: true +getQualifiedDefinitionNames() contains foo.bar::Baz: true +getQualifiedDefinitionNames() contains foo.bar::Internal: true diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/Test.as b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/Test.as new file mode 100644 index 000000000..a130d1480 --- /dev/null +++ b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/Test.as @@ -0,0 +1,36 @@ +package { + public class Test {} +} + +import flash.system.ApplicationDomain; +import foo.bar.Baz; + +/* This should not show up in the output. */ +class NonVisible { } + +function check_contains(def_names: Vector., name: String) : void { + trace("getQualifiedDefinitionNames() contains " + name + ":", def_names.indexOf(name) != -1); +} + +/* Use these to make sure they're included in the SWF. */ +Baz; +VisibleFunction; +VisibleNamespace; + +var def_names: * = ApplicationDomain.currentDomain.getQualifiedDefinitionNames(); + +trace("getQualifiedDefinitionNames() is Vector.:", def_names is Vector.); +trace("getQualifiedDefinitionNames().fixed:", def_names.fixed); +trace("getQualifiedDefinitionNames().length:", def_names.length); + +/* NOTE: The order of the names should not matter, so we don't test it. */ +check_contains(def_names, "Test"); +check_contains(def_names, "VisibleFunction"); +check_contains(def_names, "VisibleNamespace"); +check_contains(def_names, "foo.bar::Baz"); +check_contains(def_names, "foo.bar::Internal"); + +/* + NOTE: 'getQualifiedDefinitionNames' is able to raise a 'SecurityError', + however we do not currently test that functionality. +*/ diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/VisibleFunction.as b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/VisibleFunction.as new file mode 100644 index 000000000..8e370832f --- /dev/null +++ b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/VisibleFunction.as @@ -0,0 +1,3 @@ +package { + public function VisibleFunction() : void {} +} diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/VisibleNamespace.as b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/VisibleNamespace.as new file mode 100644 index 000000000..db53438d2 --- /dev/null +++ b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/VisibleNamespace.as @@ -0,0 +1,3 @@ +package { + public namespace VisibleNamespace; +} diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/foo/bar/Baz.as b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/foo/bar/Baz.as new file mode 100644 index 000000000..dfda8644a --- /dev/null +++ b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/foo/bar/Baz.as @@ -0,0 +1,6 @@ +package foo.bar { + public class Baz { + /* Dummy variable to make sure 'foo.bar::Internal' is included in the SWF. */ + private static var dummy: Internal; + } +} diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/foo/bar/Internal.as b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/foo/bar/Internal.as new file mode 100644 index 000000000..08b738e54 --- /dev/null +++ b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/src/foo/bar/Internal.as @@ -0,0 +1,5 @@ +package foo.bar { + /* NOTE: This will be included in 'getQualifiedDefinitionNames()'. despite not being public. */ + internal class Internal { + } +} diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/test.swf b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/test.swf new file mode 100644 index 000000000..4fbab4125 Binary files /dev/null and b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/test.swf differ diff --git a/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/test.toml b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/test.toml new file mode 100644 index 000000000..dbee897f5 --- /dev/null +++ b/tests/tests/swfs/avm2/applicationdomain_getqualifieddefinitionnames/test.toml @@ -0,0 +1 @@ +num_frames = 1