Files
game-cards/addons/gut/test/unit/test_shell_out_options_dialog.gd
2026-05-29 09:16:10 +08:00

44 lines
1.4 KiB
GDScript

extends GutInternalTester
var DialogScene = load("res://addons/gut/gui/ShellOutOptions.tscn")
func test_can_make_one():
var inst = DialogScene.instantiate()
assert_not_null(inst)
inst.free()
var split_param = ParameterFactory.named_parameters(
['args', 'result'],
[
['--a', ['--a']],
[' -b -x ', ['-b', '-x']],
['-r "hello world"', ['-r', '"hello', 'world"']]
]
)
func test_arg_splitting(p = use_parameters(split_param)):
var inst = autofree(DialogScene.instantiate())
inst.additional_arguments = p.args
var packed_results = PackedStringArray(p.result)
assert_eq(inst.get_additional_arguments_array(), packed_results)
var invalid_args = ParameterFactory.named_parameters(
['args', 'valid_blocking', 'valid_non_blocking'],
[
['-d', false, false], ['--debug', false , false],
['-s', false, false], ['--script', false, false],
['-e', false, false], ['--editor', false, false],
['--headless', false, true]
]
)
func test_invalid_arguments(p = use_parameters(invalid_args)):
var inst = autofree(DialogScene.instantiate())
inst.additional_arguments = p.args
inst.run_mode = inst.RUN_MODE_BLOCKING
assert_eq(inst.validate_arguments(), p.valid_blocking, str('"',p.args, '" is valid for blocking'))
inst.run_mode = inst.RUN_MODE_NON_BLOCKING
assert_eq(inst.validate_arguments(), p.valid_non_blocking, str('"', p.args, '" is valid for non-blocking'))