81 lines
2.0 KiB
GDScript
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()])
|