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

81 lines
2.0 KiB
GDScript

extends GutTest
var Gup = load("res://addons/gut/gui/gut_user_preferences.gd")
var pref_prefix = 'gut/'
class MockEditorSettings:
var settings = {}
func set_setting(n, v):
settings[n] = v
func get_setting(n):
return settings[n]
func has_setting(n):
return settings.has(n)
func erase(n):
settings.erase(n)
func before_all():
register_inner_classes(self.get_script())
func test_can_make_one():
var es = MockEditorSettings.new()
var gup = Gup.new(es)
assert_not_null(gup)
var default_settings = ParameterFactory.named_parameters(
['name', 'value'],[
['output_font_name', 'CourierPrime'],
['output_font_size', 30],
['hide_result_tree', false],
['hide_output_text', false],
['hide_settings', false],
['use_colors', true]
])
func test_save_sets_values_to_default_when_not_set(p = use_parameters(default_settings)):
var es = MockEditorSettings.new()
var gup = Gup.new(es)
gup.save_it()
assert_true(es.has_setting(pref_prefix + p.name), 'has ' + p.name)
if(is_passing()):
assert_eq(es.get_setting(pref_prefix + p.name), p.value, p.name + ' default')
var non_default_settings = ParameterFactory.named_parameters(
['name', 'value'],[
['output_font_name', 'test'],
['output_font_size', 99],
['hide_result_tree', true],
['hide_output_text', true],
['hide_settings', true],
['use_colors', false]
])
func test_all_values_are_loaded_from_settings(p = use_parameters(non_default_settings)):
var es = MockEditorSettings.new()
var to_save = Gup.new(es)
to_save.get(p.name).value = p.value
to_save.save_it()
var loaded = Gup.new(es)
assert_eq(loaded.get(p.name).value, p.value)
var pref_list = [
'output_font_name',
'output_font_size',
'hide_result_tree',
'hide_output_text',
'hide_settings',
'use_colors',
]
func test_all_values_are_erased_by_erase_all(p = use_parameters(pref_list)):
var es = partial_double(MockEditorSettings).new()
var prefs = Gup.new(es)
var erased = prefs.get(p)
prefs.erase_all()
assert_called(es, 'erase', [erased._prefstr()])