From f07be27ea199a3e73bc6acdcb6cde51aa78b01b1 Mon Sep 17 00:00:00 2001 From: Junghoon Park Date: Thu, 19 Jul 2018 15:12:20 +0900 Subject: [PATCH] [Tizen.Applications.RPCPort][TCSACR-159] Add TCs for RPCPort Change-Id: I039d8a22723a31ea0f082f609e855f0233fdd205 Signed-off-by: Junghoon Park --- .../RpcPortProxy.sln | 25 + .../RpcPortProxy/RpcPortProxy.csproj | 44 ++ .../RpcPortProxy/RpcPortProxy_App.cs | 125 ++++ .../RpcPortProxy/shared/res/RpcPortProxy.png | Bin 0 -> 10097 bytes .../RpcPortProxy/tizen-manifest.xml | 16 + .../RpcPortProxy2.sln | 25 + .../RpcPortProxy2/RpcPortProxy2.csproj | 44 ++ .../RpcPortProxy2/RpcPortProxy2_App.cs | 116 +++ .../shared/res/RpcPortProxy2.png | Bin 0 -> 10097 bytes .../RpcPortProxy2/tizen-manifest.xml | 15 + .../RpcPortStub.sln | 25 + .../RpcPortStub/RpcPortStub.csproj | 44 ++ .../RpcPortStub/RpcPortStub_App.cs | 105 +++ .../RpcPortStub/shared/res/RpcPortStub.png | Bin 0 -> 10097 bytes .../RpcPortStub/tizen-manifest.xml | 12 + .../RpcPortStub2.sln | 25 + .../RpcPortStub2/RpcPortStub2.csproj | 44 ++ .../RpcPortStub2/RpcPortStub2_App.cs | 101 +++ .../RpcPortStub2/shared/res/RpcPortStub2.png | Bin 0 -> 10097 bytes .../RpcPortStub2/tizen-manifest.xml | 12 + .../org.tizen.example.RpcPortProxy-1.0.0.tpk | Bin 0 -> 19540 bytes .../org.tizen.example.RpcPortProxy2-1.0.0.tpk | Bin 0 -> 19214 bytes .../org.tizen.example.RpcPortStub-1.0.0.tpk | Bin 0 -> 19294 bytes .../org.tizen.example.RpcPortStub2-1.0.0.tpk | Bin 0 -> 19186 bytes .../testcase/TSRPCPort.Exceptions.cs | 121 +++ .../testcase/TSRPCPort.Parcel.cs | 699 ++++++++++++++++++ .../testcase/TSRPCPort.ProxyBase.cs | 400 ++++++++++ .../testcase/TSRPCPort.StubBase.cs | 554 ++++++++++++++ .../tizen-manifest.xml | 29 +- 29 files changed, 2566 insertions(+), 15 deletions(-) create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy.sln create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy.csproj create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy_App.cs create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/shared/res/RpcPortProxy.png create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/tizen-manifest.xml create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2.sln create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2.csproj create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2_App.cs create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/shared/res/RpcPortProxy2.png create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/tizen-manifest.xml create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub.sln create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub.csproj create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub_App.cs create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/shared/res/RpcPortStub.png create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/tizen-manifest.xml create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2.sln create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2.csproj create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2_App.cs create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/shared/res/RpcPortStub2.png create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/tizen-manifest.xml create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortProxy-1.0.0.tpk create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortProxy2-1.0.0.tpk create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortStub-1.0.0.tpk create mode 100755 tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortStub2-1.0.0.tpk create mode 100755 tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.Exceptions.cs create mode 100755 tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.Parcel.cs create mode 100755 tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.ProxyBase.cs create mode 100755 tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.StubBase.cs diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy.sln b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy.sln new file mode 100755 index 000000000..c93784213 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2035 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpcPortProxy", "RpcPortProxy\RpcPortProxy.csproj", "{B4C8261C-D74F-43D1-A075-B9E242851D31}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B4C8261C-D74F-43D1-A075-B9E242851D31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4C8261C-D74F-43D1-A075-B9E242851D31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4C8261C-D74F-43D1-A075-B9E242851D31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4C8261C-D74F-43D1-A075-B9E242851D31}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3E5007AD-1998-4272-8437-26CDC3729698} + EndGlobalSection +EndGlobal diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy.csproj b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy.csproj new file mode 100755 index 000000000..bfbbbf8c6 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy.csproj @@ -0,0 +1,44 @@ + + + + + + $(MSBuildExtensionsPath)\Tizen\VisualStudio\ + + + + + + + + Exe + netcoreapp2.0 + + + + portable + + + None + + + + + + + + + + + + + + + + + + + + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy_App.cs b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy_App.cs new file mode 100755 index 000000000..552e0cab7 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/RpcPortProxy_App.cs @@ -0,0 +1,125 @@ +using System.Threading; +using Tizen; +using Tizen.Applications; +using Tizen.Applications.RPCPort; + +namespace RpcPortProxy +{ + class App : ServiceApplication + { + private Proxy _proxy; + + class Proxy : ProxyBase + { + private Timer _timer; + private bool _send; + + public Proxy(bool send) + { + _timer = new Timer(new TimerCallback(OnTimeout)); + _timer.Change(100, 0); + _send = send; + } + + private void OnTimeout(object state) + { + Connect("Tizen.Applications.Tests", "Test"); + _timer.Dispose(); + _timer = null; + } + + protected override void OnConnectedEvent(string endPoint, string portName, Port port) + { + Log.Debug("RPCPortProxy", "OnConnectedEvent: endPoint:" + endPoint + " port:" + portName); + if (_send) + { + using (var p = new Parcel()) + { + p.WriteString("hello"); + p.Send(port); + } + } + } + + protected override void OnDisconnectedEvent(string endPoint, string portName) + { + Log.Debug("RPCPortProxy", "OnDisconnectedEvent: endPoint:" + endPoint + " port:" + portName); + } + + protected override void OnReceivedEvent(string endPoint, string portName) + { + Log.Debug("RPCPortProxy", "OnReceivedEvent: endPoint:" + endPoint + " port:" + portName); + } + + protected override void OnRejectedEvent(string endPoint, string portName) + { + Log.Debug("RPCPortProxy", "OnRejectedEvent: endPoint:" + endPoint + " port:" + portName); + } + } + + protected override void OnCreate() + { + base.OnCreate(); + } + + protected override void OnAppControlReceived(AppControlReceivedEventArgs e) + { + base.OnAppControlReceived(e); + if (e.ReceivedAppControl.ExtraData.TryGet("Test", out string val)) + { + if (val.Equals("finish")) + { + Log.Debug("RPCPortProxy", "Finish"); + Exit(); + } + } + else + { + Log.Debug("RPCPortProxy", "Connecting"); + _proxy?.Dispose(); + if (e.ReceivedAppControl.ExtraData.TryGet("send", out string v)) + _proxy = new Proxy(true); + else + _proxy = new Proxy(false); + } + } + + protected override void OnDeviceOrientationChanged(DeviceOrientationEventArgs e) + { + base.OnDeviceOrientationChanged(e); + } + + protected override void OnLocaleChanged(LocaleChangedEventArgs e) + { + base.OnLocaleChanged(e); + } + + protected override void OnLowBattery(LowBatteryEventArgs e) + { + base.OnLowBattery(e); + } + + protected override void OnLowMemory(LowMemoryEventArgs e) + { + base.OnLowMemory(e); + } + + protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e) + { + base.OnRegionFormatChanged(e); + } + + protected override void OnTerminate() + { + _proxy?.Dispose(); + _proxy = null; + base.OnTerminate(); + } + + static void Main(string[] args) + { + App app = new App(); + app.Run(args); + } + } +} diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/shared/res/RpcPortProxy.png b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/shared/res/RpcPortProxy.png new file mode 100755 index 0000000000000000000000000000000000000000..9f3cb98608134e7b9eb4beb7394fec9f03e40f63 GIT binary patch literal 10097 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 TJbOA100000NkvXXu0mjf?x(Kf literal 0 HcmV?d00001 diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/tizen-manifest.xml b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/tizen-manifest.xml new file mode 100755 index 000000000..14e26a947 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy/RpcPortProxy/tizen-manifest.xml @@ -0,0 +1,16 @@ + + + + + + RpcPortProxy.png + + + + + + http://tizen.org/privilege/appmanager.launch + http://tizen.org/privilege/datasharing + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2.sln b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2.sln new file mode 100755 index 000000000..df07963a6 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2035 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpcPortProxy2", "RpcPortProxy2\RpcPortProxy2.csproj", "{E877EB41-209D-417B-9E72-7095BBBF7604}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E877EB41-209D-417B-9E72-7095BBBF7604}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E877EB41-209D-417B-9E72-7095BBBF7604}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E877EB41-209D-417B-9E72-7095BBBF7604}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E877EB41-209D-417B-9E72-7095BBBF7604}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E8C497F1-5425-439D-8021-3A6D9BF04ED4} + EndGlobalSection +EndGlobal diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2.csproj b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2.csproj new file mode 100755 index 000000000..490b33fa8 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2.csproj @@ -0,0 +1,44 @@ + + + + + + $(MSBuildExtensionsPath)\Tizen\VisualStudio\ + + + + + + + + Exe + netcoreapp2.0 + + + + portable + + + None + + + + + + + + + + + + + + + + + + + + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2_App.cs b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2_App.cs new file mode 100755 index 000000000..0d79ff4f9 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/RpcPortProxy2_App.cs @@ -0,0 +1,116 @@ +using System; +using System.Threading; +using Tizen; +using Tizen.Applications; +using Tizen.Applications.RPCPort; + +namespace RpcPortProxy +{ + class App : ServiceApplication + { + private Proxy _proxy; + + class Proxy : ProxyBase + { + public Proxy() + { + Connect("org.tizen.example.RpcPortStub", "Test"); + } + + protected override void OnConnectedEvent(string endPoint, string portName, Port port) + { + Log.Debug("RPCPortProxy", "OnConnectedEvent: endPoint:" + endPoint + " port:" + portName); + } + + protected override void OnDisconnectedEvent(string endPoint, string portName) + { + Log.Debug("RPCPortProxy", "OnDisconnectedEvent: endPoint:" + endPoint + " port:" + portName); + } + + protected override void OnReceivedEvent(string endPoint, string portName) + { + Log.Debug("RPCPortProxy", "OnReceivedEvent: endPoint:" + endPoint + " port:" + portName); + } + + protected override void OnRejectedEvent(string endPoint, string portName) + { + Log.Debug("RPCPortProxy", "OnRejectedEvent: endPoint:" + endPoint + " port:" + portName); + } + } + + protected override void OnCreate() + { + base.OnCreate(); + } + + protected override void OnAppControlReceived(AppControlReceivedEventArgs e) + { + base.OnAppControlReceived(e); + if (e.ReceivedAppControl.ExtraData.TryGet("Test", out string val)) + { + if (val.Equals("finish")) + { + Log.Debug("RPCPortProxy", "Finish"); + Exit(); + } + } + else + { + Log.Debug("RPCPortProxy", "Connecting"); + _proxy?.Dispose(); + + try + { + _proxy = new Proxy(); + } + catch (PermissionDeniedException) + { + Log.Debug("RPCPortProxy", "PermissionDeniedException happened"); + e.ReceivedAppControl.ReplyToLaunchRequest(new AppControl(), AppControlReplyResult.Succeeded); + } + catch (Exception ex) + { + Log.Debug("RPCPortProxy", "Uncatched exception " + ex.ToString()); + } + } + } + + protected override void OnDeviceOrientationChanged(DeviceOrientationEventArgs e) + { + base.OnDeviceOrientationChanged(e); + } + + protected override void OnLocaleChanged(LocaleChangedEventArgs e) + { + base.OnLocaleChanged(e); + } + + protected override void OnLowBattery(LowBatteryEventArgs e) + { + base.OnLowBattery(e); + } + + protected override void OnLowMemory(LowMemoryEventArgs e) + { + base.OnLowMemory(e); + } + + protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e) + { + base.OnRegionFormatChanged(e); + } + + protected override void OnTerminate() + { + _proxy?.Dispose(); + _proxy = null; + base.OnTerminate(); + } + + static void Main(string[] args) + { + App app = new App(); + app.Run(args); + } + } +} diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/shared/res/RpcPortProxy2.png b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/shared/res/RpcPortProxy2.png new file mode 100755 index 0000000000000000000000000000000000000000..9f3cb98608134e7b9eb4beb7394fec9f03e40f63 GIT binary patch literal 10097 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 TJbOA100000NkvXXu0mjf?x(Kf literal 0 HcmV?d00001 diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/tizen-manifest.xml b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/tizen-manifest.xml new file mode 100755 index 000000000..d597d546e --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortProxy2/RpcPortProxy2/tizen-manifest.xml @@ -0,0 +1,15 @@ + + + + + + RpcPortProxy2.png + + + + + + http://tizen.org/privilege/appmanager.launch + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub.sln b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub.sln new file mode 100755 index 000000000..4d59ee918 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2035 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpcPortStub", "RpcPortStub\RpcPortStub.csproj", "{FE0280FD-12A8-4B3D-A035-D73CFF4C2ECF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FE0280FD-12A8-4B3D-A035-D73CFF4C2ECF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE0280FD-12A8-4B3D-A035-D73CFF4C2ECF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE0280FD-12A8-4B3D-A035-D73CFF4C2ECF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE0280FD-12A8-4B3D-A035-D73CFF4C2ECF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C6927ABD-FBB9-450E-BD87-9152B5AD5C22} + EndGlobalSection +EndGlobal diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub.csproj b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub.csproj new file mode 100755 index 000000000..bfbbbf8c6 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub.csproj @@ -0,0 +1,44 @@ + + + + + + $(MSBuildExtensionsPath)\Tizen\VisualStudio\ + + + + + + + + Exe + netcoreapp2.0 + + + + portable + + + None + + + + + + + + + + + + + + + + + + + + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub_App.cs b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub_App.cs new file mode 100755 index 000000000..e1a8e4aa6 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/RpcPortStub_App.cs @@ -0,0 +1,105 @@ +using Tizen; +using Tizen.Applications; +using Tizen.Applications.RPCPort; + +namespace RpcPortStub +{ + class App : ServiceApplication + { + private Stub _stub; + + private class Stub : StubBase + { + public Stub(string portName) : base(portName) + { + Listen(); + } + + protected override void OnConnectedEvent(string sender, string instance) + { + Log.Debug("RPCPortStub", "OnConnectedEvent: sender::" + sender + " instance::" + instance); + } + + protected override void OnDisconnectedEvent(string sender, string instance) + { + Log.Debug("RPCPortStub", "OnDisconnectedEvent: sender::" + sender + " instance::" + instance); + } + + protected override bool OnReceivedEvent(string sender, string instance, Port port) + { + Log.Debug("RPCPortStub", "OnReceivedEvent: sender::" + sender + " instance::" + instance); + using (Parcel p = new Parcel(port)) + { + string str = p.ReadString(); + using (Parcel ret = new Parcel()) + { + ret.WriteString(str); + ret.Send(GetPort(Port.Type.Callback, instance)); + } + } + + return true; + } + + protected override void OnTerminatedEvent() + { + Log.Debug("RPCPortStub", "OnTerminatedEvent"); + } + } + + protected override void OnCreate() + { + base.OnCreate(); + _stub = new Stub("Test"); + } + + protected override void OnAppControlReceived(AppControlReceivedEventArgs e) + { + base.OnAppControlReceived(e); + if (e.ReceivedAppControl.ExtraData.TryGet("Test", out string val)) + { + if (val.Equals("finish")) { + Log.Debug("RPCPortStub", "Finish"); + Exit(); + } + } + } + + protected override void OnDeviceOrientationChanged(DeviceOrientationEventArgs e) + { + base.OnDeviceOrientationChanged(e); + } + + protected override void OnLocaleChanged(LocaleChangedEventArgs e) + { + base.OnLocaleChanged(e); + } + + protected override void OnLowBattery(LowBatteryEventArgs e) + { + base.OnLowBattery(e); + } + + protected override void OnLowMemory(LowMemoryEventArgs e) + { + base.OnLowMemory(e); + } + + protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e) + { + base.OnRegionFormatChanged(e); + } + + protected override void OnTerminate() + { + base.OnTerminate(); + _stub?.Dispose(); + } + + static void Main(string[] args) + { + App app = new App(); + app.Run(args); + } + } +} diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/shared/res/RpcPortStub.png b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/shared/res/RpcPortStub.png new file mode 100755 index 0000000000000000000000000000000000000000..9f3cb98608134e7b9eb4beb7394fec9f03e40f63 GIT binary patch literal 10097 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 TJbOA100000NkvXXu0mjf?x(Kf literal 0 HcmV?d00001 diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/tizen-manifest.xml b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/tizen-manifest.xml new file mode 100755 index 000000000..8c3e00caa --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub/RpcPortStub/tizen-manifest.xml @@ -0,0 +1,12 @@ + + + + + + RpcPortStub.png + + + + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2.sln b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2.sln new file mode 100755 index 000000000..dc3612664 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2035 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpcPortStub2", "RpcPortStub2\RpcPortStub2.csproj", "{D84E03B5-7EFF-40B6-981A-BC0316180DAE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D84E03B5-7EFF-40B6-981A-BC0316180DAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D84E03B5-7EFF-40B6-981A-BC0316180DAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D84E03B5-7EFF-40B6-981A-BC0316180DAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D84E03B5-7EFF-40B6-981A-BC0316180DAE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {934AC992-DE63-472C-AD51-4386E224BCD4} + EndGlobalSection +EndGlobal diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2.csproj b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2.csproj new file mode 100755 index 000000000..e6d2acded --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2.csproj @@ -0,0 +1,44 @@ + + + + + + $(MSBuildExtensionsPath)\Tizen\VisualStudio\ + + + + + + + + Exe + netcoreapp2.0 + + + + portable + + + None + + + + + + + + + + + + + + + + + + + + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2_App.cs b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2_App.cs new file mode 100755 index 000000000..ba8a2b5a9 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/RpcPortStub2_App.cs @@ -0,0 +1,101 @@ +using Tizen; +using Tizen.Applications; +using Tizen.Applications.RPCPort; + +namespace RpcPortStub +{ + class App : ServiceApplication + { + private Stub _stub; + + private class Stub : StubBase + { + public Stub(string portName) : base(portName) + { + AddPrivilege("my.privilege"); + Listen(); + } + + protected override void OnConnectedEvent(string sender, string instance) + { + Log.Debug("RPCPortStub2", "OnConnectedEvent: sender::" + sender + " instance::" + instance); + } + + protected override void OnDisconnectedEvent(string sender, string instance) + { + Log.Debug("RPCPortStub2", "OnDisconnectedEvent: sender::" + sender + " instance::" + instance); + } + + protected override bool OnReceivedEvent(string sender, string instance, Port port) + { + Log.Debug("RPCPortStub2", "OnReceivedEvent: sender::" + sender + " instance::" + instance); + using (Parcel p = new Parcel(port)) + { + } + + return true; + } + + protected override void OnTerminatedEvent() + { + Log.Debug("RPCPortStub2", "OnTerminatedEvent"); + } + } + + protected override void OnCreate() + { + base.OnCreate(); + _stub = new Stub("Test"); + } + + protected override void OnAppControlReceived(AppControlReceivedEventArgs e) + { + base.OnAppControlReceived(e); + if (e.ReceivedAppControl.ExtraData.TryGet("Test", out string val)) + { + if (val.Equals("finish")) + { + Log.Debug("RPCPortStub2", "Finish"); + Exit(); + } + } + } + + protected override void OnDeviceOrientationChanged(DeviceOrientationEventArgs e) + { + base.OnDeviceOrientationChanged(e); + } + + protected override void OnLocaleChanged(LocaleChangedEventArgs e) + { + base.OnLocaleChanged(e); + } + + protected override void OnLowBattery(LowBatteryEventArgs e) + { + base.OnLowBattery(e); + } + + protected override void OnLowMemory(LowMemoryEventArgs e) + { + base.OnLowMemory(e); + } + + protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e) + { + base.OnRegionFormatChanged(e); + } + + protected override void OnTerminate() + { + base.OnTerminate(); + _stub?.Dispose(); + } + + static void Main(string[] args) + { + App app = new App(); + app.Run(args); + } + } +} diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/shared/res/RpcPortStub2.png b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/shared/res/RpcPortStub2.png new file mode 100755 index 0000000000000000000000000000000000000000..9f3cb98608134e7b9eb4beb7394fec9f03e40f63 GIT binary patch literal 10097 zcmV-%Cyv;OP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z9G*!;K~#9!?45adROR)@KX>k(nam`UjU_-Jvaf<7q7+#w0xcl2xgaWPU0Rp6YNfW; zpJHvRty^2f)(u1jtRN^Tn}`aihzKGe`@V%WnIyB{<@d*XLlVd`%gu!CJkLDDn7PaQ zeb0H%`JQv$S27HP^Ky2H?fej&eWH~9AU#`froT%Apc!xhkZt~V1HcV900~fm5KsUd z0=&RpU>~px(9YxmFvew71oaFPJ8%(jInc%Yv;-Q)dA%U81K13#2fhKm1M<&kO+C%U z1@tq)>kRY-npk-K6riK|8Dah|0;~X*16zTWz=rdnCN6z}G3G!wr~_-z+x(Qu=fF(h zJ>bZBP@|X2fC0d8;L_9V*?ww%o&lx-p8@Zl_kOFEUcel4J^RaP2xxgp1MUWG zxAPg`)fsrPlfREjqjPh+_+9ekW?&=G|7;3rh5=K6jHC^t1Q%x_nVGTMpCsiY`|fSi(A=Q{L73JfC6ZSQJ2yAO~8Dh z&6%pH3xR=2_Yewn2pQZzz|Dk#?o<9GRQHtq&w)({wru&CqN#bnlB5D!&fI3F+j!^p z^hyCe&G><3z@2A;rskSXfjgbkx)qz^bG>L-`tct?Vqm#Y3AcnKM}ah=`saIbAfh zJ@8f1W6xrPTds7m?%s?u9nezwJuv=s&{PFcA>d9Lpd|*B=u8;x;r?z;&N6udI0(E_ zmzugDX@E*V(14J^D`U?}KuhJnB*;D`0_w-WRY`kQ11Q${^EIj5-TABqv{XJp6woCV z)SH08Nqxb~vgrZ$~6K&Y59)-8!OeN;L%E z95TQ!SS`Fd9M{C>nE7wmK$6Vwg$)Rp-$~pZxBz%Inm>$&CVUyuYm!_s02zAaibuS> zvG{lKUX^<;j-Px`Y$ia(dRe%n85Jj!1W1yg*lp&|3SgITD3IomNOwwPIVBppZDgcK zbZ#KiAkD@%yCY0q9TEj@Su*J!iIT8^eoO;d0&|ka3G&0h1Yl1hpteHP7$skV2KM?g zgIWr!e`zBb8Y?W>nV6P+;heWDf!d5P3{$h883Cn{NMhqV7$(6x;Dgf z*L(O~cWbD|5HNgdF$=F-t9*FsJyNY!#{#PO2AJ!}b^z98{QXV|Q znu97|K9S-U1gw;XG7uaA7?jZPh?@jX%?Xz=8>p&Bn!5HYx8 zP6;=?U4+kXK(1WDCyG~wO)cgh(~5cKt_im9$YClIHHv~Y0=3I zv4Yw&W}{%Slhil2@|i!PjRUEJon>DK*;QQig0%6NMyH8hCVd)!44d#ewZs$1-Cr(b z&L@6mKAO!VJrfTKZtvn`!+jaFZmPguRfIv&J><2qg8Iw4jhy6;F!jU z4@xTc`#<&5`DHH$4{MO8fKujZCZecaCwf`6I>g-Z^%&L0IxeO~x{bB>X7bpuG*PNk z7?nBh3tSj2s0~PVuJq*iRDllls(!0GJ38pl*TwgX158>UKJoh_L4zUFig|vn4^20q zo-N+6;S~AFt6sie9c0my^|-pZ^)>Kr8$8v|#XC27kQGU^j8LP!{AIMD-chG28ZvO! zm$@>pdQJH605_ya+`q^Nz>+-?I=$>=-l`DfDv)X&pf}7aVa1XFlgDK-Ah&jVHg4+Z zV8d@S>3g9=02`{-9FM7t7^>{gZ>v*KOLTfSvy+`t{S@t!t1xhoo51!6o!%_ss<(?d zQlLSuoVcAW9|Eih^4^C&{`OENx3y1B!(O{g8=v2r&XdDag*grxRcUNCqG+L7P+I`) zVhTNKfnOieBD(cz=8#mHwR7;}nvkI2GHjMU&*D8QPrd5px{+!8@v`JIrH}V^@zV8a zqTsIT1XY)sKy4e<-DF7+)j?el+lMtM(glZ_h|jDVkY?j&Euu4V9=pVXThayPRtpLA z(eIZ)x{ZwoRX*4nsT0FBqP4vy%hSCkP#_iSrxgqDz3L$uaPqo(vPwkPsaB-%^VTk|xhY%lbjc_nu zq@hTWAk8N3RMUV24f-~To$-00kBcvNM_Bno7#hh5gZs>?5DPx@LkqjG02ww28BAE{ zRX zB674&QxVe5d)Hj>(Wfd$i%Tzdgc7qdhUNGT$9kdH2UKv$jOou}>A=twR!8nIl)Ipo~&_RAqiI ziuw{ZF?-(H5Uv!|Q|{PQp+{4N7Y4x0jbY|(i?H^X#@f9q9M{22ujS+_^vjE%skyg{ zlh3bmGh=xG;xLcb&G8XDq>4DVDw0?OQYCOH%=<1xmqMM1SEtga8bUv;!8iLo+9f8|$0hOcE;Xh*%M#qs(ZLNJ9Vce&|2BsC zU~`16Tf!VVu3=A*oPBR-DvnKIBF8nT7ybJBukS-F`Z@qPO3mLf%!!>NvwnAkzAqK> zP=7bi_pjJiv}~`++v`Gnyd%Pa!zPiSB&3m5NgmJvSbH+4tz){3Q=*_yV|$@atIYV2 z=+;=FTVsWP^n5eoFkY(R(A)81b4{#CJ}qY|wO3wQ#bm$k%va zW(j1-!pk(GoY;Y~+M^d1`}z8i#;-4Ovcsn{^@k7}_o)?q2@j{5bL*sSDX8VqXdcrg z>=G1e%-$NdCE35q4`tCx#MFWi{mU^8Q#jyQzOzuA(&BdvDsO0s@E}O zdXeyQQ>Cg0TSA!RVsn$NqZ*zx8)JLAn0t2yhn}d%;FfmAyyoSx86|Aoqk_vOG&0SW zjO~3+?0+nk9*iJ8TMz_dD+wsjxv;&Rbz{>ld$Q-g4KZ$#SGe(ZiMGuYZtUowcT*8%1o|9RW|dVz02lpmq+f>)@b$wv7p^Lrh;Dfco;OfR5^UM8^5pgiI3=>OWrnx0Gp3V+{!vhgvqq%S@x?;n+{os~Au)e-kon(- z%9yC~WQRn>(oPwgHnlUnm7VK5Iq2Q2dbaD?J}&034vF3RliT2)Ru%aWnEz&wCJNn~R<6M_wni#4 zTc!0t*`^k01~_e|X+=<;0RysZbk0-gnxinHt)0Pb95|u`s8fBJ-d&t5TN4!bNuIc@ z0o4FfB&Ke%4pe|!+BW88PF?W14VyY*EbZfPuXh{F%!eD_oIWZPly;6_a)JYCONnI_F?ObA|LA z1^m^ZYIep^U;-&Y>pX?AeO%PbwuwELs(VAT%J7bleJt6nQf#rtKG4-!wszOPsMa}3 zrP`WquMLr%Dbuxq%nh9cIgy!?n2HT;?Lew8WB82|NsC&PptYI` z;I^S1(|GzT>$G+J6)x-?IR!awnZoi#HYbd8PT;@ ztS7?+2P)IlFp2DMF98`ckIwh;!y%1-4s?-|8vmR*7BpD8CqhIwV7~@U?F{Lb!nN(~ z3}|jAH@)U-4{C1b=~7D~i|_@nPIfbe?u{KR+!hgQZ;Dwi;*vx^gaO`SGfes>NP4D? zt_>A#=;UBjJ39?yc(1?oaxrgBQW&O^%DCU%h!jp@ZdX_Y^BGNL#&mSjH&3B!Lz!HU zja2)o)72L-@Q2}0KxgAIjfFc^7Vn6#uS7=+8C;sHFsi+SQ5_t#$%<`~w0_0Q_Wi2x zh$G-q;K@EN?zq@Vc8bK~%L6<$vjmzbRclhIx%Y{M(OqAr-vxHA%u~3&gM+3~Os?+J zidnTTB$)J9LD2qs3B*3eamSv-7o}I0SHFg$hly>P#rO6N#20UXg7-N(iBt5Yj#^NbP}tPIv%+f-WG z5)=SC>dAzI1{XJwd8)sgt6Ntc=g!_5VdNw)WXZK@hOalqWz9I*{BE-hR6{r*9-v19 zna6vkP!u%yWOsxeg*rZyr*O#7z%9`-L#BPUP4K=JZ1ei|rmz4s+g9P3>Q~~d%o>?W z=Jqh*0v)odAuCEXOf_iH%FdQMGx%_8g!|`|F!YTgF1kSBxq)u_w>%Zxfz1`cFa=Fh zUpum;vNd(BrMIw491Ixzd6A!)8x-CcmdXoP*8Ya0$AboA-zyQh(ef0b1d&R}2$wAJ z&L|Jpzv>lBM@{j7-{6vl3W@}y+S(cQa2D$iYdo;P$ADM8w8@c~Jlew*jms{SYL^(< z&cUo@0dUod3El(zSef^`&eGc$h(XP?@#8_2pG+uZ)XWmR;o40yj{KlRWLrF^YF$-# zzOId(oBO%os9JqIU@F;_c@?e6g$-pEk4>iiJyLYAY#+nfBCy(>lUcm|UY@*P$W34evUsXjDmLLw* zvtD%5oo_6YU!d{$`z7?6QpC0b>!_9=3v?zd@Cj!m&PeLbYtn=!`73E3k$@tdfvxRi z)vzw!(AkOqPuUD^XQ$s^jx*kz#DD3TBAi3(8Ky6*<9-*^s%_K-^F&jHFE@s1Ke3R9 z7Wqju6>uzQ(0@viFmG-t?ltSmrV7vA=n>{ytK`}368Ch8zCdK=Xb+QqmBEt>{5-JG z&)}AJvhozsgJhi)Ri~+?Cb)K`bifc25z6hjk|SQ$!b2m7s1S zS)z-uhsFv!4yyE-T*OW9mvF!z8!E4D2=m#uL1?U4X4a++aii3iE4JzT3`WGcB|y6@ z8>`0GFmcPm%Ys19GyYlT&Q#R z|BA)ru#kdl>ap?eXpi8V!)0FYWeJqHbZa29>_!itd>jjXQ;RDek&TXaMw zB~PKit26S=VunmFX5G=M{eOSNp!b_a!twCfERX$0wX$_*m6yCcyQ1=}&m+qN9N7_xezOh<0x_Dr ziTzx-n<%g|LZ222O+ASxwI*EUCOy}(gL!AbseWc{JE(Az~U zDp#%l=obNAno%Oijbj=V)bKej`dDIx#BG;YGBzD&mdu!T*6jBn0k?H^3J*JRd8x8r zR%HZU2d<_rMMpFexn<4YOdE%57bocnyP1M>KxgBL&4Bot7##_-b<)UnF+zxI9PZ z+Wu~uWm=bdZeR`nyR1Al7!9b)D64CyPPJA7n#fS3^XA7s9=X}Wtl?=fU#jQ3#T<(> ze;)`LJh3FepxdpfI9z>5wPIx7tLlGLHT{kQZ*jVa1{CW&daH+L`ovc>zPC`1t1kJI zJu35m2=VR8An$LtrVMu3LCuPK;2E)k3h;jprQI(BmM*DK=h0?7C4G)ari zgic%&V&E%Zu`MG~uu?V$1Hb|E_c2K4NyTu8;((J7fQAH7dNTVV)aV8#6p@z+Z zYhA)X1g4Hnr)>g`%8nvkY&V-8-8F9hpoD+S@d?^7%~rP0ej|k+z7O$-FXJz+o4qX} z`c~st`2PU@L_pnvIDIksA_My)4DRk^Oxwg9l=Vk62pTj_t9~6j8Zx-#RWDPQ2E^_x zC->nbUvuc;~+rt{&|LbMVmWU`stE^MbEYm?U`1xDKSSH31l4}+@BqYh-t9M~S= zwgtYJo@4Tca9Ph!>~er8&n%Dj@~HGxY6Z z0apDeDMuY>qOkD05Hq6;a}N4+zS^aVd~*C}(qJX1ev)xMjSS?gT++?S6BZqQd&nnF zdm2;8wyqC+>SxR=UNOkAZusmF)XjBo7O}aY=Jj>*x-iBOHQxAi1u)%ePyrU3@loxW z-9jBtj>7!wJeFPd!|h>kN(^mPrl}zVezU;GzZUsL+AlSZg0Rvmj)1`pAJ%M!r)>(0 ztq5Y*(js7FtS(6`az9X9D}bs3)XAgLXlP+G(PPVkT-2(pu1Etef5Xd!d45sPOpQ`C0Iukpj=__8=ZizrM)5Fy*n2?z=f16Xnr&W~XEZwIoz}(Ug2}aH+slw|G ziK^V#MtdD_O}s-IkGuoSvBd294N&0CtE~m}fKTVgbs;8Q?_t5N2$%fFD;k{|)ey48 zYliE|6y>Yj^ijq2^=Lq6{+38QUhg%D=t;aX43VNsY%q#-Ub-=z9*wO%MWXLJ#q{l# zf^5K`SBo%I!;)&lYNejcw1s|N_%2i~WQw5XtFiXb3_#S2B^^`{J9&HK{&u0pH9b?f zuZy*(NZh;7&$ew5A~M|iVToXYJhcpHX~jmCjXy2%lW(>@PFWv{mFvCNj5OkwMAajR z*v)$-P%rjx8w|2=tDC(=I{&vcz?3hy`?~7Pod88 z{VI{8+KH0W6Q|ZDbK^&|p1H)UQ*zu8Tf#;s&jC+b5+RmrI!^Rjoq^902jE1{AeoF$ z+}>y@V6xeAku0sWR-OhPP1sP3%d$*U%e&y+5KUH@QGG)*O=F6MrBG)cpyRF5P^%oJ zlVumso|C$;&P$c@3#$RG4NyU(>Ush5&tq1l_<^f{$+dCu+S~+uFm-vR`ROZ55a;PF zsjVB-_Rj7T5yvd&pT|;g5vGRjtIeC(lJFw$0WE>4=P;PZf!>JoPHSCkNqVUOa5JLb zDR_G=BG2zA93J)m(vu;5b!pl^XxOq?KXBgh;kYZ*gEs`A|hXVBQTt3`Q+Mn zerB2;?f%o%bSRwOvdH{AfH)(xD{!S5^EIgDdmHAu|EUS)c9OXz(OC>?sdy1df-e#K z9Jqmt5hwh1HqCSkAS=%6tEQu~1+jVK3Sbqm_e}KIPUKV1%h@Bg^Fwg<$^Q=k6D;UR TJbOA100000NkvXXu0mjf?x(Kf literal 0 HcmV?d00001 diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/tizen-manifest.xml b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/tizen-manifest.xml new file mode 100755 index 000000000..19d1292b9 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.Applications.Tests/code/org.tizen.example.RpcPortStub2/RpcPortStub2/tizen-manifest.xml @@ -0,0 +1,12 @@ + + + + + + RpcPortStub2.png + + + + + + diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortProxy-1.0.0.tpk b/tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortProxy-1.0.0.tpk new file mode 100755 index 0000000000000000000000000000000000000000..13c3956fbb783e02eb21d7afd1dd5676722e4b49 GIT binary patch literal 19540 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 V{^ukmg&xL0wNClGhBtn${s9yKHX#52 literal 0 HcmV?d00001 diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortProxy2-1.0.0.tpk b/tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortProxy2-1.0.0.tpk new file mode 100755 index 0000000000000000000000000000000000000000..156e82629290f7a34ea5ee1ad00381918c7e6423 GIT binary patch literal 19214 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 D0lBQ_ literal 0 HcmV?d00001 diff --git a/tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortStub-1.0.0.tpk b/tct-suite-vs/Resource/Tizen.Applications.Tests/org.tizen.example.RpcPortStub-1.0.0.tpk new file mode 100755 index 0000000000000000000000000000000000000000..8ab0bd25d36b4591859f2c5544c3f57c87e99d7b GIT binary patch literal 19294 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 + } + + [Test] + [Category("P1")] + [Description("Test InvalidIDException initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.InvalidIDException.InvalidIDException C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void InvalidIDException_INIT() + { + /* TEST CODE */ + var e = new InvalidIDException(); + + Assert.IsNotNull(e, "InvalidIDException shouldn't be null after init"); + Assert.IsInstanceOf(e); + } + + [Test] + [Category("P1")] + [Description("Test PermissionDeniedException initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.PermissionDeniedException.PermissionDeniedException C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void PermissionDeniedException_INIT() + { + /* TEST CODE */ + var e = new PermissionDeniedException(); + + Assert.IsNotNull(e, "PermissionDeniedException shouldn't be null after init"); + Assert.IsInstanceOf(e); + } + + [Test] + [Category("P1")] + [Description("Test InvalidProtocolException initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.InvalidProtocolException.InvalidProtocolException C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void InvalidProtocolException_INIT() + { + /* TEST CODE */ + var e = new InvalidProtocolException(); + + Assert.IsNotNull(e, "InvalidProtocolException shouldn't be null after init"); + Assert.IsInstanceOf(e); + } + + [Test] + [Category("P1")] + [Description("Test NotConnectedSocketException initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.NotConnectedSocketException.NotConnectedSocketException C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void NotConnectedSocketException_INIT() + { + /* TEST CODE */ + var e = new NotConnectedSocketException(); + + Assert.IsNotNull(e, "NotConnectedSocketException shouldn't be null after init"); + Assert.IsInstanceOf(e); + } + + [Test] + [Category("P1")] + [Description("Test InvalidCallbackException initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.InvalidCallbackException.InvalidCallbackException C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void InvalidCallbackException_INIT() + { + /* TEST CODE */ + var e = new InvalidCallbackException(); + + Assert.IsNotNull(e, "InvalidCallbackException shouldn't be null after init"); + Assert.IsInstanceOf(e); + } + } +} diff --git a/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.Parcel.cs b/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.Parcel.cs new file mode 100755 index 000000000..e89da0e3e --- /dev/null +++ b/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.Parcel.cs @@ -0,0 +1,699 @@ +using NUnit.Framework; +using NUnit.Framework.TUnit; +using System; +using System.Threading.Tasks; +using Tizen.Applications.RPCPort; + +namespace Tizen.Applications.Tests +{ + public class Proxy : ProxyBase + { + public bool Connected { get; set; } + + public bool Received { get; set; } + + public void SendTestMessage() + { + using (var p = new Parcel()) + { + p.WriteString("test"); + p.Send(Port); + } + } + + protected override void OnConnectedEvent(string endPoint, string portName, Port port) + { + Connected = true; + } + + protected override void OnDisconnectedEvent(string endPoint, string portName) + { + } + + protected override void OnReceivedEvent(string endPoint, string portName) + { + using (var p = new Parcel(CallbackPort)) + { + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + } + Received = true; + } + + protected override void OnRejectedEvent(string endPoint, string portName) + { + } + + public void TestConnect() + { + Connect("org.tizen.example.RpcPortStub", "Test"); + } + } + + + [TestFixture] + [Description("Tizen.Application.RPCPort.Parcel Tests")] + public class ParcelTests + { + private static Proxy _proxy; + + [SetUp] + public static void Init() + { + LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Preconditions for each TEST"); + _proxy = new Proxy(); + _proxy.TestConnect(); + } + + [TearDown] + public static void Destroy() + { + LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Postconditions for each TEST"); + _proxy.Dispose(); + _proxy = null; + } + + [Test] + [Category("P1")] + [Description("Test Parcel initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.Parcel C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void Parcel_INIT() + { + /* TEST CODE */ + using (var p = new Parcel()) + { + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + } + } + + [Test] + [Category("P1")] + [Description("Test Parcel initialization with port")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.Parcel C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("COVPARAM", "Port")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task Parcel_INIT_WITH_PARAMETER() + { + /* PRECONDITION + * */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + _proxy.SendTestMessage(); + await Task.Delay(2000); + + /* TEST CODE */ + Assert.True(_proxy.Received); + } + + [Test] + [Category("P2")] + [Description("Test constructor with null argument")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.Parcel C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTN")] + [Property("COVPARAM", "Port")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void Parcel_NULL_ARGUMENTS() + { + /* PRECONDITION */ + + /* TEST CODE */ + try + { + var p = new Parcel(null); + } + catch (InvalidIOException) + { + Assert.Pass(); + } + + Assert.Fail(); + } + + [Test] + [Category("P1")] + [Description("Send parcel to the other application which has been connected before")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.Send M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task Send_CHECK_WITHOUT_EXCEPTION() + { + try + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + + /* TEST CODE */ + _proxy.SendTestMessage(); + } + catch (Exception e) + { + Assert.Fail(e.ToString()); + } + } + + [Test] + [Category("P2")] + [Description("Send parcel with null Port object")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.Send M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void Send_WITH_NULL_ARGUMENTS() + { + /* PRECONDITION */ + using (var p = new Parcel()) + { + /* TEST CODE */ + try + { + p.Send(null); + } + catch (InvalidIOException) + { + Assert.Pass(); + } + } + + Assert.Fail(); + } + + [Test] + [Category("P1")] + [Description("Read a byte from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadByte M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadByte_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteByte(0x33); + + /* TEST CODE */ + byte b = p.ReadByte(); + Assert.IsTrue((b == 0x33), "ReadByte failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'short' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadShort M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadShort_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteShort(100); + + /* TEST CODE */ + short b = p.ReadShort(); + Assert.IsTrue((b == 100), "ReadShort failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'int' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadInt M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadInt_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteInt(100); + + /* TEST CODE */ + int b = p.ReadInt(); + Assert.IsTrue((b == 100), "ReadInt failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'long' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadLong M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadLong_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteLong(100); + + /* TEST CODE */ + long b = p.ReadLong(); + Assert.IsTrue((b == 100), "ReadLong failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'float' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadFloat M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadFloat_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteFloat(1.0f); + + /* TEST CODE */ + float b = p.ReadFloat(); + Assert.IsTrue((b == 1.0f), "ReadFloat failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'double' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadDouble M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadDouble_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteDouble(1.0); + + /* TEST CODE */ + double b = p.ReadDouble(); + Assert.IsTrue((b == 1.0), "ReadDouble failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'string' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadString M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadString_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteString("test"); + + /* TEST CODE */ + string b = p.ReadString(); + Assert.IsTrue((b == "test"), "ReadString failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'bool' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadBool M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadBool_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteBool(true); + + /* TEST CODE */ + bool b = p.ReadBool(); + Assert.IsTrue(b, "ReadBool failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read 'Bundle' type value from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadBundle M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadBundle_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + using (var b = new Bundle()) + { + b.AddItem("key", "value"); + p.WriteBundle(b); + } + + /* TEST CODE */ + using (Bundle b = p.ReadBundle()) + { + Assert.IsNotNull(b, "Bundle shouldn't be null"); + string val = b.GetItem("key"); + Assert.IsTrue(val == "value", "ReadBundle failed"); + } + } + } + + [Test] + [Category("P1")] + [Description("Read array count from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.ReadArrayCount M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ReadArrayCount_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + p.WriteArrayCount(10); + + /* TEST CODE */ + int b = p.ReadArrayCount(); + Assert.IsTrue(b == 10, "ReadArrayCount failed"); + } + } + + [Test] + [Category("P1")] + [Description("Read bytes from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.Read M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void Read_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + var bts = new byte[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + p.Write(bts); + + /* TEST CODE */ + var b = p.Read(10); + for (int i = 0; i < 10; i++) + { + Assert.IsTrue(b[i] == i, "Read failed"); + } + } + } + + [Test] + [Category("P1")] + [Description("Write a byte to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteByte M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteByte_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteByte(0x33); + byte b = p.ReadByte(); + Assert.IsTrue((b == 0x33), "WriteByte failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write 'short' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteShort M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteShort_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteShort(100); + short b = p.ReadShort(); + Assert.IsTrue((b == 100), "WriteShort failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write 'int' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteInt M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteInt_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteInt(100); + int b = p.ReadInt(); + Assert.IsTrue((b == 100), "WriteInt failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write 'long' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteLong M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteLong_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteLong(100); + long b = p.ReadLong(); + Assert.IsTrue((b == 100), "WriteLong failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write 'float' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteFloat M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteFloat_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteFloat(1.0f); + float b = p.ReadFloat(); + Assert.IsTrue((b == 1.0f), "WriteFloat failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write 'double' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteDouble M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteDouble_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteDouble(1.0); + double b = p.ReadDouble(); + Assert.IsTrue((b == 1.0), "WriteDouble failed"); + } + } + + [Test] + [Category("P1")] + [Description("Wrtie 'string' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteString M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteString_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteString("test"); + string b = p.ReadString(); + Assert.IsTrue((b == "test"), "WriteString failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write 'bool' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteBool M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteBool_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteBool(true); + bool b = p.ReadBool(); + Assert.IsTrue(b, "WriteBool failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write 'Bundle' type value to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteBundle M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteBundle_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + using (var b = new Bundle()) + { + b.AddItem("key", "value"); + + /* TEST CODE */ + p.WriteBundle(b); + } + + using (Bundle b = p.ReadBundle()) + { + Assert.IsNotNull(b, "Bundle shouldn't be null"); + string val = b.GetItem("key"); + Assert.IsTrue(val == "value", "WriteBundle failed"); + } + } + } + + [Test] + [Category("P1")] + [Description("Write array count from parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.WriteArrayCount M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void WriteArrayCount_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + + /* TEST CODE */ + p.WriteArrayCount(10); + int b = p.ReadArrayCount(); + Assert.IsTrue(b == 10, "WriteArrayCount failed"); + } + } + + [Test] + [Category("P1")] + [Description("Write bytes to parcel")] + [Property("SPEC", "Tizen.Applications.RPCPort.Parcel.Write M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void Write_RETURN() + { + using (var p = new Parcel()) + { + /* PRECONDITION */ + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Parcel shouldn't be null after init."); + var bts = new byte[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + + /* TEST CODE */ + p.Write(bts); + var b = p.Read(10); + for (int i = 0; i < 10; i++) + { + Assert.IsTrue(b[i] == i, "Write failed"); + } + } + } + } +} diff --git a/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.ProxyBase.cs b/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.ProxyBase.cs new file mode 100755 index 000000000..803871eb3 --- /dev/null +++ b/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.ProxyBase.cs @@ -0,0 +1,400 @@ +using NUnit.Framework; +using NUnit.Framework.TUnit; +using System.Threading.Tasks; +using Tizen.Applications.RPCPort; + +namespace Tizen.Applications.Tests +{ + + [TestFixture] + [Description("Tizen.Application.RPCPort.ProxyBase Tests")] + public class ProxyBaseTests + { + private static Proxy _proxy; + + public class Proxy : ProxyBase + { + public bool Connected { get; set; } + public bool Disconnected { get; set; } + public bool Rejected { get; set; } + + public string Result { get; set; } + + private Port _port; + + public void SendHello() + { + using (Parcel p = new Parcel()) + { + p.WriteString("hello"); + p.Send(_port); + } + } + + protected override void OnConnectedEvent(string endPoint, string portName, Port port) + { + Connected = true; + _port = port; + } + + protected override void OnDisconnectedEvent(string endPoint, string portName) + { + Disconnected = true; + } + + protected override void OnReceivedEvent(string endPoint, string portName) + { + using (Parcel p = new Parcel(GetPort(Port.Type.Callback))) + { + Result = p.ReadString(); + } + } + + protected override void OnRejectedEvent(string endPoint, string portName) + { + Rejected = true; + } + + public void TestConnect() + { + Connect("org.tizen.example.RpcPortStub", "Test"); + } + + public void ConnectForInvalidIOException() + { + Connect("invalid.app", "Test"); + } + public void ConnectForRejectedEvent() + { + Connect("org.tizen.example.RpcPortStub2", "Test"); + } + + public void TestGetPort() + { + Port p = GetPort(Port.Type.Main); + Assert.NotNull(p); + + p = GetPort(Port.Type.Callback); + Assert.NotNull(p); + } + + public Port GetPort() + { + return Port; + } + + public Port GetCallbackPort() + { + return CallbackPort; + } + } + + [SetUp] + public static void Init() + { + LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Preconditions for each TEST"); + _proxy = new Proxy(); + _proxy.TestConnect(); + } + + [TearDown] + public static void Destroy() + { + LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Postconditions for each TEST"); + _proxy.Dispose(); + _proxy = null; + } + + [Test] + [Category("P1")] + [Description("Test ProxyBase initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.ProxyBase C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void ProxyBase_INIT() + { + var p = new Proxy(); + + Assert.IsInstanceOf(p); + Assert.IsNotNull(p, "Proxy shouldn't be null"); + } + + [Test] + [Category("P1")] + [Description("Test : Connect to stub application")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task Connect_RETURN() + { + /* PRECONDITION */ + await Task.Delay(2000); + + /* TEST CODE */ + Assert.True(_proxy.Connected); + } + + [Test] + [Category("P2")] + [Description("Test : Try to reconnect to app without disposing")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task Connect_CHECK_INVALID_ID_EXCEPTION() + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + + try + { + /* TEST CODE */ + _proxy.TestConnect(); + } + catch (InvalidIDException) + { + Assert.Pass(); + } + + Assert.Fail(); + } + + [Test] + [Category("P2")] + [Description("Test : Connect to invalid stub application")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void Connect_CHECK_INVALID_IO_EXCEPTION() + { + /* PRECONDITION */ + _proxy?.Dispose(); + _proxy = new Proxy(); + + try + { + /* TEST CODE */ + _proxy.ConnectForInvalidIOException(); + } + catch (InvalidIOException) + { + Assert.Pass(); + } + + Assert.Fail(); + } + + [Test] + [Category("P2")] + [Description("Test : Connect to stub application with invalid permission")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task Connect_CHECK_PERMISSION_DENIED_EXCEPTION() + { + /* PRECONDITION */ + _proxy?.Dispose(); + _proxy = null; + AppControlReplyResult ret = AppControlReplyResult.Failed; + + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy2" + }; + + AppControl.SendLaunchRequest(c, (AppControl launchRequest, AppControl replyRequest, AppControlReplyResult result) => + { + ret = result; + }); + await Task.Delay(2000); + + /* TEST CODE */ + Assert.True(ret == AppControlReplyResult.Succeeded); + + /* POSTCONDITION */ + c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy2" + }; + + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P1")] + [Description("Test : OnConnected events")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnConnectedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnConnectedEvent_CHECK_CB() + { + /* PRECONDITION */ + await Task.Delay(2000); + + /* TEST CODE */ + Assert.True(_proxy.Connected); + } + + [Test] + [Category("P1")] + [Description("Test : OnDisconnected events")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnDisconnectedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnDisconnectedEvent_CHECK_CB() + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortStub" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + + /* TEST CODE */ + Assert.True(_proxy.Disconnected); + } + + [Test] + [Category("P1")] + [Description("Test : OnRejected events")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnRejectedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnRejectedEvent_CHECK_CB() + { + /* PRECONDITION */ + _proxy?.Dispose(); + _proxy = new Proxy(); + _proxy.ConnectForRejectedEvent(); + await Task.Delay(4000); + + /* TEST CODE */ + Assert.True(_proxy.Rejected); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortStub2" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P1")] + [Description("Test : OnReceived events")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnReceivedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnReceivedEvent_CHECK_CB() + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + _proxy.SendHello(); + await Task.Delay(2000); + + /* TEST CODE */ + Assert.NotNull(_proxy.Result); + Assert.True(_proxy.Result.Equals("hello")); + } + + [Test] + [Category("P2")] + [Description("Test : GetPort from disconnected object")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.GetPort M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task GetPort_CHECK_EXCEPTION() + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + _proxy.Dispose(); + + /* TEST CODE */ + try + { + _proxy.TestGetPort(); + } + catch (InvalidIOException) + { + Assert.Pass(); + } + finally + { + _proxy = null; + } + + Assert.Fail(); + } + + [Test] + [Category("P1")] + [Description("Test : GetPort from proxy object")] + [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.GetPort M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task GetPort_RETURN() + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + + /* TEST CODE */ + _proxy.TestGetPort(); + } + + [Test] + [Category("P1")] + [Description("Test : Port Property")] + [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.Port A")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "PRO")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task Port_PROPERTY_GET() + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + + /* TEST CODE */ + Assert.NotNull(_proxy.GetPort()); + } + + [Test] + [Category("P1")] + [Description("Test : CallbackPort Property")] + [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.CallbackPort A")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "PRO")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task CallbackPort_PROPERTY_GET() + { + /* PRECONDITION */ + await Task.Delay(2000); + Assert.True(_proxy.Connected); + + /* TEST CODE */ + Assert.NotNull(_proxy.GetCallbackPort()); + } + } +} diff --git a/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.StubBase.cs b/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.StubBase.cs new file mode 100755 index 000000000..ddae7b5f0 --- /dev/null +++ b/tct-suite-vs/Tizen.Applications.Tests/testcase/TSRPCPort.StubBase.cs @@ -0,0 +1,554 @@ +using NUnit.Framework; +using NUnit.Framework.TUnit; +using System; +using System.Threading; +using System.Threading.Tasks; +using Tizen.Applications.RPCPort; + +namespace Tizen.Applications.Tests +{ + [TestFixture] + [Description("Tizen.Application.RPCPort.StubBase Tests")] + public class StubBaseTests + { + private static Stub _stub; + private static bool _disposed; + + public class Stub : StubBase + { + public bool Connected { get; set; } + public bool Disconnected { get; set; } + public bool Received { get; set; } + public string Instance { get; set; } + + public Stub(string portName) : base(portName) + { + } + + protected override void OnConnectedEvent(string sender, string instance) + { + Connected = true; + Instance = instance; + } + + protected override void OnDisconnectedEvent(string sender, string instance) + { + Disconnected = true; + } + + protected override bool OnReceivedEvent(string sender, string instance, Port port) + { + Received = true; + using (var p = new Parcel(port)) + { + + } + return true; + } + + protected override void OnTerminatedEvent() + { + _disposed = true; + } + + public void TestListen() + { + Listen(); + } + + public void TestGetPort(string inst) + { + Port p = GetPort(Port.Type.Main, inst); + Assert.NotNull(p); + + p = GetPort(Port.Type.Callback, inst); + Assert.NotNull(p); + } + + public void TestAddPrivilege() + { + AddPrivilege("test.privilege"); + } + + public void TestAddPrivilegeWithNull() + { + AddPrivilege(null); + } + + public void TestSetTrusted(bool trusted) + { + SetTrusted(trusted); + } + } + + [SetUp] + public static void Init() + { + LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Preconditions for each TEST"); + _stub = new Stub("Test"); + } + + [TearDown] + public static void Destroy() + { + LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Postconditions for each TEST"); + _stub?.Dispose(); + _stub = null; + } + + [Test] + [Category("P1")] + [Description("Test StubBase initialization")] + [Property("SPEC", "Tizen.Applications.RPCPort.StubBase.StubBase C")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "CONSTR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void StubBase_INIT() + { + Assert.IsInstanceOf(_stub); + Assert.IsNotNull(_stub, "Stub shouldn't be null"); + } + + [Test] + [Category("P1")] + [Description("Test : Listen to proxy application")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.Listen M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task Listen_CHECK_RETURN() + { + /* PRECONDITION */ + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + + await Task.Delay(4000); + + /* TEST CODE */ + Assert.True(_stub.Connected); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P2")] + [Description("Test : Listen to proxy application after being disposed")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.Listen M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void Listen_CHECK_WITH_EXCEPTION() + { + /* PRECONDITION */ + _stub?.Dispose(); + + try + { + /* TEST CODE */ + _stub.TestListen(); + } + catch (InvalidIOException) + { + Assert.Pass(); + } + finally + { + _stub = null; + } + + Assert.Fail(); + } + + [Test] + [Category("P1")] + [Description("Test : OnConnected events")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.OnConnectedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnConnectedEvent_CHECK_CB() + { + /* PRECONDITION */ + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + await Task.Delay(4000); + + /* TEST CODE */ + Assert.True(_stub.Connected); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P1")] + [Description("Test : OnDisconnected events")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.OnDisconnectedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnDisconnectedEvent_CHECK_CB() + { + /* PRECONDITION */ + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + await Task.Delay(4000); + Assert.True(_stub.Connected); + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(3000); + + /* TEST CODE */ + Assert.True(_stub.Disconnected); + } + + [Test] + [Category("P1")] + [Description("Test : OnReceived events")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.OnReceivedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnReceivedEvent_CHECK_CB() + { + /* PRECONDITION */ + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + ctrl.ExtraData.Add("send", "hello"); + + AppControl.SendLaunchRequest(ctrl); + await Task.Delay(4000); + Assert.True(_stub.Connected); + + /* TEST CODE */ + Assert.True(_stub.Received); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(3000); + } + + [Test] + [Category("P1")] + [Description("Test : OnTerminated events")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.OnTerminatedEvent E")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "EVL")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task OnTerminatedEvent_CHECK_CB() + { + /* PRECONDITION */ + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + await Task.Delay(4000); + Assert.True(_stub.Connected); + _disposed = false; + + /* TEST CODE */ + _stub.Dispose(); + Assert.True(_disposed); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(3000); + } + + [Test] + [Category("P1")] + [Description("Test : GetPort from stub object")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.GetPort M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task GetPort_RETURN() + { + /* PRECONDITION */ + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + + await Task.Delay(4000); + Assert.True(_stub.Connected); + Assert.NotNull(_stub.Instance); + + /* TEST CODE */ + _stub.TestGetPort(_stub.Instance); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P2")] + [Description("Test : GetPort from wrong instance")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.GetPort M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task GetPort_CHECK_INVALID_IO_EXCEPTION() + { + /* PRECONDITION */ + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + await Task.Delay(4000); + + Assert.True(_stub.Connected); + Assert.NotNull(_stub.Instance); + + try + { + /* TEST CODE */ + _stub.TestGetPort("wrong_inst"); + + } + catch (InvalidIOException) + { + Assert.Pass(); + } + finally + { + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + Assert.Fail(); + } + + [Test] + [Category("P2")] + [Description("Test : GetPort from wrong stub object")] + [Property("SPEC", " Tizen.Applications.RPCPort.StubBase.GetPort M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void GetPort_CHECK_INVALID_ID_EXCEPTION() + { + /* PRECONDITION */ + _stub.TestListen(); + _stub.Dispose(); + + try + { + /* TEST CODE */ + _stub.TestGetPort("wrong_instance"); + } + catch (InvalidIDException) + { + Assert.Pass(); + } + finally + { + _stub = null; + } + + Assert.Fail(); + } + + [Test] + [Category("P1")] + [Description("Test : Add privilege to stub object")] + [Property("SPEC", "Tizen.Applications.RPCPort.StubBase.AddPrivilege M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task AddPrivilege_RETURN() + { + /* PRECONDITION */ + + /* TEST CODE */ + _stub.TestAddPrivilege(); + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + + await Task.Delay(4000); + Assert.False(_stub.Connected); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P2")] + [Description("Test : Add privilege with null argument")] + [Property("SPEC", "Tizen.Applications.RPCPort.StubBase.AddPrivilege M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MEX")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void AddPrivilege_CHECK_WITH_EXCEPTION() + { + /* PRECONDITION */ + + /* TEST CODE */ + try + { + _stub.TestAddPrivilegeWithNull(); + } + catch (ArgumentNullException) + { + Assert.Pass(); + } + Assert.Fail(); + } + + [Test] + [Category("P1")] + [Description("Test : Set trusted flag as true")] + [Property("SPEC", "Tizen.Applications.RPCPort.StubBase.SetTrusted M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task SetTrusted_RETURN1() + { + /* PRECONDITION */ + + /* TEST CODE */ + _stub.TestSetTrusted(true); + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + await Task.Delay(4000); + Assert.False(_stub.Connected); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P1")] + [Description("Test : Set trusted flag as false")] + [Property("SPEC", "Tizen.Applications.RPCPort.StubBase.SetTrusted M")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "MR")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static async Task SetTrusted_RETURN2() + { + /* PRECONDITION */ + + /* TEST CODE */ + _stub.TestSetTrusted(false); + _stub.TestListen(); + var ctrl = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + + AppControl.SendLaunchRequest(ctrl); + await Task.Delay(4000); + Assert.True(_stub.Connected); + + /* POSTCONDITION */ + var c = new AppControl() + { + ApplicationId = "org.tizen.example.RpcPortProxy" + }; + c.ExtraData.Add("Test", "finish"); + AppControl.SendLaunchRequest(c); + await Task.Delay(2000); + } + + [Test] + [Category("P1")] + [Description("Test : PortName Property")] + [Property("SPEC", "Tizen.Applications.RPCPort.StubBase.PortName A")] + [Property("SPEC_URL", "-")] + [Property("CRITERIA", "PRO")] + [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")] + public static void PortName_PROPERTY_GET() + { + Assert.NotNull(_stub.PortName); + Assert.True(_stub.PortName.Equals("Test")); + } + } +} diff --git a/tct-suite-vs/Tizen.Applications.Tests/tizen-manifest.xml b/tct-suite-vs/Tizen.Applications.Tests/tizen-manifest.xml index 04e10fb2c..8a92d2ba8 100755 --- a/tct-suite-vs/Tizen.Applications.Tests/tizen-manifest.xml +++ b/tct-suite-vs/Tizen.Applications.Tests/tizen-manifest.xml @@ -1,17 +1,16 @@  - - - - Tizen.Applications.Tests.png - - - - http://tizen.org/privilege/appmanager.launch - http://tizen.org/privilege/appdir.shareddata - + + + + Tizen.Applications.Tests.png + + + + + + http://tizen.org/privilege/appmanager.launch + http://tizen.org/privilege/appdir.shareddata + http://tizen.org/privilege/datasharing + + -- 2.34.1