@@ -357,6 +357,89 @@ func TestTriggerInvalidMasterKey(t *testing.T) {
357
357
assert .Contains (t , err .Error (), "valid base64" )
358
358
}
359
359
360
+ func TestAuthenticateInvalidMasterKey (t * testing.T ) {
361
+ server := httptest .NewServer (http .HandlerFunc (func (res http.ResponseWriter , req * http.Request ) {
362
+ t .Fatal ("No HTTP request should have been made" )
363
+ }))
364
+ defer server .Close ()
365
+ u , _ := url .Parse (server .URL )
366
+
367
+ params := []byte ("channel_name=private-encrypted-test_channel&socket_id=12345.12345" )
368
+
369
+ // too short (deprecated)
370
+ client := Client {
371
+ AppID : "appid" ,
372
+ Key : "key" ,
373
+ Secret : "secret" ,
374
+ Host : u .Host ,
375
+ EncryptionMasterKey : "this is 31 bytes 12345678901234" ,
376
+ }
377
+ _ , err := client .AuthenticatePrivateChannel (params )
378
+ assert .Error (t , err )
379
+ assert .Contains (t , err .Error (), "32 bytes" )
380
+
381
+ // too long (deprecated)
382
+ client = Client {
383
+ AppID : "appid" ,
384
+ Key : "key" ,
385
+ Secret : "secret" ,
386
+ Host : u .Host ,
387
+ EncryptionMasterKey : "this is 33 bytes 1234567890123456" ,
388
+ }
389
+ _ , err = client .AuthenticatePrivateChannel (params )
390
+ assert .Error (t , err )
391
+ assert .Contains (t , err .Error (), "32 bytes" )
392
+
393
+ // both provided
394
+ client = Client {
395
+ AppID : "appid" ,
396
+ Key : "key" ,
397
+ Secret : "secret" ,
398
+ Host : u .Host ,
399
+ EncryptionMasterKey : "this is 32 bytes 123456789012345" ,
400
+ EncryptionMasterKeyBase64 : "dGhpcyBpcyAzMiBieXRlcyAxMjM0NTY3ODkwMTIzNDU=" ,
401
+ }
402
+ _ , err = client .AuthenticatePrivateChannel (params )
403
+ assert .Error (t , err )
404
+ assert .Contains (t , err .Error (), "both" )
405
+
406
+ // too short
407
+ client = Client {
408
+ AppID : "appid" ,
409
+ Key : "key" ,
410
+ Secret : "secret" ,
411
+ Host : u .Host ,
412
+ EncryptionMasterKeyBase64 : "dGhpcyBpcyAzMSBieXRlcyAxMjM0NTY3ODkwMTIzNA==" ,
413
+ }
414
+ _ , err = client .AuthenticatePrivateChannel (params )
415
+ assert .Error (t , err )
416
+ assert .Contains (t , err .Error (), "32 bytes" )
417
+
418
+ // too long
419
+ client = Client {
420
+ AppID : "appid" ,
421
+ Key : "key" ,
422
+ Secret : "secret" ,
423
+ Host : u .Host ,
424
+ EncryptionMasterKeyBase64 : "dGhpcyBpcyAzMiBieXRlcyAxMjM0NTY3ODkwMTIzNDU2" ,
425
+ }
426
+ _ , err = client .AuthenticatePrivateChannel (params )
427
+ assert .Error (t , err )
428
+ assert .Contains (t , err .Error (), "32 bytes" )
429
+
430
+ // invalid base64
431
+ client = Client {
432
+ AppID : "appid" ,
433
+ Key : "key" ,
434
+ Secret : "secret" ,
435
+ Host : u .Host ,
436
+ EncryptionMasterKeyBase64 : "dGhp!yBpcyAzMiBieXRlcy#xMjM0NTY3ODkwMTIzNDU=" ,
437
+ }
438
+ _ , err = client .AuthenticatePrivateChannel (params )
439
+ assert .Error (t , err )
440
+ assert .Contains (t , err .Error (), "valid base64" )
441
+ }
442
+
360
443
func TestErrorResponseHandler (t * testing.T ) {
361
444
server := httptest .NewServer (http .HandlerFunc (func (res http.ResponseWriter , req * http.Request ) {
362
445
res .WriteHeader (400 )
0 commit comments