@@ -242,14 +242,14 @@ func (v *noopJSONVerifier) VerifyJSONs(ctx context.Context, requests []VerifyJSO
242
242
243
243
func TestHandleSendLeave (t * testing.T ) {
244
244
type args struct {
245
- ctx context.Context
246
- requestContent [] byte
247
- origin spec.ServerName
248
- roomVersion RoomVersion
249
- eventID string
250
- roomID string
251
- querier CurrentStateQuerier
252
- verifier JSONVerifier
245
+ ctx context.Context
246
+ event PDU
247
+ origin spec.ServerName
248
+ roomVersion RoomVersion
249
+ eventID string
250
+ roomID string
251
+ querier CurrentStateQuerier
252
+ verifier JSONVerifier
253
253
}
254
254
255
255
_ , sk , err := ed25519 .GenerateKey (rand .Reader )
@@ -318,79 +318,65 @@ func TestHandleSendLeave(t *testing.T) {
318
318
}{
319
319
{
320
320
name : "invalid roomID" ,
321
- args : args {roomID : "@notvalid:localhost" },
322
- wantErr : assert .Error ,
323
- },
324
- {
325
- name : "invalid room version" ,
326
- args : args {roomID : "!notvalid:localhost" , roomVersion : "-1" },
327
- wantErr : assert .Error ,
328
- },
329
- {
330
- name : "invalid content body" ,
331
- args : args {roomID : "!notvalid:localhost" , roomVersion : RoomVersionV1 , requestContent : []byte ("{" )},
332
- wantErr : assert .Error ,
333
- },
334
- {
335
- name : "not canonical JSON" ,
336
- args : args {roomID : "!notvalid:localhost" , roomVersion : RoomVersionV10 , requestContent : []byte (`{"int":9007199254740992}` )}, // number to large, not canonical json
321
+ args : args {roomID : "@notvalid:localhost" , roomVersion : RoomVersionV10 },
337
322
wantErr : assert .Error ,
338
323
},
339
324
{
340
325
name : "wrong roomID in request" ,
341
- args : args {roomID : "!notvalid:localhost" , roomVersion : RoomVersionV10 , requestContent : createEvent . JSON () },
326
+ args : args {roomID : "!notvalid:localhost" , roomVersion : RoomVersionV10 , event : createEvent },
342
327
wantErr : assert .Error ,
343
328
},
344
329
{
345
330
name : "wrong eventID in request" ,
346
- args : args {roomID : "!valid:localhost" , roomVersion : RoomVersionV10 , requestContent : createEvent . JSON () },
331
+ args : args {roomID : "!valid:localhost" , roomVersion : RoomVersionV10 , event : createEvent },
347
332
wantErr : assert .Error ,
348
333
},
349
334
{
350
335
name : "empty statekey" ,
351
- args : args {roomID : "!valid:localhost" , roomVersion : RoomVersionV10 , eventID : createEvent .EventID (), requestContent : createEvent . JSON () },
336
+ args : args {roomID : "!valid:localhost" , roomVersion : RoomVersionV10 , eventID : createEvent .EventID (), event : createEvent },
352
337
wantErr : assert .Error ,
353
338
},
354
339
{
355
340
name : "wrong request origin" ,
356
- args : args {roomID : "!valid:localhost" , roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), requestContent : leaveEvent . JSON () },
341
+ args : args {roomID : "!valid:localhost" , roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), event : leaveEvent },
357
342
wantErr : assert .Error ,
358
343
},
359
344
{
360
345
name : "never joined the room no-ops" ,
361
- args : args {roomID : "!valid:localhost" , querier : dummyQuerier {}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), requestContent : leaveEvent . JSON () },
346
+ args : args {roomID : "!valid:localhost" , querier : dummyQuerier {}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), event : leaveEvent },
362
347
wantErr : assert .NoError ,
363
348
},
364
349
{
365
350
name : "already left the room no-ops" ,
366
- args : args {roomID : "!valid:localhost" , querier : dummyQuerier {pdu : leaveEvent }, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), requestContent : leaveEvent . JSON () },
351
+ args : args {roomID : "!valid:localhost" , querier : dummyQuerier {pdu : leaveEvent }, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), event : leaveEvent },
367
352
wantErr : assert .NoError ,
368
353
},
369
354
{
370
355
name : "JSON validation fails" ,
371
- args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {err : fmt .Errorf ("err" )}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), requestContent : leaveEvent . JSON () },
356
+ args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {err : fmt .Errorf ("err" )}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), event : leaveEvent },
372
357
wantErr : assert .Error ,
373
358
},
374
359
{
375
360
name : "JSON validation fails 2" ,
376
- args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {results : []VerifyJSONResult {{Error : fmt .Errorf ("err" )}}}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), requestContent : leaveEvent . JSON () },
361
+ args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {results : []VerifyJSONResult {{Error : fmt .Errorf ("err" )}}}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), event : leaveEvent },
377
362
wantErr : assert .Error ,
378
363
},
379
364
{
380
365
name : "membership not set to leave" ,
381
- args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {results : []VerifyJSONResult {{}}}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : joinEvent .EventID (), requestContent : joinEvent . JSON () },
366
+ args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {results : []VerifyJSONResult {{}}}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : joinEvent .EventID (), event : joinEvent },
382
367
wantErr : assert .Error ,
383
368
},
384
369
{
385
370
name : "membership set to leave" ,
386
- args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {results : []VerifyJSONResult {{}}}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), requestContent : leaveEvent . JSON () },
371
+ args : args {ctx : context .Background (), roomID : "!valid:localhost" , querier : dummyQuerier {pdu : createEvent }, verifier : & noopJSONVerifier {results : []VerifyJSONResult {{}}}, origin : validUser .Domain (), roomVersion : RoomVersionV10 , eventID : leaveEvent .EventID (), event : leaveEvent },
387
372
wantErr : assert .NoError ,
388
373
},
389
374
}
390
375
for _ , tt := range tests {
391
376
t .Run (tt .name , func (t * testing.T ) {
392
- _ , err := HandleSendLeave (tt .args .ctx , tt .args .requestContent , tt .args .origin , tt .args .roomVersion , tt .args .eventID , tt .args .roomID , tt .args .querier , tt .args .verifier )
393
- if ! tt .wantErr (t , err , fmt .Sprintf ("HandleSendLeave(%v, %v, %v, %v, %v, %v, %v, %v)" , tt .args .ctx , tt .args .requestContent , tt .args .origin , tt .args .roomVersion , tt .args .eventID , tt .args .roomID , tt .args .querier , tt .args .verifier )) {
377
+ verImpl := MustGetRoomVersion (tt .args .roomVersion )
378
+ _ , err := verImpl .HandleSendLeave (tt .args .ctx , tt .args .event , tt .args .origin , tt .args .eventID , tt .args .roomID , tt .args .querier , tt .args .verifier )
379
+ if ! tt .wantErr (t , err , fmt .Sprintf ("handleSendLeave(%v, %v, %v, %v, %v, %v, %v, %v)" , tt .args .ctx , tt .args .event , tt .args .origin , tt .args .roomVersion , tt .args .eventID , tt .args .roomID , tt .args .querier , tt .args .verifier )) {
394
380
return
395
381
}
396
382
})
0 commit comments