11using System ;
2- using System . Net ;
32using System . Threading . Tasks ;
43using System . Collections . Generic ;
54using Xunit ;
@@ -19,12 +18,15 @@ public class PushMessageDeliveryTests : IClassFixture<FakePushServiceApplication
1918
2019 private const string WALRUS_CONTENT = "I am the walrus" ;
2120
21+ private const string PUSH_SUBSCRIPTION_AUTH_KEY = "n5mG_PyMSKALsjsU542E6g" ;
22+ private const string PUSH_SUBSCRIPTION_P256DH_KEY = "BDS52l6tfaf6ZEqhyDa0cScvCi4WXNYPIwmfas-7nKLIQex-DVKXB9gUxDExaZEOiwovl6LbWXZBZ9AT-GWT6eQ" ;
23+
2224 private readonly PushSubscription _pushSubscription = new PushSubscription
2325 {
2426 Keys = new Dictionary < string , string >
2527 {
26- { "auth" , "n5mG_PyMSKALsjsU542E6g" } ,
27- { "p256dh" , "BDS52l6tfaf6ZEqhyDa0cScvCi4WXNYPIwmfas-7nKLIQex-DVKXB9gUxDExaZEOiwovl6LbWXZBZ9AT-GWT6eQ" }
28+ { "auth" , PUSH_SUBSCRIPTION_AUTH_KEY } ,
29+ { "p256dh" , PUSH_SUBSCRIPTION_P256DH_KEY }
2830 }
2931 } ;
3032
@@ -204,6 +206,81 @@ public async Task PushService_OtherClientError_PushServiceClientExceptionContain
204206
205207 Assert . Equal ( _pushSubscription , pushMessageDeliveryException . PushSubscription ) ;
206208 }
209+
210+ [ Fact ]
211+ public async Task PushService_PushEncryptionKeysNamesLowercase_DeliversPushMessage ( )
212+ {
213+ PushSubscription pushSubscription = new PushSubscription
214+ {
215+ Keys = new Dictionary < string , string >
216+ {
217+ { "auth" , PUSH_SUBSCRIPTION_AUTH_KEY } ,
218+ { "p256dh" , PUSH_SUBSCRIPTION_P256DH_KEY }
219+ } ,
220+ Endpoint = CREATED_ENDPOINT
221+ } ;
222+
223+ PushMessage pushMessage = new PushMessage ( WALRUS_CONTENT ) ;
224+
225+ PushServiceClient pushClient = PreparePushServiceClient ( ) ;
226+
227+ Exception pushMessageDeliveryException = await Record . ExceptionAsync ( async ( ) =>
228+ {
229+ await pushClient . RequestPushMessageDeliveryAsync ( pushSubscription , pushMessage ) ;
230+ } ) ;
231+
232+ Assert . Null ( pushMessageDeliveryException ) ;
233+ }
234+
235+ [ Fact ]
236+ public async Task PushService_PushEncryptionKeysNamesUppercase_DeliversPushMessage ( )
237+ {
238+ PushSubscription pushSubscription = new PushSubscription
239+ {
240+ Keys = new Dictionary < string , string >
241+ {
242+ { "AUTH" , PUSH_SUBSCRIPTION_AUTH_KEY } ,
243+ { "P256DH" , PUSH_SUBSCRIPTION_P256DH_KEY }
244+ } ,
245+ Endpoint = CREATED_ENDPOINT
246+ } ;
247+
248+ PushMessage pushMessage = new PushMessage ( WALRUS_CONTENT ) ;
249+
250+ PushServiceClient pushClient = PreparePushServiceClient ( ) ;
251+
252+ Exception pushMessageDeliveryException = await Record . ExceptionAsync ( async ( ) =>
253+ {
254+ await pushClient . RequestPushMessageDeliveryAsync ( pushSubscription , pushMessage ) ;
255+ } ) ;
256+
257+ Assert . Null ( pushMessageDeliveryException ) ;
258+ }
259+
260+ [ Fact ]
261+ public async Task PushService_PushEncryptionKeysNamesMixedCase_DeliversPushMessage ( )
262+ {
263+ PushSubscription pushSubscription = new PushSubscription
264+ {
265+ Keys = new Dictionary < string , string >
266+ {
267+ { "AuTh" , PUSH_SUBSCRIPTION_AUTH_KEY } ,
268+ { "P256dH" , PUSH_SUBSCRIPTION_P256DH_KEY }
269+ } ,
270+ Endpoint = CREATED_ENDPOINT
271+ } ;
272+
273+ PushMessage pushMessage = new PushMessage ( WALRUS_CONTENT ) ;
274+
275+ PushServiceClient pushClient = PreparePushServiceClient ( ) ;
276+
277+ Exception pushMessageDeliveryException = await Record . ExceptionAsync ( async ( ) =>
278+ {
279+ await pushClient . RequestPushMessageDeliveryAsync ( pushSubscription , pushMessage ) ;
280+ } ) ;
281+
282+ Assert . Null ( pushMessageDeliveryException ) ;
283+ }
207284 #endregion
208285 }
209286}
0 commit comments