16
16
using System . Linq ;
17
17
using System . Net ;
18
18
using System . Net . Http ;
19
+ using System . Net . Http . Headers ;
19
20
using System . Threading . Tasks ;
20
21
using FirebaseAdmin . Tests ;
21
22
using Google . Apis . Auth . OAuth2 ;
@@ -30,6 +31,12 @@ public class FirebaseMessagingClientTest
30
31
private static readonly GoogleCredential MockCredential =
31
32
GoogleCredential . FromAccessToken ( "test-token" ) ;
32
33
34
+ private static readonly string VersionHeader =
35
+ $ "X-Firebase-Client: { FirebaseMessagingClient . ClientVersion } ";
36
+
37
+ private static readonly string ApiFormatHeader =
38
+ "X-GOOG-API-FORMAT-VERSION: 2" ;
39
+
33
40
[ Fact ]
34
41
public void NoProjectId ( )
35
42
{
@@ -80,8 +87,7 @@ public async Task SendAsync()
80
87
Assert . Equal ( "test-topic" , req . Message . Topic ) ;
81
88
Assert . False ( req . ValidateOnly ) ;
82
89
Assert . Equal ( 1 , handler . Calls ) ;
83
- var versionHeader = handler . LastRequestHeaders . GetValues ( "X-Firebase-Client" ) . First ( ) ;
84
- Assert . Equal ( FirebaseMessagingClient . ClientVersion , versionHeader ) ;
90
+ this . CheckHeaders ( handler . LastRequestHeaders ) ;
85
91
}
86
92
87
93
[ Fact ]
@@ -108,8 +114,7 @@ public async Task SendDryRunAsync()
108
114
Assert . Equal ( "test-topic" , req . Message . Topic ) ;
109
115
Assert . True ( req . ValidateOnly ) ;
110
116
Assert . Equal ( 1 , handler . Calls ) ;
111
- var versionHeader = handler . LastRequestHeaders . GetValues ( "X-Firebase-Client" ) . First ( ) ;
112
- Assert . Equal ( FirebaseMessagingClient . ClientVersion , versionHeader ) ;
117
+ this . CheckHeaders ( handler . LastRequestHeaders ) ;
113
118
}
114
119
115
120
[ Fact ]
@@ -172,8 +177,9 @@ public async Task SendAllAsync()
172
177
Assert . Equal ( "projects/fir-adminintegrationtests/messages/8580920590356323124" , response . Responses [ 0 ] . MessageId ) ;
173
178
Assert . Equal ( "projects/fir-adminintegrationtests/messages/5903525881088369386" , response . Responses [ 1 ] . MessageId ) ;
174
179
Assert . Equal ( 1 , handler . Calls ) ;
175
- var versionHeader = $ "X-Firebase-Client: { FirebaseMessagingClient . ClientVersion } ";
176
- Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , versionHeader ) ) ;
180
+
181
+ Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , VersionHeader ) ) ;
182
+ Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , ApiFormatHeader ) ) ;
177
183
}
178
184
179
185
[ Fact ]
@@ -254,8 +260,8 @@ public async Task SendAllAsyncWithError()
254
260
Assert . NotNull ( exception . HttpResponse ) ;
255
261
256
262
Assert . Equal ( 1 , handler . Calls ) ;
257
- var versionHeader = $ "X-Firebase-Client: { FirebaseMessagingClient . ClientVersion } " ;
258
- Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , versionHeader ) ) ;
263
+ Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , VersionHeader ) ) ;
264
+ Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , ApiFormatHeader ) ) ;
259
265
}
260
266
261
267
[ Fact ]
@@ -327,8 +333,8 @@ public async Task SendAllAsyncWithErrorNoDetail()
327
333
Assert . NotNull ( exception . HttpResponse ) ;
328
334
329
335
Assert . Equal ( 1 , handler . Calls ) ;
330
- var versionHeader = $ "X-Firebase-Client: { FirebaseMessagingClient . ClientVersion } " ;
331
- Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , versionHeader ) ) ;
336
+ Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , VersionHeader ) ) ;
337
+ Assert . Equal ( 2 , this . CountLinesWithPrefix ( handler . LastRequestBody , ApiFormatHeader ) ) ;
332
338
}
333
339
334
340
[ Fact ]
@@ -497,6 +503,15 @@ public async Task TransportError()
497
503
Assert . Equal ( 1 , handler . Calls ) ;
498
504
}
499
505
506
+ private void CheckHeaders ( HttpRequestHeaders header )
507
+ {
508
+ var versionHeader = header . GetValues ( "X-Firebase-Client" ) . First ( ) ;
509
+ Assert . Equal ( FirebaseMessagingClient . ClientVersion , versionHeader ) ;
510
+
511
+ var apiFormatHeader = header . GetValues ( "X-GOOG-API-FORMAT-VERSION" ) . First ( ) ;
512
+ Assert . Equal ( "2" , apiFormatHeader ) ;
513
+ }
514
+
500
515
private int CountLinesWithPrefix ( string body , string linePrefix )
501
516
{
502
517
return body . Split ( '\n ' ) . Count ( ( line ) => line . StartsWith ( linePrefix ) ) ;
0 commit comments