From f1dc9d6c5f17575fc7468a5bade117eedc734626 Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Mon, 2 Feb 2026 14:37:18 +0100 Subject: [PATCH] Test validation of federation messages. --- api/signaling_test.go | 67 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/api/signaling_test.go b/api/signaling_test.go index e7103dc..5729d44 100644 --- a/api/signaling_test.go +++ b/api/signaling_test.go @@ -142,6 +142,14 @@ func TestHelloClientMessage(t *testing.T) { Version: HelloVersionV2, ResumeId: "the-resume-id", }, + &HelloClientMessage{ + Version: HelloVersionV2, + Auth: &HelloClientMessageAuth{ + Type: "federation", + Params: tokenAuthParams, + Url: "https://domain.invalid", + }, + }, } invalid_messages := []testCheckValid{ // Hello version 1 @@ -222,6 +230,28 @@ func TestHelloClientMessage(t *testing.T) { Url: "https://domain.invalid", }, }, + &HelloClientMessage{ + Version: HelloVersionV2, + Auth: &HelloClientMessageAuth{ + Type: HelloClientTypeFederation, + Params: json.RawMessage("xyz"), // Invalid JSON. + }, + }, + &HelloClientMessage{ + Version: HelloVersionV2, + Auth: &HelloClientMessageAuth{ + Type: HelloClientTypeFederation, + Params: json.RawMessage("{}"), + Url: "https://domain.invalid", + }, + }, + &HelloClientMessage{ + Version: HelloVersionV2, + Auth: &HelloClientMessageAuth{ + Type: HelloClientTypeFederation, + Params: tokenAuthParams, + }, + }, } testMessages(t, "hello", valid_messages, invalid_messages) @@ -335,11 +365,44 @@ func TestByeClientMessage(t *testing.T) { func TestRoomClientMessage(t *testing.T) { t.Parallel() - // Any "room" message is valid. + // Any regular "room" message is valid. valid_messages := []testCheckValid{ &RoomClientMessage{}, + &RoomClientMessage{ + Federation: &RoomFederationMessage{ + SignalingUrl: "http://signaling.domain.invalid/", + NextcloudUrl: "http://nextcloud.domain.invalid", + Token: "the token", + }, + }, + } + invalid_messages := []testCheckValid{ + &RoomClientMessage{ + Federation: &RoomFederationMessage{}, + }, + &RoomClientMessage{ + Federation: &RoomFederationMessage{ + SignalingUrl: ":", + }, + }, + &RoomClientMessage{ + Federation: &RoomFederationMessage{ + SignalingUrl: "http://signaling.domain.invalid", + }, + }, + &RoomClientMessage{ + Federation: &RoomFederationMessage{ + SignalingUrl: "http://signaling.domain.invalid/", + NextcloudUrl: ":", + }, + }, + &RoomClientMessage{ + Federation: &RoomFederationMessage{ + SignalingUrl: "http://signaling.domain.invalid/", + NextcloudUrl: "http://nextcloud.domain.invalid", + }, + }, } - invalid_messages := []testCheckValid{} testMessages(t, "room", valid_messages, invalid_messages)