]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/transaction_handlers_test.go
patch: v0.10.11
[rbdr/mobius] / hotline / transaction_handlers_test.go
index 889859492ece04e93c81ee7bce5d71f2a11cef4e..4dee0b58acf166711d037709bc15f43930f5c6d1 100644 (file)
@@ -261,7 +261,7 @@ func TestHandleGetUserNameList(t *testing.T) {
                                        clientID:  &[]byte{1, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{1, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 1},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 1},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0, 0, 0, 1},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -459,7 +459,7 @@ func TestHandleChatSend(t *testing.T) {
                        wantErr: false,
                },
                {
                        wantErr: false,
                },
                {
-                       name: "sends chat msg as emote if fieldChatOptions is set",
+                       name: "sends chat msg as emote if fieldChatOptions is set to 1",
                        args: args{
                                cc: &ClientConn{
                                        Account: &Account{
                        args: args{
                                cc: &ClientConn{
                                        Account: &Account{
@@ -520,6 +520,68 @@ func TestHandleChatSend(t *testing.T) {
                        },
                        wantErr: false,
                },
                        },
                        wantErr: false,
                },
+               {
+                       name: "does not send chat msg as emote if fieldChatOptions is set to 0",
+                       args: args{
+                               cc: &ClientConn{
+                                       Account: &Account{
+                                               Access: func() accessBitmap {
+                                                       var bits accessBitmap
+                                                       bits.Set(accessSendChat)
+                                                       return bits
+                                               }(),
+                                       },
+                                       UserName: []byte("Testy McTest"),
+                                       Server: &Server{
+                                               Clients: map[uint16]*ClientConn{
+                                                       uint16(1): {
+                                                               Account: &Account{
+                                                                       Access: accessBitmap{255, 255, 255, 255, 255, 255, 255, 255},
+                                                               },
+                                                               ID: &[]byte{0, 1},
+                                                       },
+                                                       uint16(2): {
+                                                               Account: &Account{
+                                                                       Access: accessBitmap{255, 255, 255, 255, 255, 255, 255, 255},
+                                                               },
+                                                               ID: &[]byte{0, 2},
+                                                       },
+                                               },
+                                       },
+                               },
+                               t: &Transaction{
+                                       Fields: []Field{
+                                               NewField(fieldData, []byte("hello")),
+                                               NewField(fieldChatOptions, []byte{0x00, 0x00}),
+                                       },
+                               },
+                       },
+                       want: []Transaction{
+                               {
+                                       clientID:  &[]byte{0, 1},
+                                       Flags:     0x00,
+                                       IsReply:   0x00,
+                                       Type:      []byte{0, 0x6a},
+                                       ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
+                                       ErrorCode: []byte{0, 0, 0, 0},
+                                       Fields: []Field{
+                                               NewField(fieldData, []byte("\r Testy McTest:  hello")),
+                                       },
+                               },
+                               {
+                                       clientID:  &[]byte{0, 2},
+                                       Flags:     0x00,
+                                       IsReply:   0x00,
+                                       Type:      []byte{0, 0x6a},
+                                       ID:        []byte{0xf0, 0xc5, 0x34, 0x1e},
+                                       ErrorCode: []byte{0, 0, 0, 0},
+                                       Fields: []Field{
+                                               NewField(fieldData, []byte("\r Testy McTest:  hello")),
+                                       },
+                               },
+                       },
+                       wantErr: false,
+               },
                {
                        name: "only sends chat msg to clients with accessReadChat permission",
                        args: args{
                {
                        name: "only sends chat msg to clients with accessReadChat permission",
                        args: args{
@@ -708,7 +770,7 @@ func TestHandleGetFileInfo(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xce},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -828,7 +890,7 @@ func TestHandleNewFolder(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xcd},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
@@ -869,7 +931,7 @@ func TestHandleNewFolder(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xcd},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
@@ -945,7 +1007,7 @@ func TestHandleNewFolder(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xcd},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
@@ -994,7 +1056,7 @@ func TestHandleNewFolder(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xcd},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42}, // Random ID from rand.Seed(1)
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
@@ -1065,7 +1127,7 @@ func TestHandleUploadFile(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xcb},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -1181,7 +1243,7 @@ func TestHandleMakeAlias(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xd1},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
@@ -1349,7 +1411,7 @@ func TestHandleGetUser(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x01, 0x60},
+                                       Type:      []byte{00},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -1489,7 +1551,7 @@ func TestHandleDeleteUser(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x1, 0x5f},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
@@ -1577,7 +1639,7 @@ func TestHandleGetMsgs(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0x65},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -1804,7 +1866,7 @@ func TestHandleListUsers(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x01, 0x2f},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -1904,7 +1966,7 @@ func TestHandleDownloadFile(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0x2},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -1995,7 +2057,7 @@ func TestHandleDownloadFile(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0x2},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0x9a, 0xcb, 0x04, 0x42},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -2431,7 +2493,7 @@ func TestHandleSendInstantMsg(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x0, 0x6c},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
@@ -2491,7 +2553,7 @@ func TestHandleSendInstantMsg(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x0, 0x6c},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
@@ -2542,7 +2604,7 @@ func TestHandleSendInstantMsg(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x0, 0x6c},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
@@ -2688,7 +2750,7 @@ func TestHandleDeleteFile(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x0, 0xcc},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0x0, 0x0, 0x0, 0x0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
                                        ID:        []byte{0x0, 0x0, 0x0, 0x0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field(nil),
@@ -2791,7 +2853,7 @@ func TestHandleGetFileNameList(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0xc8},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -2924,7 +2986,7 @@ func TestHandleGetClientInfoText(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x1, 0x2f},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -3030,7 +3092,7 @@ func TestHandleTranAgreed(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0x79},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field{},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field{},
@@ -3267,7 +3329,7 @@ func TestHandleDelNewsItem(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x01, 0x7c},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field{},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields:    []Field{},
@@ -3329,7 +3391,7 @@ func TestHandleDownloadBanner(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0x00, 0xd4},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -3424,7 +3486,7 @@ func TestHandleTranOldPostNews(t *testing.T) {
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                {
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0x67},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                },
@@ -3532,7 +3594,7 @@ func TestHandleInviteNewChat(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0x70},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
@@ -3596,7 +3658,7 @@ func TestHandleInviteNewChat(t *testing.T) {
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
                                        clientID:  &[]byte{0, 1},
                                        Flags:     0x00,
                                        IsReply:   0x01,
-                                       Type:      []byte{0, 0x70},
+                                       Type:      []byte{0, 0},
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{
                                        ID:        []byte{0, 0, 0, 0},
                                        ErrorCode: []byte{0, 0, 0, 0},
                                        Fields: []Field{