extends TestCase func _hud() -> Hud: I18n.install() var hud := Hud.new() tree.root.add_child(hud) return hud func _free(hud: Hud) -> void: tree.root.remove_child(hud) hud.free() func test_a_message_can_carry_values() -> void: var hud := _hud() hud.flash("PLAYER_JOINED", ["Grace"]) check_eq(hud.message(), tr("PLAYER_JOINED") % "Grace", "the name is filled in") hud.flash("SAVED") check_eq(hud.message(), tr("SAVED"), "a message without values") _free(hud) func test_the_status_line_stays_until_it_is_replaced() -> void: var hud := _hud() hud.show_status(tr("STATUS_HOST") % [24680, 2]) hud.flash("SAVED") hud._process(10.0) check_eq(hud.message(), "", "the message is gone after a while") check_eq(hud.status_text(), tr("STATUS_HOST") % [24680, 2], "the status line is not") _free(hud) func test_the_pause_notice_returns_after_a_message() -> void: var hud := _hud() hud.show_paused(true) hud.flash("STYLE_SWITCHED", [tr("STYLE_PASTEL")]) hud._process(Hud.MESSAGE_SECONDS + 0.1) check_eq(hud.message(), tr("PAUSED"), "still paused, the notice is back") hud.show_paused(false) hud.flash("SAVED") hud._process(Hud.MESSAGE_SECONDS + 0.1) check_eq(hud.message(), "", "without a pause the message just goes") _free(hud)