fix #32 support overwrite android api key from post field.

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu 2016-04-09 14:06:03 +08:00
parent 746627685c
commit 09a90e28fa
4 changed files with 31 additions and 8 deletions

View File

@ -37,9 +37,9 @@ ios:
log:
format: "string" # string or json
access_log: "stdout"
access_log: "stdout" # stdout: output to console, or define log path like "log/access_log"
access_level: "debug"
error_log: "stderr"
error_log: "stderr" # stderr: output to console, or define log path like "log/error_log"
error_level: "error"
```

View File

@ -50,6 +50,7 @@ type RequestPushNotification struct {
ContentAvailable bool `json:"content_available,omitempty"`
// Android
ApiKey string `json:"api_key,omitempty"`
To string `json:"to,omitempty"`
CollapseKey string `json:"collapse_key,omitempty"`
DelayWhileIdle bool `json:"delay_while_idle,omitempty"`
@ -311,10 +312,15 @@ func GetAndroidNotification(req RequestPushNotification) gcm.HttpMessage {
}
func PushToAndroid(req RequestPushNotification) bool {
var apiKey string
notification := GetAndroidNotification(req)
res, err := gcm.SendHttp(PushConf.Android.ApiKey, notification)
if apiKey = PushConf.Android.ApiKey; req.ApiKey != "" {
apiKey = req.ApiKey
}
res, err := gcm.SendHttp(apiKey, notification)
if err != nil {
// GCM server error

View File

@ -266,6 +266,8 @@ func TestPushToAndroidRightToken(t *testing.T) {
PushConf.Android.Enabled = true
PushConf.Android.ApiKey = os.Getenv("ANDROID_API_KEY")
// log for json
PushConf.Log.Format = "json"
android_token := os.Getenv("ANDROID_TEST_TOKEN")
@ -278,3 +280,23 @@ func TestPushToAndroidRightToken(t *testing.T) {
success := PushToAndroid(req)
assert.True(t, success)
}
func TestOverwriteAndroidApiKey(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",
// overwrite android api key
ApiKey: "1234",
}
success := PushToAndroid(req)
assert.False(t, success)
}

View File

@ -229,8 +229,6 @@ func TestAllSuccessAndroidPushHandler(t *testing.T) {
PushConf.Android.Enabled = true
PushConf.Android.ApiKey = os.Getenv("ANDROID_API_KEY")
// log for json
PushConf.Log.Format = "json"
android_token := os.Getenv("ANDROID_TEST_TOKEN")
@ -246,7 +244,4 @@ func TestAllSuccessAndroidPushHandler(t *testing.T) {
assert.Equal(t, http.StatusOK, r.Code)
})
// wait push response
time.Sleep(3000 * time.Millisecond)
}