Remove superseded contributor material
This commit is contained in:
parent
b2752b1074
commit
f45550e46b
165 changed files with 155 additions and 2158 deletions
|
|
@ -1,38 +0,0 @@
|
|||
extends SceneTree
|
||||
|
||||
func _initialize() -> void:
|
||||
call_deferred("_run")
|
||||
|
||||
|
||||
func _run() -> void:
|
||||
assert(NetworkChatProtocol.sanitize_body(42).is_empty())
|
||||
assert(NetworkChatProtocol.sanitize_body(" a ") == "a")
|
||||
assert(NetworkChatProtocol.sanitize_body("a b") == "a b")
|
||||
assert(NetworkChatProtocol.sanitize_body("a\tb\nc") == "a b c")
|
||||
assert(NetworkChatProtocol.sanitize_body(" !hello!? ") == "!hello!?")
|
||||
assert(NetworkChatProtocol.sanitize_body("!!!") == "!!!")
|
||||
|
||||
const em_space := " " # U+2003 EM SPACE
|
||||
const zero_width_space := "" # U+200B ZERO WIDTH SPACE
|
||||
const braille_blank := "⠀" # U+2800 BRAILLE PATTERN BLANK
|
||||
const invisible_padding := em_space + zero_width_space + braille_blank
|
||||
assert(
|
||||
NetworkChatProtocol.sanitize_body(invisible_padding + "a" + invisible_padding)
|
||||
== "a"
|
||||
)
|
||||
assert(NetworkChatProtocol.sanitize_body(invisible_padding).is_empty())
|
||||
assert(NetworkChatProtocol.sanitize_body(" \t\n" + invisible_padding).is_empty())
|
||||
|
||||
assert(
|
||||
NetworkChatProtocol.sanitize_body("a".repeat(
|
||||
NetworkChatProtocol.MAX_VISIBLE_CHARACTERS
|
||||
)).length() == NetworkChatProtocol.MAX_VISIBLE_CHARACTERS
|
||||
)
|
||||
assert(
|
||||
NetworkChatProtocol.sanitize_body("a".repeat(
|
||||
NetworkChatProtocol.MAX_VISIBLE_CHARACTERS + 1
|
||||
)).is_empty()
|
||||
)
|
||||
|
||||
print("Chat validation: PASS")
|
||||
quit(0)
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://ohemhv2sf5g4
|
||||
|
|
@ -964,20 +964,19 @@ func _validate_profile_voice_navigation() -> void:
|
|||
for item: Variant in page.call("_controls_under", sample_grid):
|
||||
sample_buttons.append(item as Control)
|
||||
_expect(
|
||||
sample_buttons.size() == 3,
|
||||
"The voice-set row must expose kat, robot, and kim.",
|
||||
sample_buttons.size() == 1,
|
||||
"The voice-set row must expose the project-owned robot set.",
|
||||
)
|
||||
if sample_buttons.size() != 3:
|
||||
if sample_buttons.size() != 1:
|
||||
page.queue_free()
|
||||
await process_frame
|
||||
return
|
||||
var kat_button := sample_grid.get_node("VoiceSet_kat") as Button
|
||||
var robot_button := sample_grid.get_node("VoiceSet_robot") as Button
|
||||
var kim_button := sample_grid.get_node("VoiceSet_kim") as Button
|
||||
_expect(kat_button.text == "kat", "The default voice set is not labeled kat.")
|
||||
_expect(robot_button.text == "robot", "The tone voice set is not labeled robot.")
|
||||
_expect(kim_button.text == "kim", "The kim voice set is not labeled kim.")
|
||||
_expect(kat_button.button_pressed, "The kat voice set is not selected by default.")
|
||||
_expect(
|
||||
robot_button.button_pressed,
|
||||
"The project-owned robot voice set is not selected by default.",
|
||||
)
|
||||
var option_controls: Array[Control] = []
|
||||
var option_groups: Array = page.call("_controller_option_groups")
|
||||
for item: Variant in option_groups[0]:
|
||||
|
|
@ -992,12 +991,12 @@ func _validate_profile_voice_navigation() -> void:
|
|||
),
|
||||
"The controller voice zone does not contain every voice setting.",
|
||||
)
|
||||
_assert_directionally_reachable(kat_button, option_controls)
|
||||
var kat_down := kat_button.get_node_or_null(
|
||||
kat_button.focus_neighbor_bottom
|
||||
_assert_directionally_reachable(robot_button, option_controls)
|
||||
var robot_down := robot_button.get_node_or_null(
|
||||
robot_button.focus_neighbor_bottom
|
||||
) as Control
|
||||
_expect(
|
||||
kat_down != null and pitch_grid.is_ancestor_of(kat_down),
|
||||
robot_down != null and pitch_grid.is_ancestor_of(robot_down),
|
||||
"Down from the voice-set row does not enter the pitch row.",
|
||||
)
|
||||
if OS.has_environment("NETFISHING_PROFILE_VOICE_CAPTURE"):
|
||||
|
|
@ -1021,18 +1020,6 @@ func _validate_profile_voice_navigation() -> void:
|
|||
str(page.get("_draft_sample_set_id")) == "robot",
|
||||
"Selecting robot did not update the profile draft.",
|
||||
)
|
||||
kim_button.grab_focus()
|
||||
kim_button.button_pressed = true
|
||||
kim_button.pressed.emit()
|
||||
await process_frame
|
||||
_expect(
|
||||
root.gui_get_focus_owner() == kim_button,
|
||||
"Selecting kim moved controller focus out of the voice-set row.",
|
||||
)
|
||||
_expect(
|
||||
str(page.get("_draft_sample_set_id")) == "kim",
|
||||
"Selecting kim did not update the profile draft.",
|
||||
)
|
||||
var category_controls: Array[Control] = []
|
||||
for item: Variant in page.call(
|
||||
"_controls_under", page.get("_category_list")
|
||||
|
|
|
|||
55
tests/network_chat_protocol_validation.gd
Normal file
55
tests/network_chat_protocol_validation.gd
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
extends SceneTree
|
||||
|
||||
const EDGE_PADDING: String = " \t\n ⠀"
|
||||
|
||||
|
||||
func _initialize() -> void:
|
||||
call_deferred("_validate_protocol")
|
||||
|
||||
|
||||
func _validate_protocol() -> void:
|
||||
_validate_type_and_empty_handling()
|
||||
_validate_message_cleanup()
|
||||
_validate_protocol_limits()
|
||||
print("Network chat protocol validation: PASS")
|
||||
quit()
|
||||
|
||||
|
||||
func _validate_type_and_empty_handling() -> void:
|
||||
assert(NetworkChatProtocol.sanitize_body(null) == "")
|
||||
assert(NetworkChatProtocol.sanitize_body(42) == "")
|
||||
assert(NetworkChatProtocol.sanitize_body(EDGE_PADDING) == "")
|
||||
assert(NetworkChatProtocol.sanitize_body("\u0001") == "")
|
||||
|
||||
|
||||
func _validate_message_cleanup() -> void:
|
||||
assert(NetworkChatProtocol.sanitize_body(" hello ") == "hello")
|
||||
assert(NetworkChatProtocol.sanitize_body("a\tb\nc") == "a b c")
|
||||
assert(NetworkChatProtocol.sanitize_body("word word") == "word word")
|
||||
assert(NetworkChatProtocol.sanitize_body(" !!! ") == "!!!")
|
||||
assert(
|
||||
NetworkChatProtocol.sanitize_body(
|
||||
EDGE_PADDING + "visible" + EDGE_PADDING
|
||||
) == "visible"
|
||||
)
|
||||
|
||||
|
||||
func _validate_protocol_limits() -> void:
|
||||
var maximum_body: String = "a".repeat(
|
||||
NetworkChatProtocol.MAX_VISIBLE_CHARACTERS
|
||||
)
|
||||
assert(NetworkChatProtocol.sanitize_body(maximum_body) == maximum_body)
|
||||
assert(
|
||||
NetworkChatProtocol.sanitize_body(maximum_body + "a") == ""
|
||||
)
|
||||
var maximum_utf8_body: String = "🐟".repeat(
|
||||
NetworkChatProtocol.MAX_VISIBLE_CHARACTERS
|
||||
)
|
||||
assert(
|
||||
maximum_utf8_body.to_utf8_buffer().size()
|
||||
== NetworkChatProtocol.MAX_UTF8_BYTES
|
||||
)
|
||||
assert(
|
||||
NetworkChatProtocol.sanitize_body(maximum_utf8_body)
|
||||
== maximum_utf8_body
|
||||
)
|
||||
1
tests/network_chat_protocol_validation.gd.uid
Normal file
1
tests/network_chat_protocol_validation.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bj7nq2k6q5c7f
|
||||
|
|
@ -53,7 +53,7 @@ func _run_host() -> void:
|
|||
"deep",
|
||||
profile.speech_speed_id,
|
||||
profile.call_id,
|
||||
"kim",
|
||||
"robot",
|
||||
))
|
||||
var save_manager := main.get("_save_manager") as PlayerSaveManager
|
||||
assert(session.start_private_host(TEST_PORT))
|
||||
|
|
@ -62,7 +62,7 @@ func _run_host() -> void:
|
|||
) as Player
|
||||
assert(local_avatar != null)
|
||||
assert(local_avatar.get_animalese_voice_id() == "deep")
|
||||
assert(local_avatar.get_animalese_sample_set_id() == "kim")
|
||||
assert(local_avatar.get_animalese_sample_set_id() == "robot")
|
||||
assert(save_manager.initialize_new_game())
|
||||
main.call("_enter_gameplay")
|
||||
for _frame: int in 4:
|
||||
|
|
@ -114,7 +114,7 @@ func _run_host() -> void:
|
|||
await process_frame
|
||||
assert(not voice_messages.is_empty())
|
||||
assert(str(voice_messages[0].get("voice_id", "")) == "deep")
|
||||
assert(str(voice_messages[0].get("sample_set_id", "")) == "kim")
|
||||
assert(str(voice_messages[0].get("sample_set_id", "")) == "robot")
|
||||
var disconnect_deadline: int = Time.get_ticks_msec() + 8000
|
||||
while (
|
||||
Time.get_ticks_msec() < disconnect_deadline
|
||||
|
|
@ -182,7 +182,7 @@ func _run_client() -> void:
|
|||
"deep",
|
||||
service.get_persisted_speech_speed_id(),
|
||||
service.get_persisted_call_id(),
|
||||
"kim",
|
||||
"robot",
|
||||
))
|
||||
var apply_deadline: int = Time.get_ticks_msec() + 8000
|
||||
while Time.get_ticks_msec() < apply_deadline and apply_results.is_empty():
|
||||
|
|
@ -191,11 +191,11 @@ func _run_client() -> void:
|
|||
assert(bool(apply_results[0][0]))
|
||||
assert(service.get_persisted_appearance() == changed)
|
||||
assert(service.get_persisted_voice_id() == "deep")
|
||||
assert(service.get_persisted_sample_set_id() == "kim")
|
||||
assert(service.get_persisted_sample_set_id() == "robot")
|
||||
assert(Dictionary(session.get("_local_appearance_snapshot")) == changed)
|
||||
var player := main.get_node("%PlayerSpawnService").get_local_player() as Player
|
||||
assert(player.get_animalese_voice_id() == "deep")
|
||||
assert(player.get_animalese_sample_set_id() == "kim")
|
||||
assert(player.get_animalese_sample_set_id() == "robot")
|
||||
var host_voice_messages: Array[Dictionary] = []
|
||||
for message: Dictionary in chat_service.get_history():
|
||||
if str(message.get("body", "")) == HOST_VOICE_MESSAGE:
|
||||
|
|
@ -217,8 +217,8 @@ func _run_client() -> void:
|
|||
host_voice_messages.append(message)
|
||||
assert(not host_voice_messages.is_empty())
|
||||
assert(str(host_voice_messages[0].get("voice_id", "")) == "deep")
|
||||
assert(str(host_voice_messages[0].get("sample_set_id", "")) == "kim")
|
||||
assert(remote_voice_samples.has("kim"))
|
||||
assert(str(host_voice_messages[0].get("sample_set_id", "")) == "robot")
|
||||
assert(remote_voice_samples.has("robot"))
|
||||
var local_confirmations: Array[Dictionary] = []
|
||||
chat_service.local_message_confirmed.connect(
|
||||
func(message: Dictionary) -> void:
|
||||
|
|
@ -238,7 +238,7 @@ func _run_client() -> void:
|
|||
await process_frame
|
||||
assert(not local_confirmations.is_empty())
|
||||
assert(str(local_confirmations[0].get("voice_id", "")) == "deep")
|
||||
assert(str(local_confirmations[0].get("sample_set_id", "")) == "kim")
|
||||
assert(str(local_confirmations[0].get("sample_set_id", "")) == "robot")
|
||||
print("Profile multiplayer client validation: PASS")
|
||||
await _session_cleanup(main, session)
|
||||
|
||||
|
|
|
|||
|
|
@ -155,12 +155,6 @@ func _run() -> void:
|
|||
var adamantris_credit := credits_page.get_node(
|
||||
"Paper/Margin/Layout/Columns/CreativeCredits/AdamantrisCredit"
|
||||
) as Label
|
||||
var tekgator_name := credits_page.get_node(
|
||||
"Paper/Margin/Layout/Columns/CreativeCredits/TekgatorName"
|
||||
) as Label
|
||||
var tekgator_credit := credits_page.get_node(
|
||||
"Paper/Margin/Layout/Columns/CreativeCredits/TekgatorCredit"
|
||||
) as Label
|
||||
var credits_paper := credits_page.get_node("Paper") as PanelContainer
|
||||
var audio_credits := credits_page.get_node(
|
||||
"Paper/Margin/Layout/Columns/AdditionalCredits/AudioCredits"
|
||||
|
|
@ -187,27 +181,11 @@ func _run() -> void:
|
|||
and "texture artwork" in adamantris_credit.text.to_lower(),
|
||||
"in-game credits describe adamantris's hand-net contribution",
|
||||
)
|
||||
_expect(
|
||||
tekgator_name.text == "Tekgator",
|
||||
"in-game credits name Tekgator",
|
||||
)
|
||||
_expect(
|
||||
"shop icon" in tekgator_credit.text.to_lower(),
|
||||
"in-game credits describe Tekgator's shop icon artwork",
|
||||
)
|
||||
_expect(
|
||||
"kat • animalese voice sample" in audio_credits.text,
|
||||
"in-game credits name kat's animalese voice contribution",
|
||||
)
|
||||
_expect(
|
||||
"kim • animalese voice sample" in audio_credits.text,
|
||||
"in-game credits name kim's animalese voice contribution",
|
||||
)
|
||||
_expect(
|
||||
credits_paper.get_global_rect().encloses(
|
||||
tekgator_credit.get_global_rect()
|
||||
audio_credits.get_global_rect()
|
||||
),
|
||||
"contributor credits stay inside the authored credits panel",
|
||||
"audio credits stay inside the authored credits panel",
|
||||
)
|
||||
|
||||
title_screen.queue_free()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue