Add check android and ios conf.
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
@@ -55,8 +55,8 @@ func BuildDefaultPushConf() ConfYaml {
|
||||
conf.Api.StatGoUri = "/api/status"
|
||||
|
||||
// Android
|
||||
conf.Android.ApiKey = ""
|
||||
conf.Android.Enabled = false
|
||||
conf.Android.ApiKey = ""
|
||||
|
||||
// iOS
|
||||
conf.Ios.Enabled = false
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"github.com/sideshow/apns2/certificate"
|
||||
"github.com/sideshow/apns2/payload"
|
||||
"log"
|
||||
"errors"
|
||||
)
|
||||
|
||||
type ExtendJSON struct {
|
||||
@@ -71,6 +72,26 @@ type RequestPushNotification struct {
|
||||
IDs []uint64 `json:"seq_id,omitempty"`
|
||||
}
|
||||
|
||||
func CheckPushConf() error {
|
||||
if !PushConf.Ios.Enabled && !PushConf.Android.Enabled {
|
||||
return errors.New("Please enable iOS or Android config in yaml config")
|
||||
}
|
||||
|
||||
if PushConf.Ios.Enabled {
|
||||
if PushConf.Ios.PemKeyPath == "" {
|
||||
return errors.New("Missing iOS certificate path")
|
||||
}
|
||||
}
|
||||
|
||||
if PushConf.Android.Enabled {
|
||||
if PushConf.Android.ApiKey == "" {
|
||||
return errors.New("Missing Android API Key")
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func InitAPNSClient() error {
|
||||
if PushConf.Ios.Enabled {
|
||||
var err error
|
||||
|
||||
@@ -9,6 +9,53 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestDisabledAndroidIosConf(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, "Please enable iOS or Android config in yaml config", err.Error())
|
||||
}
|
||||
|
||||
func TestMissingIOSCertificate(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
PushConf.Ios.Enabled = true
|
||||
PushConf.Ios.PemKeyPath = ""
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, "Missing iOS certificate path", err.Error())
|
||||
}
|
||||
|
||||
func TestMissingAndroidAPIKey(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
PushConf.Android.Enabled = true
|
||||
PushConf.Android.ApiKey = ""
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, "Missing Android API Key", err.Error())
|
||||
}
|
||||
|
||||
func TestCorrectConf(t *testing.T) {
|
||||
PushConf = BuildDefaultPushConf()
|
||||
|
||||
PushConf.Android.Enabled = true
|
||||
PushConf.Android.ApiKey = "xxxxx"
|
||||
|
||||
PushConf.Ios.Enabled = true
|
||||
PushConf.Ios.PemKeyPath = "xxxxx"
|
||||
|
||||
err := CheckPushConf()
|
||||
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestIOSNotificationStructure(t *testing.T) {
|
||||
var dat map[string]interface{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user