@@ -54,13 +54,13 @@ describe('ParsePushAdapter', () => {
54
54
it ( 'can get valid push types' , ( done ) => {
55
55
var parsePushAdapter = new ParsePushAdapter ( ) ;
56
56
57
- expect ( parsePushAdapter . getValidPushTypes ( ) ) . toEqual ( [ 'ios' , 'android' , 'fcm' ] ) ;
57
+ expect ( parsePushAdapter . getValidPushTypes ( ) ) . toEqual ( [ 'ios' , 'osx' , 'tvos' , ' android', 'fcm' ] ) ;
58
58
done ( ) ;
59
59
} ) ;
60
60
61
61
it ( 'can classify installation' , ( done ) => {
62
62
// Mock installations
63
- var validPushTypes = [ 'ios' , 'android' , 'fcm' ] ;
63
+ var validPushTypes = [ 'ios' , 'osx' , 'tvos' , ' android', 'fcm' ] ;
64
64
var installations = [
65
65
{
66
66
deviceType : 'android' ,
@@ -70,6 +70,14 @@ describe('ParsePushAdapter', () => {
70
70
deviceType : 'ios' ,
71
71
deviceToken : 'iosToken'
72
72
} ,
73
+ {
74
+ deviceType : 'tvos' ,
75
+ deviceToken : 'tvosToken'
76
+ } ,
77
+ {
78
+ deviceType : 'osx' ,
79
+ deviceToken : 'osxToken'
80
+ } ,
73
81
{
74
82
deviceType : 'win' ,
75
83
deviceToken : 'winToken'
@@ -83,21 +91,27 @@ describe('ParsePushAdapter', () => {
83
91
var deviceMap = ParsePushAdapter . classifyInstallations ( installations , validPushTypes ) ;
84
92
expect ( deviceMap [ 'android' ] ) . toEqual ( [ makeDevice ( 'androidToken' , 'android' ) ] ) ;
85
93
expect ( deviceMap [ 'ios' ] ) . toEqual ( [ makeDevice ( 'iosToken' , 'ios' ) ] ) ;
94
+ expect ( deviceMap [ 'osx' ] ) . toEqual ( [ makeDevice ( 'osxToken' , 'osx' ) ] ) ;
95
+ expect ( deviceMap [ 'tvos' ] ) . toEqual ( [ makeDevice ( 'tvosToken' , 'tvos' ) ] ) ;
86
96
expect ( deviceMap [ 'win' ] ) . toBe ( undefined ) ;
87
97
done ( ) ;
88
98
} ) ;
89
99
90
100
91
101
it ( 'can send push notifications' , ( done ) => {
92
102
var parsePushAdapter = new ParsePushAdapter ( ) ;
93
- // Mock android ios senders
103
+ // Mock senders
94
104
var androidSender = {
95
105
send : jasmine . createSpy ( 'send' )
96
106
} ;
97
107
var iosSender = {
98
108
send : jasmine . createSpy ( 'send' )
99
109
} ;
110
+ var osxSender = {
111
+ send : jasmine . createSpy ( 'send' )
112
+ }
100
113
var senderMap = {
114
+ osx : osxSender ,
101
115
ios : iosSender ,
102
116
android : androidSender
103
117
} ;
@@ -112,6 +126,10 @@ describe('ParsePushAdapter', () => {
112
126
deviceType : 'ios' ,
113
127
deviceToken : 'iosToken'
114
128
} ,
129
+ {
130
+ deviceType : 'osx' ,
131
+ deviceToken : 'osxToken'
132
+ } ,
115
133
{
116
134
deviceType : 'win' ,
117
135
deviceToken : 'winToken'
@@ -136,14 +154,21 @@ describe('ParsePushAdapter', () => {
136
154
args = iosSender . send . calls . first ( ) . args ;
137
155
expect ( args [ 0 ] ) . toEqual ( data ) ;
138
156
expect ( args [ 1 ] ) . toEqual ( [
139
- makeDevice ( 'iosToken' , 'ios' )
157
+ makeDevice ( 'iosToken' , 'ios' ) ,
158
+ ] ) ;
159
+ // Check osx sender
160
+ expect ( osxSender . send ) . toHaveBeenCalled ( ) ;
161
+ args = osxSender . send . calls . first ( ) . args ;
162
+ expect ( args [ 0 ] ) . toEqual ( data ) ;
163
+ expect ( args [ 1 ] ) . toEqual ( [
164
+ makeDevice ( 'osxToken' , 'osx' )
140
165
] ) ;
141
166
done ( ) ;
142
167
} ) ;
143
168
144
169
it ( 'can send push notifications by pushType and failback by deviceType' , ( done ) => {
145
170
var parsePushAdapter = new ParsePushAdapter ( ) ;
146
- // Mock android ios senders
171
+ // Mock senders
147
172
var androidSender = {
148
173
send : jasmine . createSpy ( 'send' )
149
174
} ;
@@ -233,7 +258,15 @@ describe('ParsePushAdapter', () => {
233
258
cert : 'cert.cer' ,
234
259
key : 'key.pem' ,
235
260
production : false ,
236
- bundleId : 'bundleId'
261
+ bundleId : 'iosbundleId'
262
+ }
263
+ ] ,
264
+ osx : [
265
+ {
266
+ cert : 'cert.cer' ,
267
+ key : 'key.pem' ,
268
+ production : false ,
269
+ bundleId : 'osxbundleId'
237
270
}
238
271
]
239
272
} ;
@@ -244,13 +277,23 @@ describe('ParsePushAdapter', () => {
244
277
} ,
245
278
{
246
279
deviceType : 'ios' ,
247
- deviceToken : 'c5ee8fae0a1c ' ,
248
- appIdentifier : 'anotherBundle '
280
+ deviceToken : '0d72a1baa92a2febd9a254cbd6584f750c70b2350af5fc9052d1d12584b738e6 ' ,
281
+ appIdentifier : 'invalidiosbundleId '
249
282
} ,
250
283
{
251
284
deviceType : 'ios' ,
252
- deviceToken : 'c5ee8fae0a1c5805e731cf15496d5b2b3f9b9c577353d3239429d3faaee01c79' ,
253
- appIdentifier : 'anotherBundle'
285
+ deviceToken : 'ff3943ed0b2090c47e5d6f07d8f202a10427941d7897fda5a6b18c6d9fd07d48' ,
286
+ appIdentifier : 'invalidiosbundleId'
287
+ } ,
288
+ {
289
+ deviceType : 'osx' ,
290
+ deviceToken : '5cda62a8d88eb48d9111a6c436f2e326a053eb0cd72dfc3a0893089342602235' ,
291
+ appIdentifier : 'invalidosxbundleId'
292
+ } ,
293
+ {
294
+ deviceType : 'tvos' ,
295
+ deviceToken : '3e72a1baa92a2febd9a254cbd6584f750c70b2350af5fc9052d1d12584b738e6' ,
296
+ appIdentifier : 'invalidiosbundleId' // ios and tvos share the same bundleid
254
297
} ,
255
298
{
256
299
deviceType : 'win' ,
@@ -266,8 +309,8 @@ describe('ParsePushAdapter', () => {
266
309
parsePushAdapter . send ( { data : { alert : 'some' } } , installations ) . then ( ( results ) => {
267
310
expect ( Array . isArray ( results ) ) . toBe ( true ) ;
268
311
269
- // 2x iOS, 1x android
270
- expect ( results . length ) . toBe ( 3 ) ;
312
+ // 2x iOS, 1x android, 1x osx, 1x tvos
313
+ expect ( results . length ) . toBe ( 5 ) ;
271
314
results . forEach ( ( result ) => {
272
315
expect ( result . transmitted ) . toBe ( false ) ;
273
316
expect ( typeof result . device ) . toBe ( 'object' ) ;
0 commit comments