You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.0 KiB
68 lines
2.0 KiB
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) |
|
|
|
}) |
|
}
|
|
|