69 lines
2.0 KiB
Go
Raw Normal View History

2019-04-22 02:59:20 +00:00
package fcm
import (
"encoding/json"
"fmt"
"strings"
"testing"
"time"
"unicode"
. "github.com/smartystreets/goconvey/convey"
)
const apiKey = "AIzaSyBtMplqJkuTIDyIx-CM74MoPHbxHCBcYYQ"
func TestPush(t *testing.T) {
Convey("test jpush", t, func() {
data := map[string]string{
"task_id": "123456",
// "scheme": model.Scheme(model.LinkTypeVideo, "123", model.PlatformAndroid, 390000),
"scheme": "bilibili://video/123",
}
client := NewClient(apiKey, 5*time.Second)
message := &Message{
// DryRun: true, // 如果是 true消息不会下发给用户用于测试
Data: data,
RegistrationIDs: []string{"fpICefK-jfE:APA91bHjZTxe503tpFoFMmXXX9LAiMmg7OwgTPYmTb8Ox-yF88umTQnmTQUGbALplxqre7R6v3d0-vSK5MyT4jFtSqklbY1GIaM4d8uZ0wJlwWrRWdBDeOJ4rlpvamd3aGyBlHKAH18N"},
Priority: PriorityHigh,
DelayWhileIdle: true,
Notification: Notification{
Title: "Hello",
Body: "World",
ClickAction: "com.bilibili.app.in.com.bilibili.push.FCM_MESSAGE",
},
CollapseKey: strings.TrimFunc("t123456", func(r rune) bool {
return !unicode.IsNumber(r)
}), // 值转成 int 传到客户端
TimeToLive: int(time.Hour.Seconds()),
Android: Android{Priority: PriorityHigh},
}
response, err := client.Send(message)
msgb, _ := json.Marshal(message)
fmt.Printf("msg(%s)", msgb)
So(err, ShouldNotBeNil)
if err != nil {
t.Errorf("fcm send response(%+v) error(%v)", response, err)
} else {
fmt.Println("Status Code :", response.StatusCode)
fmt.Println("Success :", response.Success)
fmt.Println("Fail :", response.Fail)
fmt.Println("Canonical_ids :", response.CanonicalIDs)
fmt.Println("Topic MsgId :", response.MsgID)
}
})
}
func Test_ClientFaild(t *testing.T) {
Convey("test jpush", t, func() {
client := NewClient(apiKey, 5*time.Second)
err := client.Failed(&Response{})
So(err, ShouldBeNil)
r := &Response{RetryAfter: "3m"}
_, err = r.GetRetryAfterTime()
So(err, ShouldBeNil)
})
}