mirror of
https://github.com/binwiederhier/ntfy.git
synced 2025-04-04 21:57:40 +03:00
Test Firebase stuff
This commit is contained in:
parent
b1bbbf0103
commit
a77f89d302
4 changed files with 214 additions and 82 deletions
|
@ -1,66 +1,29 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"firebase.google.com/go/messaging"
|
||||
"github.com/stretchr/testify/require"
|
||||
"strings"
|
||||
"net/http"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMaybeTruncateFCMMessage(t *testing.T) {
|
||||
origMessage := strings.Repeat("this is a long string", 300)
|
||||
origFCMMessage := &messaging.Message{
|
||||
Topic: "mytopic",
|
||||
Data: map[string]string{
|
||||
"id": "abcdefg",
|
||||
"time": "1641324761",
|
||||
"event": "message",
|
||||
"topic": "mytopic",
|
||||
"priority": "0",
|
||||
"tags": "",
|
||||
"title": "",
|
||||
"message": origMessage,
|
||||
},
|
||||
Android: &messaging.AndroidConfig{
|
||||
Priority: "high",
|
||||
},
|
||||
}
|
||||
origMessageLength := len(origFCMMessage.Data["message"])
|
||||
serializedOrigFCMMessage, _ := json.Marshal(origFCMMessage)
|
||||
require.Greater(t, len(serializedOrigFCMMessage), fcmMessageLimit) // Pre-condition
|
||||
func TestReadBoolParam(t *testing.T) {
|
||||
r, _ := http.NewRequest("GET", "https://ntfy.sh/mytopic?up=1&firebase=no", nil)
|
||||
up := readBoolParam(r, false, "x-up", "up")
|
||||
firebase := readBoolParam(r, true, "x-firebase", "firebase")
|
||||
require.Equal(t, true, up)
|
||||
require.Equal(t, false, firebase)
|
||||
|
||||
truncatedFCMMessage := maybeTruncateFCMMessage(origFCMMessage)
|
||||
truncatedMessageLength := len(truncatedFCMMessage.Data["message"])
|
||||
serializedTruncatedFCMMessage, _ := json.Marshal(truncatedFCMMessage)
|
||||
require.Equal(t, fcmMessageLimit, len(serializedTruncatedFCMMessage))
|
||||
require.Equal(t, "1", truncatedFCMMessage.Data["truncated"])
|
||||
require.NotEqual(t, origMessageLength, truncatedMessageLength)
|
||||
}
|
||||
|
||||
func TestMaybeTruncateFCMMessage_NotTooLong(t *testing.T) {
|
||||
origMessage := "not really a long string"
|
||||
origFCMMessage := &messaging.Message{
|
||||
Topic: "mytopic",
|
||||
Data: map[string]string{
|
||||
"id": "abcdefg",
|
||||
"time": "1641324761",
|
||||
"event": "message",
|
||||
"topic": "mytopic",
|
||||
"priority": "0",
|
||||
"tags": "",
|
||||
"title": "",
|
||||
"message": origMessage,
|
||||
},
|
||||
}
|
||||
origMessageLength := len(origFCMMessage.Data["message"])
|
||||
serializedOrigFCMMessage, _ := json.Marshal(origFCMMessage)
|
||||
require.LessOrEqual(t, len(serializedOrigFCMMessage), fcmMessageLimit) // Pre-condition
|
||||
|
||||
notTruncatedFCMMessage := maybeTruncateFCMMessage(origFCMMessage)
|
||||
notTruncatedMessageLength := len(notTruncatedFCMMessage.Data["message"])
|
||||
serializedNotTruncatedFCMMessage, _ := json.Marshal(notTruncatedFCMMessage)
|
||||
require.Equal(t, origMessageLength, notTruncatedMessageLength)
|
||||
require.Equal(t, len(serializedOrigFCMMessage), len(serializedNotTruncatedFCMMessage))
|
||||
require.Equal(t, "", notTruncatedFCMMessage.Data["truncated"])
|
||||
r, _ = http.NewRequest("GET", "https://ntfy.sh/mytopic", nil)
|
||||
r.Header.Set("X-Up", "yes")
|
||||
r.Header.Set("X-Firebase", "0")
|
||||
up = readBoolParam(r, false, "x-up", "up")
|
||||
firebase = readBoolParam(r, true, "x-firebase", "firebase")
|
||||
require.Equal(t, true, up)
|
||||
require.Equal(t, false, firebase)
|
||||
|
||||
r, _ = http.NewRequest("GET", "https://ntfy.sh/mytopic", nil)
|
||||
up = readBoolParam(r, false, "x-up", "up")
|
||||
firebase = readBoolParam(r, true, "x-up", "up")
|
||||
require.Equal(t, false, up)
|
||||
require.Equal(t, true, firebase)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue