MCPcopy
hub / github.com/tinode/chat / TestRegisterSessionMe

Function TestRegisterSessionMe

server/topic_test.go:1410–1468  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1408}
1409
1410func TestRegisterSessionMe(t *testing.T) {
1411 topicName := "usrMe"
1412 numUsers := 1
1413 helper := TopicTestHelper{}
1414 helper.setUp(t, numUsers, types.TopicCatMe, topicName, false)
1415 defer helper.tearDown()
1416 if len(helper.topic.sessions) != 0 {
1417 helper.finish()
1418 t.Fatalf("Initially attached sessions: expected 0 vs found %d", len(helper.topic.sessions))
1419 }
1420
1421 uid := helper.uids[0]
1422
1423 // Add a couple more sessions.
1424 for i := 1; i < 3; i++ {
1425 s, r := helper.newSession(fmt.Sprintf("sid%d", i), uid)
1426 helper.sessions = append(helper.sessions, s)
1427 helper.results = append(helper.results, r)
1428 }
1429
1430 for i, s := range helper.sessions {
1431 join := &ClientComMessage{
1432 Sub: &MsgClientSub{
1433 Id: fmt.Sprintf("id456-%d", i),
1434 Topic: "me",
1435 },
1436 AsUser: uid.UserId(),
1437 sess: s,
1438 }
1439 helper.topic.registerSession(join)
1440 }
1441 helper.finish()
1442
1443 // Check for errors from testHubLoop
1444 if errorMsgs, hasError := helper.hubMessages["__ERROR__"]; hasError {
1445 t.Fatal(errorMsgs[0].Ctrl.Text)
1446 }
1447
1448 if len(helper.topic.sessions) != 3 {
1449 t.Errorf("Attached sessions: expected 3, found %d", len(helper.topic.sessions))
1450 }
1451 for _, s := range helper.sessions {
1452 if len(s.subs) != 1 {
1453 t.Errorf("Session subscriptions: expected 3, found %d", len(s.subs))
1454 }
1455 }
1456 online := helper.topic.perUser[uid].online
1457 if online != 3 {
1458 t.Errorf("Number of online sessions: expected 3, found %d", online)
1459 }
1460 // Session output.
1461 for _, r := range helper.results {
1462 registerSessionVerifyOutputs(t, r, []int{http.StatusOK})
1463 }
1464 // Presence notifications.
1465 if len(helper.hubMessages) != 0 {
1466 t.Errorf("Hub isn't expected to receive any messages, received %d", len(helper.hubMessages))
1467 }

Callers

nothing calls this directly

Calls 7

setUpMethod · 0.95
tearDownMethod · 0.95
finishMethod · 0.95
newSessionMethod · 0.95
UserIdMethod · 0.80
registerSessionMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…