diff options
| author | Radio <radiohotline@disroot.org> | 2026-06-04 15:15:11 +0300 |
|---|---|---|
| committer | Radio <radiohotline@disroot.org> | 2026-06-04 15:15:11 +0300 |
| commit | 9d74b49ab62908d4acf53dde444413886b8b28e5 (patch) | |
| tree | 0cb785267ea7e239b19d88684c0d64b9bd5d52f0 /addons/escoria-core/_test | |
| parent | 2c85d452ad02a5f89cd43bad7f9de31d0e4fa0c1 (diff) | |
escoria setup and old branch archives
Diffstat (limited to 'addons/escoria-core/_test')
10 files changed, 402 insertions, 0 deletions
diff --git a/addons/escoria-core/_test/deprecated/test_esc_compiler.gd b/addons/escoria-core/_test/deprecated/test_esc_compiler.gd new file mode 100644 index 0000000..28bf439 --- /dev/null +++ b/addons/escoria-core/_test/deprecated/test_esc_compiler.gd @@ -0,0 +1,300 @@ +extends Control + + +func _test_basic() -> bool: + var esc = """ +:test +# first group +> + say player "Test" + # Second group + > [test] + say player "Test2 BLANK" + say player "Test3" [test2] + # Third group + > + + say player "Test4" +# Fourth group +> + say player "Test5" + say player "Test 6" + say player TEST:"Test 7" + """ + var script = escoria.esc_compiler.compile(esc) + + var subject = script + assert(subject is ESCScript) + + subject = script.events.keys() + assert(subject.size() == 1) + assert(subject[0] == "test") + + subject = script.events["test"].statements + assert(subject.size() == 2) + + subject = script.events["test"].statements[0] + assert(subject is ESCGroup) + assert(subject.statements.size() == 4) + + subject = script.events["test"].statements[0].statements[0] + assert(subject is ESCCommand) + assert(subject.name == "say") + assert(subject.parameters.size() == 2) + assert(subject.parameters[0] == "player") + assert(subject.parameters[1] == '"Test"') + + subject = script.events["test"].statements[0].statements[1] + assert(subject is ESCGroup) + assert(subject.conditions.size() == 1) + assert(subject.conditions[0] is ESCCondition) + assert(subject.conditions[0].flag == "test") + + subject = script.events["test"].statements[0].statements[1].statements[0] + assert(subject is ESCCommand) + assert(subject.name == "say") + assert(subject.parameters.size() == 2) + assert(subject.parameters[0] == "player") + assert(subject.parameters[1] == '"Test2 BLANK"') + + subject = script.events["test"].statements[0].statements[2] + assert(subject is ESCCommand) + assert(subject.name == "say") + assert(subject.parameters.size() == 2) + assert(subject.parameters[0] == "player") + assert(subject.parameters[1] == '"Test3"') + assert(subject.conditions.size() == 1) + assert(subject.conditions[0].flag == "test2") + + subject = script.events["test"].statements[0].statements[3] + assert(subject is ESCGroup) + assert(subject.statements.size() == 1) + + subject = script.events["test"].statements[1] + assert(subject is ESCGroup) + assert(subject.statements.size() == 3) + + subject = script.events["test"].statements[1].statements[1] + assert(subject is ESCCommand) + assert(subject.name == "say") + assert(subject.parameters[1] == '"Test 6"') + + subject = script.events["test"].statements[1].statements[2] + assert(subject is ESCCommand) + assert(subject.name == "say") + assert(subject.parameters[1] == "TEST:\"Test 7\"") + + return true + + +func _test_conditions() -> bool: + var esc = """ +:test +say player "Test" [flag] +say player "Test" [flag1,flag2] +say player "Test" [!flag] +say player "Test" [i/flag] +say player "Test" [i/flag,flag] +say player "Test" [i/flag,flag,!flag2] +say player "Test" [eq flag 3] +say player "Test" [eq flag 3,gt flag 5] +say player "Test" [!eq flag 3] + """ + var script = escoria.esc_compiler.compile(esc) + + var subject = script.events["test"].statements[0] + assert(subject is ESCCommand) + assert(subject.conditions.size() == 1) + + subject = script.events["test"].statements[0].conditions[0] + assert(subject.flag == "flag") + assert(not subject.negated) + assert(not subject.inventory) + assert(subject.comparison == ESCCondition.COMPARISON_NONE) + + subject = script.events["test"].statements[1].conditions + assert(subject.size() == 2) + assert(subject[0].flag == "flag1") + assert(subject[1].flag == "flag2") + + subject = script.events["test"].statements[2].conditions + assert(subject.size() == 1) + assert(subject[0].flag == "flag") + assert(subject[0].negated) + + subject = script.events["test"].statements[3].conditions + assert(subject.size() == 1) + assert(subject[0].flag == "flag") + assert(subject[0].inventory) + + subject = script.events["test"].statements[4].conditions + assert(subject.size() == 2) + assert(subject[0].flag == "flag") + assert(subject[0].inventory) + assert(subject[1].flag == "flag") + assert(not subject[1].inventory) + + subject = script.events["test"].statements[5].conditions + assert(subject.size() == 3) + assert(subject[0].flag == "flag") + assert(subject[0].inventory) + assert(subject[1].flag == "flag") + assert(not subject[1].inventory) + assert(subject[2].flag == "flag2") + assert(not subject[2].inventory) + assert(subject[2].negated) + + subject = script.events["test"].statements[6].conditions + assert(subject.size() == 1) + assert(subject[0].flag == "flag") + assert(subject[0].comparison == ESCCondition.COMPARISON_EQ) + assert(subject[0].comparison_value == 3) + + subject = script.events["test"].statements[7].conditions + assert(subject.size() == 2) + assert(subject[0].flag == "flag") + assert(subject[0].comparison == ESCCondition.COMPARISON_EQ) + assert(subject[0].comparison_value == 3) + assert(subject[1].flag == "flag") + assert(subject[1].comparison == ESCCondition.COMPARISON_GT) + assert(subject[1].comparison_value == 5) + + subject = script.events["test"].statements[8].conditions + assert(subject.size() == 1) + assert(subject[0].flag == "flag") + assert(subject[0].comparison == ESCCondition.COMPARISON_EQ) + assert(subject[0].comparison_value == 3) + assert(subject[0].negated) + + return true + + +func _test_event_flags() -> bool: + var esc = """ +:test | TK +:test2 | TK NO_TT +:test3 | TK NO_TT NO_UI + """ + var script = escoria.esc_compiler.compile(esc) + + var subject = script.events + assert(subject.keys().size() == 3) + assert("test" in subject.keys()) + assert("test2" in subject.keys()) + assert("test3" in subject.keys()) + + subject = script.events["test"] + assert(subject.name == "test") + assert(subject.flags & ESCEvent.FLAGS.TK != 0) + assert(subject.flags & ESCEvent.FLAGS.NO_TT == 0) + + subject = script.events["test2"] + assert(subject.name == "test2") + assert(subject.flags & ESCEvent.FLAGS.TK != 0) + assert(subject.flags & ESCEvent.FLAGS.NO_TT != 0) + + subject = script.events["test3"] + assert(subject.name == "test3") + assert(subject.flags & ESCEvent.FLAGS.TK != 0) + assert(subject.flags & ESCEvent.FLAGS.NO_TT != 0) + assert(subject.flags & ESCEvent.FLAGS.NO_UI != 0) + + return true + + +func _test_dialog() -> bool: + var esc = """ +:test +? + - "Option 1" + say player "test" + say player "testb" + say player "testb?" + - "Option 2" [flag] + say player "test2" + ? + - "Suboption 1" + say player "test21" + - "Suboption 2" + say player "test22" + ! + - "Option 3" + > + say player "test3" + - TEST:"Option 4" + say player "test4" +! + """ + var script = escoria.esc_compiler.compile(esc) + + var subject = script.events["test"].statements + assert(subject.size() == 1) + + assert(subject[0] is ESCDialog) + assert(subject[0].options.size() == 4) + + subject = script.events["test"].statements[0].options[0] + assert(subject is ESCDialogOption) + assert(subject.option == "Option 1") + + subject = script.events["test"].statements[0].options[0].statements + assert(subject.size() == 3) + assert(subject[0] is ESCCommand) + assert(subject[0].name == "say") + assert(subject[0].parameters.size() == 2) + assert(subject[1] is ESCCommand) + assert(subject[1].name == "say") + assert(subject[1].parameters.size() == 2) + assert(subject[1].parameters[1] == '"testb"') + assert(subject[2] is ESCCommand) + assert(subject[2].name == "say") + assert(subject[2].parameters.size() == 2) + assert(subject[2].parameters[1] == '"testb?"') + + subject = script.events["test"].statements[0].options[1] + assert(subject is ESCDialogOption) + assert(subject.option == "Option 2") + assert(subject.conditions.size() == 1) + assert(subject.conditions[0].flag == "flag") + + subject = script.events["test"].statements[0].options[1].statements + assert(subject.size() == 2) + assert(subject[0] is ESCCommand) + assert(subject[0].name == "say") + assert(subject[0].parameters.size() == 2) + + assert(subject[1] is ESCDialog) + assert(subject[1].options.size() == 2) + + subject = script.events["test"].statements[0].options[2] + assert(subject is ESCDialogOption) + assert(subject.option == "Option 3") + + subject = script.events["test"].statements[0].options[2].statements + assert(subject.size() == 1) + assert(subject[0] is ESCGroup) + assert(subject[0].statements.size() == 1) + assert(subject[0].statements[0] is ESCCommand) + assert(subject[0].statements[0].parameters.size() == 2) + + subject = script.events["test"].statements[0].options[3] + assert(subject is ESCDialogOption) + assert(subject.option == "TEST") + + return true + + +func _on_BasicFunctionality_pressed(): + $VBoxContainer/VBoxContainer/BasicFunctionality.button_pressed = self._test_basic() + + +func _on_Conditions_pressed(): + $VBoxContainer/VBoxContainer/Conditions.button_pressed = self._test_conditions() + + +func _on_EventFlags_pressed(): + $VBoxContainer/VBoxContainer/EventFlags.button_pressed = self._test_event_flags() + + +func _on_Dialog_pressed(): + $VBoxContainer/VBoxContainer/Dialog.button_pressed = self._test_dialog() diff --git a/addons/escoria-core/_test/deprecated/test_esc_compiler.gd.uid b/addons/escoria-core/_test/deprecated/test_esc_compiler.gd.uid new file mode 100644 index 0000000..407abb1 --- /dev/null +++ b/addons/escoria-core/_test/deprecated/test_esc_compiler.gd.uid @@ -0,0 +1 @@ +uid://cjhr78sjyfnb3 diff --git a/addons/escoria-core/_test/deprecated/test_esc_compiler.tscn b/addons/escoria-core/_test/deprecated/test_esc_compiler.tscn new file mode 100644 index 0000000..9d7a934 --- /dev/null +++ b/addons/escoria-core/_test/deprecated/test_esc_compiler.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=2 format=3 uid="uid://btv33yamt7164"] + +[ext_resource type="Script" uid="uid://cjhr78sjyfnb3" path="res://addons/escoria-core/_test/deprecated/test_esc_compiler.gd" id="1"] + +[node name="Testsuite" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource("1") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = 1.0 +offset_bottom = 1.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer"] +layout_mode = 2 + +[node name="BasicFunctionality" type="CheckButton" parent="VBoxContainer/VBoxContainer"] +layout_mode = 2 +text = "Basic Functionality" + +[node name="Conditions" type="CheckButton" parent="VBoxContainer/VBoxContainer"] +layout_mode = 2 +text = "Check conditions" + +[node name="EventFlags" type="CheckButton" parent="VBoxContainer/VBoxContainer"] +layout_mode = 2 +text = "Check event flags" + +[node name="Dialog" type="CheckButton" parent="VBoxContainer/VBoxContainer"] +layout_mode = 2 +text = "Check dialogs" + +[connection signal="pressed" from="VBoxContainer/VBoxContainer/BasicFunctionality" to="." method="_on_BasicFunctionality_pressed"] +[connection signal="pressed" from="VBoxContainer/VBoxContainer/Conditions" to="." method="_on_Conditions_pressed"] +[connection signal="pressed" from="VBoxContainer/VBoxContainer/EventFlags" to="." method="_on_EventFlags_pressed"] +[connection signal="pressed" from="VBoxContainer/VBoxContainer/Dialog" to="." method="_on_Dialog_pressed"] diff --git a/addons/escoria-core/_test/test_migrations.gd b/addons/escoria-core/_test/test_migrations.gd new file mode 100644 index 0000000..19ecb45 --- /dev/null +++ b/addons/escoria-core/_test/test_migrations.gd @@ -0,0 +1,20 @@ +extends Control + + + +func _on_CheckESCMigrationManager_pressed() -> bool: + var savegame: ESCSaveGame = ESCSaveGame.new() + + savegame.globals["test"] = "testa" + + var migration_manager: ESCMigrationManager = ESCMigrationManager.new() + savegame = migration_manager.migrate( + savegame, + "1.0.0", + "2.0.0", + "res://addons/escoria-core/_test/testversions" + ) + + assert(savegame.globals["test"] == "testc") + + return true diff --git a/addons/escoria-core/_test/test_migrations.gd.uid b/addons/escoria-core/_test/test_migrations.gd.uid new file mode 100644 index 0000000..79fdadc --- /dev/null +++ b/addons/escoria-core/_test/test_migrations.gd.uid @@ -0,0 +1 @@ +uid://b7x4hqeh2dtgi diff --git a/addons/escoria-core/_test/test_migrations.tscn b/addons/escoria-core/_test/test_migrations.tscn new file mode 100644 index 0000000..252dd79 --- /dev/null +++ b/addons/escoria-core/_test/test_migrations.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=2 format=3 uid="uid://ck1ew8vbwietx"] + +[ext_resource type="Script" uid="uid://b7x4hqeh2dtgi" path="res://addons/escoria-core/_test/test_migrations.gd" id="1"] + +[node name="Control" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource("1") +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CheckESCMigrationManager" type="CheckButton" parent="VBoxContainer"] +offset_right = 1280.0 +offset_bottom = 40.0 +text = "Check ESCMigrationManager" + +[connection signal="pressed" from="VBoxContainer/CheckESCMigrationManager" to="." method="_on_CheckESCMigrationManager_pressed"] diff --git a/addons/escoria-core/_test/testversions/1.0.1.gd b/addons/escoria-core/_test/testversions/1.0.1.gd new file mode 100644 index 0000000..a1cf8b8 --- /dev/null +++ b/addons/escoria-core/_test/testversions/1.0.1.gd @@ -0,0 +1,5 @@ +extends ESCMigration + +func migrate(): + self._savegame.globals["test"] = "testb" + diff --git a/addons/escoria-core/_test/testversions/1.0.1.gd.uid b/addons/escoria-core/_test/testversions/1.0.1.gd.uid new file mode 100644 index 0000000..ffbdb4c --- /dev/null +++ b/addons/escoria-core/_test/testversions/1.0.1.gd.uid @@ -0,0 +1 @@ +uid://0fnh1m2wcuad diff --git a/addons/escoria-core/_test/testversions/1.1.0.gd b/addons/escoria-core/_test/testversions/1.1.0.gd new file mode 100644 index 0000000..7840490 --- /dev/null +++ b/addons/escoria-core/_test/testversions/1.1.0.gd @@ -0,0 +1,5 @@ +extends ESCMigration + +func migrate(): + self._savegame.globals["test"] = "testc" + diff --git a/addons/escoria-core/_test/testversions/1.1.0.gd.uid b/addons/escoria-core/_test/testversions/1.1.0.gd.uid new file mode 100644 index 0000000..b8b91b5 --- /dev/null +++ b/addons/escoria-core/_test/testversions/1.1.0.gd.uid @@ -0,0 +1 @@ +uid://gdobd31uc5ot |
