Randoloot/tests/ships/intro_test.gd
2026-10-12 19:30:38 +02:00

29 lines
1.1 KiB
GDScript

extends Node
func _ready() -> void:
for skip in [true, false]:
var intro := preload("res://scenes/ui/intro.tscn").instantiate() as Control
get_tree().root.add_child.call_deferred(intro)
await get_tree().process_frame
get_tree().current_scene = intro
await get_tree().create_timer(0.3).timeout
var video := intro.get_node("VideoAspect/Video") as VideoStreamPlayer
assert(video.is_playing())
assert(video.stream is VideoStreamTheora)
assert(video.get_video_texture().get_width() == 1920)
if skip:
var event := InputEventKey.new()
event.physical_keycode = KEY_SPACE
event.pressed = true
Input.parse_input_event(event)
else:
video.finished.emit()
for frame in 5:
await get_tree().process_frame
assert(get_tree().current_scene.scene_file_path == "res://scenes/ui/main_menu.tscn")
assert(get_tree().current_scene.get_node("ShipSelectionPanel").visible == false)
get_tree().current_scene.queue_free()
await get_tree().process_frame
print("INTRO_TEST: PASS Theora playback and decoded frame, Space skip, finished signal -> menu")
get_tree().quit()