Skip to content

Commit 9624970

Browse files
committed
Merge pull request #1004 from ParsePlatform/flovilmart.PushStatus
Push Status API
2 parents 3837d33 + 18781f1 commit 9624970

16 files changed

+470
-152
lines changed

spec/GCM.spec.js

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,15 @@ describe('GCM', () => {
2323
var data = {
2424
'alert': 'alert'
2525
};
26-
var pushId = 1;
2726
var timeStamp = 1454538822113;
2827
var timeStampISOStr = new Date(timeStamp).toISOString();
2928

30-
var payload = GCM.generateGCMPayload(data, pushId, timeStamp);
29+
var payload = GCM.generateGCMPayload(data, timeStamp);
3130

3231
expect(payload.priority).toEqual('normal');
3332
expect(payload.timeToLive).toEqual(undefined);
3433
var dataFromPayload = payload.data;
3534
expect(dataFromPayload.time).toEqual(timeStampISOStr);
36-
expect(dataFromPayload['push_id']).toEqual(pushId);
3735
var dataFromUser = JSON.parse(dataFromPayload.data);
3836
expect(dataFromUser).toEqual(data);
3937
done();
@@ -44,18 +42,16 @@ describe('GCM', () => {
4442
var data = {
4543
'alert': 'alert'
4644
};
47-
var pushId = 1;
4845
var timeStamp = 1454538822113;
4946
var timeStampISOStr = new Date(timeStamp).toISOString();
5047
var expirationTime = 1454538922113
5148

52-
var payload = GCM.generateGCMPayload(data, pushId, timeStamp, expirationTime);
49+
var payload = GCM.generateGCMPayload(data, timeStamp, expirationTime);
5350

5451
expect(payload.priority).toEqual('normal');
5552
expect(payload.timeToLive).toEqual(Math.floor((expirationTime - timeStamp) / 1000));
5653
var dataFromPayload = payload.data;
5754
expect(dataFromPayload.time).toEqual(timeStampISOStr);
58-
expect(dataFromPayload['push_id']).toEqual(pushId);
5955
var dataFromUser = JSON.parse(dataFromPayload.data);
6056
expect(dataFromUser).toEqual(data);
6157
done();
@@ -66,18 +62,16 @@ describe('GCM', () => {
6662
var data = {
6763
'alert': 'alert'
6864
};
69-
var pushId = 1;
7065
var timeStamp = 1454538822113;
7166
var timeStampISOStr = new Date(timeStamp).toISOString();
7267
var expirationTime = 1454538822112;
7368

74-
var payload = GCM.generateGCMPayload(data, pushId, timeStamp, expirationTime);
69+
var payload = GCM.generateGCMPayload(data, timeStamp, expirationTime);
7570

7671
expect(payload.priority).toEqual('normal');
7772
expect(payload.timeToLive).toEqual(0);
7873
var dataFromPayload = payload.data;
7974
expect(dataFromPayload.time).toEqual(timeStampISOStr);
80-
expect(dataFromPayload['push_id']).toEqual(pushId);
8175
var dataFromUser = JSON.parse(dataFromPayload.data);
8276
expect(dataFromUser).toEqual(data);
8377
done();
@@ -88,19 +82,17 @@ describe('GCM', () => {
8882
var data = {
8983
'alert': 'alert'
9084
};
91-
var pushId = 1;
9285
var timeStamp = 1454538822113;
9386
var timeStampISOStr = new Date(timeStamp).toISOString();
9487
var expirationTime = 2454538822113;
9588

96-
var payload = GCM.generateGCMPayload(data, pushId, timeStamp, expirationTime);
89+
var payload = GCM.generateGCMPayload(data, timeStamp, expirationTime);
9790

9891
expect(payload.priority).toEqual('normal');
9992
// Four week in second
10093
expect(payload.timeToLive).toEqual(4 * 7 * 24 * 60 * 60);
10194
var dataFromPayload = payload.data;
10295
expect(dataFromPayload.time).toEqual(timeStampISOStr);
103-
expect(dataFromPayload['push_id']).toEqual(pushId);
10496
var dataFromUser = JSON.parse(dataFromPayload.data);
10597
expect(dataFromUser).toEqual(data);
10698
done();
@@ -139,6 +131,46 @@ describe('GCM', () => {
139131
done();
140132
});
141133

134+
it('can send GCM request', (done) => {
135+
var gcm = new GCM({
136+
apiKey: 'apiKey'
137+
});
138+
// Mock data
139+
var expirationTime = 2454538822113;
140+
var data = {
141+
'expiration_time': expirationTime,
142+
'data': {
143+
'alert': 'alert'
144+
}
145+
}
146+
// Mock devices
147+
var devices = [
148+
{
149+
deviceToken: 'token'
150+
},
151+
{
152+
deviceToken: 'token2'
153+
},
154+
{
155+
deviceToken: 'token3'
156+
},
157+
{
158+
deviceToken: 'token4'
159+
}
160+
];
161+
162+
gcm.send(data, devices).then((response) => {
163+
expect(Array.isArray(response)).toBe(true);
164+
expect(response.length).toEqual(devices.length);
165+
expect(response.length).toEqual(4);
166+
response.forEach((res, index) => {
167+
expect(res.transmitted).toEqual(false);
168+
expect(res.device).toEqual(devices[index]);
169+
})
170+
done();
171+
})
172+
});
173+
142174
it('can slice devices', (done) => {
143175
// Mock devices
144176
var devices = [makeDevice(1), makeDevice(2), makeDevice(3), makeDevice(4)];

spec/Parse.Push.spec.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
1+
'use strict';
12
describe('Parse.Push', () => {
23
it('should properly send push', (done) => {
34
var pushAdapter = {
45
send: function(body, installations) {
56
var badge = body.data.badge;
6-
installations.forEach((installation) => {
7+
let promises = installations.map((installation) => {
78
if (installation.deviceType == "ios") {
89
expect(installation.badge).toEqual(badge);
910
expect(installation.originalBadge+1).toEqual(installation.badge);
1011
} else {
1112
expect(installation.badge).toBeUndefined();
1213
}
14+
return Promise.resolve({
15+
err: null,
16+
deviceType: installation.deviceType,
17+
result: true
18+
})
1319
});
14-
return Promise.resolve({
15-
body: body,
16-
installations: installations
17-
});
20+
return Promise.all(promises)
1821
},
1922
getValidPushTypes: function() {
2023
return ["ios", "android"];
@@ -56,4 +59,4 @@ describe('Parse.Push', () => {
5659
done();
5760
});
5861
});
59-
});
62+
});

spec/ParseACL.spec.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,7 +1153,6 @@ describe('Parse.ACL', () => {
11531153
var query = new Parse.Query("TestClassMasterACL");
11541154
return query.find();
11551155
}).then((results) => {
1156-
console.log(JSON.stringify(results[0]));
11571156
ok(!results.length, 'Should not have returned object with secure ACL.');
11581157
done();
11591158
});

0 commit comments

Comments
 (0)