17
17
using System . Linq ;
18
18
using System . Net ;
19
19
using System . Net . Http ;
20
+ using System . Net . Http . Headers ;
20
21
using System . Threading . Tasks ;
21
22
using FirebaseAdmin . Tests ;
22
23
using Google . Apis . Auth . OAuth2 ;
@@ -81,6 +82,7 @@ public async Task GetUserById()
81
82
82
83
var request = NewtonsoftJsonSerializer . Instance . Deserialize < Dictionary < string , object > > ( handler . LastRequestBody ) ;
83
84
Assert . Equal ( new JArray ( "user1" ) , request [ "localId" ] ) ;
85
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
84
86
}
85
87
86
88
[ Fact ]
@@ -160,6 +162,8 @@ public async Task GetUserByIdWithProperties()
160
162
Assert . NotNull ( metadata ) ;
161
163
Assert . Equal ( UserRecord . UnixEpoch . AddMilliseconds ( 100 ) , metadata . CreationTimestamp ) ;
162
164
Assert . Equal ( UserRecord . UnixEpoch . AddMilliseconds ( 150 ) , metadata . LastSignInTimestamp ) ;
165
+
166
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
163
167
}
164
168
165
169
[ Fact ]
@@ -222,6 +226,7 @@ public async Task GetUserByEmail()
222
226
223
227
var request = NewtonsoftJsonSerializer . Instance . Deserialize < Dictionary < string , object > > ( handler . LastRequestBody ) ;
224
228
Assert . Equal ( new JArray ( "[email protected] " ) , request [ "email" ] ) ;
229
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
225
230
}
226
231
227
232
[ Fact ]
@@ -284,6 +289,7 @@ public async Task GetUserByPhoneNumber()
284
289
285
290
var request = NewtonsoftJsonSerializer . Instance . Deserialize < Dictionary < string , object > > ( handler . LastRequestBody ) ;
286
291
Assert . Equal ( new JArray ( "+1234567890" ) , request [ "phoneNumber" ] ) ;
292
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
287
293
}
288
294
289
295
[ Fact ]
@@ -355,6 +361,9 @@ public async Task ListUsers()
355
361
Assert . Equal ( 2 , query . Count ) ;
356
362
Assert . Equal ( "1000" , query [ "maxResults" ] ) ;
357
363
Assert . Equal ( "token" , query [ "nextPageToken" ] ) ;
364
+
365
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
366
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
358
367
}
359
368
360
369
[ Fact ]
@@ -392,6 +401,9 @@ public void ListUsersForEach()
392
401
Assert . Equal ( 2 , query . Count ) ;
393
402
Assert . Equal ( "1000" , query [ "maxResults" ] ) ;
394
403
Assert . Equal ( "token" , query [ "nextPageToken" ] ) ;
404
+
405
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
406
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
395
407
}
396
408
397
409
[ Fact ]
@@ -431,6 +443,9 @@ public void ListUsersCustomOptions()
431
443
Assert . Equal ( 2 , query . Count ) ;
432
444
Assert . Equal ( "3" , query [ "maxResults" ] ) ;
433
445
Assert . Equal ( "token" , query [ "nextPageToken" ] ) ;
446
+
447
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
448
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
434
449
}
435
450
436
451
[ Fact ]
@@ -466,6 +481,9 @@ public async Task ListUsersReadPage()
466
481
query = this . ExtractQueryParams ( handler . Requests [ 1 ] ) ;
467
482
Assert . Single ( query ) ;
468
483
Assert . Equal ( "3" , query [ "maxResults" ] ) ;
484
+
485
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
486
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
469
487
}
470
488
471
489
[ Fact ]
@@ -511,6 +529,9 @@ public async Task ListUsersByPages()
511
529
{
512
530
Assert . Equal ( $ "user{ i + 1 } ", users [ i ] . Uid ) ;
513
531
}
532
+
533
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
534
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
514
535
}
515
536
516
537
[ Fact ]
@@ -536,6 +557,9 @@ public async Task ListUsersReadLargePageSize()
536
557
Assert . Equal ( 2 , query . Count ) ;
537
558
Assert . Equal ( "7" , query [ "maxResults" ] ) ;
538
559
Assert . Equal ( "token" , query [ "nextPageToken" ] ) ;
560
+
561
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
562
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
539
563
}
540
564
541
565
[ Fact ]
@@ -577,6 +601,9 @@ public async Task ListUsersAsRawResponses()
577
601
Assert . Equal ( 2 , query . Count ) ;
578
602
Assert . Equal ( "1000" , query [ "maxResults" ] ) ;
579
603
Assert . Equal ( "token" , query [ "nextPageToken" ] ) ;
604
+
605
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
606
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
580
607
}
581
608
582
609
[ Fact ]
@@ -760,6 +787,9 @@ public async Task CreateUser()
760
787
Assert . Equal ( 2 , handler . Requests . Count ) ;
761
788
var request = NewtonsoftJsonSerializer . Instance . Deserialize < JObject > ( handler . Requests [ 0 ] . Body ) ;
762
789
Assert . Empty ( request ) ;
790
+
791
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
792
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
763
793
}
764
794
765
795
[ Fact ]
@@ -793,6 +823,9 @@ public async Task CreateUserWithArgs()
793
823
Assert . Equal ( "secret" , request [ "password" ] ) ;
794
824
Assert . Equal ( "+1234567890" , request [ "phoneNumber" ] ) ;
795
825
Assert . Equal ( "https://example.com/user.png" , request [ "photoUrl" ] ) ;
826
+
827
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
828
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
796
829
}
797
830
798
831
[ Fact ]
@@ -821,6 +854,9 @@ public async Task CreateUserWithExplicitDefaults()
821
854
Assert . Equal ( 2 , request . Count ) ;
822
855
Assert . False ( ( bool ) request [ "disabled" ] ) ;
823
856
Assert . False ( ( bool ) request [ "emailVerified" ] ) ;
857
+
858
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
859
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
824
860
}
825
861
826
862
[ Fact ]
@@ -1025,6 +1061,9 @@ public async Task UpdateUser()
1025
1061
Assert . True ( ( bool ) claims [ "admin" ] ) ;
1026
1062
Assert . Equal ( 4L , claims [ "level" ] ) ;
1027
1063
Assert . Equal ( "gold" , claims [ "package" ] ) ;
1064
+
1065
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
1066
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
1028
1067
}
1029
1068
1030
1069
[ Fact ]
@@ -1048,6 +1087,9 @@ public async Task UpdateUserPartial()
1048
1087
Assert . Equal ( 2 , request . Count ) ;
1049
1088
Assert . Equal ( "user1" , request [ "localId" ] ) ;
1050
1089
Assert . True ( ( bool ) request [ "emailVerified" ] ) ;
1090
+
1091
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
1092
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
1051
1093
}
1052
1094
1053
1095
[ Fact ]
@@ -1074,6 +1116,9 @@ public async Task UpdateUserRemoveAttributes()
1074
1116
Assert . Equal (
1075
1117
new JArray ( ) { "DISPLAY_NAME" , "PHOTO_URL" } ,
1076
1118
request [ "deleteAttribute" ] ) ;
1119
+
1120
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
1121
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
1077
1122
}
1078
1123
1079
1124
[ Fact ]
@@ -1099,6 +1144,9 @@ public async Task UpdateUserRemoveProviders()
1099
1144
Assert . Equal (
1100
1145
new JArray ( ) { "phone" } ,
1101
1146
request [ "deleteProvider" ] ) ;
1147
+
1148
+ this . AssertClientVersion ( handler . Requests [ 0 ] . Headers ) ;
1149
+ this . AssertClientVersion ( handler . Requests [ 1 ] . Headers ) ;
1102
1150
}
1103
1151
1104
1152
[ Fact ]
@@ -1122,6 +1170,8 @@ public async Task UpdateUserSetCustomClaims()
1122
1170
Assert . True ( ( bool ) claims [ "admin" ] ) ;
1123
1171
Assert . Equal ( 4L , claims [ "level" ] ) ;
1124
1172
Assert . Equal ( "gold" , claims [ "package" ] ) ;
1173
+
1174
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
1125
1175
}
1126
1176
1127
1177
[ Fact ]
@@ -1135,6 +1185,7 @@ public async Task LargeClaimsUnderLimit()
1135
1185
} ;
1136
1186
1137
1187
await auth . SetCustomUserClaimsAsync ( "user1" , customClaims ) ;
1188
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
1138
1189
}
1139
1190
1140
1191
[ Fact ]
@@ -1148,6 +1199,8 @@ public async Task EmptyClaims()
1148
1199
var request = NewtonsoftJsonSerializer . Instance . Deserialize < JObject > ( handler . LastRequestBody ) ;
1149
1200
Assert . Equal ( "user1" , request [ "localId" ] ) ;
1150
1201
Assert . Equal ( "{}" , request [ "customAttributes" ] ) ;
1202
+
1203
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
1151
1204
}
1152
1205
1153
1206
[ Fact ]
@@ -1161,6 +1214,8 @@ public async Task NullClaims()
1161
1214
var request = NewtonsoftJsonSerializer . Instance . Deserialize < JObject > ( handler . LastRequestBody ) ;
1162
1215
Assert . Equal ( "user1" , request [ "localId" ] ) ;
1163
1216
Assert . Equal ( "{}" , request [ "customAttributes" ] ) ;
1217
+
1218
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
1164
1219
}
1165
1220
1166
1221
[ Fact ]
@@ -1447,6 +1502,7 @@ public async Task DeleteUser()
1447
1502
var auth = this . CreateFirebaseAuth ( handler ) ;
1448
1503
1449
1504
await auth . DeleteUserAsync ( "user1" ) ;
1505
+ this . AssertClientVersion ( handler . LastRequestHeaders ) ;
1450
1506
}
1451
1507
1452
1508
[ Fact ]
@@ -1493,5 +1549,12 @@ private IDictionary<string, string> ExtractQueryParams(MockMessageHandler.Incomi
1493
1549
return req . Url . Query . Substring ( 1 ) . Split ( '&' ) . ToDictionary (
1494
1550
entry => entry . Split ( '=' ) [ 0 ] , entry => entry . Split ( '=' ) [ 1 ] ) ;
1495
1551
}
1552
+
1553
+ private void AssertClientVersion ( HttpRequestHeaders header )
1554
+ {
1555
+ Assert . Equal (
1556
+ FirebaseUserManager . ClientVersion ,
1557
+ header . GetValues ( FirebaseUserManager . ClientVersionHeader ) . First ( ) ) ;
1558
+ }
1496
1559
}
1497
1560
}
0 commit comments