diff --git a/model/push_notification.go b/model/push_notification.go index c426e01e58..753495b2fe 100644 --- a/model/push_notification.go +++ b/model/push_notification.go @@ -49,10 +49,11 @@ func (me *PushNotification) ToJson() string { func (me *PushNotification) SetDeviceIdAndPlatform(deviceId string) { - parts := strings.Split(deviceId, ":") - if len(parts) == 2 { - me.Platform = parts[0] - me.DeviceId = parts[1] + index := strings.Index(deviceId, ":") + + if index > -1 { + me.Platform = deviceId[:index] + me.DeviceId = deviceId[index+1:] } } diff --git a/model/push_notification_test.go b/model/push_notification_test.go index 94329f389f..e8b2fa2d42 100644 --- a/model/push_notification_test.go +++ b/model/push_notification_test.go @@ -17,3 +17,78 @@ func TestPushNotification(t *testing.T) { t.Fatal("Ids do not match") } } + +func TestPushNotificationDeviceId(t *testing.T) { + + msg := PushNotification{Platform: "test"} + + msg.SetDeviceIdAndPlatform("android:12345") + if msg.Platform != "android" { + t.Fatal(msg.Platform) + } + if msg.DeviceId != "12345" { + t.Fatal(msg.DeviceId) + } + msg.Platform = "" + msg.DeviceId = "" + + msg.SetDeviceIdAndPlatform("android:12:345") + if msg.Platform != "android" { + t.Fatal(msg.Platform) + } + if msg.DeviceId != "12:345" { + t.Fatal(msg.DeviceId) + } + msg.Platform = "" + msg.DeviceId = "" + + msg.SetDeviceIdAndPlatform("android::12345") + if msg.Platform != "android" { + t.Fatal(msg.Platform) + } + if msg.DeviceId != ":12345" { + t.Fatal(msg.DeviceId) + } + msg.Platform = "" + msg.DeviceId = "" + + msg.SetDeviceIdAndPlatform(":12345") + if msg.Platform != "" { + t.Fatal(msg.Platform) + } + if msg.DeviceId != "12345" { + t.Fatal(msg.DeviceId) + } + msg.Platform = "" + msg.DeviceId = "" + + msg.SetDeviceIdAndPlatform("android:") + if msg.Platform != "android" { + t.Fatal(msg.Platform) + } + if msg.DeviceId != "" { + t.Fatal(msg.DeviceId) + } + msg.Platform = "" + msg.DeviceId = "" + + msg.SetDeviceIdAndPlatform("") + if msg.Platform != "" { + t.Fatal(msg.Platform) + } + if msg.DeviceId != "" { + t.Fatal(msg.DeviceId) + } + msg.Platform = "" + msg.DeviceId = "" + + msg.SetDeviceIdAndPlatform(":") + if msg.Platform != "" { + t.Fatal(msg.Platform) + } + if msg.DeviceId != "" { + t.Fatal(msg.DeviceId) + } + msg.Platform = "" + msg.DeviceId = "" +}