extends TestCase func _menu() -> Menu: I18n.install() var menu := Menu.new() tree.root.add_child(menu) return menu func _free(menu: Menu) -> void: tree.root.remove_child(menu) menu.free() func test_the_buttons_say_what_the_player_chose() -> void: var menu := _menu() var chosen: Array = [] menu.play_chosen.connect(func(open: bool) -> void: chosen.append(["play", open])) menu.join_chosen.connect(func(address: String) -> void: chosen.append(["join", address])) menu.address_field.text = " 192.168.178.20:25000 " menu.solo_button.pressed.emit() menu.host_button.pressed.emit() menu.join_button.pressed.emit() menu.address_field.text_submitted.emit(menu.address_field.text) check_eq(chosen, [["play", false], ["play", true], ["join", "192.168.178.20:25000"], ["join", "192.168.178.20:25000"]], "in order") _free(menu) func test_the_name_and_the_status_line() -> void: var menu := _menu() menu.name_field.text = " Ada " check_eq(menu.player_name(), "Ada", "without the spaces around it") menu.show_status("Verbinde …") check_eq(menu.status(), "Verbinde …", "the status is shown") check_eq(menu.solo_button.text, tr("MENU_SOLO"), "the labels come from the texts") _free(menu) func test_the_way_to_the_style_samples() -> void: var menu := _menu() var chosen := [0] menu.showcase_chosen.connect(func() -> void: chosen[0] += 1) check_eq(menu.showcase_button.text, tr("MENU_SHOWCASE"), "the button says where it leads") menu.showcase_button.pressed.emit() check_eq(chosen[0], 1, "it asks for the samples") _free(menu)