|
|
@@ -1,4 +1,4 @@
|
|
|
-package handler
|
|
|
+package foodgroup
|
|
|
|
|
|
import (
|
|
|
"testing"
|
|
|
@@ -7,13 +7,12 @@ import (
|
|
|
"github.com/mk6i/retro-aim-server/config"
|
|
|
"github.com/stretchr/testify/mock"
|
|
|
|
|
|
- "github.com/mk6i/retro-aim-server/oscar"
|
|
|
- "github.com/mk6i/retro-aim-server/server"
|
|
|
"github.com/mk6i/retro-aim-server/state"
|
|
|
+ "github.com/mk6i/retro-aim-server/wire"
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
)
|
|
|
|
|
|
-func TestOServiceServiceForBOS_ServiceRequestHandler(t *testing.T) {
|
|
|
+func TestOServiceServiceForBOS_ServiceRequest(t *testing.T) {
|
|
|
cases := []struct {
|
|
|
// name is the unit test name
|
|
|
name string
|
|
|
@@ -25,25 +24,25 @@ func TestOServiceServiceForBOS_ServiceRequestHandler(t *testing.T) {
|
|
|
// info
|
|
|
userSession *state.Session
|
|
|
// inputSNAC is the SNAC sent by the sender client
|
|
|
- inputSNAC oscar.SNACMessage
|
|
|
+ inputSNAC wire.SNACMessage
|
|
|
// expectSNACFrame is the SNAC frame sent from the server to the recipient
|
|
|
// client
|
|
|
- expectOutput oscar.SNACMessage
|
|
|
+ expectOutput wire.SNACMessage
|
|
|
// expectErr is the expected error returned by the router
|
|
|
expectErr error
|
|
|
}{
|
|
|
{
|
|
|
name: "request info for ICBM service, return invalid SNAC err",
|
|
|
userSession: newTestSession("user_screen_name"),
|
|
|
- inputSNAC: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
+ inputSNAC: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x04_OServiceServiceRequest{
|
|
|
- FoodGroup: oscar.ICBM,
|
|
|
+ Body: wire.SNAC_0x01_0x04_OServiceServiceRequest{
|
|
|
+ FoodGroup: wire.ICBM,
|
|
|
},
|
|
|
},
|
|
|
- expectErr: server.ErrUnsupportedSubGroup,
|
|
|
+ expectErr: wire.ErrUnsupportedFoodGroup,
|
|
|
},
|
|
|
{
|
|
|
name: "request info for connecting to chat room, return chat service and chat room metadata",
|
|
|
@@ -60,40 +59,40 @@ func TestOServiceServiceForBOS_ServiceRequestHandler(t *testing.T) {
|
|
|
Name: "my new chat",
|
|
|
},
|
|
|
userSession: newTestSession("user_screen_name", sessOptCannedID),
|
|
|
- inputSNAC: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
+ inputSNAC: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x04_OServiceServiceRequest{
|
|
|
- FoodGroup: oscar.Chat,
|
|
|
- TLVRestBlock: oscar.TLVRestBlock{
|
|
|
- TLVList: oscar.TLVList{
|
|
|
- oscar.NewTLV(0x01, oscar.SNAC_0x01_0x04_TLVRoomInfo{
|
|
|
+ Body: wire.SNAC_0x01_0x04_OServiceServiceRequest{
|
|
|
+ FoodGroup: wire.Chat,
|
|
|
+ TLVRestBlock: wire.TLVRestBlock{
|
|
|
+ TLVList: wire.TLVList{
|
|
|
+ wire.NewTLV(0x01, wire.SNAC_0x01_0x04_TLVRoomInfo{
|
|
|
Exchange: 8,
|
|
|
- Cookie: []byte("the-chat-cookie"),
|
|
|
+ Cookie: "the-chat-cookie",
|
|
|
InstanceNumber: 16,
|
|
|
}),
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
- expectOutput: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceServiceResponse,
|
|
|
+ expectOutput: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceServiceResponse,
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x05_OServiceServiceResponse{
|
|
|
- TLVRestBlock: oscar.TLVRestBlock{
|
|
|
- TLVList: oscar.TLVList{
|
|
|
- oscar.NewTLV(oscar.OServiceTLVTagsReconnectHere, "127.0.0.1:1234"),
|
|
|
- oscar.NewTLV(oscar.OServiceTLVTagsLoginCookie, server.ChatCookie{
|
|
|
- Cookie: []byte("the-chat-cookie"),
|
|
|
- SessID: "user-userSession-id",
|
|
|
+ Body: wire.SNAC_0x01_0x05_OServiceServiceResponse{
|
|
|
+ TLVRestBlock: wire.TLVRestBlock{
|
|
|
+ TLVList: wire.TLVList{
|
|
|
+ wire.NewTLV(wire.OServiceTLVTagsReconnectHere, "127.0.0.1:1234"),
|
|
|
+ wire.NewTLV(wire.OServiceTLVTagsLoginCookie, chatLoginCookie{
|
|
|
+ Cookie: "the-chat-cookie",
|
|
|
+ SessID: "user-session-id",
|
|
|
}),
|
|
|
- oscar.NewTLV(oscar.OServiceTLVTagsGroupID, oscar.Chat),
|
|
|
- oscar.NewTLV(oscar.OServiceTLVTagsSSLCertName, ""),
|
|
|
- oscar.NewTLV(oscar.OServiceTLVTagsSSLState, uint8(0x00)),
|
|
|
+ wire.NewTLV(wire.OServiceTLVTagsGroupID, wire.Chat),
|
|
|
+ wire.NewTLV(wire.OServiceTLVTagsSSLCertName, ""),
|
|
|
+ wire.NewTLV(wire.OServiceTLVTagsSSLState, uint8(0x00)),
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
@@ -107,17 +106,17 @@ func TestOServiceServiceForBOS_ServiceRequestHandler(t *testing.T) {
|
|
|
},
|
|
|
chatRoom: nil,
|
|
|
userSession: newTestSession("user_screen_name", sessOptCannedID),
|
|
|
- inputSNAC: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
+ inputSNAC: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x04_OServiceServiceRequest{
|
|
|
- FoodGroup: oscar.Chat,
|
|
|
- TLVRestBlock: oscar.TLVRestBlock{
|
|
|
- TLVList: oscar.TLVList{
|
|
|
- oscar.NewTLV(0x01, oscar.SNAC_0x01_0x04_TLVRoomInfo{
|
|
|
+ Body: wire.SNAC_0x01_0x04_OServiceServiceRequest{
|
|
|
+ FoodGroup: wire.Chat,
|
|
|
+ TLVRestBlock: wire.TLVRestBlock{
|
|
|
+ TLVList: wire.TLVList{
|
|
|
+ wire.NewTLV(0x01, wire.SNAC_0x01_0x04_TLVRoomInfo{
|
|
|
Exchange: 8,
|
|
|
- Cookie: []byte("the-chat-cookie"),
|
|
|
+ Cookie: "the-chat-cookie",
|
|
|
InstanceNumber: 16,
|
|
|
}),
|
|
|
},
|
|
|
@@ -150,14 +149,14 @@ func TestOServiceServiceForBOS_ServiceRequestHandler(t *testing.T) {
|
|
|
cfg: tc.cfg,
|
|
|
}, chatRegistry)
|
|
|
|
|
|
- outputSNAC, err := svc.ServiceRequestHandler(nil, tc.userSession, tc.inputSNAC.Frame,
|
|
|
- tc.inputSNAC.Body.(oscar.SNAC_0x01_0x04_OServiceServiceRequest))
|
|
|
+ outputSNAC, err := svc.ServiceRequest(nil, tc.userSession, tc.inputSNAC.Frame,
|
|
|
+ tc.inputSNAC.Body.(wire.SNAC_0x01_0x04_OServiceServiceRequest))
|
|
|
assert.ErrorIs(t, err, tc.expectErr)
|
|
|
if tc.expectErr != nil {
|
|
|
return
|
|
|
}
|
|
|
// assert the user session is linked to the chat room
|
|
|
- assert.Equal(t, chatSess.ChatID(), tc.chatRoom.Cookie)
|
|
|
+ assert.Equal(t, chatSess.ChatRoomCookie(), tc.chatRoom.Cookie)
|
|
|
//
|
|
|
// verify output
|
|
|
//
|
|
|
@@ -166,21 +165,21 @@ func TestOServiceServiceForBOS_ServiceRequestHandler(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func TestSetUserInfoFieldsHandler(t *testing.T) {
|
|
|
+func TestSetUserInfoFields(t *testing.T) {
|
|
|
cases := []struct {
|
|
|
// name is the unit test name
|
|
|
name string
|
|
|
// userSession is the session of the user whose info is being set
|
|
|
userSession *state.Session
|
|
|
// inputSNAC is the SNAC sent from the client to the server
|
|
|
- inputSNAC oscar.SNACMessage
|
|
|
+ inputSNAC wire.SNACMessage
|
|
|
// expectOutput is the SNAC reply sent from the server back to the
|
|
|
// client
|
|
|
- expectOutput oscar.SNACMessage
|
|
|
+ expectOutput wire.SNACMessage
|
|
|
// broadcastMessage is the arrival/departure message sent to buddies
|
|
|
broadcastMessage []struct {
|
|
|
recipients []string
|
|
|
- msg oscar.SNACMessage
|
|
|
+ msg wire.SNACMessage
|
|
|
}
|
|
|
// interestedUserLookups contains all the users who have this user on
|
|
|
// their buddy list
|
|
|
@@ -191,40 +190,40 @@ func TestSetUserInfoFieldsHandler(t *testing.T) {
|
|
|
{
|
|
|
name: "set user status to visible",
|
|
|
userSession: newTestSession("user_screen_name"),
|
|
|
- inputSNAC: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
+ inputSNAC: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x1E_OServiceSetUserInfoFields{
|
|
|
- TLVRestBlock: oscar.TLVRestBlock{
|
|
|
- TLVList: oscar.TLVList{
|
|
|
- oscar.NewTLV(oscar.OServiceUserInfoStatus, uint32(0x0000)),
|
|
|
+ Body: wire.SNAC_0x01_0x1E_OServiceSetUserInfoFields{
|
|
|
+ TLVRestBlock: wire.TLVRestBlock{
|
|
|
+ TLVList: wire.TLVList{
|
|
|
+ wire.NewTLV(wire.OServiceUserInfoStatus, uint32(0x0000)),
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
- expectOutput: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceUserInfoUpdate,
|
|
|
+ expectOutput: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceUserInfoUpdate,
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
|
|
|
+ Body: wire.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
|
|
|
TLVUserInfo: newTestSession("user_screen_name").TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
broadcastMessage: []struct {
|
|
|
recipients []string
|
|
|
- msg oscar.SNACMessage
|
|
|
+ msg wire.SNACMessage
|
|
|
}{
|
|
|
{
|
|
|
recipients: []string{"friend1", "friend2"},
|
|
|
- msg: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyArrived,
|
|
|
+ msg: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyArrived,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
+ Body: wire.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
TLVUserInfo: newTestSession("user_screen_name").TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
@@ -237,41 +236,41 @@ func TestSetUserInfoFieldsHandler(t *testing.T) {
|
|
|
{
|
|
|
name: "set user status to invisible",
|
|
|
userSession: newTestSession("user_screen_name"),
|
|
|
- inputSNAC: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
+ inputSNAC: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x1E_OServiceSetUserInfoFields{
|
|
|
- TLVRestBlock: oscar.TLVRestBlock{
|
|
|
- TLVList: oscar.TLVList{
|
|
|
- oscar.NewTLV(oscar.OServiceUserInfoStatus, uint32(0x0100)),
|
|
|
+ Body: wire.SNAC_0x01_0x1E_OServiceSetUserInfoFields{
|
|
|
+ TLVRestBlock: wire.TLVRestBlock{
|
|
|
+ TLVList: wire.TLVList{
|
|
|
+ wire.NewTLV(wire.OServiceUserInfoStatus, uint32(0x0100)),
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
- expectOutput: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceUserInfoUpdate,
|
|
|
+ expectOutput: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceUserInfoUpdate,
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
|
|
|
+ Body: wire.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
|
|
|
TLVUserInfo: newTestSession("user_screen_name", sessOptInvisible).TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
broadcastMessage: []struct {
|
|
|
recipients []string
|
|
|
- msg oscar.SNACMessage
|
|
|
+ msg wire.SNACMessage
|
|
|
}{
|
|
|
{
|
|
|
recipients: []string{"friend1", "friend2"},
|
|
|
- msg: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyDeparted,
|
|
|
+ msg: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyDeparted,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x03_0x0C_BuddyDeparted{
|
|
|
- TLVUserInfo: oscar.TLVUserInfo{
|
|
|
+ Body: wire.SNAC_0x03_0x0C_BuddyDeparted{
|
|
|
+ TLVUserInfo: wire.TLVUserInfo{
|
|
|
ScreenName: "user_screen_name",
|
|
|
WarningLevel: 0,
|
|
|
},
|
|
|
@@ -305,8 +304,8 @@ func TestSetUserInfoFieldsHandler(t *testing.T) {
|
|
|
// send input SNAC
|
|
|
//
|
|
|
svc := NewOServiceService(config.Config{}, messageRelayer, feedbagManager)
|
|
|
- outputSNAC, err := svc.SetUserInfoFieldsHandler(nil, tc.userSession, tc.inputSNAC.Frame,
|
|
|
- tc.inputSNAC.Body.(oscar.SNAC_0x01_0x1E_OServiceSetUserInfoFields))
|
|
|
+ outputSNAC, err := svc.SetUserInfoFields(nil, tc.userSession, tc.inputSNAC.Frame,
|
|
|
+ tc.inputSNAC.Body.(wire.SNAC_0x01_0x1E_OServiceSetUserInfoFields))
|
|
|
assert.ErrorIs(t, err, tc.expectErr)
|
|
|
if tc.expectErr != nil {
|
|
|
return
|
|
|
@@ -319,17 +318,17 @@ func TestSetUserInfoFieldsHandler(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func TestOServiceService_RateParamsQueryHandler(t *testing.T) {
|
|
|
+func TestOServiceService_RateParamsQuery(t *testing.T) {
|
|
|
svc := NewOServiceService(config.Config{}, nil, nil)
|
|
|
|
|
|
- have := svc.RateParamsQueryHandler(nil, oscar.SNACFrame{RequestID: 1234})
|
|
|
- want := oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceRateParamsReply,
|
|
|
+ have := svc.RateParamsQuery(nil, wire.SNACFrame{RequestID: 1234})
|
|
|
+ want := wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceRateParamsReply,
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x07_OServiceRateParamsReply{
|
|
|
+ Body: wire.SNAC_0x01_0x07_OServiceRateParamsReply{
|
|
|
RateClasses: []struct {
|
|
|
ID uint16
|
|
|
WindowSize uint32
|
|
|
@@ -369,140 +368,140 @@ func TestOServiceService_RateParamsQueryHandler(t *testing.T) {
|
|
|
SubGroup uint16
|
|
|
}{
|
|
|
{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyRightsQuery,
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyRightsQuery,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Chat,
|
|
|
- SubGroup: oscar.ChatChannelMsgToHost,
|
|
|
+ FoodGroup: wire.Chat,
|
|
|
+ SubGroup: wire.ChatChannelMsgToHost,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ChatNav,
|
|
|
- SubGroup: oscar.ChatNavRequestChatRights,
|
|
|
+ FoodGroup: wire.ChatNav,
|
|
|
+ SubGroup: wire.ChatNavRequestChatRights,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ChatNav,
|
|
|
- SubGroup: oscar.ChatNavRequestRoomInfo,
|
|
|
+ FoodGroup: wire.ChatNav,
|
|
|
+ SubGroup: wire.ChatNavRequestRoomInfo,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ChatNav,
|
|
|
- SubGroup: oscar.ChatNavCreateRoom,
|
|
|
+ FoodGroup: wire.ChatNav,
|
|
|
+ SubGroup: wire.ChatNavCreateRoom,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagRightsQuery,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagRightsQuery,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagQuery,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagQuery,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagQueryIfModified,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagQueryIfModified,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagUse,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagUse,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagInsertItem,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagInsertItem,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagUpdateItem,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagUpdateItem,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagDeleteItem,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagDeleteItem,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagStartCluster,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagStartCluster,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Feedbag,
|
|
|
- SubGroup: oscar.FeedbagEndCluster,
|
|
|
+ FoodGroup: wire.Feedbag,
|
|
|
+ SubGroup: wire.FeedbagEndCluster,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ICBM,
|
|
|
- SubGroup: oscar.ICBMAddParameters,
|
|
|
+ FoodGroup: wire.ICBM,
|
|
|
+ SubGroup: wire.ICBMAddParameters,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ICBM,
|
|
|
- SubGroup: oscar.ICBMParameterQuery,
|
|
|
+ FoodGroup: wire.ICBM,
|
|
|
+ SubGroup: wire.ICBMParameterQuery,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ICBM,
|
|
|
- SubGroup: oscar.ICBMChannelMsgToHost,
|
|
|
+ FoodGroup: wire.ICBM,
|
|
|
+ SubGroup: wire.ICBMChannelMsgToHost,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ICBM,
|
|
|
- SubGroup: oscar.ICBMEvilRequest,
|
|
|
+ FoodGroup: wire.ICBM,
|
|
|
+ SubGroup: wire.ICBMEvilRequest,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ICBM,
|
|
|
- SubGroup: oscar.ICBMClientErr,
|
|
|
+ FoodGroup: wire.ICBM,
|
|
|
+ SubGroup: wire.ICBMClientErr,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.ICBM,
|
|
|
- SubGroup: oscar.ICBMClientEvent,
|
|
|
+ FoodGroup: wire.ICBM,
|
|
|
+ SubGroup: wire.ICBMClientEvent,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Locate,
|
|
|
- SubGroup: oscar.LocateRightsQuery,
|
|
|
+ FoodGroup: wire.Locate,
|
|
|
+ SubGroup: wire.LocateRightsQuery,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Locate,
|
|
|
- SubGroup: oscar.LocateSetInfo,
|
|
|
+ FoodGroup: wire.Locate,
|
|
|
+ SubGroup: wire.LocateSetInfo,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Locate,
|
|
|
- SubGroup: oscar.LocateSetDirInfo,
|
|
|
+ FoodGroup: wire.Locate,
|
|
|
+ SubGroup: wire.LocateSetDirInfo,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Locate,
|
|
|
- SubGroup: oscar.LocateGetDirInfo,
|
|
|
+ FoodGroup: wire.Locate,
|
|
|
+ SubGroup: wire.LocateGetDirInfo,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Locate,
|
|
|
- SubGroup: oscar.LocateSetKeywordInfo,
|
|
|
+ FoodGroup: wire.Locate,
|
|
|
+ SubGroup: wire.LocateSetKeywordInfo,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.Locate,
|
|
|
- SubGroup: oscar.LocateUserInfoQuery2,
|
|
|
+ FoodGroup: wire.Locate,
|
|
|
+ SubGroup: wire.LocateUserInfoQuery2,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceServiceRequest,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceServiceRequest,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceClientOnline,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceClientOnline,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceRateParamsQuery,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceRateParamsQuery,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceRateParamsSubAdd,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceRateParamsSubAdd,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceUserInfoQuery,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceUserInfoQuery,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceIdleNotification,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceIdleNotification,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceClientVersions,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceClientVersions,
|
|
|
},
|
|
|
{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceSetUserInfoFields,
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceSetUserInfoFields,
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
@@ -513,121 +512,121 @@ func TestOServiceService_RateParamsQueryHandler(t *testing.T) {
|
|
|
assert.Equal(t, want, have)
|
|
|
}
|
|
|
|
|
|
-func TestOServiceServiceForBOS_WriteOServiceHostOnline(t *testing.T) {
|
|
|
+func TestOServiceServiceForBOS_OServiceHostOnline(t *testing.T) {
|
|
|
svc := NewOServiceServiceForBOS(*NewOServiceService(config.Config{}, nil, nil), nil)
|
|
|
|
|
|
- want := oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceHostOnline,
|
|
|
+ want := wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceHostOnline,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x03_OServiceHostOnline{
|
|
|
+ Body: wire.SNAC_0x01_0x03_OServiceHostOnline{
|
|
|
FoodGroups: []uint16{
|
|
|
- oscar.Alert,
|
|
|
- oscar.Buddy,
|
|
|
- oscar.ChatNav,
|
|
|
- oscar.Feedbag,
|
|
|
- oscar.ICBM,
|
|
|
- oscar.Locate,
|
|
|
- oscar.OService,
|
|
|
+ wire.Alert,
|
|
|
+ wire.Buddy,
|
|
|
+ wire.ChatNav,
|
|
|
+ wire.Feedbag,
|
|
|
+ wire.ICBM,
|
|
|
+ wire.Locate,
|
|
|
+ wire.OService,
|
|
|
},
|
|
|
},
|
|
|
}
|
|
|
|
|
|
- have := svc.WriteOServiceHostOnline()
|
|
|
+ have := svc.HostOnline()
|
|
|
assert.Equal(t, want, have)
|
|
|
}
|
|
|
|
|
|
-func TestOServiceServiceForChat_WriteOServiceHostOnline(t *testing.T) {
|
|
|
+func TestOServiceServiceForChat_OServiceHostOnline(t *testing.T) {
|
|
|
svc := NewOServiceServiceForChat(*NewOServiceService(config.Config{}, nil, nil), nil)
|
|
|
|
|
|
- want := oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceHostOnline,
|
|
|
+ want := wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceHostOnline,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x03_OServiceHostOnline{
|
|
|
+ Body: wire.SNAC_0x01_0x03_OServiceHostOnline{
|
|
|
FoodGroups: []uint16{
|
|
|
- oscar.OService,
|
|
|
- oscar.Chat,
|
|
|
+ wire.OService,
|
|
|
+ wire.Chat,
|
|
|
},
|
|
|
},
|
|
|
}
|
|
|
|
|
|
- have := svc.WriteOServiceHostOnline()
|
|
|
+ have := svc.HostOnline()
|
|
|
assert.Equal(t, want, have)
|
|
|
}
|
|
|
|
|
|
-func TestOServiceService_ClientVersionsHandler(t *testing.T) {
|
|
|
+func TestOServiceService_ClientVersions(t *testing.T) {
|
|
|
svc := NewOServiceService(config.Config{}, nil, nil)
|
|
|
|
|
|
- want := oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceHostVersions,
|
|
|
+ want := wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceHostVersions,
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x18_OServiceHostVersions{
|
|
|
+ Body: wire.SNAC_0x01_0x18_OServiceHostVersions{
|
|
|
Versions: []uint16{5, 6, 7, 8},
|
|
|
},
|
|
|
}
|
|
|
|
|
|
- have := svc.ClientVersionsHandler(nil, oscar.SNACFrame{
|
|
|
+ have := svc.ClientVersions(nil, wire.SNACFrame{
|
|
|
RequestID: 1234,
|
|
|
- }, oscar.SNAC_0x01_0x17_OServiceClientVersions{
|
|
|
+ }, wire.SNAC_0x01_0x17_OServiceClientVersions{
|
|
|
Versions: []uint16{5, 6, 7, 8},
|
|
|
})
|
|
|
|
|
|
assert.Equal(t, want, have)
|
|
|
}
|
|
|
|
|
|
-func TestOServiceService_UserInfoQueryHandler(t *testing.T) {
|
|
|
+func TestOServiceService_UserInfoQuery(t *testing.T) {
|
|
|
svc := NewOServiceService(config.Config{}, nil, nil)
|
|
|
sess := newTestSession("test-user")
|
|
|
|
|
|
- want := oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.OService,
|
|
|
- SubGroup: oscar.OServiceUserInfoUpdate,
|
|
|
+ want := wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.OService,
|
|
|
+ SubGroup: wire.OServiceUserInfoUpdate,
|
|
|
RequestID: 1234,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
|
|
|
+ Body: wire.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
|
|
|
TLVUserInfo: sess.TLVUserInfo(),
|
|
|
},
|
|
|
}
|
|
|
|
|
|
- have := svc.UserInfoQueryHandler(nil, sess, oscar.SNACFrame{RequestID: 1234})
|
|
|
+ have := svc.UserInfoQuery(nil, sess, wire.SNACFrame{RequestID: 1234})
|
|
|
|
|
|
assert.Equal(t, want, have)
|
|
|
}
|
|
|
|
|
|
-func TestOServiceService_IdleNotificationHandler(t *testing.T) {
|
|
|
+func TestOServiceService_IdleNotification(t *testing.T) {
|
|
|
tests := []struct {
|
|
|
name string
|
|
|
sess *state.Session
|
|
|
- bodyIn oscar.SNAC_0x01_0x11_OServiceIdleNotification
|
|
|
+ bodyIn wire.SNAC_0x01_0x11_OServiceIdleNotification
|
|
|
// recipientScreenName is the screen name of the user receiving the IM
|
|
|
recipientScreenName string
|
|
|
// recipientBuddies is a list of the recipient's buddies that get
|
|
|
// updated warning level
|
|
|
recipientBuddies []string
|
|
|
- broadcastMessage oscar.SNACMessage
|
|
|
+ broadcastMessage wire.SNACMessage
|
|
|
wantErr error
|
|
|
}{
|
|
|
{
|
|
|
name: "set idle from active",
|
|
|
sess: newTestSession("test-user"),
|
|
|
- bodyIn: oscar.SNAC_0x01_0x11_OServiceIdleNotification{
|
|
|
+ bodyIn: wire.SNAC_0x01_0x11_OServiceIdleNotification{
|
|
|
IdleTime: 90,
|
|
|
},
|
|
|
recipientScreenName: "test-user",
|
|
|
recipientBuddies: []string{"buddy1", "buddy2"},
|
|
|
- broadcastMessage: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyArrived,
|
|
|
+ broadcastMessage: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyArrived,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
+ Body: wire.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
TLVUserInfo: newTestSession("test-user", sessOptIdle(90*time.Second)).TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
@@ -635,17 +634,17 @@ func TestOServiceService_IdleNotificationHandler(t *testing.T) {
|
|
|
{
|
|
|
name: "set active from idle",
|
|
|
sess: newTestSession("test-user", sessOptIdle(90*time.Second)),
|
|
|
- bodyIn: oscar.SNAC_0x01_0x11_OServiceIdleNotification{
|
|
|
+ bodyIn: wire.SNAC_0x01_0x11_OServiceIdleNotification{
|
|
|
IdleTime: 0,
|
|
|
},
|
|
|
recipientScreenName: "test-user",
|
|
|
recipientBuddies: []string{"buddy1", "buddy2"},
|
|
|
- broadcastMessage: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyArrived,
|
|
|
+ broadcastMessage: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyArrived,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
+ Body: wire.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
TLVUserInfo: newTestSession("test-user").TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
@@ -665,13 +664,13 @@ func TestOServiceService_IdleNotificationHandler(t *testing.T) {
|
|
|
|
|
|
svc := NewOServiceService(config.Config{}, messageRelayer, feedbagManager)
|
|
|
|
|
|
- haveErr := svc.IdleNotificationHandler(nil, tt.sess, tt.bodyIn)
|
|
|
+ haveErr := svc.IdleNotification(nil, tt.sess, tt.bodyIn)
|
|
|
assert.ErrorIs(t, tt.wantErr, haveErr)
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func TestOServiceServiceForBOS_ClientOnlineHandler(t *testing.T) {
|
|
|
+func TestOServiceServiceForBOS_ClientOnline(t *testing.T) {
|
|
|
type buddiesLookupParams []struct {
|
|
|
screenName string
|
|
|
buddies []string
|
|
|
@@ -684,7 +683,7 @@ func TestOServiceServiceForBOS_ClientOnlineHandler(t *testing.T) {
|
|
|
sess *state.Session
|
|
|
// bodyIn is the SNAC body sent from the arriving user's client to the
|
|
|
// server
|
|
|
- bodyIn oscar.SNAC_0x01_0x02_OServiceClientOnline
|
|
|
+ bodyIn wire.SNAC_0x01_0x02_OServiceClientOnline
|
|
|
// buddyLookupParams contains params for looking up arriving user's
|
|
|
// buddies
|
|
|
buddyLookupParams buddiesLookupParams
|
|
|
@@ -707,7 +706,7 @@ func TestOServiceServiceForBOS_ClientOnlineHandler(t *testing.T) {
|
|
|
{
|
|
|
name: "notify arriving user's buddies of its arrival and populate the arriving user's buddy list",
|
|
|
sess: newTestSession("test-user"),
|
|
|
- bodyIn: oscar.SNAC_0x01_0x02_OServiceClientOnline{},
|
|
|
+ bodyIn: wire.SNAC_0x01_0x02_OServiceClientOnline{},
|
|
|
interestedUsersParams: interestedUsersParams{
|
|
|
{
|
|
|
screenName: "test-user",
|
|
|
@@ -717,12 +716,12 @@ func TestOServiceServiceForBOS_ClientOnlineHandler(t *testing.T) {
|
|
|
broadcastToScreenNamesParams: broadcastToScreenNamesParams{
|
|
|
{
|
|
|
screenNames: []string{"buddy1", "buddy2", "buddy3", "buddy4"},
|
|
|
- message: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyArrived,
|
|
|
+ message: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyArrived,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
+ Body: wire.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
TLVUserInfo: newTestSession("test-user").TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
@@ -747,24 +746,24 @@ func TestOServiceServiceForBOS_ClientOnlineHandler(t *testing.T) {
|
|
|
sendToScreenNameParams: sendToScreenNameParams{
|
|
|
{
|
|
|
screenName: "test-user",
|
|
|
- message: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyArrived,
|
|
|
+ message: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyArrived,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
+ Body: wire.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
TLVUserInfo: newTestSession("buddy1").TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
screenName: "test-user",
|
|
|
- message: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Buddy,
|
|
|
- SubGroup: oscar.BuddyArrived,
|
|
|
+ message: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Buddy,
|
|
|
+ SubGroup: wire.BuddyArrived,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
+ Body: wire.SNAC_0x03_0x0B_BuddyArrived{
|
|
|
TLVUserInfo: newTestSession("buddy3").TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
@@ -805,15 +804,15 @@ func TestOServiceServiceForBOS_ClientOnlineHandler(t *testing.T) {
|
|
|
messageRelayer: messageRelayer,
|
|
|
}, nil)
|
|
|
|
|
|
- haveErr := svc.ClientOnlineHandler(nil, tt.bodyIn, tt.sess)
|
|
|
+ haveErr := svc.ClientOnline(nil, tt.bodyIn, tt.sess)
|
|
|
assert.ErrorIs(t, tt.wantErr, haveErr)
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func TestOServiceServiceForChat_ClientOnlineHandler(t *testing.T) {
|
|
|
- chatter1 := newTestSession("chatter-1", sessOptChatID("the-cookie"))
|
|
|
- chatter2 := newTestSession("chatter-2", sessOptChatID("the-cookie"))
|
|
|
+func TestOServiceServiceForChat_ClientOnline(t *testing.T) {
|
|
|
+ chatter1 := newTestSession("chatter-1", sessOptChatRoomCookie("the-cookie"))
|
|
|
+ chatter2 := newTestSession("chatter-2", sessOptChatRoomCookie("the-cookie"))
|
|
|
chatRoom := state.ChatRoom{
|
|
|
Cookie: "the-cookie",
|
|
|
DetailLevel: 1,
|
|
|
@@ -825,11 +824,11 @@ func TestOServiceServiceForChat_ClientOnlineHandler(t *testing.T) {
|
|
|
type participantsParams []*state.Session
|
|
|
type broadcastExcept []struct {
|
|
|
sess *state.Session
|
|
|
- message oscar.SNACMessage
|
|
|
+ message wire.SNACMessage
|
|
|
}
|
|
|
type sendToScreenNameParams []struct {
|
|
|
screenName string
|
|
|
- message oscar.SNACMessage
|
|
|
+ message wire.SNACMessage
|
|
|
}
|
|
|
|
|
|
tests := []struct {
|
|
|
@@ -839,7 +838,7 @@ func TestOServiceServiceForChat_ClientOnlineHandler(t *testing.T) {
|
|
|
joiningChatter *state.Session
|
|
|
// bodyIn is the SNAC body sent from the arriving user's client to the
|
|
|
// server
|
|
|
- bodyIn oscar.SNAC_0x01_0x02_OServiceClientOnline
|
|
|
+ bodyIn wire.SNAC_0x01_0x02_OServiceClientOnline
|
|
|
// participantsParams contains all the chat room participants
|
|
|
participantsParams participantsParams
|
|
|
// broadcastExcept contains params for broadcasting chat arrival to all
|
|
|
@@ -853,17 +852,17 @@ func TestOServiceServiceForChat_ClientOnlineHandler(t *testing.T) {
|
|
|
{
|
|
|
name: "upon joining, send chat room metadata and participant list to joining user; alert arrival to existing participants",
|
|
|
joiningChatter: chatter1,
|
|
|
- bodyIn: oscar.SNAC_0x01_0x02_OServiceClientOnline{},
|
|
|
+ bodyIn: wire.SNAC_0x01_0x02_OServiceClientOnline{},
|
|
|
broadcastExcept: broadcastExcept{
|
|
|
{
|
|
|
sess: chatter1,
|
|
|
- message: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Chat,
|
|
|
- SubGroup: oscar.ChatUsersJoined,
|
|
|
+ message: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Chat,
|
|
|
+ SubGroup: wire.ChatUsersJoined,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x0E_0x03_ChatUsersJoined{
|
|
|
- Users: []oscar.TLVUserInfo{
|
|
|
+ Body: wire.SNAC_0x0E_0x03_ChatUsersJoined{
|
|
|
+ Users: []wire.TLVUserInfo{
|
|
|
chatter1.TLVUserInfo(),
|
|
|
},
|
|
|
},
|
|
|
@@ -877,17 +876,17 @@ func TestOServiceServiceForChat_ClientOnlineHandler(t *testing.T) {
|
|
|
sendToScreenNameParams: sendToScreenNameParams{
|
|
|
{
|
|
|
screenName: chatter1.ScreenName(),
|
|
|
- message: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Chat,
|
|
|
- SubGroup: oscar.ChatRoomInfoUpdate,
|
|
|
+ message: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Chat,
|
|
|
+ SubGroup: wire.ChatRoomInfoUpdate,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x0E_0x02_ChatRoomInfoUpdate{
|
|
|
+ Body: wire.SNAC_0x0E_0x02_ChatRoomInfoUpdate{
|
|
|
Exchange: chatRoom.Exchange,
|
|
|
Cookie: chatRoom.Cookie,
|
|
|
InstanceNumber: chatRoom.InstanceNumber,
|
|
|
DetailLevel: chatRoom.DetailLevel,
|
|
|
- TLVBlock: oscar.TLVBlock{
|
|
|
+ TLVBlock: wire.TLVBlock{
|
|
|
TLVList: chatRoom.TLVList(),
|
|
|
},
|
|
|
},
|
|
|
@@ -895,13 +894,13 @@ func TestOServiceServiceForChat_ClientOnlineHandler(t *testing.T) {
|
|
|
},
|
|
|
{
|
|
|
screenName: chatter1.ScreenName(),
|
|
|
- message: oscar.SNACMessage{
|
|
|
- Frame: oscar.SNACFrame{
|
|
|
- FoodGroup: oscar.Chat,
|
|
|
- SubGroup: oscar.ChatUsersJoined,
|
|
|
+ message: wire.SNACMessage{
|
|
|
+ Frame: wire.SNACFrame{
|
|
|
+ FoodGroup: wire.Chat,
|
|
|
+ SubGroup: wire.ChatUsersJoined,
|
|
|
},
|
|
|
- Body: oscar.SNAC_0x0E_0x03_ChatUsersJoined{
|
|
|
- Users: []oscar.TLVUserInfo{
|
|
|
+ Body: wire.SNAC_0x0E_0x03_ChatUsersJoined{
|
|
|
+ Users: []wire.TLVUserInfo{
|
|
|
chatter1.TLVUserInfo(),
|
|
|
chatter2.TLVUserInfo(),
|
|
|
},
|
|
|
@@ -938,7 +937,7 @@ func TestOServiceServiceForChat_ClientOnlineHandler(t *testing.T) {
|
|
|
messageRelayer: chatMessageRelayer,
|
|
|
}, chatRegistry)
|
|
|
|
|
|
- haveErr := svc.ClientOnlineHandler(nil, tt.joiningChatter)
|
|
|
+ haveErr := svc.ClientOnline(nil, tt.joiningChatter)
|
|
|
assert.ErrorIs(t, tt.wantErr, haveErr)
|
|
|
})
|
|
|
}
|