Skip to content

Commit cd81439

Browse files
committed
Add test for target click scripts
1 parent 115bcb5 commit cd81439

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

test/engine/engine_test.cpp

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -994,6 +994,87 @@ TEST(EngineTest, Broadcasts)
994994
ASSERT_EQ(engine.findBroadcastById("c"), 2);
995995
}
996996

997+
TEST(EngineTest, TargetClickScripts)
998+
{
999+
Project p("target_click_scripts.sb3");
1000+
ASSERT_TRUE(p.load());
1001+
p.run();
1002+
1003+
auto engine = p.engine();
1004+
1005+
Stage *stage = engine->stage();
1006+
ASSERT_TRUE(stage);
1007+
1008+
// Initial state
1009+
ASSERT_VAR(stage, "1");
1010+
ASSERT_EQ(GET_VAR(stage, "1")->value().toInt(), 0);
1011+
ASSERT_VAR(stage, "2");
1012+
ASSERT_EQ(GET_VAR(stage, "2")->value().toInt(), 0);
1013+
ASSERT_VAR(stage, "stage");
1014+
ASSERT_EQ(GET_VAR(stage, "stage")->value().toInt(), 0);
1015+
1016+
// Sprite1
1017+
Target *sprite = engine->targetAt(engine->findTarget("Sprite1"));
1018+
ASSERT_TRUE(sprite);
1019+
engine->clickTarget(sprite);
1020+
engine->step();
1021+
ASSERT_VAR(stage, "1");
1022+
ASSERT_EQ(GET_VAR(stage, "1")->value().toInt(), 1);
1023+
ASSERT_VAR(stage, "2");
1024+
ASSERT_EQ(GET_VAR(stage, "2")->value().toInt(), 0);
1025+
ASSERT_VAR(stage, "stage");
1026+
ASSERT_EQ(GET_VAR(stage, "stage")->value().toInt(), 0);
1027+
1028+
engine->clickTarget(sprite);
1029+
engine->step();
1030+
ASSERT_VAR(stage, "1");
1031+
ASSERT_EQ(GET_VAR(stage, "1")->value().toInt(), 2);
1032+
ASSERT_VAR(stage, "2");
1033+
ASSERT_EQ(GET_VAR(stage, "2")->value().toInt(), 0);
1034+
ASSERT_VAR(stage, "stage");
1035+
ASSERT_EQ(GET_VAR(stage, "stage")->value().toInt(), 0);
1036+
1037+
// Sprite2
1038+
sprite = engine->targetAt(engine->findTarget("Sprite2"));
1039+
ASSERT_TRUE(sprite);
1040+
engine->clickTarget(sprite);
1041+
engine->step();
1042+
ASSERT_VAR(stage, "1");
1043+
ASSERT_EQ(GET_VAR(stage, "1")->value().toInt(), 2);
1044+
ASSERT_VAR(stage, "2");
1045+
ASSERT_EQ(GET_VAR(stage, "2")->value().toInt(), 1);
1046+
ASSERT_VAR(stage, "stage");
1047+
ASSERT_EQ(GET_VAR(stage, "stage")->value().toInt(), 0);
1048+
1049+
engine->clickTarget(sprite);
1050+
engine->step();
1051+
ASSERT_VAR(stage, "1");
1052+
ASSERT_EQ(GET_VAR(stage, "1")->value().toInt(), 2);
1053+
ASSERT_VAR(stage, "2");
1054+
ASSERT_EQ(GET_VAR(stage, "2")->value().toInt(), 2);
1055+
ASSERT_VAR(stage, "stage");
1056+
ASSERT_EQ(GET_VAR(stage, "stage")->value().toInt(), 0);
1057+
1058+
// Stage
1059+
engine->clickTarget(stage);
1060+
engine->step();
1061+
ASSERT_VAR(stage, "1");
1062+
ASSERT_EQ(GET_VAR(stage, "1")->value().toInt(), 2);
1063+
ASSERT_VAR(stage, "2");
1064+
ASSERT_EQ(GET_VAR(stage, "2")->value().toInt(), 2);
1065+
ASSERT_VAR(stage, "stage");
1066+
ASSERT_EQ(GET_VAR(stage, "stage")->value().toInt(), 1);
1067+
1068+
engine->clickTarget(stage);
1069+
engine->step();
1070+
ASSERT_VAR(stage, "1");
1071+
ASSERT_EQ(GET_VAR(stage, "1")->value().toInt(), 2);
1072+
ASSERT_VAR(stage, "2");
1073+
ASSERT_EQ(GET_VAR(stage, "2")->value().toInt(), 2);
1074+
ASSERT_VAR(stage, "stage");
1075+
ASSERT_EQ(GET_VAR(stage, "stage")->value().toInt(), 2);
1076+
}
1077+
9971078
TEST(EngineTest, Targets)
9981079
{
9991080
Engine engine;

test/target_click_scripts.sb3

1.53 KB
Binary file not shown.

0 commit comments

Comments
 (0)