mirror of
https://github.com/strukturag/nextcloud-spreed-signaling
synced 2024-05-02 22:03:09 +02:00
Don't require certain order of own/other "joined" events.
This commit is contained in:
parent
73acd90f2b
commit
9cf796640c
11
hub_test.go
11
hub_test.go
|
@ -1700,10 +1700,7 @@ func TestJoinMultiple(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// We will receive a "joined" event for the first and the second client.
|
// We will receive a "joined" event for the first and the second client.
|
||||||
if err := client2.RunUntilJoined(ctx, hello1.Hello); err != nil {
|
if err := client2.RunUntilJoined(ctx, hello1.Hello, hello2.Hello); err != nil {
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
if err := client2.RunUntilJoined(ctx, hello2.Hello); err != nil {
|
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
// The first client will also receive a "joined" event from the second client.
|
// The first client will also receive a "joined" event from the second client.
|
||||||
|
@ -2089,11 +2086,7 @@ func TestClientTakeoverRoomSession(t *testing.T) {
|
||||||
|
|
||||||
// The new client will receive "joined" events for the existing client3 and
|
// The new client will receive "joined" events for the existing client3 and
|
||||||
// himself.
|
// himself.
|
||||||
if err := client2.RunUntilJoined(ctx, hello3.Hello); err != nil {
|
if err := client2.RunUntilJoined(ctx, hello3.Hello, hello2.Hello); err != nil {
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := client2.RunUntilJoined(ctx, hello2.Hello); err != nil {
|
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -498,7 +498,7 @@ func (c *TestClient) checkMessageJoined(message *ServerMessage, hello *HelloServ
|
||||||
return c.checkMessageJoinedSession(message, hello.SessionId, hello.UserId)
|
return c.checkMessageJoinedSession(message, hello.SessionId, hello.UserId)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *TestClient) checkMessageJoinedSession(message *ServerMessage, sessionId string, userId string) error {
|
func (c *TestClient) checkSingleMessageJoined(message *ServerMessage) error {
|
||||||
if err := checkMessageType(message, "event"); err != nil {
|
if err := checkMessageType(message, "event"); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if message.Event.Target != "room" {
|
} else if message.Event.Target != "room" {
|
||||||
|
@ -507,6 +507,13 @@ func (c *TestClient) checkMessageJoinedSession(message *ServerMessage, sessionId
|
||||||
return fmt.Errorf("Expected event type join, got %+v", message.Event)
|
return fmt.Errorf("Expected event type join, got %+v", message.Event)
|
||||||
} else if len(message.Event.Join) != 1 {
|
} else if len(message.Event.Join) != 1 {
|
||||||
return fmt.Errorf("Expected one join event entry, got %+v", message.Event)
|
return fmt.Errorf("Expected one join event entry, got %+v", message.Event)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *TestClient) checkMessageJoinedSession(message *ServerMessage, sessionId string, userId string) error {
|
||||||
|
if err := c.checkSingleMessageJoined(message); err != nil {
|
||||||
|
return err
|
||||||
} else {
|
} else {
|
||||||
evt := message.Event.Join[0]
|
evt := message.Event.Join[0]
|
||||||
if sessionId != "" && evt.SessionId != sessionId {
|
if sessionId != "" && evt.SessionId != sessionId {
|
||||||
|
@ -520,12 +527,22 @@ func (c *TestClient) checkMessageJoinedSession(message *ServerMessage, sessionId
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *TestClient) RunUntilJoined(ctx context.Context, hello *HelloServerMessage) error {
|
func (c *TestClient) RunUntilJoined(ctx context.Context, hello ...*HelloServerMessage) error {
|
||||||
|
for len(hello) > 0 {
|
||||||
if message, err := c.RunUntilMessage(ctx); err != nil {
|
if message, err := c.RunUntilMessage(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
return c.checkMessageJoined(message, hello)
|
if err := c.checkSingleMessageJoined(message); err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
for idx, h := range hello {
|
||||||
|
if err := c.checkMessageJoined(message, h); err == nil {
|
||||||
|
hello = append(hello[:idx], hello[idx+1:]...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *TestClient) checkMessageRoomLeave(message *ServerMessage, hello *HelloServerMessage) error {
|
func (c *TestClient) checkMessageRoomLeave(message *ServerMessage, hello *HelloServerMessage) error {
|
||||||
|
|
Loading…
Reference in a new issue