jpush-sdk
Version:
JPush's officially supported Node.js client library.
306 lines (270 loc) • 7.53 kB
JavaScript
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: true
},
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: true
},
platform: ['ios', 'winphone']
}
var result = JSON.stringify(json)
var payload = client.push().setPlatform('ios', 'winphone').setOptions(123456)
payload.toJSON().should.equal(result)
done()
})
it('platform test3', function (done) {
var json = {
options: {
sendno: 123456,
apns_production: true
},
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: true
},
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: true
},
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: true
},
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: true
},
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: true
},
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: true
},
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: true
},
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: true
},
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': true,
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()
})
})