...

Source file src/github.com/godbus/dbus/v5/message_test.go

Documentation: github.com/godbus/dbus/v5

     1  package dbus
     2  
     3  import "testing"
     4  
     5  func TestMessage_validateHeader(t *testing.T) {
     6  	var tcs = []struct {
     7  		msg Message
     8  		err error
     9  	}{
    10  		{
    11  			msg: Message{
    12  				Flags: 0xFF,
    13  			},
    14  			err: InvalidMessageError("invalid flags"),
    15  		},
    16  		{
    17  			msg: Message{
    18  				Type: 0xFF,
    19  			},
    20  			err: InvalidMessageError("invalid message type"),
    21  		},
    22  		{
    23  			msg: Message{
    24  				Type: TypeMethodCall,
    25  				Headers: map[HeaderField]Variant{
    26  					0xFF: MakeVariant("foo"),
    27  				},
    28  			},
    29  			err: InvalidMessageError("invalid header"),
    30  		},
    31  		{
    32  			msg: Message{
    33  				Type: TypeMethodCall,
    34  				Headers: map[HeaderField]Variant{
    35  					FieldPath: MakeVariant(42),
    36  				},
    37  			},
    38  			err: InvalidMessageError("invalid type of header field"),
    39  		},
    40  		{
    41  			msg: Message{
    42  				Type: TypeMethodCall,
    43  			},
    44  			err: InvalidMessageError("missing required header"),
    45  		},
    46  		{
    47  			msg: Message{
    48  				Type: TypeMethodCall,
    49  				Headers: map[HeaderField]Variant{
    50  					FieldPath:   MakeVariant(ObjectPath("break")),
    51  					FieldMember: MakeVariant("foo.bar"),
    52  				},
    53  			},
    54  			err: InvalidMessageError("invalid path name"),
    55  		},
    56  		{
    57  			msg: Message{
    58  				Type: TypeMethodCall,
    59  				Headers: map[HeaderField]Variant{
    60  					FieldPath:   MakeVariant(ObjectPath("/")),
    61  					FieldMember: MakeVariant("2"),
    62  				},
    63  			},
    64  			err: InvalidMessageError("invalid member name"),
    65  		},
    66  		{
    67  			msg: Message{
    68  				Type: TypeMethodCall,
    69  				Headers: map[HeaderField]Variant{
    70  					FieldPath:      MakeVariant(ObjectPath("/")),
    71  					FieldMember:    MakeVariant("foo.bar"),
    72  					FieldInterface: MakeVariant("break"),
    73  				},
    74  			},
    75  			err: InvalidMessageError("invalid interface name"),
    76  		},
    77  		{
    78  			msg: Message{
    79  				Type: TypeError,
    80  				Headers: map[HeaderField]Variant{
    81  					FieldReplySerial: MakeVariant(uint32(0)),
    82  					FieldErrorName:   MakeVariant("break"),
    83  				},
    84  			},
    85  			err: InvalidMessageError("invalid error name"),
    86  		},
    87  		{
    88  
    89  			msg: Message{
    90  				Type: TypeError,
    91  				Headers: map[HeaderField]Variant{
    92  					FieldReplySerial: MakeVariant(uint32(0)),
    93  					FieldErrorName:   MakeVariant("error.name"),
    94  				},
    95  				Body: []interface{}{
    96  					"break",
    97  				},
    98  			},
    99  			err: InvalidMessageError("missing signature"),
   100  		},
   101  	}
   102  
   103  	for _, tc := range tcs {
   104  		t.Run(tc.err.Error(), func(t *testing.T) {
   105  			err := tc.msg.validateHeader()
   106  			if err != tc.err {
   107  				t.Errorf("expected error %q, got %q", tc.err, err)
   108  			}
   109  		})
   110  	}
   111  }
   112  

View as plain text