using System; using System.Linq; using System.Reflection; using System.Collections; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using System.Runtime.CompilerServices; using System.Diagnostics; using TestFramework; using Tizen; using Tizen.Applications; using Tizen.UI; using Tizen.Messaging.Push; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Runtime.InteropServices; namespace TizenTest.PushT { [TestFixture] [Description("Tizen.Messaging.Push Tests")] public class PushTest { private static string appID = "7c58a4ac98388bba"; private static string TAG = "TCT"; private static string _message; [SetUp] public static void Init() { //LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Preconditions for each TEST"); } [TearDown] public static void Destroy() { //LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Postconditions for each TEST"); } [Test] [Category("P1")] [Description("Return Type of PushServiceConnect ...")] [Property("SPEC", " Tizen.Messaging.Push.PushServiceConnect M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static void PushServiceConnect_RETURN_VALUE() { /* TEST CODE */ try { Tizen.Log.Info(TAG,"Executing TC:PushServiceConnect_RETURN_VALUE"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceConnect_RETURN_VALUE"); Push.PushServiceConnect(appID); Assert.Pass(); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } } [Test] [Category("P1")] [Description("Return Type of PushServiceDisconnect ...")] [Property("SPEC", " Tizen.Messaging.Push.PushServiceDisconnect M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static void PushServiceDisconnect_RETURN_VALUE() { /** PRECONDITION * 1. Connect to Push Service */ Push.PushServiceConnect(appID); /* TEST CODE */ try { Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_RETURN_VALUE"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_RETURN_VALUE"); Push.PushServiceDisconnect(); Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_RETURN_VALUE completed"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_RETURN_VALUE completed"); Assert.Pass(); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } } [Test] [Category("P1")] [Description("Calling Multiple PushServiceConnect PushServiceDisconnect ...")] [Property("SPEC", " Tizen.Messaging.Push.PushServiceDisconnect M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static void PushServiceConnect_PushServiceDisconnect_RETURN_VALUE() { /** PRECONDITION * 1. Connect to Push Service */ /* TEST CODE */ try { Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_RETURN_VALUE"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_RETURN_VALUE"); for(int i=0;i<4;i++){ Push.PushServiceConnect(appID); Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_RETURN_VALUE after Connect"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_RETURN_VALUE after Connect"); Push.PushServiceDisconnect(); Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_RETURN_VALUE after Disconnect"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_RETURN_VALUE after Disconnect");} Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_RETURN_VALUE completed"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_RETURN_VALUE completed"); Assert.Pass(); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } } [Test] [Category("P1")] [Description("Calling PushServiceDisconnect Multiple times...")] [Property("SPEC", " Tizen.Messaging.Push.PushServiceDisconnect M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static void PushServiceDisconnect_MULTIPLE() { /** PRECONDITION * 1. Connect to Push Service */ /* TEST CODE */ try { Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_MULTIPLE"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_MULTIPLE"); for(int i=0;i<4;i++){ Push.PushServiceConnect(appID); Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_MULTIPLE after Connect"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_MULTIPLE after Connect"); Push.PushServiceDisconnect(); Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_MULTIPLE after Disconnect"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_MULTIPLE after Disconnect");} Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_MULTIPLE completed"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_MULTIPLE completed"); Push.PushServiceDisconnect(); Tizen.Log.Info(TAG,"Executing TC:PushServiceDisconnect_MULTIPLE after Disconnect"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServiceDisconnect_MULTIPLE after Disconnect"); Assert.Pass(); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } } [Test] [Category("P1")] [Description("Return Type of PushServerRegister ...")] [Property("SPEC", " Tizen.Messaging.Push.PushServerRegister M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static async Task PushServerRegister_RETURN_VALUE() { /** PRECONDITION * 1. Connect to Push Service */ Push.PushServiceConnect(appID); /* TEST CODE */ try { Tizen.Log.Info(TAG,"Executing TC:PushServerRegister_RETURN_VALUE"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServerRegister_RETURN_VALUE"); ServerResponse res = await Push.PushServerRegister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+res.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+res.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+res.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+res.ServerMessage); Assert.Pass(); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } /** POSTCONDITION * 1. Disconnect from Push Service */ LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServerRegister_RETURN_VALUE before disconnect"); Push.PushServiceDisconnect(); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServerRegister_RETURN_VALUE after disconnect"); } [Test] [Category("P1")] [Description("Return Type of PushServerUnregister ...")] [Property("SPEC", " Tizen.Messaging.Push.PushServerUnregister M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static async Task PushServerUnregister_RETURN_VALUE() { /** PRECONDITION * 1. Connect to Push Service * 2. Register with Push Service */ LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:PushServerUnregister_RETURN_VALUE before connect"); Push.PushServiceConnect(appID); ServerResponse res = await Push.PushServerRegister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+res.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+res.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+res.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+res.ServerMessage); Tizen.Log.Info(TAG,"Executing TC:PushServerRegister_RETURN_VALUE before pass"); /* TEST CODE */ try { ServerResponse resUnreg = await Push.PushServerUnregister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); Assert.Pass(); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } /** POSTCONDITION * 1. Disconnect from Push Service */ Push.PushServiceDisconnect(); } [Test] [Category("P1")] [Description("Return Type of GetRegistrationId ...")] [Property("SPEC", " Tizen.Messaging.Push.GetRegistrationId M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static async Task GetRegistrationId_RETURN_VALUE() { /** PRECONDITION * 1. Connect to Push Service * 2. Register with Push Service */ LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:GetRegistrationId_RETURN_VALUE before connect"); Push.PushServiceConnect(appID); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:GetRegistrationId_RETURN_VALUE after connect"); ServerResponse resReg = await Push.PushServerRegister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resReg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resReg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resReg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resReg.ServerMessage); /* TEST CODE */ try { Tizen.Log.Info(TAG,"Executing TC:GetRegistrationId_RETURN_VALUE"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:GetRegistrationId_RETURN_VALUE"); string id = Push.GetRegistrationId(); Tizen.Log.Info(TAG,"Executing TC:GetRegistrationId_RETURN_VALUE Reg Id: "+id); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:GetRegistrationId_RETURN_VALUE Reg Id: "+id); if(id == null) { Assert.Fail(); } else { Assert.Pass(); } } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } /** POSTCONDITION * 1. Unregister from Push Service * 2. Disconnect from Push Service */ ServerResponse resUnreg = await Push.PushServerUnregister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); Push.PushServiceDisconnect(); } [Test] [Category("P1")] [Description("Return Type of GetUnreadNotifications ...")] [Property("SPEC", " Tizen.Messaging.Push.GetUnreadNotifications M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static async Task GetUnreadNotifications_RETURN_VALUE() { /** PRECONDITION * 1. Connect to Push Service * 2. Register with Push Service */ LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:GetUnreadNotifications_RETURN_VALUE before connect"); Push.PushServiceConnect(appID); ServerResponse resReg = await Push.PushServerRegister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resReg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resReg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resReg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resReg.ServerMessage); /* TEST CODE */ try { Tizen.Log.Info(TAG,"Executing TC:GetUnreadNotifications_RETURN_VALUE"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:GetUnreadNotifications_RETURN_VALUE"); Push.GetUnreadNotifications(); Assert.Pass(); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } /** POSTCONDITION * 1. Unregister from Push Service * 2. Disconnect from Push Service */ ServerResponse resUnreg = await Push.PushServerUnregister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); Push.PushServiceDisconnect(); } [Test] [Category("P1")] [Description("Getting NotificationReceived Event ...")] [Property("SPEC", " Tizen.Messaging.Push.NotificationReceived E")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "EVL")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static async Task NotificationReceived_EVENT() { /** PRECONDITION * 1. Connect to Push Service * 2. Register with Push Service */ LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT before connect"); Push.PushServiceConnect(appID); ServerResponse resReg = await Push.PushServerRegister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resReg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resReg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resReg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resReg.ServerMessage); /* TEST CODE */ try { bool caught = false; EventHandler handler = (object sender, PushMessageEventArgs e) => { Tizen.Log.Info(TAG, "Executing TC:NotificationReceived_EVENT got event AppData"+e.AppData); Tizen.Log.Info(TAG, "Executing TC:NotificationReceived_EVENT got event Message"+e.Message); Tizen.Log.Info(TAG, "Executing TC:NotificationReceived_EVENT got event ReceivedAt"+e.ReceivedAt); Tizen.Log.Info(TAG, "Executing TC:NotificationReceived_EVENT got event Sender"+e.Sender); Tizen.Log.Info(TAG, "Executing TC:NotificationReceived_EVENT got event SessionInfo"+e.SessionInfo); Tizen.Log.Info(TAG, "Executing TC:NotificationReceived_EVENT got event RequestID"+e.RequestId); Tizen.Log.Info(TAG, "Executing TC:NotificationReceived_EVENT got event Type"+e.Type); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT got event AppData"+e.AppData); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT got event Message"+e.Message); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT got event ReceivedAt"+e.ReceivedAt); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT got event Sender"+e.Sender); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT got event SessionInfo"+e.SessionInfo); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT got event RequestID"+e.RequestId); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT got event Type"+e.Type); caught = true; }; Push.NotificationReceived += handler; Tizen.Log.Info(TAG,"Executing TC:NotificationReceived_EVENT"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT"); Push.GetUnreadNotifications(); Tizen.Log.Info(TAG,"Executing TC:NotificationReceived_EVENT Waiting ................"); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:NotificationReceived_EVENT Waiting ................"); await Task.Delay(10000); Assert.True(caught, "Did not recieve NotificationReceived Event"); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } /** POSTCONDITION * 1. Unregister from Push Service * 2. Disconnect from Push Service */ ServerResponse resUnreg = await Push.PushServerUnregister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); Push.PushServiceDisconnect(); } [Test] [Category("P1")] [Description("Getting StateChanged Event ...")] [Property("SPEC", " Tizen.Messaging.Push.StateChanged E")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "EVL")] [Property("AUTHOR", "Manish Rathod, manish.r@samsung.com")] public static async Task StateChanged_EVENT() { /** PRECONDITION * 1. Connect to Push Service */ LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:StateChanged_EVENT before connect"); Push.PushServiceConnect(appID); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:StateChanged_EVENT after connect"); /* TEST CODE * 1. Register StateChanged Event * 2. Register with Push Service */ try { bool caught = false; EventHandler handler = (object sender, PushConnectionStateEventArgs e) => { Tizen.Log.Info(TAG, "Executing TC:StateChanged_EVENT got event"+e.State); Tizen.Log.Info(TAG, "Executing TC:StateChanged_EVENT got event"+e.Error); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:StateChanged_EVENT got event"+e.State); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Executing TC:StateChanged_EVENT got event"+e.Error); caught = true; }; Push.StateChanged += handler; ServerResponse res = await Push.PushServerRegister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+res.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+res.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+res.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+res.ServerMessage); Assert.True(caught, "Did not recieve StateChanged Event"); } catch(Exception e) { Tizen.Log.Error(TAG, "Caught Exception" + e.ToString()); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail(); } /** POSTCONDITION * 1. Unregister from Push Service * 2. Disconnect from Push Service */ ServerResponse resUnreg = await Push.PushServerUnregister(); await Task.Delay(5000); Tizen.Log.Info(TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerResult:"+resUnreg.ServerResult); Tizen.Log.Info(TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); LogUtils.write(LogUtils.DEBUG, LogUtils.TAG, "ServerResponse.ServerMessage:"+resUnreg.ServerMessage); Push.PushServiceDisconnect(); } } }