diff options
| author | Sophia Pearson <codergal89@gmail.com> | 2022-09-05 20:35:53 +0200 |
|---|---|---|
| committer | Sophia Pearson <codergal89@gmail.com> | 2022-09-05 20:35:53 +0200 |
| commit | f20bd89dc4a7bf14a88b1effcaa1887b29314525 (patch) | |
| tree | d114787f68efd2a7d61d95fa9c84e8e5d69a7c11 /Tests/Game | |
| parent | 1b477b62f8be8c546a35dbd1d2688ebf623c496f (diff) | |
| download | texty-f20bd89dc4a7bf14a88b1effcaa1887b29314525.tar.xz texty-f20bd89dc4a7bf14a88b1effcaa1887b29314525.zip | |
gui: split GUI into Terminal components
Diffstat (limited to 'Tests/Game')
| -rw-r--r-- | Tests/Game/test_CommandInputArea.gd (renamed from Tests/Game/test_Input.gd) | 23 | ||||
| -rw-r--r-- | Tests/Game/test_Game.gd | 50 | ||||
| -rw-r--r-- | Tests/Game/test_Output.gd | 51 | ||||
| -rw-r--r-- | Tests/Game/test_OutputBlock.gd | 32 | ||||
| -rw-r--r-- | Tests/Game/test_StatusLine.gd | 32 |
5 files changed, 63 insertions, 125 deletions
diff --git a/Tests/Game/test_Input.gd b/Tests/Game/test_CommandInputArea.gd index fca14e5..c233ec4 100644 --- a/Tests/Game/test_Input.gd +++ b/Tests/Game/test_CommandInputArea.gd @@ -1,7 +1,7 @@ extends GutTest -const Scene = preload('res://Scenes/Game/Input.tscn') -const GameInput = preload('res://Scripts/Game/Input.cs') +const Scene = preload('res://Scenes/Game/CommandInputArea.tscn') +const GameInput = preload('res://Scripts/Game/CommandInputArea.cs') var _instance: GameInput = null var _sender = InputSender.new(Input) @@ -26,6 +26,9 @@ func after_each(): _sender.release_all() _sender.clear() +func before_all(): + _sender.set_auto_flush_input(true) + func after_all(): assert_no_new_orphans() @@ -43,44 +46,44 @@ func test_TextInput_has_focus_when_scene_is_instantiated(): func test_CommandSubmitted_signal_is_not_emitted_when_enter_is_pressed_without_text_in_TextInput(): watch_signals(_instance) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_signal_not_emitted(_instance, _command_submitted) func test_UknownInputSumbmitted_signal_is_not_emitted_when_enter_is_pressed_without_text_in_TextInput(): watch_signals(_instance) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_signal_not_emitted(_instance, _unknown_input_submitted) func test_CommandSubmitted_signal_is_emitted_when_enter_is_pressed_with_a_valid_command_in_TextInput(): watch_signals(_instance) _set_input_text(_valid_input) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_signal_emitted(_instance, _command_submitted) func test_UnknownInputSubmitted_signal_is_not_emitted_when_enter_is_pressed_with_an_invalid_command_in_TextInput(): watch_signals(_instance) _set_input_text(_valid_input) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_signal_not_emitted(_instance, _unknown_input_submitted) func test_CommandSubmitted_signal_is_not_emitted_when_enter_is_pressed_with_an_invalid_command_in_TextInput(): watch_signals(_instance) _set_input_text(_invalid_input) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_signal_not_emitted(_instance, _command_submitted) func test_UnknownInputSubmitted_signal_is_emitted_when_enter_is_pressed_with_a_valid_command_in_TextInput(): watch_signals(_instance) _set_input_text(_invalid_input) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_signal_emitted(_instance, _unknown_input_submitted) func test_TextInput_is_empty_after_submitting_a_valid_command(): _set_input_text(_valid_input) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_true(_get_input_node().text.empty()) func test_TextInput_is_empty_after_submitting_an_invalid_command(): _set_input_text(_invalid_input) - yield(UiHelpers.press_key(_sender, KEY_ENTER), 'idle') + UiHelpers.press_key(_sender, KEY_ENTER) assert_true(_get_input_node().text.empty()) diff --git a/Tests/Game/test_Game.gd b/Tests/Game/test_Game.gd new file mode 100644 index 0000000..427d28c --- /dev/null +++ b/Tests/Game/test_Game.gd @@ -0,0 +1,50 @@ +extends GutTest + +const Scene = preload('res://Scenes/Game/Game.tscn') +const Game = preload('res://Scripts/Game/Game.cs') + +const InputArea = preload('res://Scripts/Game/CommandInputArea.cs') +const OutputArea = preload('res://Scripts/Terminal/OutputArea.cs') + +var _instance: Game = null +var _sender = InputSender.new(Input) + +func _get_output_area() -> OutputArea: + return _instance.get_node('%OutputArea') as OutputArea + +func _get_input_area() -> InputArea: + return _instance.get_node('%InputArea') as InputArea + +func before_each(): + _instance = add_child_autofree(Scene.instance()) + +func after_each(): + _sender.release_all() + _sender.clear() + +func before_all(): + _sender.set_auto_flush_input(true) + +func after_all(): + assert_no_new_orphans() + +func test_can_instantiate(): + assert_not_null(_instance) + +func test_has_OutputArea(): + assert_not_null(_get_output_area()) + +func test_OutputArea_is_empty_after_instantiation(): + assert_true(_get_output_area().TextBlocks.empty()) + +func test_has_InputArea(): + assert_not_null(_get_input_area()) + +func test_InputArea_has_focus_after_instantiation(): + assert_true(_get_input_area().HasFocus) + +func test_after_submitting_some_text_via_InputArea_OutputArea_is_not_empty(): + var textInput = _get_input_area().get_node('%TextInput') + textInput.text = 'this is a test' + UiHelpers.press_key(_sender, KEY_ENTER) + assert_false(_get_output_area().TextBlocks.empty()) diff --git a/Tests/Game/test_Output.gd b/Tests/Game/test_Output.gd deleted file mode 100644 index f3793de..0000000 --- a/Tests/Game/test_Output.gd +++ /dev/null @@ -1,51 +0,0 @@ -extends GutTest - -const Scene = preload('res://Scenes/Game/Output.tscn') -const GameOutput = preload('res://Scripts/Game/Output.cs') - -var _instance: GameOutput = null - -func _get_line_container() -> VBoxContainer: - return _instance.get_node('%LineContainer') as VBoxContainer - -func after_each(): - yield(yield_frames(1), YIELD) - -func before_each(): - var scene = Scene.instance() - scene.OutputBlockScene = load('res://Scenes/Game/OutputBlock.tscn') - _instance = add_child_autofree(scene) - -func after_all(): - assert_no_new_orphans() - -func test_can_be_instantiated(): - assert_not_null(_instance) - -func test_LineContainer_is_empty_after_instantiation(): - assert_true(_get_line_container().get_children().empty()) - -func test_TextBlocks_is_empty_after_instantiation(): - assert_true(_instance.TextBlocks.empty()) - -func test_LineContainer_is_not_empty_after_calling_Push_with_a_non_empty_string_as_text(): - _instance.Push('this is some test data') - assert_false(_get_line_container().get_children().empty()) - -func test_LineContainer_is_empty_after_calling_Push_with_an_empty_string_as_text(): - _instance.Push('') - assert_true(_get_line_container().get_children().empty()) - -func test_TextBlocks_is_not_empty_after_calling_Push_with_a_non_empty_string_as_text(): - _instance.Push('this is some test data') - assert_false(_instance.TextBlocks.empty()) - -func test_TextBlocks_is_empty_after_calling_Push_with_an_empty_string_as_text(): - _instance.Push('') - assert_true(_instance.TextBlocks.empty()) - -func test_TextBlocks_contains_all_pushed_texts_in_the_push_order(): - var texts = ['text block a', 'text block b'] - for text in texts: - _instance.Push(text) - assert_eq(_instance.TextBlocks, texts) diff --git a/Tests/Game/test_OutputBlock.gd b/Tests/Game/test_OutputBlock.gd deleted file mode 100644 index c7addfe..0000000 --- a/Tests/Game/test_OutputBlock.gd +++ /dev/null @@ -1,32 +0,0 @@ -extends GutTest - -const Scene = preload("res://Scenes/Game/OutputBlock.tscn") -const OutputBlock = preload("res://Scripts/Game/OutputBlock.cs") - -const _input_text_changed = 'InputTextChanged' -const _output_text_changed = 'OutputTextChanged' -const _test_data = 'This is some test data' -var _instance: OutputBlock = null - - -func before_each(): - _instance = add_child_autofree(Scene.instance()) - -func after_all(): - assert_no_new_orphans() - -func test_can_instantiate(): - assert_not_null(_instance) - -func test_Content_is_empty_after_instantiation(): - assert_eq(_instance.Content, '') - -func test_ContentLabel_bbcode_enabled_is_enabled_after_instantiation(): - assert_true(_instance.get_node('ContentLabel').bbcode_enabled) - -func test_ContentLabel_is_empty_after_instantiation(): - assert_eq(_instance.get_node('ContentLabel').bbcode_text, '') - -func test_setting_Content_sets_ContentLabel_bbcode_text(): - _instance.Content = 'test' - assert_eq(_instance.get_node('ContentLabel').bbcode_text, 'test') diff --git a/Tests/Game/test_StatusLine.gd b/Tests/Game/test_StatusLine.gd deleted file mode 100644 index b22f624..0000000 --- a/Tests/Game/test_StatusLine.gd +++ /dev/null @@ -1,32 +0,0 @@ -extends GutTest - -const Scene = preload("res://Scenes/Game/StatusLine.tscn") -const StatusLine = preload("res://Scripts/Game/StatusLine.cs") - -var _instance: StatusLine = null - -func _get_title_label() -> RichTextLabel: - return _instance.get_node('%TitleLabel') as RichTextLabel - -func before_each(): - _instance = add_child_autofree(Scene.instance()) - -func after_all(): - assert_no_new_orphans() - -func test_can_be_instantiated(): - assert_not_null(_instance) - -func test_Title_is_empty_after_instantiation(): - assert_true(_instance.Title.empty()) - -func test_TitleLabel_is_empty_after_instantiation(): - assert_true(_get_title_label().text.empty()) - -func test_setting_Title_to_a_non_empty_string_makes_TitleLable_non_empty(): - _instance.Title = 'this is a test title' - assert_false(_get_title_label().text.empty()) - -func test_setting_Title_sets_the_bbcode_text_property_on_TitleLabel(): - _instance.Title = '[wave]this is a test title[/wave]' - assert_false(_get_title_label().bbcode_text.empty()) |
