The settings the game saves itself, the quiz settings and now fullscreen, move to settings.cfg (settings_debug.cfg in debug mode). config.ini in the same folder is edited by hand: the server to start with, the API password and debug mode. The game writes it with everything commented out when it is missing and never changes it after that. IniFile reads it: plain key = value lines, whole-line # or ; comments and optional quotes.
56 lines
1.8 KiB
GDScript
56 lines
1.8 KiB
GDScript
extends MainWindowTestSuite
|
|
## The statistics settings in the application Settings popup.
|
|
|
|
var _popup: SettingsPopup
|
|
|
|
|
|
func before_test() -> void:
|
|
super()
|
|
_popup = _window.get_node("SettingsPopup")
|
|
|
|
|
|
func test_less_played_toggle_changes_the_setting() -> void:
|
|
Settings.use_low_played_mode = false
|
|
_popup.open()
|
|
await _runner.simulate_frames(1)
|
|
assert_bool(_popup.low_played_button.button_pressed).is_false()
|
|
|
|
await _click_at(_popup.low_played_button.get_global_rect().get_center())
|
|
|
|
assert_bool(Settings.use_low_played_mode).is_true()
|
|
|
|
|
|
func test_statistics_toggle_changes_the_setting() -> void:
|
|
Settings.add_to_stats = true
|
|
_popup.open()
|
|
await _runner.simulate_frames(1)
|
|
assert_bool(_popup.add_to_database_button.button_pressed).is_true()
|
|
|
|
await _click_at(_popup.add_to_database_button.get_global_rect().get_center())
|
|
|
|
assert_bool(Settings.add_to_stats).is_false()
|
|
|
|
|
|
func test_statistics_settings_are_not_saved_with_the_quiz_settings() -> void:
|
|
Settings.add_to_stats = false
|
|
Settings.use_low_played_mode = true
|
|
|
|
Settings.save_settings()
|
|
|
|
var saved: ConfigFile = ConfigFile.new()
|
|
assert_int(saved.load(Settings.saved_settings_path())).is_equal(OK)
|
|
assert_bool(saved.has_section_key("quiz", "add_to_stats")).is_false()
|
|
assert_bool(saved.has_section_key("quiz", "use_low_played_mode")).is_false()
|
|
|
|
|
|
func test_popup_fits_its_rows_and_is_centred() -> void:
|
|
_popup.open()
|
|
await _runner.simulate_frames(1)
|
|
|
|
var panel: Rect2 = _popup.settings_panel.get_global_rect()
|
|
var rows: Control = _popup.settings_panel.get_node("VBoxContainer")
|
|
assert_bool(panel.encloses(rows.get_global_rect())).is_true()
|
|
# The rows' own height fits, so the last toggle is not squeezed or cut off
|
|
assert_float(rows.get_combined_minimum_size().y).is_less_equal(rows.size.y)
|
|
assert_vector(panel.get_center()).is_equal(Vector2(960, 540))
|