@@ -18,6 +18,11 @@ class PushServiceTest extends PHPUnit_Framework_TestCase
18
18
private static $ testServiceUrl ;
19
19
private static $ gcmSenderId = '759071690750 ' ;
20
20
private static $ gcmApiKey = 'AIzaSyBAU0VfXoskxUSg81K5VgLgwblHbZWe6tA ' ;
21
+ private static $ vapidKeys = array (
22
+ 'subject ' => 'http://test.com ' ,
23
+ 'publicKey ' => 'BA6jvk34k6YjElHQ6S0oZwmrsqHdCNajxcod6KJnI77Dagikfb--O_kYXcR2eflRz6l3PcI2r8fPCH3BElLQHDk ' ,
24
+ 'privateKey ' => '-3CdhFOqjzixgAbUSa0Zv9zi-dwDVmWO7672aBxSFPQ ' ,
25
+ );
21
26
22
27
/** @var WebPush WebPush with correct api keys */
23
28
private $ webPush ;
@@ -46,11 +51,11 @@ protected function setUp()
46
51
{
47
52
$ startApiCurl = curl_init (self ::$ testServiceUrl .'/api/start-test-suite/ ' );
48
53
curl_setopt_array ($ startApiCurl , array (
49
- CURLOPT_POST => true ,
50
- CURLOPT_POSTFIELDS => array (),
51
- CURLOPT_RETURNTRANSFER => true ,
52
- CURLOPT_TIMEOUT => 30 ,
53
- ));
54
+ CURLOPT_POST => true ,
55
+ CURLOPT_POSTFIELDS => array (),
56
+ CURLOPT_RETURNTRANSFER => true ,
57
+ CURLOPT_TIMEOUT => 30 ,
58
+ ));
54
59
55
60
$ resp = curl_exec ($ startApiCurl );
56
61
@@ -86,7 +91,19 @@ public function browserProvider()
86
91
array ('firefox ' , 'beta ' , array ('GCM ' => self ::$ gcmApiKey )),
87
92
array ('firefox ' , 'unstable ' , array ('GCM ' => self ::$ gcmApiKey )),
88
93
// Web Push + VAPID
94
+ array ('chrome ' , 'stable ' , array ('VAPID ' => self ::$ vapidKeys )),
95
+ array ('chrome ' , 'beta ' , array ('VAPID ' => self ::$ vapidKeys )),
96
+ array ('chrome ' , 'unstable ' , array ('VAPID ' => self ::$ vapidKeys )),
97
+ array ('firefox ' , 'stable ' , array ('VAPID ' => self ::$ vapidKeys )),
98
+ array ('firefox ' , 'beta ' , array ('VAPID ' => self ::$ vapidKeys )),
99
+ array ('firefox ' , 'unstable ' , array ('VAPID ' => self ::$ vapidKeys )),
89
100
// Web Push + GCM + VAPID
101
+ array ('chrome ' , 'stable ' , array ('GCM ' => self ::$ gcmApiKey , 'VAPID ' => self ::$ vapidKeys )),
102
+ array ('chrome ' , 'beta ' , array ('GCM ' => self ::$ gcmApiKey , 'VAPID ' => self ::$ vapidKeys )),
103
+ array ('chrome ' , 'unstable ' , array ('GCM ' => self ::$ gcmApiKey , 'VAPID ' => self ::$ vapidKeys )),
104
+ array ('firefox ' , 'stable ' , array ('GCM ' => self ::$ gcmApiKey , 'VAPID ' => self ::$ vapidKeys )),
105
+ array ('firefox ' , 'beta ' , array ('GCM ' => self ::$ gcmApiKey , 'VAPID ' => self ::$ vapidKeys )),
106
+ array ('firefox ' , 'unstable ' , array ('GCM ' => self ::$ gcmApiKey , 'VAPID ' => self ::$ vapidKeys )),
90
107
);
91
108
}
92
109
@@ -99,20 +116,30 @@ public function testBrowsers($browserId, $browserVersion, $options)
99
116
$ this ->webPush = new WebPush ($ options );
100
117
$ this ->webPush ->setAutomaticPadding (false );
101
118
102
- $ dataString = json_encode ( array (
119
+ $ subscriptionParameters = array (
103
120
'testSuiteId ' => self ::$ testSuiteId ,
104
121
'browserName ' => $ browserId ,
105
122
'browserVersion ' => $ browserVersion ,
106
- 'gcmSenderId ' => self ::$ gcmSenderId ,
107
- ));
123
+ );
124
+
125
+ if (array_key_exists ('GCM ' , $ options )) {
126
+ $ subscriptionParameters ['gcmSenderId ' ] = self ::$ gcmSenderId ;
127
+ }
128
+
129
+ if (array_key_exists ('VAPID ' , $ options )) {
130
+ $ subscriptionParameters ['vapidPublicKey ' ] = self ::$ vapidKeys ['publicKey ' ];
131
+ }
132
+
133
+ $ subscriptionParameters = json_encode ($ subscriptionParameters );
134
+
108
135
$ getSubscriptionCurl = curl_init (self ::$ testServiceUrl .'/api/get-subscription/ ' );
109
136
curl_setopt_array ($ getSubscriptionCurl , array (
110
137
CURLOPT_POST => true ,
111
- CURLOPT_POSTFIELDS => $ dataString ,
138
+ CURLOPT_POSTFIELDS => $ subscriptionParameters ,
112
139
CURLOPT_RETURNTRANSFER => true ,
113
140
CURLOPT_HTTPHEADER => array (
114
141
'Content-Type: application/json ' ,
115
- 'Content-Length: ' .strlen ($ dataString ),
142
+ 'Content-Length: ' .strlen ($ subscriptionParameters ),
116
143
),
117
144
CURLOPT_TIMEOUT => 30 ,
118
145
));
@@ -184,21 +211,21 @@ protected function tearDown()
184
211
$ dataString = '{ "testSuiteId": ' .self ::$ testSuiteId .' } ' ;
185
212
$ curl = curl_init (self ::$ testServiceUrl .'/api/end-test-suite/ ' );
186
213
curl_setopt_array ($ curl , array (
187
- CURLOPT_POST => true ,
188
- CURLOPT_POSTFIELDS => $ dataString ,
189
- CURLOPT_RETURNTRANSFER => true ,
190
- CURLOPT_HTTPHEADER => array (
214
+ CURLOPT_POST => true ,
215
+ CURLOPT_POSTFIELDS => $ dataString ,
216
+ CURLOPT_RETURNTRANSFER => true ,
217
+ CURLOPT_HTTPHEADER => array (
191
218
'Content-Type: application/json ' ,
192
219
'Content-Length: ' .strlen ($ dataString ),
193
- ),
194
- CURLOPT_TIMEOUT => 30 ,
195
- ));
220
+ ),
221
+ CURLOPT_TIMEOUT => 30 ,
222
+ ));
196
223
$ resp = curl_exec ($ curl );
197
224
$ parsedResp = json_decode ($ resp );
198
225
199
226
self ::$ testSuiteId = null ;
200
- // Close request to clear up some resources
201
- curl_close ($ curl );
227
+ // Close request to clear up some resources
228
+ curl_close ($ curl );
202
229
}
203
230
204
231
public static function tearDownAfterClass ()
0 commit comments