commit
1f71f6cef2
|
@ -115,24 +115,20 @@ func InitAPNSClient() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func pushNotification(notification RequestPushNotification) bool {
|
func pushNotification(notification RequestPushNotification) bool {
|
||||||
var (
|
|
||||||
success bool
|
|
||||||
)
|
|
||||||
|
|
||||||
switch notification.Platform {
|
switch notification.Platform {
|
||||||
case PlatFormIos:
|
case PlatFormIos:
|
||||||
if !PushConf.Ios.Enabled {
|
if !PushConf.Ios.Enabled {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
success = pushNotificationIos(notification)
|
go PushToIOS(notification)
|
||||||
case PlatFormAndroid:
|
case PlatFormAndroid:
|
||||||
if !PushConf.Android.Enabled {
|
if !PushConf.Android.Enabled {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
success = pushNotificationAndroid(notification)
|
go PushToAndroid(notification)
|
||||||
}
|
}
|
||||||
|
|
||||||
return success
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// The iOS Notification Payload
|
// The iOS Notification Payload
|
||||||
|
@ -226,7 +222,7 @@ func GetIOSNotification(req RequestPushNotification) *apns.Notification {
|
||||||
return notification
|
return notification
|
||||||
}
|
}
|
||||||
|
|
||||||
func pushNotificationIos(req RequestPushNotification) bool {
|
func PushToIOS(req RequestPushNotification) bool {
|
||||||
|
|
||||||
notification := GetIOSNotification(req)
|
notification := GetIOSNotification(req)
|
||||||
|
|
||||||
|
@ -303,7 +299,7 @@ func GetAndroidNotification(req RequestPushNotification) gcm.HttpMessage {
|
||||||
return notification
|
return notification
|
||||||
}
|
}
|
||||||
|
|
||||||
func pushNotificationAndroid(req RequestPushNotification) bool {
|
func PushToAndroid(req RequestPushNotification) bool {
|
||||||
|
|
||||||
notification := GetAndroidNotification(req)
|
notification := GetAndroidNotification(req)
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"github.com/google/go-gcm"
|
"github.com/google/go-gcm"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -203,3 +204,70 @@ func TestAndroidNotificationStructure(t *testing.T) {
|
||||||
assert.Equal(t, test, notification.Notification.Title)
|
assert.Equal(t, test, notification.Notification.Title)
|
||||||
assert.Equal(t, "Welcome", notification.Notification.Body)
|
assert.Equal(t, "Welcome", notification.Notification.Body)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPushToIOS(t *testing.T) {
|
||||||
|
PushConf = BuildDefaultPushConf()
|
||||||
|
|
||||||
|
PushConf.Ios.Enabled = true
|
||||||
|
PushConf.Ios.PemKeyPath = "../certificate/certificate-valid.pem"
|
||||||
|
InitAPNSClient()
|
||||||
|
|
||||||
|
req := RequestPushNotification{
|
||||||
|
Tokens: []string{"11aa01229f15f0f0c52029d8cf8cd0aeaf2365fe4cebc4af26cd6d76b7919ef7"},
|
||||||
|
Platform: 1,
|
||||||
|
Message: "Welcome",
|
||||||
|
}
|
||||||
|
|
||||||
|
success := PushToIOS(req)
|
||||||
|
assert.False(t, success)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPushToAndroidWrongAPIKey(t *testing.T) {
|
||||||
|
PushConf = BuildDefaultPushConf()
|
||||||
|
|
||||||
|
PushConf.Android.Enabled = true
|
||||||
|
PushConf.Android.ApiKey = os.Getenv("ANDROID_API_KEY") + "a"
|
||||||
|
|
||||||
|
req := RequestPushNotification{
|
||||||
|
Tokens: []string{"aaaaaa", "bbbbb"},
|
||||||
|
Platform: 2,
|
||||||
|
Message: "Welcome",
|
||||||
|
}
|
||||||
|
|
||||||
|
success := PushToAndroid(req)
|
||||||
|
assert.False(t, success)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPushToAndroidWrongToken(t *testing.T) {
|
||||||
|
PushConf = BuildDefaultPushConf()
|
||||||
|
|
||||||
|
PushConf.Android.Enabled = true
|
||||||
|
PushConf.Android.ApiKey = os.Getenv("ANDROID_API_KEY")
|
||||||
|
|
||||||
|
req := RequestPushNotification{
|
||||||
|
Tokens: []string{"aaaaaa", "bbbbb"},
|
||||||
|
Platform: 2,
|
||||||
|
Message: "Welcome",
|
||||||
|
}
|
||||||
|
|
||||||
|
success := PushToAndroid(req)
|
||||||
|
assert.True(t, success)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPushToAndroidRightToken(t *testing.T) {
|
||||||
|
PushConf = BuildDefaultPushConf()
|
||||||
|
|
||||||
|
PushConf.Android.Enabled = true
|
||||||
|
PushConf.Android.ApiKey = os.Getenv("ANDROID_API_KEY")
|
||||||
|
|
||||||
|
android_token := os.Getenv("ANDROID_TEST_TOKEN")
|
||||||
|
|
||||||
|
req := RequestPushNotification{
|
||||||
|
Tokens: []string{android_token, "bbbbb"},
|
||||||
|
Platform: 2,
|
||||||
|
Message: "Welcome",
|
||||||
|
}
|
||||||
|
|
||||||
|
success := PushToAndroid(req)
|
||||||
|
assert.True(t, success)
|
||||||
|
}
|
||||||
|
|
|
@ -26,6 +26,8 @@ func TestPrintGoPushVersion(t *testing.T) {
|
||||||
func TestRunNormalServer(t *testing.T) {
|
func TestRunNormalServer(t *testing.T) {
|
||||||
initTest()
|
initTest()
|
||||||
|
|
||||||
|
gin.SetMode(gin.TestMode)
|
||||||
|
|
||||||
router := gin.New()
|
router := gin.New()
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -199,47 +201,7 @@ func TestDisabledAndroidPushHandler(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAndroidWrongAPIKey(t *testing.T) {
|
func TestAndroidPushHandler(t *testing.T) {
|
||||||
initTest()
|
|
||||||
|
|
||||||
PushConf.Android.Enabled = true
|
|
||||||
PushConf.Android.ApiKey = os.Getenv("ANDROID_API_KEY") + "a"
|
|
||||||
|
|
||||||
r := gofight.New()
|
|
||||||
|
|
||||||
r.POST("/api/push").
|
|
||||||
SetJSON(gofight.D{
|
|
||||||
"tokens": []string{"aaaaaa", "bbbbb"},
|
|
||||||
"platform": 2,
|
|
||||||
"message": "Welcome",
|
|
||||||
}).
|
|
||||||
Run(GetMainEngine(), func(r gofight.HttpResponse, rq gofight.HttpRequest) {
|
|
||||||
|
|
||||||
assert.Equal(t, http.StatusOK, r.Code)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAndroidWrongToken(t *testing.T) {
|
|
||||||
initTest()
|
|
||||||
|
|
||||||
PushConf.Android.Enabled = true
|
|
||||||
PushConf.Android.ApiKey = os.Getenv("ANDROID_API_KEY")
|
|
||||||
|
|
||||||
r := gofight.New()
|
|
||||||
|
|
||||||
r.POST("/api/push").
|
|
||||||
SetJSON(gofight.D{
|
|
||||||
"tokens": []string{"aaaaaa", "bbbbb"},
|
|
||||||
"platform": 2,
|
|
||||||
"message": "Welcome",
|
|
||||||
}).
|
|
||||||
Run(GetMainEngine(), func(r gofight.HttpResponse, rq gofight.HttpRequest) {
|
|
||||||
|
|
||||||
assert.Equal(t, http.StatusOK, r.Code)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAndroidRightToken(t *testing.T) {
|
|
||||||
initTest()
|
initTest()
|
||||||
|
|
||||||
PushConf.Android.Enabled = true
|
PushConf.Android.Enabled = true
|
||||||
|
|
Loading…
Reference in New Issue