1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
extends GutTest
const Scene = preload('res://Scenes/InputContainer.tscn')
const InputContainer = preload('res://Scripts/InputContainer.cs')
var _instance: InputContainer = null
var _sender = InputSender.new(Input)
const _test_data = 'This is some test data'
const _input_submitted = 'InputSubmitted'
func _click_submit_button():
var button: Button = _instance.SubmitButton
var rect = button.get_global_rect()
var center = (rect.end - rect.size / 2)
_sender.mouse_left_button_down(center, center) \
.hold_for('1f') \
.wait('1f')
return _sender
func _press_enter_key():
_sender.key_down(KEY_ENTER) \
.hold_for('1f') \
.wait('1f')
return _sender
func _set_input_text(text):
_instance.InputField.text = text
_instance.InputField.emit_signal('text_changed', _instance.InputField.text)
func before_each():
_instance = add_child_autofree(Scene.instance())
yield(yield_frames(1), YIELD)
func after_each():
_sender.release_all()
_sender.clear()
func test_can_instantiate():
assert_not_null(_instance)
func test_has_InputSubmitted_signal():
assert_has_signal(_instance, _input_submitted)
func test_has_InputField():
assert_not_null(_instance.InputField)
func test_InputField_has_focus_when_scene_is_instantiated():
assert_true(_instance.InputField.has_focus())
func test_InputSubmitted_signal_is_not_emitted_when_enter_is_pressed_without_text_in_InputField():
watch_signals(_instance)
yield(_press_enter_key(), 'idle')
assert_signal_not_emitted(_instance, _input_submitted)
func test_InputSubmitted_signal_is_emitted_when_enter_is_pressed_with_text_in_InputField():
watch_signals(_instance)
_set_input_text(_test_data)
yield(_press_enter_key(), 'idle')
assert_signal_emitted(_instance, _input_submitted)
func test_InputField_is_empty_after_text_is_submitted():
_set_input_text(_test_data)
yield(_press_enter_key(), 'idle')
assert_eq(_instance.InputField.text, '')
func test_has_SubmitButton():
assert_not_null(_instance.SubmitButton)
func test_SubmitButton_is_disable_after_scene_was_instantiated():
assert_true(_instance.SubmitButton.disabled)
func test_SubmitButton_is_disabled_when_InputField_is_set_to_empty():
_set_input_text('')
assert_true(_instance.SubmitButton.disabled)
func test_SubmitButton_is_enabled_when_InputField_is_set_to_some_text():
_set_input_text(_test_data)
assert_false(_instance.SubmitButton.disabled)
func test_InputSubmitted_signal_is_not_emitted_when_SubmitButton_is_clicked_without_text_in_InputField():
watch_signals(_instance)
_set_input_text('')
yield(_click_submit_button(), 'idle')
assert_signal_not_emitted(_instance, _input_submitted)
func test_InputSubmitted_signal_is_emitted_when_SubmitButton_is_clicked_with_text_in_InputField():
watch_signals(_instance)
_set_input_text(_test_data)
yield(_click_submit_button(), 'idle')
assert_signal_emitted(_instance, _input_submitted)
func test_InputField_is_empty_after_text_is_submitted_via_SubmitButton():
_set_input_text(_test_data)
yield(_click_submit_button(), 'idle')
assert_eq(_instance.InputField.text, '')
|