jpush-sdk-cube
Version:
JPush's officially supported Node.js client library.
326 lines (284 loc) • 9.59 kB
JavaScript
var should = require('should');
var JPush = require('../index');
var Base = require('./BaseTest');
describe('PushPayload test', function() {
var client;
before(function () {
client = JPush.buildClient(Base.appKey, Base.masterSecret);
});
after(function () {});
it('platform test1', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
platform : 'all'
};
var result = JSON.stringify(json);
var payload = client.push().setPlatform(JPush.ALL).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('platform test2', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
platform : ['ios', 'winphone']
};
var result = JSON.stringify(json);
var payload = client.push().setPlatform('ios', 'winphone').setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it("should set `big_push_duration`", function (done) {
var json = {
options: {
sendno: 123456,
apns_production: false,
big_push_duration: 60
},
platform: ['ios', 'winphone']
};
var result = JSON.stringify(json);
var payload = client.push()
.setPlatform('ios', 'winphone')
.setOptions(123456, null, null, false, 60);
payload.toJSON().should.equal(result);
done();
});
it('platform test3', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
platform : ['ios', 'winphone']
};
var result = JSON.stringify(json);
var payload = client.push().setPlatform(['ios', 'winphone']).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('audience test1', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
audience : 'all'
};
var result = JSON.stringify(json);
var payload = client.push().setAudience(JPush.ALL).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('audience test2', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
audience : {
registration_id : ['id1', 'id2'],
alias : ['alias1', 'alias2'],
tag_and : ['tag3', 'tag4'],
tag : ['tag1', 'tag2']
}
};
var result = JSON.stringify(json);
var payload = client.push().setAudience(
JPush.tag('tag1', 'tag2'),
JPush.tag_and('tag3', 'tag4'),
JPush.alias('alias1', 'alias2'),
JPush.registration_id('id1', 'id2')
).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('audience test2', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
audience : {
registration_id : ['id1', 'id2'],
alias : ['alias1', 'alias2'],
tag_and : ['tag3', 'tag4'],
tag : ['tag1', 'tag2']
}
};
var result = JSON.stringify(json);
var payload = client.push().setAudience(
JPush.tag('tag1,tag2'),
JPush.tag_and('tag3,tag4'),
JPush.alias('alias1,alias2'),
JPush.registration_id('id1,id2')
).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('message test1', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
message : {
msg_content : 'msg content'
}
};
var result = JSON.stringify(json);
var payload = client.push().setMessage('msg content').setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('message test2', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
message : {
msg_content : 'msg content',
title : 'msg title',
content_type : 'content type',
extras : Base.EXTRAS
}
};
var result = JSON.stringify(json);
var payload = client.push().setMessage('msg content', 'msg title', 'content type', Base.EXTRAS).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('options test1', function(done) {
var json = {
options : {
sendno : 123456,
time_to_live : 60,
override_msg_id : 654321,
apns_production : true
}
};
var result = JSON.stringify(json);
var payload = client.push().setOptions(123456, 60 ,654321, true);
payload.toJSON().should.equal(result);
done();
});
it ('notification test1', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
notification : {
alert: Base.ALERT
}
};
var result = JSON.stringify(json);
var payload = client.push().setNotification(Base.ALERT).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it ('notification test2', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
notification : {
ios : {
alert : Base.ALERT,
sound : 'happy',
badge : 5
},
alert: Base.ALERT
}
};
var result = JSON.stringify(json);
var payload = client.push().setNotification(Base.ALERT, JPush.ios(Base.ALERT, 'happy', 5)).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it('notification test3', function(done) {
var json = {
options : {
sendno : 123456,
apns_production : false
},
notification : {
winphone : {
alert : Base.ALERT,
title : Base.TITLE,
_open_page : 'open page',
extras : Base.EXTRAS
},
android : {
alert : Base.ALERT,
title : Base.TITLE,
builder_id : 1,
extras : Base.EXTRAS
},
ios : {
alert : Base.ALERT,
sound : 'happy',
badge : 2,
'content-available' : 1,
extras : Base.EXTRAS
},
alert: Base.ALERT
}
};
var result = JSON.stringify(json);
var payload = client.push().setNotification(
Base.ALERT, JPush.ios(Base.ALERT, 'happy', 2, true, Base.EXTRAS),
JPush.android(Base.ALERT, Base.TITLE, 1, Base.EXTRAS),
JPush.winphone(Base.ALERT, Base.TITLE, 'open page', Base.EXTRAS)
).setOptions(123456);
payload.toJSON().should.equal(result);
done();
});
it ("ios length validate fail test", function(done) {
var isVaildate = client.push().setPlatform(JPush.ALL)
.setAudience(JPush.ALL)
.setNotification(JPush.ios(Base.tooBig2000))
.isIosExceedLength();
isVaildate.should.equal(true);
done();
});
it ("ios length validate success test", function(done) {
var isVaildate = client.push().setPlatform(JPush.ALL)
.setAudience(JPush.ALL)
.setNotification(JPush.ios(Base.ALERT))
.isIosExceedLength();
isVaildate.should.equal(false);
done();
});
it ("ios length validate fail1 test", function(done) {
var isVaildate = client.push().setPlatform(JPush.ALL)
.setAudience(JPush.ALL)
.setNotification(JPush.ios(Base.tooBig2000))
.isGlobalExceedLength();
isVaildate.should.equal(true);
done();
});
it ("ios length validate fail2 test", function(done) {
var isVaildate = client.push().setPlatform(JPush.ALL)
.setAudience(JPush.ALL)
.setNotification(Base.tooBig1200, JPush.ios(Base.ALERT))
.isGlobalExceedLength();
isVaildate.should.equal(true);
done();
});
it ("ios length validate success test", function(done) {
var isVaildate = client.push().setPlatform(JPush.ALL)
.setAudience(JPush.ALL)
.setNotification(Base.ALERT, JPush.ios(Base.ALERT))
.isGlobalExceedLength();
isVaildate.should.equal(false);
done();
});
});