@@ -141,6 +141,87 @@ describe('ParsePushAdapter', () => {
141
141
done ( ) ;
142
142
} ) ;
143
143
144
+ it ( 'can send push notifications by pushType and failback by deviceType' , ( done ) => {
145
+ var parsePushAdapter = new ParsePushAdapter ( ) ;
146
+ // Mock android ios senders
147
+ var androidSender = {
148
+ send : jasmine . createSpy ( 'send' )
149
+ } ;
150
+ var iosSender = {
151
+ send : jasmine . createSpy ( 'send' )
152
+ } ;
153
+ var senderMap = {
154
+ ios : iosSender ,
155
+ android : androidSender
156
+ } ;
157
+ parsePushAdapter . senderMap = senderMap ;
158
+ // Mock installations
159
+ var installations = [
160
+ {
161
+ deviceType : 'android' ,
162
+ deviceToken : 'androidToken'
163
+ } ,
164
+ {
165
+ deviceType : 'android' ,
166
+ pushType : 'gcm' ,
167
+ deviceToken : 'androidToken'
168
+ } ,
169
+ {
170
+ deviceType : 'android' ,
171
+ pushType : 'ppns' ,
172
+ deviceToken : 'androidToken'
173
+ } ,
174
+ {
175
+ deviceType : 'android' ,
176
+ pushType : 'none' ,
177
+ deviceToken : 'androidToken'
178
+ } ,
179
+ {
180
+ deviceType : 'ios' ,
181
+ deviceToken : 'iosToken'
182
+ } ,
183
+ {
184
+ deviceType : 'ios' ,
185
+ pushType : 'ios' ,
186
+ deviceToken : 'iosToken'
187
+ } ,
188
+ {
189
+ deviceType : 'win' ,
190
+ deviceToken : 'winToken'
191
+ } ,
192
+ {
193
+ deviceType : 'win' ,
194
+ deviceToken : 'winToken'
195
+ } ,
196
+ {
197
+ deviceType : 'android' ,
198
+ deviceToken : undefined
199
+ }
200
+ ] ;
201
+ var data = { } ;
202
+
203
+ parsePushAdapter . send ( data , installations ) ;
204
+ // Check android sender
205
+ expect ( androidSender . send ) . toHaveBeenCalled ( ) ;
206
+ var args = androidSender . send . calls . first ( ) . args ;
207
+ expect ( args [ 0 ] ) . toEqual ( data ) ;
208
+ expect ( args [ 1 ] ) . toEqual ( [
209
+ makeDevice ( 'androidToken' ) ,
210
+ makeDevice ( 'androidToken' ) ,
211
+ makeDevice ( 'androidToken' ) ,
212
+ makeDevice ( 'androidToken' )
213
+ ] ) ;
214
+ // Check ios sender
215
+ expect ( iosSender . send ) . toHaveBeenCalled ( ) ;
216
+ args = iosSender . send . calls . first ( ) . args ;
217
+ expect ( args [ 0 ] ) . toEqual ( data ) ;
218
+ expect ( args [ 1 ] ) . toEqual ( [
219
+ makeDevice ( 'iosToken' ) ,
220
+ makeDevice ( 'iosToken' )
221
+ ] ) ;
222
+ done ( ) ;
223
+ } ) ;
224
+
144
225
it ( 'reports properly results' , ( done ) => {
145
226
var pushConfig = {
146
227
android : {
0 commit comments