From 633e894e4f082ceb210a475d13157bbcac715bf8 Mon Sep 17 00:00:00 2001 From: Corey Hulen Date: Wed, 1 Mar 2017 12:33:16 -0500 Subject: Fixing parsing of device Ids (#5580) --- model/push_notification.go | 9 ++--- model/push_notification_test.go | 75 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 4 deletions(-) diff --git a/model/push_notification.go b/model/push_notification.go index c426e01e5..753495b2f 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 94329f389..e8b2fa2d4 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 = "" +} -- cgit v1.2.3-1-g7c22