Skip to content

Commit 01b5b2c

Browse files
committedFeb 21, 2019
Add test coverage for enumerateLoadedClasses()
1 parent 2c28b22 commit 01b5b2c

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
 

‎test/basics.m

+40
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@
4343
TESTENTRY (methods_with_weird_names_can_be_invoked)
4444
TESTENTRY (method_call_preserves_value)
4545
TESTENTRY (objects_can_be_serialized_to_json)
46+
47+
TESTGROUP_BEGIN ("EnumerateLoadedClasses")
48+
TESTENTRY (classes_can_be_enumerated_without_filtering)
49+
TESTENTRY (classes_can_be_enumerated_with_filtering)
50+
TESTGROUP_END ()
51+
4652
TESTENTRY (existing_instances_can_be_discovered)
4753
TESTENTRY (function_can_be_scheduled_on_a_dispatch_queue)
4854
TESTENTRY (performance)
@@ -789,6 +795,40 @@ @interface FridaTest4 : FridaTest3
789795
@implementation FridaTest4
790796
@end
791797

798+
TESTCASE (classes_can_be_enumerated_without_filtering)
799+
{
800+
COMPILE_AND_LOAD_SCRIPT (
801+
"var classes = ObjC.enumerateLoadedClassesSync();"
802+
"var owners = Object.keys(classes);"
803+
"send(owners.length > 1);"
804+
"var runnerPath = Process.enumerateModulesSync()[0].path;"
805+
"send(classes[runnerPath] !== undefined);"
806+
"send(classes[runnerPath].indexOf('FridaTest3') !== -1)");
807+
EXPECT_SEND_MESSAGE_WITH ("true");
808+
EXPECT_SEND_MESSAGE_WITH ("true");
809+
EXPECT_SEND_MESSAGE_WITH ("true");
810+
EXPECT_NO_MESSAGES ();
811+
}
812+
813+
TESTCASE (classes_can_be_enumerated_with_filtering)
814+
{
815+
COMPILE_AND_LOAD_SCRIPT (
816+
"var runnerPath = Process.enumerateModulesSync()[0].path;"
817+
"var runnerModules = new ModuleMap(isRunnerModule);"
818+
"function isRunnerModule(m) {"
819+
"return m.path === runnerPath;"
820+
"}"
821+
"var classes = ObjC.enumerateLoadedClassesSync({"
822+
"ownedBy: runnerModules"
823+
"});"
824+
"var owners = Object.keys(classes);"
825+
"send(owners.length === 1);"
826+
"send(owners[0] === runnerPath);");
827+
EXPECT_SEND_MESSAGE_WITH ("true");
828+
EXPECT_SEND_MESSAGE_WITH ("true");
829+
EXPECT_NO_MESSAGES ();
830+
}
831+
792832
TESTCASE (existing_instances_can_be_discovered)
793833
{
794834
if (!g_test_slow ())

0 commit comments

Comments
 (0)
Please sign in to comment.