main/ holds the main window and top bar, quiz/ the quiz and its parts, player/ the music player, popups/ every popup and what they share, data/ the songs, players, playlist and settings, server/ the MusicServer client, common/ the list row and GameLog, and themes/ the themes and style boxes.
70 lines
2.2 KiB
GDScript
70 lines
2.2 KiB
GDScript
extends GdUnitTestSuite
|
|
## The row of quiz buttons: each button reports its press, and locking disables the
|
|
## buttons that use the song list.
|
|
|
|
const BUTTON_SIGNALS: Dictionary = {
|
|
"ResetPlaylistButton": "reset_playlist_pressed",
|
|
"ResetPointsButton": "reset_points_pressed",
|
|
"SettingsButton": "settings_pressed",
|
|
"SoundTestButton": "sound_test_pressed",
|
|
}
|
|
|
|
var _runner: GdUnitSceneRunner
|
|
var _toolbar: QuizToolbar
|
|
|
|
|
|
func before_test() -> void:
|
|
_runner = scene_runner("res://quiz/QuizToolbar.tscn")
|
|
_toolbar = _runner.scene()
|
|
|
|
|
|
func _button(button_name: String) -> Button:
|
|
return _toolbar.get_node(button_name)
|
|
|
|
|
|
func _click(button_name: String) -> void:
|
|
_runner.set_mouse_position(_toolbar.get_viewport().get_final_transform()
|
|
* _button(button_name).get_global_rect().get_center())
|
|
await _runner.simulate_mouse_button_pressed(MOUSE_BUTTON_LEFT)
|
|
await _runner.await_input_processed()
|
|
|
|
|
|
func test_clicking_each_button_reports_it() -> void:
|
|
for button_name: String in BUTTON_SIGNALS:
|
|
var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_toolbar))
|
|
|
|
await _click(button_name)
|
|
|
|
await signals.override_failure_message(button_name + " not reported") \
|
|
.is_emitted(BUTTON_SIGNALS[button_name])
|
|
|
|
|
|
func test_buttons_are_in_order_left_to_right() -> void:
|
|
var lefts: Array = ["ResetPlaylistButton", "ResetPointsButton", "SettingsButton",
|
|
"SoundTestButton"].map(func(n: String) -> float: return _button(n).position.x)
|
|
|
|
for i: int in lefts.size() - 1:
|
|
assert_float(lefts[i]).is_less(lefts[i + 1])
|
|
|
|
|
|
func test_locking_disables_only_buttons_that_use_the_song_list() -> void:
|
|
_toolbar.set_locked(true)
|
|
|
|
assert_bool(_button("ResetPlaylistButton").disabled).is_true()
|
|
assert_bool(_button("SoundTestButton").disabled).is_true()
|
|
assert_bool(_button("ResetPointsButton").disabled).is_false()
|
|
assert_bool(_button("SettingsButton").disabled).is_false()
|
|
|
|
|
|
func test_unlocking_enables_them_again() -> void:
|
|
_toolbar.set_locked(true)
|
|
|
|
_toolbar.set_locked(false)
|
|
|
|
assert_bool(_button("ResetPlaylistButton").disabled).is_false()
|
|
assert_bool(_button("SoundTestButton").disabled).is_false()
|
|
|
|
|
|
func test_clicks_between_buttons_go_through() -> void:
|
|
assert_int(_toolbar.mouse_filter).is_equal(Control.MOUSE_FILTER_IGNORE)
|