forked from maddevsio/fcm
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfcm_test.go
81 lines (63 loc) · 1.6 KB
/
fcm_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package fcm
import (
"fmt"
"net/http"
"net/http/httptest"
"testing"
)
func TestSendTopic(t *testing.T) {
srv := httptest.NewServer(http.HandlerFunc(handleTopic))
FCMServerURL = srv.URL
defer srv.Close()
c := NewFCM("key")
data := map[string]string{
"first": "value",
"second": "value",
}
res, err := c.Send(Message{
Data: data,
To: "/topics/topicName",
})
if err != nil {
t.Error("Response Error : ", err)
}
if res.StatusCode != http.StatusOK {
t.Error("Status code is not 200")
}
}
func TestSendMessageCanSendToMultipleRegIDs(t *testing.T) {
srv := httptest.NewServer(http.HandlerFunc(handleRegs))
FCMServerURL = srv.URL
defer srv.Close()
c := NewFCMWithClient("key", &http.Client{})
data := map[string]string{
"msg": "Hello World",
"sum": "Happy Day",
}
ids := []string{
"token0",
"token1",
"token2",
}
res, err := c.Send(Message{
Data: data,
RegistrationIDs: ids,
})
if err != nil {
t.Error("Response Error : ", err)
}
if res.StatusCode != http.StatusOK {
t.Error("Status code is not 200")
}
if res.Success != 2 || res.Fail != 1 {
t.Error("Parsing Success or Fail error")
}
}
func handleTopic(w http.ResponseWriter, r *http.Request) {
result := `{"message_id":6985435902064854329}`
fmt.Fprintln(w, result)
}
func handleRegs(w http.ResponseWriter, r *http.Request) {
result := `{"multicast_id":1003859738309903334,"success":2,"failure":1,"canonical_ids":0,"results":[{"message_id":"0:1448128667408487%ecaaa23db3fd7efd"},{"message_id":"0:1468135657607438%ecafacddf9ff8ead"},{"error":"InvalidRegistration"}]}`
fmt.Fprintln(w, result)
}