]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/transaction_handlers_test.go
patch: v0.8.1
[rbdr/mobius] / hotline / transaction_handlers_test.go
index f43d45f29ec6340c75597504ee3805a06ec1d4fa..c504bbe8f11d6e2eabb635c8caa03c91a4459331 100644 (file)
@@ -2287,10 +2287,49 @@ func TestHandleSendInstantMsg(t *testing.T) {
                wantRes []Transaction
                wantErr assert.ErrorAssertionFunc
        }{
                wantRes []Transaction
                wantErr assert.ErrorAssertionFunc
        }{
+               {
+                       name: "without required permission",
+                       args: args{
+                               cc: &ClientConn{
+                                       Account: &Account{
+                                               Access: func() *[]byte {
+                                                       var bits accessBitmap
+                                                       access := bits[:]
+                                                       return &access
+                                               }(),
+                                       },
+                               },
+                               t: NewTransaction(
+                                       tranDelNewsArt,
+                                       &[]byte{0, 0},
+                               ),
+                       },
+                       wantRes: []Transaction{
+                               {
+                                       Flags:     0x00,
+                                       IsReply:   0x01,
+                                       Type:      []byte{0, 0x00},
+                                       ID:        []byte{0, 0, 0, 0},
+                                       ErrorCode: []byte{0, 0, 0, 1},
+                                       Fields: []Field{
+                                               NewField(fieldError, []byte("You are not allowed to send private messages.")),
+                                       },
+                               },
+                       },
+                       wantErr: assert.NoError,
+               },
                {
                        name: "when client 1 sends a message to client 2",
                        args: args{
                                cc: &ClientConn{
                {
                        name: "when client 1 sends a message to client 2",
                        args: args{
                                cc: &ClientConn{
+                                       Account: &Account{
+                                               Access: func() *[]byte {
+                                                       var bits accessBitmap
+                                                       bits.Set(accessSendPrivMsg)
+                                                       access := bits[:]
+                                                       return &access
+                                               }(),
+                                       },
                                        ID:       &[]byte{0, 1},
                                        UserName: []byte("User1"),
                                        Server: &Server{
                                        ID:       &[]byte{0, 1},
                                        UserName: []byte("User1"),
                                        Server: &Server{
@@ -2333,6 +2372,14 @@ func TestHandleSendInstantMsg(t *testing.T) {
                        name: "when client 2 has autoreply enabled",
                        args: args{
                                cc: &ClientConn{
                        name: "when client 2 has autoreply enabled",
                        args: args{
                                cc: &ClientConn{
+                                       Account: &Account{
+                                               Access: func() *[]byte {
+                                                       var bits accessBitmap
+                                                       bits.Set(accessSendPrivMsg)
+                                                       access := bits[:]
+                                                       return &access
+                                               }(),
+                                       },
                                        ID:       &[]byte{0, 1},
                                        UserName: []byte("User1"),
                                        Server: &Server{
                                        ID:       &[]byte{0, 1},
                                        UserName: []byte("User1"),
                                        Server: &Server{