[Tizen.NUI.Wearable][Non-ACR][Add auto and manual TCT for Tizen.NUI.Wearable project] 57/199057/9
authorFeng Jin <feng16.jin@samsung.com>
Fri, 1 Feb 2019 14:17:24 +0000 (22:17 +0800)
committerFeng Jin <feng16.jin@samsung.com>
Mon, 11 Feb 2019 15:42:51 +0000 (23:42 +0800)
Change-Id: Iccbe7e5fbd1e4ef2922abd1e888240b4bc54fb91
Signed-off-by: Feng Jin <feng16.jin@samsung.com>
29 files changed:
tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.sln [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.cs [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.csproj [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/shared/res/NUIWatchApplicationManualTest.png [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/tizen-manifest.xml [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/org.tizen.example.NUIWatchApplicationManualTest-1.0.0.tpk [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/ManualTestPage.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Program.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.csproj [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.sln [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Utils.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/WearableManualTestPage.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/shared/res/Tizen.NUI.Wearable.Manual.Tests.png [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/testcase/TSNUIWatchApplication.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/tizen-manifest.xml [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/Program.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.csproj [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.sln [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Test_Style_Manager.json [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Tizen.NUI.Tests.png [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/res/dali-toolkit-default-theme.json [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/res/demoVideo.mp4 [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/res/picture.png [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/shared/res/Tizen.NUI.Wearable.Tests.png [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientChangedEventArgs.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientTickEventArgs.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.TimeTickEventArgs.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.cs [new file with mode: 0755]
tct-suite-vs/Tizen.NUI.Wearable.Tests/tizen-manifest.xml [new file with mode: 0755]

diff --git a/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.sln b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.sln
new file mode 100755 (executable)
index 0000000..cfc909b
--- /dev/null
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26730.10
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NUIWatchApplicationManualTest", "NUIWatchApplicationManualTest\NUIWatchApplicationManualTest.csproj", "{3CCFB033-EDFD-472B-82F7-BCD4AA3163BE}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Any CPU = Debug|Any CPU
+               Release|Any CPU = Release|Any CPU
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {3CCFB033-EDFD-472B-82F7-BCD4AA3163BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {3CCFB033-EDFD-472B-82F7-BCD4AA3163BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {3CCFB033-EDFD-472B-82F7-BCD4AA3163BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {3CCFB033-EDFD-472B-82F7-BCD4AA3163BE}.Release|Any CPU.Build.0 = Release|Any CPU
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {40E0500D-E58D-46F8-8B41-601620A0F39F}
+       EndGlobalSection
+EndGlobal
diff --git a/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.cs b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.cs
new file mode 100755 (executable)
index 0000000..ef58907
--- /dev/null
@@ -0,0 +1,421 @@
+using System;
+using Tizen.Applications;
+using Tizen;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.UIComponents;
+
+namespace NUIWatchApplicationManualTest
+{
+    public class NUIWatchApplicationManualTest : NUIWatchApplication
+    {
+        public void OnButtonPressed()
+        {
+            Log.Fatal("TCT", "Call Exit()");
+            Exit();
+        }
+        protected override void OnPreCreate()
+        {
+            Log.Fatal("TCT", "[TestCase][OnPreCreate][NUIWatchApplication] Pass");
+            base.OnPreCreate();
+        }
+        protected override void OnCreate()
+        {
+            Tizen.NUI.Window.Instance.BackgroundColor = Color.White;
+
+            PushButton exitButton = new PushButton();
+            exitButton.LabelText = "EXIT";
+            exitButton.Size2D = new Size2D(200, 80);
+            exitButton.Position2D = new Position2D(80, 120);
+
+            exitButton.Clicked += (obj, e) =>
+            {
+                Exit();
+                return true;
+            };
+            Window.Instance.Add(exitButton);
+
+            FocusManager.Instance.SetCurrentFocusView(exitButton);
+
+            base.OnCreate();
+
+            Log.Fatal("TCT", "[TestCase][OnCreate][NUIWatchApplication] Pass");
+        }
+
+        protected override void OnResume()
+        {
+            Log.Fatal("TCT", "[TestCase][OnResume][NUIWatchApplication] Pass");
+            base.OnResume();
+        }
+
+        protected new void OnPause()
+        {
+            Log.Fatal("TCT", "[TestCase][OnPause][NUIWatchApplication] Pass");
+            base.OnPause();
+        }
+
+        protected override void OnTerminate()
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnTerminate()");
+            Log.Fatal("TCT", "[TestCase][OnTerminate][NUIWatchApplication] Pass");
+            base.OnTerminate();
+        }
+
+        protected override void OnAppControlReceived(AppControlReceivedEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnAppControlReceived()");
+            if (e.ReceivedAppControl != null)
+            {
+                Log.Fatal("TCT", "[TestCase][Test_Properties] ReceivedAppControl properties is not null");
+                Log.Fatal("TCT", "[TestCase][Test_Properties] ReceivedAppControl Type: " + e.ReceivedAppControl.GetType());
+            }
+            Log.Fatal("TCT", "[TestCase][OnAppControlReceived][NUIWatchApplication] Pass");
+
+            base.OnAppControlReceived(e);
+            ShowPropertiesInfo();
+        }
+
+        protected override void OnLocaleChanged(LocaleChangedEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnLocaleChanged()");
+            if (e.Locale != null)
+            {
+                Log.Fatal("TCT", "[Test_Properties] Locale properties is not null");
+                Log.Fatal("TCT", "[Test_Properties] Current value of Locale : " + e.Locale);
+                Log.Fatal("TCT", "[Test_Properties] Locale type: " + e.Locale.GetType());
+            }
+
+            Log.Fatal("TCT", "[TestCase][OnLocaleChanged][NUIWatchApplication] Pass");
+            base.OnLocaleChanged(e);
+        }
+
+        protected override void OnRegionFormatChanged(RegionFormatChangedEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnRegionFormatChanged()");
+            if (e != null)
+            {
+                Log.Fatal("TCT", "[Test_Properties] Region properties is not null");
+                Log.Fatal("TCT", "[Test_Properties] Current value of Region : " + e.Region);
+                Log.Fatal("TCT", "[Test_Properties] Region type: " + e.Region.GetType());
+            }
+
+            Log.Fatal("TCT", "[TestCase][OnRegionFormatChanged][NUIWatchApplication] Pass");
+            base.OnRegionFormatChanged(e);
+        }
+
+        protected override void OnDeviceOrientationChanged(DeviceOrientationEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnDeviceOrientationChanged()");
+            if (e != null)
+            {
+                Log.Fatal("TCT", "[Test_Properties] DeviceOrientation properties is not null");
+                Log.Fatal("TCT", "[Test_Properties] Current value of DeviceOrientation : " + e.DeviceOrientation);
+                Log.Fatal("TCT", "[Test_Properties] DeviceOrientation type: " + e.DeviceOrientation.GetType());
+            }
+
+            Log.Fatal("TCT", "[TestCase][OnDeviceOrientationChanged][NUIWatchApplication] Pass");
+            base.OnDeviceOrientationChanged(e);
+        }
+
+        protected override void OnLowMemory(LowMemoryEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnLowMemory()");
+            if (e.LowMemoryStatus != LowMemoryStatus.None)
+            {
+                Log.Fatal("TCT", "[Test_Properties] LowMemoryStatus properties is not null");
+                Log.Fatal("TCT", "[Test_Properties] Current value of LowMemoryStatus : " + e.LowMemoryStatus.ToString());
+                Log.Fatal("TCT", "[Test_Properties] LowMemoryStatus type: " + e.LowMemoryStatus.GetType());
+            }
+            Log.Fatal("TCT", "[TestCase][OnLowMemory][NUIWatchApplication] Pass");
+
+            base.OnLowMemory(e);
+        }
+
+        protected override void OnLowBattery(LowBatteryEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnLowBattery()");
+            if (e.LowBatteryStatus != LowBatteryStatus.None)
+            {
+                Log.Fatal("TCT", "[Test_Properties] LowBatteryStatus properties is not null");
+                Log.Fatal("TCT", "[Test_Properties] Current value of LowBatteryStatus : " + e.LowBatteryStatus.ToString());
+                Log.Fatal("TCT", "[Test_Properties] LowBatteryStatus type: " + e.LowBatteryStatus.GetType());
+            }
+
+            Log.Fatal("TCT", "[TestCase][OnLowBattery][NUIWatchApplication] Pass");
+
+            base.OnLowBattery(e);
+        }
+
+        public override void Run(string[] args)
+        {
+            Created += Created_Event_Test;
+            AppControlReceived += AppControlReceived_Event_Test;
+            LocaleChanged += LocaleChanged_Event_Test;
+            LowMemory += LowMemory_Event_Test;
+            LowBattery += LowBattery_Event_Test;
+            Terminated += Terminated_Event_Test;
+            Paused += Paused_Event_Test;
+            Resumed += Resumed_Event_Test;
+            DeviceOrientationChanged += DeviceOrientationCHanged_Event_Test;
+            RegionFormatChanged += RegionFormatChanged_Event_Test;
+            TimeTick += TimeTickEvent;
+            AmbientTick += AmbientTickEvent;
+            AmbientChanged += AmbientChangedEvent;
+
+            Log.Fatal("TCT", "[TestCase][Run][NUIWatchApplication] Pass");
+
+            base.Run(args);
+        }
+
+        private void Terminated_Event_Test(object sender, EventArgs e)
+        {
+            /*
+             * SCENARIO:
+             * Launch app
+             * -> If log show "NUIWatchApplication::Terminated_Event_Test()" -> PASS
+             */
+            Log.Fatal("TCT", "NUIWatchApplication::Terminated_Event_Test");
+            Log.Fatal("TCT", "[TestCase][Terminated_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        private void LocaleChanged_Event_Test(object sender, LocaleChangedEventArgs e)
+        {
+            /*
+             * SCENARIO:
+             * Launch app
+             * -> If log show "NUIWatchApplication::LocaleChanged_Event_Test()" -> PASS
+             */
+            Log.Fatal("TCT", "NUIWatchApplication::LocaleChanged_Event_Test");
+            Log.Fatal("TCT", "NUIWatchApplication::LocaleChanged_Event_Test: new located - " + e.Locale);
+            Log.Fatal("TCT", "[TestCase][LocaleChanged_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        private void RegionFormatChanged_Event_Test(object sender, RegionFormatChangedEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::RegionFormatChanged_Event_Test");
+            Log.Fatal("TCT", "NUIWatchApplication::RegionFormatChanged_Event_Test: new region - " + e.Region);
+            Log.Fatal("TCT", "[TestCase][RegionFormatChanged_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        private void DeviceOrientationCHanged_Event_Test(object sender, DeviceOrientationEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::DeviceOrientationCHanged_Event_Test");
+            Log.Fatal("TCT", "NUIWatchApplication::DeviceOrientationCHanged_Event_Test: new located - " + e.DeviceOrientation);
+            Log.Fatal("TCT", "[TestCase][DeviceOrientationCHanged_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        private void LowMemory_Event_Test(object sender, LowMemoryEventArgs e)
+        {
+            /*
+             * SCENARIO:
+             * Launch app
+             * -> If log show "NUIWatchApplication::LowMemory_Event_Test()" -> PASS
+             */
+            Log.Fatal("TCT", "NUIWatchApplication::LowMemory_Event_Test");
+            if (e.LowMemoryStatus == LowMemoryStatus.None)
+            {
+                Log.Fatal("TCT", "NUIWatchApplication::LowMemory_Event_Test: LowMemoryStatus.None");
+            }
+            else if (e.LowMemoryStatus == LowMemoryStatus.Normal)
+            {
+                Log.Fatal("TCT", "NUIWatchApplication::LowMemory_Event_Test: LowMemoryStatus.Normal");
+            }
+            else if (e.LowMemoryStatus == LowMemoryStatus.SoftWarning)
+            {
+                Log.Fatal("TCT", "NUIWatchApplication::LowMemory_Event_Test: LowMemoryStatus.SoftWarning");
+            }
+            else if (e.LowMemoryStatus == LowMemoryStatus.HardWarning)
+            {
+                Log.Fatal("TCT", "NUIWatchApplication::LowMemory_Event_Test: LowMemoryStatus.HardWarning");
+            }
+            Log.Fatal("TCT", "[TestCase][LowMemory_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        private void LowBattery_Event_Test(object sender, LowBatteryEventArgs e)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::LowBattery_Event_Test");
+
+            if (e.LowBatteryStatus == LowBatteryStatus.CriticalLow)
+            {
+                Log.Fatal("TCT", "NUIWatchApplication::LowBattery_Event_Test: LowMemoryStatus.CriticalLow");
+            }
+            Log.Fatal("TCT", "[TestCase][LowBattery_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        private void AppControlReceived_Event_Test(object sender, AppControlReceivedEventArgs e)
+        {
+            /*
+             * SCENARIO:
+             * Launch app
+             * -> If log show "NUIWatchApplication::AppControlReceived_Event_Test()" -> PASS
+             */
+            Log.Fatal("TCT", "NUIWatchApplication::AppControlReceived_Event_Test");
+            Log.Fatal("TCT", "[TestCase][AppControlReceived_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        private void Created_Event_Test(object sender, EventArgs e)
+        {
+            /*
+             * SCENARIO:
+             * Launch app
+             * -> If log show "NUIWatchApplication::Created_Event_Test()" -> PASS
+             */
+            Log.Fatal("TCT", "NUIWatchApplication::Created_Event_Test");
+            Log.Fatal("TCT", "[TestCase][Created_Event_Test][NUIWatchApplication] Pass");
+        }
+        public void Paused_Event_Test(object sender, EventArgs e)
+        {
+            /*
+             * PRECONDITION
+             * 1. Open NUIWatchApplication app.
+             * 2. Open other app.
+             */
+            Log.Fatal("TCT", "[TestCase][Paused_Event_Test][NUIWatchApplication] Pass");
+        }
+        public void Resumed_Event_Test(object sender, EventArgs e)
+        {
+            /*
+             * PRECONDITION
+             * 1. Open NUIWatchApplication app.
+             * 2. Open other app.
+             * 3. Long press HOME button and tap to NUIApplicaton shortcut.
+             */
+            Log.Fatal("TCT", "NUIWatchApplication Resumed event occur!");
+            Log.Fatal("TCT", "[TestCase][Resumed_Event_Test][NUIWatchApplication] Pass");
+        }
+
+        public override void Exit()
+        {
+            Log.Fatal("TCT", "[TestCase][Exit][NUIWatchApplication] Pass");
+            base.Exit();
+        }
+        void ShowPropertiesInfo()
+        {
+            if (base.ApplicationInfo != null)
+            {
+                Log.Fatal("TCT", "[Info] ApplicationInfo is not null");
+                Log.Fatal("TCT", "[Info] ApplicationInfo.ApplicationId = " + base.ApplicationInfo.ApplicationId);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.ApplicationType = " + base.ApplicationInfo.ApplicationType);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.ExecutablePath = " + base.ApplicationInfo.ExecutablePath);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.ExternalSharedDataPath = " + base.ApplicationInfo.ExternalSharedDataPath);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.IconPath = " + base.ApplicationInfo.IconPath);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.IsNoDisplay = " + base.ApplicationInfo.IsNoDisplay);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.IsOnBoot = " + base.ApplicationInfo.IsOnBoot);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.IsPreload = " + base.ApplicationInfo.IsPreload);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.Label = " + base.ApplicationInfo.Label);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.Metadata Count = " + base.ApplicationInfo.Metadata.Count);
+                foreach (var item in base.ApplicationInfo.Metadata)
+                {
+                    Log.Fatal("TCT", "[Info] ApplicationInfo.Metadata, Key: " + item.Key + " Value: " + item.Value);
+                }
+                Log.Fatal("TCT", "[Info] ApplicationInfo.PackageId = " + base.ApplicationInfo.PackageId);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.SharedDataPath = " + base.ApplicationInfo.SharedDataPath);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.SharedResourcePath = " + base.ApplicationInfo.SharedResourcePath);
+                Log.Fatal("TCT", "[Info] ApplicationInfo.SharedTrustedPath = " + base.ApplicationInfo.SharedTrustedPath);
+            }
+            if (base.DirectoryInfo != null)
+            {
+                Log.Fatal("TCT", "[Info] DirectoryInfo is not null");
+                Log.Fatal("TCT", "[Info] DirectoryInfo.Cache = " + base.DirectoryInfo.Cache);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.Data = " + base.DirectoryInfo.Data);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.ExpansionPackageResource = " + base.DirectoryInfo.ExpansionPackageResource);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.ExternalCache = " + base.DirectoryInfo.ExternalCache);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.ExternalData = " + base.DirectoryInfo.ExternalData);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.ExternalSharedData = " + base.DirectoryInfo.ExternalSharedData);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.Resource = " + base.DirectoryInfo.Resource);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.SharedData = " + base.DirectoryInfo.SharedData);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.SharedResource = " + base.DirectoryInfo.SharedResource);
+                Log.Fatal("TCT", "[Info] DirectoryInfo.SharedTrusted = " + base.DirectoryInfo.SharedTrusted);
+            }
+
+            Log.Fatal("TCT", "[Info] Current == this : " + (Current == this));
+            Log.Fatal("TCT", "[Info] Current.ApplicationInfo.ApplicationId = " + Current.ApplicationInfo.ApplicationId);
+        }
+
+        protected override void OnTimeTick(TimeTickEventArgs time)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnTimeTick()");
+            Log.Fatal("TCT", "[TestCase][OnTimeTick][NUIWatchApplication] Pass");
+            base.OnTimeTick(time);
+
+            //int hour = time.Time.Hour24;
+            //int min = time.Time.Minute;
+            //int sec = time.Time.Second;
+
+            //if (sec % 10 == 5)
+            //{
+            //    Log.Warn("WATCH", "[TestCase][TCT] TimeEventArgs hour : " + hour + " : " + min + " : " + sec);
+            //}
+
+            //string currentTime;
+
+            //if (hour < 10)
+            //    currentTime = "0" + hour.ToString() + " : ";
+            //else
+            //    currentTime = hour.ToString() + " : ";
+
+            //if (min < 10)
+            //    currentTime += "0" + min.ToString() + " : ";
+            //else
+            //    currentTime += min.ToString() + " : ";
+
+
+            //if (sec < 10)
+            //    currentTime += "0" +  sec.ToString();
+            //else
+            //    currentTime += sec.ToString();
+
+            //_time.Text = currentTime;
+        }
+
+        protected override void OnAmbientTick(AmbientTickEventArgs time)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnAmbientTick()");
+            Log.Fatal("TCT", "[TestCase][OnAmbientTick][NUIWatchApplication] Pass");
+            base.OnAmbientTick(time);
+        }
+
+        protected override void OnAmbientChanged(AmbientChangedEventArgs mode)
+        {
+            Log.Fatal("TCT", "NUIWatchApplication::OnAmbientChanged()");
+            Log.Fatal("TCT", "[TestCase][OnAmbientChanged][NUIWatchApplication] Pass");
+            base.OnAmbientChanged(mode);
+        }
+
+        private void AmbientChangedEvent(object sender, EventArgs e)
+        {
+            Log.Warn("WATCH", "[TestCase][TCT] AmbientChangedEvent");
+        }
+
+        private void AmbientTickEvent(object sender, EventArgs e)
+        {
+            Log.Warn("WATCH", "[TestCase][TCT] AmbientTickEvent");
+        }
+
+        private void TimeTickEvent(object sender, EventArgs e)
+        {
+            Log.Warn("WATCH", "[TestCase][TCT] TimeTickEvent");
+        }
+
+        private void PausedEvent(object sender, EventArgs e)
+        {
+            Log.Warn("WATCH", "[TestCase][TCT] PausedEvent");
+        }
+
+        private void ResumedEvent(object sender, EventArgs e)
+        {
+            Log.Warn("WATCH", "[TestCase][TCT] ResumedEvent");
+        }
+    }
+
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Log.Warn("WATCH", "[TestCase][TCT] Main ");
+
+            NUIWatchApplicationManualTest app = new NUIWatchApplicationManualTest();
+            app.Run(args);
+        }
+    }
+}
diff --git a/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.csproj b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.csproj
new file mode 100755 (executable)
index 0000000..b15af37
--- /dev/null
@@ -0,0 +1,44 @@
+<Project>
+  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+
+  <!-- Setting Tizen Extension Path -->
+  <PropertyGroup Label="Globals">
+    <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
+  </PropertyGroup>
+
+  <!-- Import Tizen property in Tizen.NET SDK -->
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" />
+
+  <!-- Property Group for .NET Core Project -->
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugType>portable</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>None</DebugType>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="lib\" />
+    <Folder Include="res\" />
+  </ItemGroup>
+
+  <!-- Include Nuget Package for Tizen Project building -->
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="6.0.0.14677" />
+    <PackageReference Include="Tizen.NET.Sdk" Version="1.0.1" />
+  </ItemGroup>
+
+  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" />
+
+  <!-- Install Check 'Visual Studio for Tizen' for developing on Visual Studio -->
+  <Target Name="TizenVsixInstallCheck" BeforeTargets="CompileDesignTime">
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props is not exist.&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets is not exist.\&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+  </Target>
+</Project>
diff --git a/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/shared/res/NUIWatchApplicationManualTest.png b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/shared/res/NUIWatchApplicationManualTest.png
new file mode 100755 (executable)
index 0000000..9666482
Binary files /dev/null and b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/shared/res/NUIWatchApplicationManualTest.png differ
diff --git a/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/tizen-manifest.xml b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..55dc8b1
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="org.tizen.example.NUIWatchApplicationManualTest" version="1.0.0" api-version="5" xmlns="http://tizen.org/ns/packages">
+    <profile name="wearable" />
+    <privileges>
+        <privilege>http://tizen.org/privilege/alarm.set</privilege>
+    </privileges>
+    <provides-appdefined-privileges />
+</manifest>
diff --git a/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/org.tizen.example.NUIWatchApplicationManualTest-1.0.0.tpk b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/org.tizen.example.NUIWatchApplicationManualTest-1.0.0.tpk
new file mode 100755 (executable)
index 0000000..8908660
Binary files /dev/null and b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/org.tizen.example.NUIWatchApplicationManualTest-1.0.0.tpk differ
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/ManualTestPage.cs b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/ManualTestPage.cs
new file mode 100755 (executable)
index 0000000..a00fc36
--- /dev/null
@@ -0,0 +1,727 @@
+/*
+* Copyright (c) 2017 Samsung Electronics Co., Ltd.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using NUnitLite.TUnit;
+using NUnit.Framework.Interfaces;
+using NUnit.Framework.TUnit;
+using System.Reflection;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.UIComponents;
+
+namespace Tizen.NUI.Wearable.Tests
+{
+    class ManualTestNUI
+    {
+        private List<string> _tcIDList;
+        private List<ItemData> _listItem;
+        private TSettings _tsettings;
+        private TRunner _tRunner;
+        private NavigationButton _pressButton = NavigationButton.NA;
+        private PushButton passButton, failButton, blockButton, homeButton, preButton, nextButton, doneButton;
+        private TextLabel notRun;
+        private const string STEP_ATTRIBUTE_NAME = "NUnit.Framework.StepAttribute";
+        private const string PRECONDITION_ATTRIBUTE_NAME = "NUnit.Framework.PreconditionAttribute";
+        private const string POSTCONDITION_ATTRIBUTE_NAME = "NUnit.Framework.PostconditionAttribute";
+        //For TV KantM
+        //private static float PointSize = 30.0f;
+        //private static float ButtonSizeWidth = 200;
+        private static float PointSize = 5.0f;
+        private static float PixelSize = 20.0f;
+
+
+        //Save the information of every single test case
+        private List<TestcaseInfo> TCInfoList;
+        private List<string> CurrentTCInfo;
+
+        private static ManualTestNUI instance;
+        private static Object lockObject = new object();
+
+        //Show the result of all the test case
+        private TextLabel _summaryLabel;
+        ScrollView _scrollView;
+        private View _initView;
+        private View _detailView;
+        private TableView _initList;
+        private TableView _detailList;
+        private View _caseView;
+        private TableView _buttonContainer;
+        private TableView _firstPageContainer;
+        private PushButton run;
+        private PushButton runButton;
+        private PushButton[] buttonList;
+
+        //Always save the current TC number;
+        private int CurrentTCNum = 0;
+
+        private const float RowSpacing = 0.0f;
+        private const float TopMargin = 0.0f;
+        private const float BottomMargin = 0.0f;
+        private const float SideMargin = 5.0f;
+        private const float ItemHeight = 30.0f;
+
+        public static ManualTestNUI GetInstance()
+        {
+            lock (lockObject)
+            {
+                if (instance == null)
+                {
+                    instance = new ManualTestNUI();
+                }
+            }
+            return instance;
+        }
+
+        private ManualTestNUI()
+        {
+            Initialize();
+        }
+        public void Initialize()
+        {
+            Tizen.Log.Fatal("NUI", "NUI Initialize");
+            PointSize = (1.0f / Window.Instance.Dpi.Length()) * 2000.0f;
+            RunType.Value = RunType.MANUAL;
+            _tRunner = new TRunner();
+            _tRunner.LoadTestsuite();
+            _tRunner.SingleTestDone += OnSingleTestDone;
+            _tcIDList = new List<string>();
+            _listItem = new List<ItemData>();
+            int count = 0;
+            foreach (KeyValuePair<string, ITest> pair in _tRunner.GetTestList())
+            {
+                _listItem.Add(new ItemData { No = count, TCName = pair.Key, Result = StrResult.NOTRUN });
+                _tcIDList.Add(pair.Key);
+                count++;
+            }
+            Tizen.Log.Fatal("NUI", "TCT : count:" + count.ToString());
+            foreach (String nameTc in _tcIDList)
+            {
+                Tizen.Log.Fatal("NUI", "TCT : TCName:" + nameTc.ToString());
+            }
+
+
+            _tsettings = TSettings.GetInstance();
+            _tsettings.IsManual = true;
+
+            InitData();
+            _caseView = new View();
+            Window.Instance.GetDefaultLayer().Add(_caseView);
+            Window window = Window.Instance;
+            window.BackgroundColor = Color.White;
+
+            _summaryLabel = new TextLabel();
+            _summaryLabel.PixelSize = PixelSize;
+            _summaryLabel.Size2D = new Size2D((int)Window.Instance.Size.Width, 60);
+            _summaryLabel.ParentOrigin = Position.ParentOriginTopLeft;
+            _summaryLabel.PivotPoint = PivotPoint.TopLeft;
+            _summaryLabel.Position = new Position(0, 5, 0);
+            _summaryLabel.HorizontalAlignment = HorizontalAlignment.Center;
+            _summaryLabel.VerticalAlignment = VerticalAlignment.Center;
+
+            SetSummaryResult();
+            window.GetDefaultLayer().Add(_summaryLabel);
+
+            _initView = new View();
+            _initView.Size2D = new Size2D((int)Window.Instance.Size.Width, (int)Window.Instance.Size.Height - 65);
+            _initView.ParentOrigin = Position.ParentOriginTopLeft;
+            _initView.PivotPoint = PivotPoint.TopLeft;
+            _initView.Position = new Position(0.0f, 70.0f, 0.0f);
+            InitializeFirstPage();
+            _initView.Show();
+
+            _detailView = new View();
+            _initView.Size2D = new Size2D((int)Window.Instance.Size.Width, (int)Window.Instance.Size.Height - 65);
+            _detailView.ParentOrigin = Position.ParentOriginTopLeft;
+            _detailView.PivotPoint = PivotPoint.TopLeft;
+            _detailView.Position = new Position(0.0f, 70.0f, 0.0f);
+            InitializeDetailPage();
+            _detailView.Hide();
+
+            window.GetDefaultLayer().Add(_initView);
+            window.GetDefaultLayer().Add(_detailView);
+
+            FocusManager.Instance.SetCurrentFocusView(run);
+        }
+
+        void InitializeFirstPage()
+        {
+            //Create Run Button, when you Click it, then the first test case will be executed.
+            doneButton = new PushButton();
+            doneButton.Focusable = true;
+            doneButton.LabelText = "Done";
+            doneButton.Clicked += (obj, ee) =>
+            {
+                TSettings.GetInstance().SubmitManualResult();
+                return false;
+            };
+
+            run = new PushButton();
+            run.LabelText = "Runner";
+            run.Clicked += (obj, ee) =>
+            {
+                Tizen.Log.Fatal("NUI", "Check all the test case from the first one.");
+                CurrentTCNum = 0;
+                _initView.Hide();
+                _caseView.Hide();
+                UpdateDetailPage();
+                _detailView.Show();
+                FocusManager.Instance.SetCurrentFocusView(runButton);
+                return false;
+            };
+
+            run.RightFocusableView = doneButton;
+            doneButton.LeftFocusableView = run;
+
+            //To show all the test case information(Number _className._TCName  [result]).
+            _initList = new TableView((uint)_tcIDList.Count, 1);
+            _initList.Focusable = true;
+            _initList.CellPadding = new Vector2(0, 0);
+            _initList.Size2D = new Size2D(Window.Instance.Size.Width - 50, _tcIDList.Count * 50);
+            _initList.ParentOrigin = Position.ParentOriginTopLeft;
+            _initList.PivotPoint = PivotPoint.TopLeft;
+            _initList.Position = new Position(0.0f, 0.0f, 0.0f);
+            CreateInitList();
+
+            run.DownFocusableView = _initList;
+            doneButton.DownFocusableView = _initList;
+            _initList.UpFocusableView = run;
+
+            _firstPageContainer = new TableView(2, 2);
+            _firstPageContainer.PivotPoint = Position.PivotPointTopLeft;
+            _firstPageContainer.ParentOrigin = Position.ParentOriginTopLeft;
+            _firstPageContainer.Position = new Position(0, 3, 0);
+            _firstPageContainer.Size2D = new Size2D((int)Window.Instance.Size.Width - 200, 200);
+            _firstPageContainer.Focusable = (true);
+            _firstPageContainer.SetCellAlignment(new TableView.CellPosition(0, 0), HorizontalAlignmentType.Right, VerticalAlignmentType.Center);
+            _firstPageContainer.SetCellAlignment(new TableView.CellPosition(0, 1), HorizontalAlignmentType.Center, VerticalAlignmentType.Center);
+            _firstPageContainer.SetCellAlignment(new TableView.CellPosition(1), HorizontalAlignmentType.Center, VerticalAlignmentType.Center);
+            _firstPageContainer.CellPadding = new Vector2(0, 0);
+
+            _firstPageContainer.AddChild(doneButton, new TableView.CellPosition(0, 0));
+            _firstPageContainer.AddChild(run, new TableView.CellPosition(0, 1));
+
+
+            _scrollView = new ScrollView();
+            _scrollView.ClippingMode = ClippingModeType.ClipChildren;
+            _scrollView.BackgroundColor = Color.Transparent;
+            _scrollView.Size2D = new Size2D(Window.Instance.Size.Width, Window.Instance.Size.Height);
+            _scrollView.Position2D = new Position2D(0, 0);
+            _scrollView.Scrolling = true;
+
+            PropertyMap rulerMap = new PropertyMap();
+            rulerMap.Add((int)ScrollModeType.XAxisScrollEnabled, new PropertyValue(false));
+            rulerMap.Add((int)ScrollModeType.YAxisScrollEnabled, new PropertyValue(true));
+            rulerMap.Add((int)ScrollModeType.YAxisSnapToInterval, new PropertyValue(100));
+            rulerMap.Add((int)ScrollModeType.YAxisScrollBoundary, new PropertyValue(60 * (_tcIDList.Count+1)));
+            _scrollView.ScrollMode = rulerMap;
+
+            _scrollView.Add(_initList);
+            _firstPageContainer.AddChild(_scrollView, new TableView.CellPosition(1, 0, 1, 2));
+
+            _initView.Add(_firstPageContainer);
+            Tizen.Log.Fatal("NUI", "TCT : InitializeFirstPage:");
+            FocusManager.Instance.SetCurrentFocusView(run);
+        }
+
+        //Update the Test Page before you want to show it(Click Run/Pre/nect Button, or Click on item in the List).
+        void UpdateDetailPage()
+        {
+            UpdateCurrentTCInfo();
+            Tizen.Log.Fatal("NUI", "UpdateDetailPage:");
+            CreateTestCase();
+        }
+
+        void InitializeDetailPage()
+        {
+            _detailList = new TableView(23, 1);
+            _detailList.Focusable = true;
+            _detailList.Size2D = new Size2D(Window.Instance.Size.Width - 50, 500);
+            _detailList.ParentOrigin = Position.ParentOriginTopLeft;
+            _detailList.PivotPoint = PivotPoint.TopLeft;
+            _detailList.Position = new Position(0.0f, 0.0f, 0.0f);
+            CreateDetailList();
+            _detailView.Add(_detailList);
+
+            //To Place the function button, such as PASS, FAIL.....
+            _buttonContainer = new TableView(2, 4);
+            _buttonContainer.SetSizeModeFactor(new Vector3(0.0f, 0.9f, 0.0f));
+            _buttonContainer.PivotPoint = PivotPoint.TopCenter;
+            _buttonContainer.ParentOrigin = Position.ParentOriginTopLeft;
+            _buttonContainer.Position = new Position(0, Window.Instance.Size.Height * 0.6f, 0);
+            _buttonContainer.Size2D = new Size2D((int)Window.Instance.Size.Width, 300);
+            _buttonContainer.Focusable = (true);
+            CreateButtons();
+            _detailView.Add(_buttonContainer);
+        }
+
+        //To show the detail information of the test case
+        //Preconditions
+        //Steps
+        //PostConditions
+        void CreateTestCase()
+        {
+            if(_detailList)
+            {
+                _detailView.Remove(_detailList);
+                _detailList.Dispose();
+            }
+            Tizen.Log.Fatal("NUI", "Print the CurrentTCNum here::" + CurrentTCNum);
+            _detailList = new TableView(10, 1);
+            _detailList.Focusable = true;
+            _detailList.Size2D = new Size2D(Window.Instance.Size.Width - 50, 400);
+            _detailList.ParentOrigin = Position.ParentOriginTopLeft;
+            _detailList.PivotPoint = PivotPoint.TopLeft;
+            _detailList.Position = new Position(0.0f, 0.0f, 0.0f);
+            CreateDetailList();
+            _detailView.Add(_detailList);
+            if (notRun)
+            {
+                notRun.Text = _listItem[CurrentTCNum].Result;
+            }
+        }
+
+        //Create all the function buttons here, such as PASS, FAIL.....
+        void CreateButtons()
+        {
+
+            notRun = new TextLabel();
+            notRun.SizeWidth = 200;
+            notRun.PixelSize = PixelSize;
+            notRun.HorizontalAlignment = HorizontalAlignment.Begin;
+            notRun.Text = "Not Run";
+
+            passButton = new PushButton();
+            passButton.Focusable = true;
+            passButton.LabelText = "Pass";
+            passButton.Clicked += (obj, ee) =>
+            {
+
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.PASS;
+                    ManualTest.Confirm();
+                }
+                Tizen.Log.Fatal("TBT", "Pass Button clicked!");
+                return true;
+            };
+
+            failButton = new PushButton();
+            failButton.Focusable = true;
+            failButton.LabelText = "Fail";
+            failButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.FAIL;
+                    ManualTest.Confirm();
+                }
+                Tizen.Log.Fatal("TBT", "Fail Button clicked!");
+                return true;
+            };
+
+            blockButton = new PushButton();
+            blockButton.Focusable = true;
+            blockButton.LabelText = "Block";
+            blockButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.BLOCK;
+                    ManualTest.Confirm();
+                }
+                return true;
+            };
+
+            runButton = new PushButton();
+            runButton.Focusable = true;
+            runButton.LabelText = "Run";
+            runButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                //should update the _caseView by the test case
+                _pressButton = NavigationButton.NA;
+                _tsettings.Testcase_ID = _tcIDList[CurrentTCNum];
+                _tsettings.TCResult = "";
+                _tRunner.Execute();
+                return true;
+            };
+
+            homeButton = new PushButton();
+            homeButton.Focusable = true;
+            homeButton.LabelText = "Home";
+            homeButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                _pressButton = NavigationButton.Home;
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.NOTRUN;
+                    ManualTest.Confirm();
+                }
+                else
+                {
+                    _detailView.Hide();
+                    _initView.Show();
+                    FocusManager.Instance.SetCurrentFocusView(run);
+                }
+                return true;
+            };
+
+            preButton = new PushButton();
+            preButton.Focusable = true;
+            preButton.LabelText = "<<";
+            preButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.NOTRUN;
+                    ManualTest.Confirm();
+                }
+                else
+                {
+                    if (CurrentTCNum != 0)
+                    {
+                        CurrentTCNum--;
+                        notRun.Text = _listItem[CurrentTCNum].Result;
+                        ManualTest.Confirm();
+                        UpdateDetailPage();
+                    }
+                }
+                return true;
+            };
+            nextButton = new PushButton();
+            nextButton.Focusable = true;
+            nextButton.LabelText = ">>";
+            nextButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.NOTRUN;
+                    ManualTest.Confirm();
+                }
+                if (CurrentTCNum + 1 != ResultNumber.Total)
+                {
+                    Tizen.Log.Fatal("NUI", "Print the [not run] CurrentTCNum::" + CurrentTCNum);
+                    CurrentTCNum++;
+                    notRun.Text = _listItem[CurrentTCNum].Result;
+                    UpdateDetailPage();
+                }
+                return true;
+            };
+
+            _buttonContainer.AddChild(passButton, new TableView.CellPosition(0, 0));
+            _buttonContainer.AddChild(failButton, new TableView.CellPosition(0, 1));
+            _buttonContainer.AddChild(blockButton, new TableView.CellPosition(0, 2));
+            _buttonContainer.AddChild(runButton, new TableView.CellPosition(0, 3));
+            _buttonContainer.AddChild(homeButton, new TableView.CellPosition(1, 0));
+            _buttonContainer.AddChild(notRun, new TableView.CellPosition(1, 1));
+            _buttonContainer.AddChild(preButton, new TableView.CellPosition(1, 2));
+            _buttonContainer.AddChild(nextButton, new TableView.CellPosition(1, 3));
+        }
+
+        public void ExecuteTC(View view)
+        {
+            Tizen.Log.Fatal("NUI", "Execute the manual test case!");
+
+            _caseView = view;
+            _caseView.ParentOrigin = Position.ParentOriginTopLeft;
+            _caseView.PivotPoint = PivotPoint.TopLeft;
+            _caseView.Position = new Position(20.0f, 700.0f, 0.0f);
+            _detailView.Add(_caseView);
+            _caseView.KeyEvent += OnKeyPressed;
+            _caseView.Show();
+            FocusManager.Instance.SetCurrentFocusView(_caseView);
+        }
+
+        private bool OnKeyPressed(object source, View.KeyEventArgs e)
+        {
+            Tizen.Log.Fatal("NUI", "CaseView OnKeyPressed 1 Down..." + e.Key.KeyPressedName);
+
+            if (e.Key.State == Key.StateType.Down)
+            {
+                if (e.Key.KeyPressedName == "Down")
+                {
+                    FocusManager.Instance.SetCurrentFocusView(passButton);
+
+                }
+            }
+            return false;
+        }
+
+        private bool OnRunnerKeyPressed(object source, View.KeyEventArgs e)
+        {
+            Tizen.Log.Fatal("NUI", "Runner OnKeyPressed Down..." + e.Key.KeyPressedName);
+
+            if (e.Key.State == Key.StateType.Down)
+            {
+                if (e.Key.KeyPressedName == "Up")
+                {
+                    Tizen.Log.Fatal("NUI", "Set current focus view :: doneButton");
+                    FocusManager.Instance.SetCurrentFocusView(doneButton);
+                }
+            }
+            return false;
+        }
+
+        private bool OnDownButtonKeyPressed(object source, View.KeyEventArgs e)
+        {
+            Tizen.Log.Fatal("NUI", "DownButton OnKeyPressed Down..." + e.Key.KeyPressedName);
+
+            if (e.Key.State == Key.StateType.Down)
+            {
+                if (e.Key.KeyPressedName == "Down")
+                {
+                    Tizen.Log.Fatal("NUI", "Set current focus view :: run");
+                    FocusManager.Instance.SetCurrentFocusView(run);
+                }
+            }
+            return false;
+        }
+
+        private void Clear()
+        {
+            if (_caseView.IsOnWindow == true)
+            {
+                _detailView.Remove(_caseView);
+            }
+        }
+
+        public void ClearTestCase(View view)
+        {
+            FocusManager.Instance.SetCurrentFocusView(runButton);
+            Tizen.Log.Fatal("NUI", "Clear test case!");
+            _detailView.Remove(view);
+        }
+
+        //Use to update the _summaryLabel.
+        private void SetSummaryResult()
+        {
+            ResultNumber.NotRun = ResultNumber.Total - ResultNumber.Pass - ResultNumber.Fail - ResultNumber.Block;
+            _summaryLabel.Text = "Total : " + ResultNumber.Total + ", Pass : " + ResultNumber.Pass + ", Fail : " + ResultNumber.Fail + ", Block : " + ResultNumber.Block + ", Not Run : " + ResultNumber.NotRun;
+        }
+
+        private PropertyMap CreateTextMap(float pointSize, string text)
+        {
+            PropertyMap map = new PropertyMap();
+            map.Insert("visualType", new PropertyValue("TEXT"));
+            map.Insert("pointSize", new PropertyValue(pointSize));
+            map.Insert("text", new PropertyValue(text));
+            return map;
+        }
+
+        private void CreateInitList()
+        {
+            int tcNum = _tcIDList.Count;
+            Tizen.Log.Fatal("NUI", "_tcIDList.Count: " + _tcIDList.Count);
+            buttonList = new PushButton[tcNum];
+            for (int index = 0; index < tcNum; index++)
+            {
+                string name = _tcIDList[index];
+                string testcaseName = "#." + (index + 1).ToString() + name;
+                string resultText = "[" + _listItem[(int)index].Result + "]";
+                string text = testcaseName + resultText;
+                buttonList[index] = new PushButton();
+                buttonList[index].CellIndex = new Vector2(index, 0);
+                buttonList[index].Name = index.ToString();
+                buttonList[index].Focusable = true;
+                buttonList[index].Label = CreateTextMap(PointSize, text);
+                buttonList[index].ParentOrigin = Position.ParentOriginTopLeft;
+                buttonList[index].PivotPoint = PivotPoint.TopLeft;
+                buttonList[index].Position = new Position(0.0f, 0.0f, 0.0f);
+                buttonList[index].Clicked += (obj, e) =>
+                {
+                    PushButton button = obj as PushButton;
+
+                    Tizen.Log.Fatal("TBT", "Item clicked!!::" + button.Name);
+                    CurrentTCNum = int.Parse(button.Name);
+                    _initView.Hide();
+                    UpdateDetailPage();
+                    _caseView.Hide();
+                    _detailView.Show();
+                    FocusManager.Instance.SetCurrentFocusView(runButton);
+                    return false;
+                };
+                buttonList[index].FocusGained += ManualTestNUI_FocusGained;
+                _initList.AddChild(buttonList[index], new TableView.CellPosition((uint)index, 0));
+
+            }
+        }
+
+        private void ManualTestNUI_FocusGained(object sender, EventArgs e)
+        {
+            var item = sender as PushButton;
+            if (item != null)
+            {
+                uint idx = UInt32.Parse(item.Name);
+                _scrollView.ScrollTo(new Vector2(0, 30 * idx));
+            }
+        }
+
+        private void CreateDetailList()
+        {
+            Tizen.Log.Fatal("NUI", "Print the CreateDetailList::");
+            int senNum = CurrentTCInfo.Count;
+            for (int index = 0; index < senNum; index++)
+            {
+                TextLabel description = new TextLabel();
+                description.ParentOrigin = Position.ParentOriginTopLeft;
+                description.PivotPoint = PivotPoint.TopLeft;
+                description.Position = new Position(0.0f, 0.0f, 0.0f);
+                description.Size2D = new Size2D((int)Window.Instance.Size.Width - 20, 50);
+                description.HorizontalAlignment = HorizontalAlignment.Begin;
+                description.PointSize = PointSize;
+                description.Text = CurrentTCInfo[(int)index];
+                _detailList.AddChild(description, new TableView.CellPosition((uint)index, 0));
+            }
+        }
+
+        //Init all the data, should be offered by Test Framework
+        void InitData()
+        {
+            ResultNumber.Total = _tcIDList.Count;
+            ResultNumber.Pass = 0;
+            ResultNumber.Fail = 0;
+            ResultNumber.Block = 0;
+            TCInfoList = new List<TestcaseInfo>();
+            foreach (KeyValuePair<string, ITest> pair in _tRunner.GetTestList())
+            {
+                List<string> preconditions = new List<string>();
+                preconditions.Add("Preconditions:");
+                List<string> steps = new List<string>();
+                steps.Add("Steps:");
+                List<string> postconditions = new List<string>();
+                postconditions.Add("Postconditions:\n");
+                IEnumerator<CustomAttributeData> customAttributes = pair.Value.Method.MethodInfo.CustomAttributes.GetEnumerator();
+                while (customAttributes.MoveNext())
+                {
+                    if (customAttributes.Current.AttributeType.FullName.Equals(STEP_ATTRIBUTE_NAME))
+                    {
+                        steps.Add(customAttributes.Current.ConstructorArguments[0].Value + "." + customAttributes.Current.ConstructorArguments[1].Value);
+                    }
+                    else if (customAttributes.Current.AttributeType.FullName.Equals(PRECONDITION_ATTRIBUTE_NAME))
+                    {
+                        preconditions.Add(customAttributes.Current.ConstructorArguments[0].Value + "." + customAttributes.Current.ConstructorArguments[1].Value);
+                    }
+                    else if (customAttributes.Current.AttributeType.FullName.Equals(POSTCONDITION_ATTRIBUTE_NAME))
+                    {
+                        postconditions.Add(customAttributes.Current.ConstructorArguments[0].Value + "." + customAttributes.Current.ConstructorArguments[1].Value);
+                    }
+                }
+                TCInfoList.Add(new TestcaseInfo
+                {
+                    TestcaseName = pair.Key,
+                    Preconditions = preconditions,
+                    Steps = steps ,
+                    Postconditions = postconditions,
+                });
+            }
+            UpdateCurrentTCInfo();
+        }
+
+        //The data in CurrentTCInfo list will be show in _detailList.
+        void UpdateCurrentTCInfo()
+        {
+            CurrentTCInfo = new List<string>();
+            Tizen.Log.Fatal("NUI", "Print the CurrentTCNum::" + CurrentTCNum);
+            CurrentTCInfo.Add("DESCRIPTION:#" + (CurrentTCNum + 1));
+            string[] str = TCInfoList[CurrentTCNum].TestcaseName.Split('.');
+            CurrentTCInfo.Add("CLASS:" + str[str.Length - 2]);
+            CurrentTCInfo.Add("METHOD:" + str[str.Length - 1]);
+            for(int index = 0; index < TCInfoList[CurrentTCNum].Preconditions.Count; index++)
+            {
+                CurrentTCInfo.Add(TCInfoList[CurrentTCNum].Preconditions[index]);
+            }
+            for(int index = 0; index < TCInfoList[CurrentTCNum].Steps.Count; index++ )
+            {
+                CurrentTCInfo.Add(TCInfoList[CurrentTCNum].Steps[index]);
+            }
+            for(int index = 0; index < TCInfoList[CurrentTCNum].Postconditions.Count; index++ )
+            {
+                CurrentTCInfo.Add(TCInfoList[CurrentTCNum].Postconditions[index]);
+            }
+            Tizen.Log.Fatal("NUI", "The CurrentTCNum::" + CurrentTCNum);
+        }
+
+        private void OnSingleTestDone(object sender, SingleTestDoneEventArgs e)
+        {
+            //Test when will this event will be triggered
+            Tizen.Log.Fatal("NUI", "OnSingleTestDone has been triggered!");
+            // check old result
+            if (_listItem[CurrentTCNum].Result.Contains(StrResult.FAIL))
+            {
+                ResultNumber.Fail = ResultNumber.Fail - 1;
+            }
+            else if (_listItem[CurrentTCNum].Result.Contains(StrResult.PASS))
+            {
+                ResultNumber.Pass = ResultNumber.Pass - 1;
+            }
+            else if (_listItem[CurrentTCNum].Result.Contains(StrResult.BLOCK))
+                ResultNumber.Block = ResultNumber.Block - 1;
+
+            // Update new result
+            _listItem[CurrentTCNum].Result = e.Result;
+            if (e.Result.Contains(StrResult.PASS))
+            {
+                ResultNumber.Pass += 1;
+            }
+            else if (e.Result.Contains(StrResult.FAIL))
+            {
+                ResultNumber.Fail += 1;
+            }
+            else if (e.Result.Contains(StrResult.BLOCK))
+            {
+                ResultNumber.Block += 1;
+            }
+
+            _initList.RemoveChildAt(new TableView.CellPosition((uint)CurrentTCNum, 0));
+            string name = _tcIDList[CurrentTCNum];
+            string testcaseName = "#." + (CurrentTCNum + 1).ToString() + name;
+            string resultText = "[" + _listItem[(int)CurrentTCNum].Result + "]";
+            string text =  testcaseName + resultText;
+            PushButton button = new PushButton();
+            button.CellIndex = new Vector2(CurrentTCNum, 0);
+            button.Name = CurrentTCNum.ToString();
+            button.Focusable = true;
+            button.Label = CreateTextMap(PointSize, text);
+            button.ParentOrigin = Position.ParentOriginTopLeft;
+            button.PivotPoint = PivotPoint.TopLeft;
+            button.Position = new Position(0.0f, 0.0f, 0.0f);
+            button.Clicked += (obj, ee) =>
+            {
+                Tizen.Log.Fatal("NUI", "Item clicked clicked!!::" + ((int)button.CellIndex.X).ToString());
+                CurrentTCNum = (int)button.CellIndex.X;
+                _initView.Hide();
+                UpdateDetailPage();
+                _caseView.Hide();
+                _detailView.Show();
+                FocusManager.Instance.SetCurrentFocusView(runButton);
+                return false;
+            };
+            _initList.AddChild(button, new TableView.CellPosition((uint)CurrentTCNum, 0));
+            SetSummaryResult();
+            notRun.Text = _listItem[CurrentTCNum].Result;
+        }
+    }
+}
+
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Program.cs b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Program.cs
new file mode 100755 (executable)
index 0000000..68bc5da
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using System;
+using NUnitLite.TUnit;
+using Tizen.NUI;
+
+namespace Tizen.NUI.Wearable.Tests
+{
+
+    public class App : Tizen.NUI.NUIApplication
+    {
+        protected override void OnCreate()
+        {
+            Window window = Window.Instance;
+            if(ManualTest.IsWearable())
+            {
+                WearableManualTestNUI.GetInstance();
+            }
+            else
+            {
+                ManualTestNUI.GetInstance();
+            }
+        }
+
+        static void Main(string[] args)
+        {
+            Tizen.Log.Fatal("NUI", "Manual TCT for NUI start!");
+            App example = new App();
+            example.Run(args);
+        }
+
+    };
+
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.csproj b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.csproj
new file mode 100755 (executable)
index 0000000..81bb99a
--- /dev/null
@@ -0,0 +1,40 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <!-- Property Group for .NET Core Project -->
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>tizen50</TargetFramework>
+  </PropertyGroup>
+
+  <!-- Property Group for Tizen Project -->
+  <PropertyGroup>
+    <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugType>portable</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>None</DebugType>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="lib\" />
+  </ItemGroup>
+
+  <Import Project="..\Common\dependencies.props" />
+
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="$(TizenNETVersion)">
+      <ExcludeAssets>Runtime</ExcludeAssets>
+    </PackageReference>
+    <PackageReference Include="Tizen.NET.Sdk" Version="$(TizenNETSdkVersion)" />
+  </ItemGroup>
+
+  <!-- Include Nuget Package for Tizen Project building -->
+  <ItemGroup>
+    <ProjectReference Include="..\nunit.framework\nunit.framework.csproj" />
+    <ProjectReference Include="..\nunitlite\nunitlite.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.sln b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.sln
new file mode 100755 (executable)
index 0000000..89dab28
--- /dev/null
@@ -0,0 +1,64 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26124.0
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.NUI.Wearable.Manual.Tests", "Tizen.NUI.Wearable.Manual.Tests.csproj", "{66D8A33C-59A0-4F95-86BB-D4B98DB350B8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit.framework", "..\nunit.framework\nunit.framework.csproj", "{8537EA70-6272-4CCD-BCD4-EA8678519A42}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunitlite", "..\nunitlite\nunitlite.csproj", "{F125594F-E09F-4444-8DD7-ACAE72830C55}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Any CPU = Debug|Any CPU
+               Debug|x64 = Debug|x64
+               Debug|x86 = Debug|x86
+               Release|Any CPU = Release|Any CPU
+               Release|x64 = Release|x64
+               Release|x86 = Release|x86
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Debug|x64.Build.0 = Debug|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Debug|x86.Build.0 = Debug|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Release|Any CPU.Build.0 = Release|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Release|x64.ActiveCfg = Release|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Release|x64.Build.0 = Release|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Release|x86.ActiveCfg = Release|Any CPU
+               {66D8A33C-59A0-4F95-86BB-D4B98DB350B8}.Release|x86.Build.0 = Release|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Debug|x64.Build.0 = Debug|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Debug|x86.Build.0 = Debug|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Release|Any CPU.Build.0 = Release|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Release|x64.ActiveCfg = Release|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Release|x64.Build.0 = Release|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Release|x86.ActiveCfg = Release|Any CPU
+               {8537EA70-6272-4CCD-BCD4-EA8678519A42}.Release|x86.Build.0 = Release|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Debug|x64.Build.0 = Debug|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Debug|x86.Build.0 = Debug|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Release|Any CPU.Build.0 = Release|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Release|x64.ActiveCfg = Release|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Release|x64.Build.0 = Release|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Release|x86.ActiveCfg = Release|Any CPU
+               {F125594F-E09F-4444-8DD7-ACAE72830C55}.Release|x86.Build.0 = Release|Any CPU
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {E4513F8A-1A51-4CD9-8C13-B0F61ECF96A0}
+       EndGlobalSection
+EndGlobal
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Utils.cs b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Utils.cs
new file mode 100755 (executable)
index 0000000..34a37b8
--- /dev/null
@@ -0,0 +1,246 @@
+/*
+ *  Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using System;
+using System.Threading.Tasks;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.ComponentModel;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI;
+
+namespace Tizen.NUI.Wearable.Tests
+{
+
+    public class ResultNumber
+    {
+        public static int Total { get; set; }
+        public static int Pass { get; set; }
+        public static int Fail { get; set; }
+        public static int NotRun { get; set; }
+        public static int Block { get; set; }
+    }
+
+    public class TestcaseInfo
+    {
+        private string _tescaseName;
+        public string TestcaseName
+        {
+            get
+            {
+                return _tescaseName;
+            }
+            set
+            {
+                _tescaseName = value;
+            }
+        }
+
+        private List<string> _preconditions;
+        public List<string> Preconditions
+        {
+            get
+            {
+                return _preconditions;
+            }
+            set
+            {
+                _preconditions = value;
+            }
+        }
+
+        private List<string> _steps;
+        public List<string> Steps
+        {
+            get
+            {
+                return _steps;
+            }
+            set
+            {
+                _steps = value;
+            }
+        }
+
+        private List<string> _postconditions;
+        public List<string> Postconditions
+        {
+            get
+            {
+                return _postconditions;
+            }
+            set
+            {
+                _postconditions = value;
+            }
+        }
+    }
+    public class ItemData : INotifyPropertyChanged
+    {
+        public event PropertyChangedEventHandler PropertyChanged;
+        private void OnPropertyChanged(object sender, string propertyName)
+        {
+            if (this.PropertyChanged != null)
+            {
+                PropertyChanged(sender, new PropertyChangedEventArgs(propertyName));
+            }
+        }
+        public int No { get; set; }
+
+        public string TCName { get; set; }
+
+        private string _result;
+        public string Result
+        {
+            get
+            {
+                return _result;
+            }
+            set
+            {
+                _result = value;
+                if (_result.Equals(StrResult.PASS))
+                {
+                    ResultColor = Color.Green;
+                }
+                else if (_result.Equals(StrResult.FAIL))
+                {
+                    ResultColor = Color.Red;
+                }
+                else if (_result.Equals(StrResult.BLOCK))
+                {
+                    ResultColor = Color.Red;
+                }
+                else
+                {
+                    ResultColor = Color.Black;
+                }
+                OnPropertyChanged(this, "Result");
+            }
+        }
+
+        private Color _resultColor;
+        public Color ResultColor
+        {
+            get { return _resultColor; }
+            set
+            {
+                _resultColor = value;
+                OnPropertyChanged(this, "ResultColor");
+            }
+        }
+    }
+
+    public class StrResult
+    {
+        public static string PASS = "PASS";
+        public static string FAIL = "FAIL";
+        public static string NOTRUN = "NOT RUN";
+        public static string BLOCK = "BLOCK";
+    }
+
+    public class RunType
+    {
+        public static string AUTO = "AUTO";
+        public static string MANUAL = "MANUAL";
+
+        public static string Value { get; set; }
+    }
+
+    public class ManualTest
+    {
+        private static bool Confirmed = true;
+
+        public static async Task WaitForConfirm()
+        {
+            Confirmed = false;
+            //ManualTestNUI.GetInstance().UnlockUIButton();
+            while (true)
+            {
+                await Task.Delay(200);
+                if (Confirmed)
+                    break;
+            }
+        }
+
+        public static bool IsConfirmed()
+        {
+            return Confirmed;
+        }
+
+        public static void Confirm()
+        {
+            Confirmed = true;
+        }
+
+        public static bool IsMobile()
+        {
+            string value;
+            var result = Tizen.System.Information.TryGetValue("tizen.org/feature/profile", out value);
+            if (result && value.Equals("mobile"))
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+        public static bool IsWearable()
+        {
+            string value;
+            var result = Tizen.System.Information.TryGetValue("tizen.org/feature/profile", out value);
+            if (result && value.Equals("wearable"))
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+        public static bool IsEmulator()
+        {
+            string value;
+            var result = Tizen.System.Information.TryGetValue("tizen.org/system/model_name", out value);
+            if (result && value.Equals("Emulator"))
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+        public static TextLabel CreateLabel(string information)
+        {
+            TextLabel mLabel = new TextLabel();
+            mLabel.TextColor = Color.White;
+            mLabel.PointSize = 4.0f;
+            mLabel.VerticalAlignment = VerticalAlignment.Center;
+            mLabel.HorizontalAlignment = HorizontalAlignment.Begin;
+            mLabel.MultiLine = true;
+            mLabel.Text = information;
+            mLabel.Size2D = new Size2D(300, 50);
+            return mLabel;
+        }
+    }
+
+    enum NavigationButton
+    {
+        Next,
+        Previous,
+        Home,
+        NA
+    }
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/WearableManualTestPage.cs b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/WearableManualTestPage.cs
new file mode 100755 (executable)
index 0000000..8d80664
--- /dev/null
@@ -0,0 +1,751 @@
+/*
+* Copyright (c) 2017 Samsung Electronics Co., Ltd.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using NUnitLite.TUnit;
+using NUnit.Framework.Interfaces;
+using NUnit.Framework.TUnit;
+using System.Reflection;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.UIComponents;
+
+namespace Tizen.NUI.Wearable.Tests
+{
+    class WearableManualTestNUI
+    {
+        private List<string> _tcIDList;
+        private List<ItemData> _listItem;
+        private TSettings _tsettings;
+        private TRunner _tRunner;
+        private NavigationButton _pressButton = NavigationButton.NA;
+        private PushButton passButton, failButton, blockButton, homeButton, preButton, nextButton, doneButton;
+        private TextLabel notRun;
+        private const string STEP_ATTRIBUTE_NAME = "NUnit.Framework.StepAttribute";
+        private const string PRECONDITION_ATTRIBUTE_NAME = "NUnit.Framework.PreconditionAttribute";
+        private const string POSTCONDITION_ATTRIBUTE_NAME = "NUnit.Framework.PostconditionAttribute";
+
+        private static float PointSize = 5.0f;
+
+        //Save the information of every single test case
+        private List<TestcaseInfo> TCInfoList;
+        private List<string> CurrentTCInfo;
+
+        private static WearableManualTestNUI instance;
+        private static Object lockObject = new object();
+
+        //Show the result of all the test case
+        private TextLabel _summaryLabel1, _summaryLabel2, _description;
+        private View _initView;
+        private View _detailView;
+
+        private ScrollView _initList;
+        private ScrollView _detailList;
+
+        private View _caseView;
+
+        private PushButton run;
+        private PushButton runButton;
+        private PushButton[] buttonList;
+
+        private TextLabel[] resultList;
+
+        //Always save the current TC number;
+        private int CurrentTCNum = 0;
+
+        private static int _scrollWidth = Window.Instance.Size.Width;
+        private static int _scrollHeight = 120;
+
+        private static int _detailScrollHeight = 60;
+
+        public static WearableManualTestNUI GetInstance()
+        {
+            lock (lockObject)
+            {
+                if (instance == null)
+                {
+                    instance = new WearableManualTestNUI();
+                }
+            }
+            return instance;
+        }
+
+        private WearableManualTestNUI()
+        {
+            Initialize();
+        }
+        public void Initialize()
+        {
+            Window.Instance.BackgroundColor = new Color(0.1f, 0.1f, 0.1f, 1.0f);
+            Tizen.Log.Fatal("NUI", "Initialize=========================================");
+            PointSize = (1.0f / Window.Instance.Dpi.Length()) * 2000.0f;
+            RunType.Value = RunType.MANUAL;
+            _tRunner = new TRunner();
+            _tRunner.LoadTestsuite();
+            _tRunner.SingleTestDone += OnSingleTestDone;
+            _tcIDList = new List<string>();
+            _listItem = new List<ItemData>();
+            int count = 0;
+            foreach (KeyValuePair<string, ITest> pair in _tRunner.GetTestList())
+            {
+                _listItem.Add(new ItemData { No = count, TCName = pair.Key, Result = StrResult.NOTRUN });
+                _tcIDList.Add(pair.Key);
+                count++;
+            }
+            Tizen.Log.Fatal("NUI", "TCT : count:" + count.ToString());
+            foreach (String nameTc in _tcIDList)
+            {
+                Tizen.Log.Fatal("NUI", "TCT : TCName:" + nameTc.ToString());
+            }
+
+
+            _tsettings = TSettings.GetInstance();
+            _tsettings.IsManual = true;
+
+            InitData();
+            _caseView = new View();
+            Window.Instance.GetDefaultLayer().Add(_caseView);
+            Window window = Window.Instance;
+
+            _summaryLabel1 = new TextLabel();
+            _summaryLabel1.TextColor = Color.White;
+            _summaryLabel1.PointSize = 5.0f;
+            _summaryLabel1.Size2D = new Size2D(200, 30);
+            _summaryLabel1.ParentOrigin = ParentOrigin.TopLeft;
+            _summaryLabel1.PivotPoint = PivotPoint.TopLeft;
+            _summaryLabel1.Position = new Position(70, 12, 0);
+            _summaryLabel1.HorizontalAlignment = HorizontalAlignment.Center;
+            _summaryLabel1.VerticalAlignment = VerticalAlignment.Center;
+
+            _summaryLabel2 = new TextLabel();
+            _summaryLabel2.TextColor = Color.White;
+            _summaryLabel2.PointSize = 5.0f;
+            _summaryLabel2.Size2D = new Size2D(300, 30);
+            _summaryLabel2.ParentOrigin = ParentOrigin.TopLeft;
+            _summaryLabel2.PivotPoint = PivotPoint.TopLeft;
+            _summaryLabel2.Position = new Position(20, 33, 0);
+            _summaryLabel2.HorizontalAlignment = HorizontalAlignment.Center;
+            _summaryLabel2.VerticalAlignment = VerticalAlignment.Center;
+
+            SetSummaryResult();
+            Window.Instance.GetDefaultLayer().Add(_summaryLabel1);
+            Window.Instance.GetDefaultLayer().Add(_summaryLabel2);
+
+            _initView = new View();
+            _initView.Size2D = new Size2D((int)Window.Instance.Size.Width, 200);
+            _initView.ParentOrigin = ParentOrigin.TopLeft;
+            _initView.PivotPoint = PivotPoint.TopLeft;
+            _initView.Position = new Position(0.0f, 60.0f, 0.0f);
+            InitializeFirstPage();
+            _initView.Show();
+
+            _detailView = new View();
+            _detailView.Size2D = new Size2D((int)Window.Instance.Size.Width, (int)Window.Instance.Size.Height - 65);
+            _detailView.ParentOrigin = ParentOrigin.TopLeft;
+            _detailView.PivotPoint = PivotPoint.TopLeft;
+            _detailView.Position = new Position(0.0f, 70.0f, 0.0f);
+            InitializeDetailPage();
+            _detailView.Hide();
+
+            window.GetDefaultLayer().Add(_initView);
+            window.GetDefaultLayer().Add(_detailView);
+        }
+
+        void InitializeFirstPage()
+        {
+            //Create Run Button, when you Click it, then the first test case will be executed.
+            doneButton = new PushButton();
+            doneButton.Size2D = new Size2D(120, 60);
+            doneButton.Position2D = new Position2D(-150, -200);
+            //doneButton.Position2D = new Position2D(50, 0);
+            doneButton.Label = CreateTextVisual("Done", Color.White);
+            doneButton.Clicked += (obj, ee) =>
+            {
+                TSettings.GetInstance().SubmitManualResult();
+                return false;
+            };
+
+            run = new PushButton();
+            run.Size2D = new Size2D(120, 60);
+            run.Position2D = new Position2D(20, -200);
+            //run.Position2D = new Position2D(180, 0);
+            run.Label = CreateTextVisual("Runner", Color.White); ;
+            run.Clicked += (obj, ee) =>
+            {
+                Tizen.Log.Fatal("NUI", "Check all the test case from the first one.");
+                CurrentTCNum = 0;
+                _initView.Hide();
+                _caseView.Hide();
+                UpdateDetailPage();
+                _detailView.Show();
+                return false;
+            };
+
+            _initList = new ScrollView();
+            _initList.Size2D = new Size2D(_scrollWidth, _scrollHeight);
+            _initList.ParentOrigin = ParentOrigin.TopLeft;
+            _initList.PivotPoint = PivotPoint.TopLeft;
+            _initList.Position2D = new Position2D(0, 80);
+            _initList.ClippingMode = ClippingModeType.ClipChildren;
+            CreateInitList();
+
+            _initView.Add(doneButton);
+            _initView.Add(run);
+            _initView.Add(_initList);
+            Tizen.Log.Fatal("NUI", "TCT : InitializeFirstPage:");
+        }
+
+        //Update the Test Page before you want to show it(Click Run/Pre/nect Button, or Click on item in the List).
+        void UpdateDetailPage()
+        {
+            UpdateCurrentTCInfo();
+            Tizen.Log.Fatal("NUI", "UpdateDetailPage::::::::::::::::::::::");
+            CreateTestCase();
+        }
+
+        void InitializeDetailPage()
+        {
+            _detailList = new ScrollView();
+            _detailList.BackgroundColor = Color.Black;
+            _detailList.Size2D = new Size2D(_scrollWidth - 100, _detailScrollHeight);
+            _detailList.ParentOrigin = ParentOrigin.TopLeft;
+            _detailList.PivotPoint = PivotPoint.TopLeft;
+            _detailList.Position2D = new Position2D(30, 20);
+            _detailList.ClippingMode = ClippingModeType.ClipChildren;
+
+            _description = new TextLabel();
+            _description.TextColor = Color.White;
+            _description.PointSize = 3.0f;
+            _description.ParentOrigin = ParentOrigin.TopLeft;
+            _description.PivotPoint = PivotPoint.TopLeft;
+            _description.Size2D = new Size2D(200, 20);
+            _description.Position2D = new Position2D(50, 0);
+            _detailView.Add(_description);
+
+            CreateDetailList();
+            _detailView.Add(_detailList);
+
+            //To Place the function button, such as PASS, FAIL.....
+            CreateButtons();
+        }
+
+        //To show the detail information of the test case
+        //Preconditions
+        //Steps
+        //PostConditions
+        void CreateTestCase()
+        {
+            if(_detailList)
+            {
+                _detailView.Remove(_detailList);
+                _detailList.Dispose();
+            }
+            Tizen.Log.Fatal("NUI", "Print the CurrentTCNum here::" + CurrentTCNum);
+
+            _detailList = new ScrollView();
+            _detailList.BackgroundColor = Color.Black;
+            _detailList.Size2D = new Size2D(_scrollWidth - 100, _detailScrollHeight);
+            _detailList.ParentOrigin = ParentOrigin.TopLeft;
+            _detailList.PivotPoint = PivotPoint.TopLeft;
+            _detailList.Position2D = new Position2D(30, 20);
+            _detailList.ClippingMode = ClippingModeType.ClipChildren;
+            CreateDetailList();
+            _detailView.Add(_detailList);
+            if (notRun)
+            {
+                notRun.Text = _listItem[CurrentTCNum].Result;
+            }
+        }
+        private TextLabel CreateTextLabel(string textStr, int left)
+        {
+            TextLabel text = new TextLabel();
+            text.TextColor = Color.White;
+            text.ParentOrigin = ParentOrigin.TopLeft;
+            text.PivotPoint = PivotPoint.TopLeft;
+            text.Text = textStr;
+            text.PointSize = 5.0f;
+            text.VerticalAlignment = VerticalAlignment.Bottom;
+            text.HorizontalAlignment = HorizontalAlignment.Center;
+            text.Size2D = new Size2D(30, 30);
+            text.Position2D = new Position2D(left, 0);
+            return text;
+        }
+        //Create all the function buttons here, such as PASS, FAIL.....
+        void CreateButtons()
+        {
+
+            notRun = new TextLabel();
+            notRun.TextColor = Color.White;
+            notRun.Size2D = new Size2D(40, 30);
+            notRun.PointSize = 2.5f;
+            notRun.Position2D = new Position2D(260, 118);
+            notRun.HorizontalAlignment = HorizontalAlignment.Center;
+            notRun.VerticalAlignment = VerticalAlignment.Center;
+            notRun.MultiLine = true;
+            notRun.Text = "Not Run";
+
+            TextLabel pass = CreateTextLabel("P", 20);
+            passButton = new PushButton();
+            passButton.Size2D = new Size2D(70, 30);
+            passButton.Position2D = new Position2D(0, 0);
+            passButton.LabelText = "";
+            passButton.Add(pass);
+            passButton.Clicked += (obj, ee) =>
+            {
+
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.PASS;
+                    ManualTest.Confirm();
+                }
+                Tizen.Log.Fatal("TBT", "Pass Button clicked!");
+                return true;
+            };
+
+            TextLabel fail = CreateTextLabel("F", 20);
+            failButton = new PushButton();
+            failButton.Size2D = new Size2D(70, 30);
+            failButton.Position2D = new Position2D(72, 0);
+            failButton.LabelText = "";
+            failButton.Add(fail);
+            failButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.FAIL;
+                    ManualTest.Confirm();
+                }
+                Tizen.Log.Fatal("TBT", "Fail Button clicked!");
+                return true;
+            };
+
+            TextLabel block = CreateTextLabel("B", 20);
+            blockButton = new PushButton();
+            blockButton.Size2D = new Size2D(70, 30);
+            blockButton.Position2D = new Position2D(144, 0);
+            blockButton.LabelText = "";
+            blockButton.Add(block);
+            blockButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.BLOCK;
+                    ManualTest.Confirm();
+                }
+                return true;
+            };
+
+            TextLabel run = CreateTextLabel("R", 20);
+            runButton = new PushButton();
+            runButton.Size2D = new Size2D(70, 30);
+            runButton.Position2D = new Position2D(216, 0);
+            runButton.LabelText = "";
+            runButton.Add(run);
+            runButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                //should update the _caseView by the test case
+                _pressButton = NavigationButton.NA;
+                _tsettings.Testcase_ID = _tcIDList[CurrentTCNum];
+                _tsettings.TCResult = "";
+                _tRunner.Execute();
+                return true;
+            };
+
+            TextLabel home = CreateTextLabel("H", 15);
+            homeButton = new PushButton();
+            homeButton.Size2D = new Size2D(60, 30);
+            homeButton.Position2D = new Position2D(15, 32);
+            homeButton.LabelText = "";
+            homeButton.Add(home);
+            homeButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                _pressButton = NavigationButton.Home;
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.NOTRUN;
+                    ManualTest.Confirm();
+                }
+                else
+                {
+                    _detailView.Hide();
+                    _initView.Show();
+                }
+                return true;
+            };
+
+            TextLabel pre = CreateTextLabel("<<", 15);
+            preButton = new PushButton();
+            preButton.Size2D = new Size2D(60, 30);
+            preButton.Position2D = new Position2D(128, 32);
+            preButton.LabelText = "";
+            preButton.Add(pre);
+            preButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.NOTRUN;
+                    ManualTest.Confirm();
+                }
+                else
+                {
+                    if (CurrentTCNum != 0)
+                    {
+                        CurrentTCNum--;
+                        notRun.Text = _listItem[CurrentTCNum].Result;
+                        ManualTest.Confirm();
+                        UpdateDetailPage();
+                    }
+                }
+                return true;
+            };
+
+            TextLabel next = CreateTextLabel(">>", 15);
+            nextButton = new PushButton();
+            nextButton.Size2D = new Size2D(60, 30);
+            nextButton.Position2D = new Position2D(193, 32);
+            nextButton.Add(next);
+            nextButton.LabelText = "";
+            nextButton.Clicked += (obj, ee) =>
+            {
+                Clear();
+                if (!ManualTest.IsConfirmed())
+                {
+                    _tsettings.TCResult = StrResult.NOTRUN;
+                    ManualTest.Confirm();
+                }
+                if (CurrentTCNum + 1 != ResultNumber.Total)
+                {
+                    Tizen.Log.Fatal("NUI", "Print the [not run] CurrentTCNum::" + CurrentTCNum);
+                    CurrentTCNum++;
+                    notRun.Text = _listItem[CurrentTCNum].Result;
+                    UpdateDetailPage();
+                }
+                return true;
+            };
+
+            View buttonView = new View();
+            buttonView.ParentOrigin = ParentOrigin.TopLeft;
+            buttonView.PivotPoint = PivotPoint.TopLeft;
+            buttonView.Size2D = new Size2D(Window.Instance.Size.Width, 80);
+            buttonView.Position2D = new Position2D(-140, 120);
+
+            buttonView.Add(passButton);
+            buttonView.Add(failButton);
+            buttonView.Add(blockButton);
+            buttonView.Add(runButton);
+            buttonView.Add(homeButton);
+            buttonView.Add(notRun);
+            buttonView.Add(preButton);
+            buttonView.Add(nextButton);
+            _detailView.Add(buttonView);
+        }
+
+        public void ExecuteTC(View view)
+        {
+            Tizen.Log.Fatal("ManualTCT", "Execute the manual test case!");
+
+            _caseView = view;
+            _caseView.ParentOrigin = Position.ParentOriginTopLeft;
+            _caseView.PivotPoint = PivotPoint.TopLeft;
+            _caseView.Position = new Position(40.0f, 120.0f, 0.0f);
+            _detailView.Add(_caseView);
+            _caseView.Show();
+        }
+
+        private void Clear()
+        {
+            if (_caseView.IsOnWindow == true)
+            {
+                _detailView.Remove(_caseView);
+            }
+        }
+
+        public void ClearTestCase(View view)
+        {
+            Tizen.Log.Fatal("NUI", "Clear test case!");
+            _detailView.Remove(view);
+        }
+
+        //Use to update the _summaryLabel.
+        private void SetSummaryResult()
+        {
+            ResultNumber.NotRun = ResultNumber.Total - ResultNumber.Pass - ResultNumber.Fail - ResultNumber.Block;
+            _summaryLabel1.Text = "T : " + ResultNumber.Total + ", P : " + ResultNumber.Pass;
+            _summaryLabel2.Text = "F : " + ResultNumber.Fail + ", B : " + ResultNumber.Block + ", NR: " + ResultNumber.NotRun;
+            Tizen.Log.Fatal("ManualTCT", "Set the result Text");
+        }
+
+        private PropertyMap CreateTextMap(float pointSize, string text)
+        {
+            PropertyMap map = new PropertyMap();
+            map.Insert("visualType", new PropertyValue("TEXT"));
+            map.Insert("pointSize", new PropertyValue(pointSize));
+            map.Insert("text", new PropertyValue(text));
+            return map;
+        }
+
+        private void CreateInitList()
+        {
+            int tcNum = _tcIDList.Count;
+            buttonList = new PushButton[tcNum];
+            resultList = new TextLabel[tcNum];
+            for (int index = 0; index < tcNum; index++)
+            {
+                string name = _tcIDList[index];
+                string testcaseName = "#." + (index + 1).ToString();
+                Tizen.Log.Fatal("ManualTCT", "name: " + name);
+                TextLabel label = new TextLabel();
+                label.TextColor = Color.White;
+                label.Text = testcaseName;
+                label.PointSize = 4.0f;
+                label.VerticalAlignment = VerticalAlignment.Center;
+                label.ParentOrigin = ParentOrigin.TopLeft;
+                label.PivotPoint = PivotPoint.TopLeft;
+                label.Size2D = new Size2D(40, _scrollHeight);
+                label.Position2D = new Position2D(0, 0);
+
+
+                TextLabel nameLabel = new TextLabel();
+                nameLabel.ParentOrigin = ParentOrigin.TopLeft;
+                nameLabel.PivotPoint = PivotPoint.TopLeft;
+                nameLabel.Text = name;
+                nameLabel.VerticalAlignment = VerticalAlignment.Bottom;
+                nameLabel.PointSize = 4.0f;
+                nameLabel.TextColor = Color.White;
+                nameLabel.MultiLine = true;
+                nameLabel.Size2D = new Size2D(245, _scrollHeight);
+                nameLabel.Position2D = new Position2D(5, 0);
+                nameLabel.TextColor = Color.White;
+
+                string resultText = "[" + _listItem[(int)index].Result + "]";
+                buttonList[index] = new PushButton();
+                buttonList[index].Name = index.ToString();
+                buttonList[index].ParentOrigin = ParentOrigin.TopLeft;
+                buttonList[index].PivotPoint = PivotPoint.TopLeft;
+                buttonList[index].Position = new Position(33, 0.0f, 0.0f);
+                buttonList[index].Size2D = new Size2D(255, _scrollHeight);
+                buttonList[index].LabelText = "";
+                buttonList[index].Add(nameLabel);
+                buttonList[index].Clicked += (obj, e) =>
+                {
+                    PushButton button = obj as PushButton;
+
+                    Tizen.Log.Fatal("TBT", "Item clicked!!!!!!!!!!!!!!::" + button.Name);
+                    CurrentTCNum = int.Parse(button.Name);
+                    _initView.Hide();
+                    UpdateDetailPage();
+                    _caseView.Hide();
+                    _detailView.Show();
+                    return false;
+                };
+
+                resultList[index] = new TextLabel();
+                resultList[index].TextColor = Color.White;
+                resultList[index].PointSize = 3.0f;
+                resultList[index].Name = index.ToString();
+                resultList[index].Text = resultText;
+                resultList[index].ParentOrigin = ParentOrigin.TopLeft;
+                resultList[index].PivotPoint = PivotPoint.TopLeft;
+                resultList[index].Position = new Position(285.0f, 0.0f, 0.0f);
+                resultList[index].Size2D = new Size2D(65, _scrollHeight);
+                resultList[index].VerticalAlignment = VerticalAlignment.Center;
+                resultList[index].HorizontalAlignment = HorizontalAlignment.Center;
+
+                View pageActor = new View();
+                pageActor.WidthResizePolicy = ResizePolicyType.FillToParent;
+                pageActor.HeightResizePolicy = ResizePolicyType.FillToParent;
+                pageActor.ParentOrigin = ParentOrigin.TopLeft;
+                pageActor.PivotPoint = PivotPoint.TopLeft;
+                pageActor.Position = new Position(0, index * _scrollHeight, 0.0f);
+
+                pageActor.Add(label);
+                pageActor.Add(buttonList[index]);
+                pageActor.Add(resultList[index]);
+                _initList.Add(pageActor);
+            }
+            _initList.SetAxisAutoLock(false);
+            PropertyMap rulerMapY = new PropertyMap();
+            rulerMapY.Add((int)ScrollModeType.XAxisScrollEnabled, new PropertyValue(false));
+            rulerMapY.Add((int)ScrollModeType.YAxisScrollEnabled, new PropertyValue(true));
+            rulerMapY.Add((int)ScrollModeType.YAxisSnapToInterval, new PropertyValue(_scrollHeight));
+            rulerMapY.Add((int)ScrollModeType.YAxisScrollBoundary, new PropertyValue(_scrollHeight * tcNum));
+            _initList.ScrollMode = rulerMapY;
+
+            Tizen.Log.Fatal("ManualTCT", "Initial ScrollView");
+        }
+
+        private void CreateDetailList()
+        {
+            Tizen.Log.Fatal("NUI", "Print the CreateDetailList::count: " + CurrentTCInfo.Count);
+            int senNum = CurrentTCInfo.Count;
+            _description.Text = CurrentTCInfo[0];
+            for (int index = 1; index < senNum; index++)
+            {
+                TextLabel description = new TextLabel();
+                description.TextColor = Color.White;
+                description.ParentOrigin = ParentOrigin.TopLeft;
+                description.PivotPoint = PivotPoint.TopLeft;
+                description.Position = new Position(0.0f, 0.0f, 0.0f);
+                description.Size2D = new Size2D((int)Window.Instance.Size.Width - 100, _detailScrollHeight);
+                description.HorizontalAlignment = HorizontalAlignment.Begin;
+                description.VerticalAlignment = VerticalAlignment.Center;
+                description.PointSize = 3.0f;
+                description.MultiLine = true;
+                description.Text = CurrentTCInfo[(int)index];
+
+                View pageActor = new View();
+                pageActor.WidthResizePolicy = ResizePolicyType.FillToParent;
+                pageActor.HeightResizePolicy = ResizePolicyType.FillToParent;
+                pageActor.ParentOrigin = ParentOrigin.TopLeft;
+                pageActor.PivotPoint = PivotPoint.TopLeft;
+                pageActor.Position = new Position(0, (index - 1) * _detailScrollHeight, 0.0f);
+                pageActor.Add(description);
+                _detailList.Add(pageActor);
+            }
+            _detailList.SetAxisAutoLock(false);
+            PropertyMap rulerMapY = new PropertyMap();
+            rulerMapY.Add((int)ScrollModeType.XAxisScrollEnabled, new PropertyValue(false));
+            rulerMapY.Add((int)ScrollModeType.YAxisScrollEnabled, new PropertyValue(true));
+            rulerMapY.Add((int)ScrollModeType.YAxisSnapToInterval, new PropertyValue(_detailScrollHeight));
+            rulerMapY.Add((int)ScrollModeType.YAxisScrollBoundary, new PropertyValue(_detailScrollHeight * (senNum - 1)));
+            _detailList.ScrollMode = rulerMapY;
+        }
+
+        //Init all the data, should be offered by Test Framework
+        void InitData()
+        {
+            ResultNumber.Total = _tcIDList.Count;
+            ResultNumber.Pass = 0;
+            ResultNumber.Fail = 0;
+            ResultNumber.Block = 0;
+            TCInfoList = new List<TestcaseInfo>();
+            foreach (KeyValuePair<string, ITest> pair in _tRunner.GetTestList())
+            {
+                List<string> preconditions = new List<string>();
+                preconditions.Add("Preconditions:");
+                List<string> steps = new List<string>();
+                steps.Add("Steps:");
+                List<string> postconditions = new List<string>();
+                postconditions.Add("Postconditions:\n");
+                IEnumerator<CustomAttributeData> customAttributes = pair.Value.Method.MethodInfo.CustomAttributes.GetEnumerator();
+                while (customAttributes.MoveNext())
+                {
+                    if (customAttributes.Current.AttributeType.FullName.Equals(STEP_ATTRIBUTE_NAME))
+                    {
+                        steps.Add(customAttributes.Current.ConstructorArguments[0].Value + "." + customAttributes.Current.ConstructorArguments[1].Value);
+                    }
+                    else if (customAttributes.Current.AttributeType.FullName.Equals(PRECONDITION_ATTRIBUTE_NAME))
+                    {
+                        preconditions.Add(customAttributes.Current.ConstructorArguments[0].Value + "." + customAttributes.Current.ConstructorArguments[1].Value);
+                    }
+                    else if (customAttributes.Current.AttributeType.FullName.Equals(POSTCONDITION_ATTRIBUTE_NAME))
+                    {
+                        postconditions.Add(customAttributes.Current.ConstructorArguments[0].Value + "." + customAttributes.Current.ConstructorArguments[1].Value);
+                    }
+                }
+                TCInfoList.Add(new TestcaseInfo
+                {
+                    TestcaseName = pair.Key,
+                    Preconditions = preconditions,
+                    Steps = steps ,
+                    Postconditions = postconditions,
+                });
+            }
+            UpdateCurrentTCInfo();
+        }
+
+        //The data in CurrentTCInfo list will be show in _detailList.
+        void UpdateCurrentTCInfo()
+        {
+            CurrentTCInfo = new List<string>();
+            Tizen.Log.Fatal("NUI", "Print the CurrentTCNum::" + CurrentTCNum);
+            CurrentTCInfo.Add("DESCRIPTION:#" + (CurrentTCNum + 1));
+            string[] str = TCInfoList[CurrentTCNum].TestcaseName.Split('.');
+            CurrentTCInfo.Add("CLASS:" + str[str.Length - 2]);
+            CurrentTCInfo.Add("METHOD:" + str[str.Length - 1]);
+            for(int index = 0; index < TCInfoList[CurrentTCNum].Preconditions.Count; index++)
+            {
+                CurrentTCInfo.Add(TCInfoList[CurrentTCNum].Preconditions[index]);
+            }
+            for(int index = 0; index < TCInfoList[CurrentTCNum].Steps.Count; index++ )
+            {
+                CurrentTCInfo.Add(TCInfoList[CurrentTCNum].Steps[index]);
+            }
+            for(int index = 0; index < TCInfoList[CurrentTCNum].Postconditions.Count; index++ )
+            {
+                CurrentTCInfo.Add(TCInfoList[CurrentTCNum].Postconditions[index]);
+            }
+            Tizen.Log.Fatal("NUI", "Ppppppppppppppppppppppprint the CurrentTCNum::" + CurrentTCNum);
+        }
+
+        private void OnSingleTestDone(object sender, SingleTestDoneEventArgs e)
+        {
+            //Test when will this event will be triggered
+            Tizen.Log.Fatal("NUI", "OnSingleTestDone has been triggered!");
+            // check old result
+            if (_listItem[CurrentTCNum].Result.Contains(StrResult.FAIL))
+            {
+                ResultNumber.Fail = ResultNumber.Fail - 1;
+            }
+            else if (_listItem[CurrentTCNum].Result.Contains(StrResult.PASS))
+            {
+                ResultNumber.Pass = ResultNumber.Pass - 1;
+            }
+            else if (_listItem[CurrentTCNum].Result.Contains(StrResult.BLOCK))
+                ResultNumber.Block = ResultNumber.Block - 1;
+
+            // Update new result
+            _listItem[CurrentTCNum].Result = e.Result;
+            if (e.Result.Contains(StrResult.PASS))
+            {
+                ResultNumber.Pass += 1;
+            }
+            else if (e.Result.Contains(StrResult.FAIL))
+            {
+                ResultNumber.Fail += 1;
+            }
+            else if (e.Result.Contains(StrResult.BLOCK))
+            {
+                ResultNumber.Block += 1;
+            }
+            TextLabel label = resultList[CurrentTCNum];
+            label.Text = _listItem[(int)CurrentTCNum].Result;
+            SetSummaryResult();
+            notRun.Text = _listItem[CurrentTCNum].Result;
+        }
+
+        private PropertyMap CreateTextVisual(string text, Color color)
+        {
+            PropertyMap map = new PropertyMap();
+            map.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
+            map.Add(TextVisualProperty.Text, new PropertyValue(text));
+            map.Add(TextVisualProperty.TextColor, new PropertyValue(color));
+            map.Add(TextVisualProperty.PointSize, new PropertyValue(6.0f));
+            map.Add(TextVisualProperty.HorizontalAlignment, new PropertyValue("CENTER"));
+            map.Add(TextVisualProperty.VerticalAlignment, new PropertyValue("BOTTOM"));
+            return map;
+        }
+    }
+}
+
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/shared/res/Tizen.NUI.Wearable.Manual.Tests.png b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/shared/res/Tizen.NUI.Wearable.Manual.Tests.png
new file mode 100755 (executable)
index 0000000..9765b1b
Binary files /dev/null and b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/shared/res/Tizen.NUI.Wearable.Manual.Tests.png differ
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/testcase/TSNUIWatchApplication.cs b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/testcase/TSNUIWatchApplication.cs
new file mode 100755 (executable)
index 0000000..8e7fd7d
--- /dev/null
@@ -0,0 +1,511 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using System;
+using System.Threading.Tasks;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.Applications;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.UIComponents;
+
+namespace Tizen.NUI.Wearable.Tests
+{
+    [TestFixture]
+    [Description("NUIWatchApplication init test")]
+    public class NUIWatchApplicationTests
+    {
+        private bool _isWearable = false;
+        private bool _isEmulator = false;
+        private ManualTestNUI _testPage;
+
+        [SetUp]
+        public void Init()
+        {
+            Log.Info("TCT", "Preconditions for each TEST");
+            _isWearable = ManualTest.IsWearable();
+            _isEmulator = ManualTest.IsEmulator();
+
+            AppControl myAppControl = new AppControl();
+            myAppControl.Operation = AppControlOperations.Default;
+            myAppControl.ApplicationId = "org.tizen.example.NUIWatchApplicationManualTest";
+            AppControl.SendLaunchRequest(myAppControl);
+
+            _testPage = ManualTestNUI.GetInstance();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Log.Info("TCT", "Postconditions for each TEST");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : when launch NUIWatchApplication, Run() method should be called")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.Run M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(3, "Check if log show \"[TestCase][Run][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task Run_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        private void Confirm()
+        {
+            ManualTest.Confirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnLowMemory() should be called normally  after launch app")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnLowMemory M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in mobile emulator now.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Precondition(5, "Right click on the mobile emulator and Click ControlPanel")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Find and click Memory button in Emulator Control Panel")]
+        [Step(3, "Select Soft Warning button")]
+        [Step(4, "Check if log show \"[TestCase][OnLowMemory][NUIWatchApplication] Pass\".")]
+        [Step(5, "Select Hard Warning button")]
+        [Step(6, "Check if log show \"[TestCase][OnLowMemory][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnLowMemory_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            /*
+             * This test can be tested only in mobile emulator now.
+             * So just Confirm
+             */
+            Confirm();
+            return;
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnLowBattery() should be called normally  after launch app")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnLowBattery M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in mobile emulator now.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Precondition(5, "Right click on the mobile emulator and Click ControlPanel")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Find and click Battery button in Emulator Control Panel")]
+        [Step(3, "Click level bar to make it under 5%")]
+        [Step(4, "Check if log show \"[TestCase][OnLowBattery][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnLowBattery_MANUAL_TEST()
+        {
+            /*
+             * This test can be tested only in mobile emulator now.
+             * So just Confirm
+             */
+            Confirm();
+            return;
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnCreate() should be called  after launch app")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnCreate M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "Open terminal to view logs.")]
+        [Precondition(2, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(3, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Check if log show \"[TestCase][OnCreate][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnCreate_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnPreCreate() should be called  after launch app")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnPreCreate M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "Open terminal to view logs.")]
+        [Precondition(2, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(3, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Check if log show \"[TestCase][OnPreCreate][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnPreCreate_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnAppControlReceived() should be called after launch app")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnAppControlReceived M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "Open terminal to view logs.")]
+        [Precondition(2, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(3, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Check if log show \"[TestCase][OnAppControlReceived][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnAppControlReceived_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnLocaleChanged() should be called after change Language of device")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnLocaleChanged M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "Open terminal to view logs.")]
+        [Precondition(2, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(3, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "[Common] if you cannot change a language in a setting app, this test can not be tested. Please click \"Pass\" button.")]
+        [Step(3, "Press Home hardkey -> Setting app -> change language -> return to app test -> wait in 20s")]
+        [Step(4, "Check if log show \"[TestCase][OnLocaleChanged][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnLocaleChanged_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnRegionFormatChanged() should be called after change Language of device")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnRegionFormatChanged M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "Open terminal to view logs.")]
+        [Precondition(2, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(3, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "[mobile] Press Home hardkey -> Setting app -> change language -> return to app test -> wait in 20s")]
+        [Step(3, "[TV profile] Press Home key -> Settings -> System -> Location -> change location -> return to app test -> wait in 20s")]
+        [Step(4, "[TV profile] if there is no \"Location\" menu, this test can not be tested. Please click \"Pass\" button if \"Location\" menu doesn't exist.")]
+        [Step(5, "Check if log show \"[TestCase][OnRegionFormatChanged][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnRegionFormatChanged_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : Exit() method should be excuted normally")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.Exit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "Open terminal to view logs.")]
+        [Precondition(2, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(3, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Click Exit button")]
+        [Step(3, "Check if log show \"[TestCase][Exit][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task Exit_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnTerminate() should be called after call Exit()")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnTerminate M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "Open terminal to view logs.")]
+        [Precondition(2, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(3, "Enter command \"sdb dlog | grep TestCase\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Click Exit button")]
+        [Step(3, "Check if log show \"[TestCase][OnTerminate][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnTerminate_MANUAL_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : Resumed Event should be caught when resumed")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.Resumed E")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "EVL")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(3, "Check if log show \"[TestCase][OnResume][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task Resumed_EVENT_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : Paused Event should be caught when paused")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.Paused E")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "EVL")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(3, "run TC app (return to the TC app")]
+        [Step(4, "Check if log show \"[TestCase][OnPause][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task Paused_EVENT_TEST()
+        {
+            /* TEST CODE */
+
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnResume() should be called when resumed")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnResume M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(3, "Check if log show \"[TestCase][OnResume][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnResume_Manual_Test()
+        {
+            /* TEST CODE */
+
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnPause() should be called when paused")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnPause M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(3, "run TC app (return to the TC app")]
+        [Step(4, "Check if log show \"[TestCase][OnPause][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnPause_Manual_Test()
+        {
+            /* TEST CODE */
+
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : AmbientChanged Event should be caught when ambient mode is changed")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.AmbientChanged E")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "EVL")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable emulator.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > watch always on > turn on the watch always on mode")]
+        [Step(3, "Settings > display > Screen time out > 15 seconds")]
+        [Step(4, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(5, "wait to enter to always on display mode")]
+        [Step(6, "Check if log show \"[TestCase][TCT] AmbientChangedEvent\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task AmbientChanged_EVENT_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnAmbientChanged() should be called when ambient mode is changed")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnAmbientChanged M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable emulator.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > watch always on > turn on the watch always on mode")]
+        [Step(3, "Settings > display > Screen time out > 15 seconds")]
+        [Step(4, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(5, "wait to enter to always on display mode")]
+        [Step(6, "Check if log show \"[TestCase][OnAmbientChanged][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnAmbientChanged_Manual_Test()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnAmbientTick() should be called when ambient time tick comes")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnAmbientTick M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable emulator.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > watch always on > turn on the watch always on mode")]
+        [Step(3, "Settings > display > Screen time out > 15 seconds")]
+        [Step(4, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(5, "wait to enter to always on display mode")]
+        [Step(6, "Check if log show \"[TestCase][OnAmbientTick][NUIWatchApplication]\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnAmbientTick_Manual_Test()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : AmbientTick Event should be caught when ambient time tick comes")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.AmbientTick E")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "EVL")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable emulator.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > watch always on > turn on the watch always on mode")]
+        [Step(3, "Settings > display > Screen time out > 15 seconds")]
+        [Step(4, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(5, "wait to enter to always on display mode")]
+        [Step(6, "Check if log show \"[TestCase][TCT] AmbientTickEvent\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task AmbientTick_EVENT_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : TimeTick Event should be caught when time tick comes")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.TimeTick E")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "EVL")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(3, "Check if log show \"[TestCase][TCT] TimeTickEvent\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task TimeTick_EVENT_TEST()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MANUAL TEST : OnTimeTick should be called when ambient time tick comes time tick comes")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.OnTimeTick M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        [Precondition(1, "This test can be tested only in wearable.")]
+        [Precondition(2, "Open terminal to view logs.")]
+        [Precondition(3, "Enter command \"sdb dlog -c\" to clear log")]
+        [Precondition(4, "Enter command \"sdb dlog WATCH\" to terminal")]
+        [Step(1, "Click run TC")]
+        [Step(2, "Settings > Watch faces and style > Watch faces > select \"watch\" watchface > back to watchface")]
+        [Step(3, "Check if log show \"[TestCase][OnTimeTick][NUIWatchApplication] Pass\".")]
+        [Postcondition(1, "Close the terminal")]
+        public async Task OnTimeTick_Manual_Test()
+        {
+            /* TEST CODE */
+            await ManualTest.WaitForConfirm();
+        }
+
+    }
+}
+
+
+
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/tizen-manifest.xml b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..399dc28
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="Tizen.NUI.Wearable.Manual.Tests" version="1.0.0" api-version="5" xmlns="http://tizen.org/ns/packages">
+    <profile name="wearable" />
+    <ui-application appid="Tizen.NUI.Wearable.Manual.Tests" exec="Tizen.NUI.Wearable.Manual.Tests.dll" multiple="false" taskmanage="true" splash-screen-display="true" type="dotnet" launch_mode="single">
+        <icon>Tizen.NUI.Wearable.Manual.Tests.png</icon>
+        <label>Tizen.NUI.Wearable.Manual.Tests</label>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+    </privileges>
+    <provides-appdefined-privileges />
+</manifest>
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/Program.cs b/tct-suite-vs/Tizen.NUI.Wearable.Tests/Program.cs
new file mode 100755 (executable)
index 0000000..397b926
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using System;
+using NUnitLite.TUnit;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using System.Threading;
+using System.Diagnostics;
+using System.Threading.Tasks;
+
+namespace Tizen.NUI.Test
+{
+
+    public class App : Tizen.NUI.NUIWatchApplication
+    {
+        static TextLabel MainTitle;
+        static readonly string Title = "Tizen.NUI.Wearable Auto TCT \n\n";
+        static readonly float TextSize = 10.0f;
+
+        public App() : base()
+        {
+            Log.Fatal("NUI", "Call App()");
+        }
+
+        protected override void OnCreate()
+        {
+            base.OnCreate();
+
+            Random rand = new Random();
+
+            Window window = Window.Instance;
+            Window.Instance.Title = "NUIWatchApplicationTest";
+            window.BackgroundColor = Color.Green;
+
+            MainTitle = new TextLabel();
+            MainTitle.MultiLine = true;
+            MainTitle.Text = Title;
+            MainTitle.PixelSize = TextSize;
+            MainTitle.BackgroundColor = new Color(rand.Next(250) / 255.0f, rand.Next(250) / 255.0f, rand.Next(250) / 255.0f, 1.0f);
+            MainTitle.Size2D = new Size2D(window.WindowSize.Width / 2, window.WindowSize.Height / 2);
+            MainTitle.PositionUsesPivotPoint = true;
+            MainTitle.ParentOrigin = ParentOrigin.Center;
+            MainTitle.PivotPoint = PivotPoint.Center;
+            window.Add(MainTitle);
+        }
+
+        static public async Task MainTitleChangeBackgroundColor(Color color)
+        {
+        }
+
+        static public async Task MainTitleChangeText(string title)
+        {
+        }
+
+        protected override void OnResume()
+        {
+            base.OnResume();
+
+            TRunner t = new TRunner();
+            t.LoadTestsuite();
+            t.Execute();
+        }
+
+        protected override void OnTerminate()
+        {
+            Exit();
+            base.OnTerminate();
+        }
+
+        static void Main(string[] args)
+        {
+            Tizen.Log.Fatal("NUI", "NUI RUN!");
+            App example = new App();
+            example.Run(args);
+        }
+
+    };
+
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.csproj b/tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.csproj
new file mode 100755 (executable)
index 0000000..81bb99a
--- /dev/null
@@ -0,0 +1,40 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <!-- Property Group for .NET Core Project -->
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>tizen50</TargetFramework>
+  </PropertyGroup>
+
+  <!-- Property Group for Tizen Project -->
+  <PropertyGroup>
+    <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugType>portable</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>None</DebugType>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="lib\" />
+  </ItemGroup>
+
+  <Import Project="..\Common\dependencies.props" />
+
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="$(TizenNETVersion)">
+      <ExcludeAssets>Runtime</ExcludeAssets>
+    </PackageReference>
+    <PackageReference Include="Tizen.NET.Sdk" Version="$(TizenNETSdkVersion)" />
+  </ItemGroup>
+
+  <!-- Include Nuget Package for Tizen Project building -->
+  <ItemGroup>
+    <ProjectReference Include="..\nunit.framework\nunit.framework.csproj" />
+    <ProjectReference Include="..\nunitlite\nunitlite.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.sln b/tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.sln
new file mode 100755 (executable)
index 0000000..a9ee536
--- /dev/null
@@ -0,0 +1,64 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26124.0
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.NUI.Wearable.Tests", "Tizen.NUI.Wearable.Tests.csproj", "{EDA7CE08-63F0-4D30-A8DC-000A32C39119}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit.framework", "..\nunit.framework\nunit.framework.csproj", "{C3B4E786-5F63-4253-ABC5-DB2268FF3278}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunitlite", "..\nunitlite\nunitlite.csproj", "{1EE295D5-6D47-4279-89B2-3095EF49628B}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Any CPU = Debug|Any CPU
+               Debug|x64 = Debug|x64
+               Debug|x86 = Debug|x86
+               Release|Any CPU = Release|Any CPU
+               Release|x64 = Release|x64
+               Release|x86 = Release|x86
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Debug|x64.Build.0 = Debug|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Debug|x86.Build.0 = Debug|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Release|Any CPU.Build.0 = Release|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Release|x64.ActiveCfg = Release|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Release|x64.Build.0 = Release|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Release|x86.ActiveCfg = Release|Any CPU
+               {EDA7CE08-63F0-4D30-A8DC-000A32C39119}.Release|x86.Build.0 = Release|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Debug|x64.Build.0 = Debug|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Debug|x86.Build.0 = Debug|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Release|Any CPU.Build.0 = Release|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Release|x64.ActiveCfg = Release|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Release|x64.Build.0 = Release|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Release|x86.ActiveCfg = Release|Any CPU
+               {C3B4E786-5F63-4253-ABC5-DB2268FF3278}.Release|x86.Build.0 = Release|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Debug|x64.Build.0 = Debug|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Debug|x86.Build.0 = Debug|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Release|Any CPU.Build.0 = Release|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Release|x64.ActiveCfg = Release|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Release|x64.Build.0 = Release|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Release|x86.ActiveCfg = Release|Any CPU
+               {1EE295D5-6D47-4279-89B2-3095EF49628B}.Release|x86.Build.0 = Release|Any CPU
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {6FFDBEFC-A9D7-41C6-A324-16EEA6D927BC}
+       EndGlobalSection
+EndGlobal
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Test_Style_Manager.json b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Test_Style_Manager.json
new file mode 100755 (executable)
index 0000000..f9ca411
--- /dev/null
@@ -0,0 +1,34 @@
+{
+  "styles":
+  {
+    "TextLabel":
+    {
+      "pointSize":10,
+      "enableAutoScroll":false,
+      "autoScrollLoopCount":2,
+      "autoScrollGap":50,
+      "autoScrollSpeed":80
+    },
+
+    "TextLabelFontSize0":
+    {
+      "pointSize":10
+    },
+    "TextLabelFontSize1":
+    {
+      "pointSize":10
+    },
+    "TextLabelFontSize2":
+    {
+      "pointSize":10
+    },
+    "TextLabelFontSize3":
+    {
+      "pointSize":10
+    },
+    "TextLabelFontSize4":
+    {
+      "pointSize":10
+    }
+  }
+}
\ No newline at end of file
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Tizen.NUI.Tests.png b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Tizen.NUI.Tests.png
new file mode 100755 (executable)
index 0000000..87abefd
Binary files /dev/null and b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Tizen.NUI.Tests.png differ
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/dali-toolkit-default-theme.json b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/dali-toolkit-default-theme.json
new file mode 100755 (executable)
index 0000000..6aeaded
--- /dev/null
@@ -0,0 +1,347 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * This file is part of Dali Toolkit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+//******************************************************************************
+//
+// Default Reference style theme for a 1920x1080 resolution, The values determined by UX design specification.
+// This file can be copied to a new folder within the styles/ directory and amended with new default values.
+// Can be overriden if StyleManager applies another style sheet.
+//
+//******************************************************************************
+
+{
+  "styles":
+  {
+    "Tooltip":
+    {
+      "tooltip":
+      {
+        "content":
+        {
+          "pointSize":84
+        },
+        "waitTime":0.5,
+        "background":
+        {
+          "visual":"{DALI_IMAGE_DIR}tooltip.9.png",
+          "border":[1,5,5,1]
+        },
+        "tail":
+        {
+          "visibility":false,
+          "aboveVisual":"{DALI_IMAGE_DIR}tooltip-tail-above.png",
+          "belowVisual":"{DALI_IMAGE_DIR}tooltip-tail-below.png"
+        },
+        "position":"BELOW",
+        "hoverPointOffset":[10,10],
+        "movementThreshold":5,
+        "disappearOnMovement":false
+      }
+    },
+    "TextLabel":
+    {
+      "pointSize":108,
+      "enableAutoScroll":false,
+      "autoScrollLoopCount":2,
+      "autoScrollGap":50,
+      "autoScrollSpeed":80
+    },
+
+    "TextLabelFontSize0":
+    {
+      "pointSize":84
+    },
+    "TextLabelFontSize1":
+    {
+      "pointSize":96
+    },
+    "TextLabelFontSize2":
+    {
+      "pointSize":108
+    },
+    "TextLabelFontSize3":
+    {
+      "pointSize":120
+    },
+    "TextLabelFontSize4":
+    {
+      "pointSize":132
+    },
+
+    "TextField":
+    {
+      "pointSize":120,
+      "primaryCursorColor":[0.0,0.72,0.9,1.0],
+      "secondaryCursorColor":[0.0,0.72,0.9,1.0],
+      "cursorWidth":6,
+      "selectionHighlightColor":[0.75,0.96,1.0,1.0],
+      "grabHandleImage" : "{DALI_STYLE_IMAGE_DIR}cursor_handler_drop_center.png",
+      "selectionHandleImageLeft" : {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_left.png" },
+      "selectionHandleImageRight": {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_right.png" }
+    },
+
+    "TextFieldFontSize0":
+    {
+      "pointSize":120
+    },
+    "TextFieldFontSize1":
+    {
+      "pointSize":120
+    },
+    "TextFieldFontSize2":
+    {
+      "pointSize":120
+    },
+    "TextFieldFontSize3":
+    {
+      "pointSize":120
+    },
+    "TextFieldFontSize4":
+    {
+      "pointSize":120
+    },
+    "TextSelectionPopup":
+    {
+      "popupMaxSize":[1700,100],
+      "optionDividerSize":[2,0],
+      "popupDividerColor":[0.23,0.72,0.8,0.11],
+      "popupIconColor":[1.0,1.0,1.0,1.0],
+      "popupPressedColor":[0.24,0.72,0.8,0.11],
+      "background": {
+        "rendererType": "image",
+        "url": "{DALI_IMAGE_DIR}selection-popup-bg.9.png"
+        },
+      "popupFadeInDuration":0.25,
+      "popupFadeOutDuration":0.25
+    },
+    "TextSelectionPopupButton":
+    {
+      "label":
+      {
+        "visualType":"TEXT",
+        "pointSize":120
+      },
+      "unselectedBackgroundVisual":
+      {
+        "visualType": "IMAGE",
+        "url": ""
+      },
+      "selectedBackgroundVisual":
+      {
+        "visualType": "IMAGE",
+        "url": ""
+      }
+    },
+    "TextSelectionToolbar":
+    {
+      "enableOvershoot":true,
+      "enableScrollBar":true,
+      "scrollView":
+      {
+        "overshootAnimationSpeed":360.0,
+        "overshootSize":[1920.0,130.0]
+      }
+    },
+    "ScrollView":
+    {
+      "overshootEffectColor":"B018",
+      "overshootAnimationSpeed":960.0,
+      "overshootSize":[1920.0,130.0]
+    },
+    "ItemView":
+    {
+      "overshootEffectColor":"B018",
+      "overshootAnimationSpeed":960.0,
+      "overshootSize":[1920.0,130.0]
+    },
+    "ScrollBar":
+    {
+      "indicatorShowDuration":0.25,
+      "indicatorHideDuration":0.25,
+      "color":[0.0,0.72,0.9,0.7]
+    },
+    "TextEditor":
+    {
+      "pointSize":120,
+      "primaryCursorColor":[0.0,0.72,0.9,1.0],
+      "secondaryCursorColor":[0.0,0.72,0.9,1.0],
+      "cursorWidth":6,
+      "selectionHighlightColor":[0.75,0.96,1.0,1.0],
+      "grabHandleImage" : "{DALI_STYLE_IMAGE_DIR}cursor_handler_drop_center.png",
+      "selectionHandleImageLeft" : {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_left.png" },
+      "selectionHandleImageRight": {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_right.png" }
+    },
+    "ProgressBar":
+    {
+      "trackVisual":{
+        "visualType":"IMAGE",
+        "url":"{DALI_IMAGE_DIR}progress-bar-skin-track.9.png"
+      },
+      "progressVisual":{
+        "visualType":"IMAGE",
+        "url":"{DALI_IMAGE_DIR}progress-bar-skin-progress.9.png"
+      },
+      "secondaryProgressVisual":{
+        "visualType":"IMAGE",
+        "url":"{DALI_IMAGE_DIR}progress-bar-skin-secondary-progress.9.png"
+      },
+      "indeterminateVisual":{
+        "visualType":"IMAGE",
+        "pixelArea":[0.0, 0.0, 10.0, 1.0],
+        "wrapModeU":"REPEAT",
+        "url":"{DALI_IMAGE_DIR}progress-bar-skin-indeterminate.png"
+      },
+      "indeterminateVisualAnimation":
+      [
+        {
+          "target":"indeterminateVisual",
+          "property":"pixelArea",
+          "initialValue":[0.0, 0.0, 10.0, 1.0],
+          "targetValue":[-1.0, 0.0, 10.0, 1.0],
+          "animator":
+          {
+            "alphaFunction":"DEFAULT",
+            "timePeriod":
+            {
+              "duration":0.8,
+              "delay":0
+            }
+          }
+        }
+      ],
+      "labelVisual":{
+        "visualType": "TEXT",
+        "textColor": [ 1.0, 1.0, 1.0, 1.0 ],
+        "pointSize" : 12.0, // Point size must always be provided to Text Visual
+        "horizontalAlignment": "CENTER",
+        "verticalAlignment": "CENTER"
+      },
+      "progressValue": 0.0,
+      "secondaryProgressValue":0.0,
+      "indeterminate": false
+    },
+    "Button":
+    {
+      "styles":["Tooltip"],
+      "initialAutoRepeatingDelay":2.0,
+      "nextAutoRepeatingDelay":0.9
+      // Note: Visuals added to Button will be used in all derived buttons unless overridden.
+    },
+    "PushButton":
+    {
+      "styles":["Button"],
+      "autoRepeating":false,
+      "togglable":false,
+      "labelPadding":[ 12.0, 12.0, 12.0, 12.0 ],
+      "label":
+       {
+         "visualType": "TEXT",
+         "horizontalAlignment": "CENTER",
+         "pointSize" : 15.0, // Point size must always be provided to Text Visual
+         "verticalAlignment": "CENTER"
+       },
+      "unselectedBackgroundVisual":
+       {
+         "visualType": "IMAGE",
+         "url": "{DALI_IMAGE_DIR}button-up.9.png"
+       },
+       "selectedBackgroundVisual":
+       {
+         "visualType": "IMAGE",
+         "url": "{DALI_IMAGE_DIR}button-down.9.png"
+       },
+       "disabledSelectedBackgroundVisual":
+       {
+         "visualType": "IMAGE",
+         "url": "{DALI_IMAGE_DIR}button-down-disabled.9.png"
+       },
+       "disabledUnselectedBackgroundVisual":
+       {
+         "visualType": "IMAGE",
+         "url": "{DALI_IMAGE_DIR}button-disabled.9.png"
+       }
+    },
+    "ToggleButton":
+    {
+      "styles":["Button"]
+    },
+    "CheckBoxButton":
+    {
+      "styles":["Button"],
+      "labelPadding":[ 12.0, 12.0, 0.0, 0.0 ],
+      "label":
+       {
+         "visualType": "TEXT",
+         "pointSize" : 15.0, // Point size must always be provided to Text Visual
+         "verticalAlignment": "CENTER"
+       },
+      "unselectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}checkbox-unselected.png"
+      },
+      "selectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}checkbox-selected.png"
+      },
+      "disabledUnselectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}checkbox-unselected-disabled.png"
+      },
+      "disabledSelectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}checkbox-selected-disabled.png"
+      }
+    },
+    "RadioButton":
+    {
+      "styles":["Button"],
+      "labelPadding":[ 12.0, 12.0, 0.0, 0.0 ],
+      "label":
+       {
+         "visualType": "TEXT",
+         "pointSize" : 15.0, // Point size must always be provided to Text Visual
+         "verticalAlignment": "CENTER"
+       },
+      "unselectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}radio-button-unselected.png"
+      },
+      "selectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}radio-button-selected.png"
+      },
+      "disabledUnselectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}radio-button-unselected-disabled.png"
+      },
+      "disabledSelectedVisual":
+      {
+        "visualType": "IMAGE",
+        "url": "{DALI_IMAGE_DIR}radio-button-selected-disabled.png"
+      }
+    }
+  }
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/demoVideo.mp4 b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/demoVideo.mp4
new file mode 100755 (executable)
index 0000000..9232219
Binary files /dev/null and b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/demoVideo.mp4 differ
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/picture.png b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/picture.png
new file mode 100755 (executable)
index 0000000..87abefd
Binary files /dev/null and b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/picture.png differ
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/shared/res/Tizen.NUI.Wearable.Tests.png b/tct-suite-vs/Tizen.NUI.Wearable.Tests/shared/res/Tizen.NUI.Wearable.Tests.png
new file mode 100755 (executable)
index 0000000..9765b1b
Binary files /dev/null and b/tct-suite-vs/Tizen.NUI.Wearable.Tests/shared/res/Tizen.NUI.Wearable.Tests.png differ
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientChangedEventArgs.cs b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientChangedEventArgs.cs
new file mode 100755 (executable)
index 0000000..3329d63
--- /dev/null
@@ -0,0 +1,61 @@
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Test;
+
+namespace Tizen.NUI.Tests
+{
+    [TestFixture]
+    [Description("Tizen.NUI.NUIWatchApplication. Tests")]
+    public class AmbientChangedEventArgsTests
+    {
+        private string TAG = "NUI";
+
+        [SetUp]
+        public void Init()
+        {
+            Tizen.Log.Info(TAG, "Init() is called!");
+            App.MainTitleChangeText("AmbientChangedEventArgsTests");
+            App.MainTitleChangeBackgroundColor(null);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Tizen.Log.Info(TAG, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Create a AmbientChangedEventArgs object. Check whether AmbientChangedEventArgs is successfully created or not.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.AmbientChangedEventArgs.AmbientChangedEventArgs C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void AmbientChangedEventArgs_INIT()
+        {
+            /* TEST CODE */
+            var changed = true;
+            var ambientChangedEventArgs = new NUIWatchApplication.AmbientChangedEventArgs(changed);
+            Assert.IsNotNull(ambientChangedEventArgs, "Can't create success object AmbientChangedEventArgs");
+            Assert.IsInstanceOf<NUIWatchApplication.AmbientChangedEventArgs>(ambientChangedEventArgs, "Should be an instance of AmbientChangedEventArgs type.");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test Hover. Check whether Changed is readable.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.AmbientChangedEventArgs.Changed A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void Changed_GET_VALUE()
+        {
+            /* TEST CODE */
+            var changed = true;
+            NUIWatchApplication.AmbientChangedEventArgs ambientChangedEventArgs = new NUIWatchApplication.AmbientChangedEventArgs(changed);
+            Assert.AreEqual(changed, ambientChangedEventArgs.Changed, "Retrieved Changed should be equal to set value");
+        }
+    }
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientTickEventArgs.cs b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientTickEventArgs.cs
new file mode 100755 (executable)
index 0000000..d783f3a
--- /dev/null
@@ -0,0 +1,61 @@
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Test;
+
+namespace Tizen.NUI.Tests
+{
+    [TestFixture]
+    [Description("Tizen.NUI.NUIWatchApplication. Tests")]
+    public class AmbientTickEventArgsTests
+    {
+        private string TAG = "NUI";
+
+        [SetUp]
+        public void Init()
+        {
+            Tizen.Log.Info(TAG, "Init() is called!");
+            App.MainTitleChangeText("AmbientTickEventArgsTests");
+            App.MainTitleChangeBackgroundColor(null);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Tizen.Log.Info(TAG, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Create a AmbientTickEventArgs object. Check whether AmbientTickEventArgs is successfully created or not.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.AmbientTickEventArgs.AmbientTickEventArgs C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void AmbientTickEventArgs_INIT()
+        {
+            /* TEST CODE */
+            var watchTime = new WatchTime();
+            var ambientTickEventArgs = new NUIWatchApplication.AmbientTickEventArgs(watchTime);
+            Assert.IsNotNull(ambientTickEventArgs, "Can't create success object AmbientTickEventArgs");
+            Assert.IsInstanceOf<NUIWatchApplication.AmbientTickEventArgs>(ambientTickEventArgs, "Should be an instance of AmbientTickEventArgs type.");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test WatchTime. Check whether WatchTime is readable.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.AmbientTickEventArgs.WatchTime A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void WatchTime_GET_VALUE()
+        {
+            /* TEST CODE */
+            var watchTime = new WatchTime();
+            NUIWatchApplication.AmbientTickEventArgs ambientTickEventArgs = new NUIWatchApplication.AmbientTickEventArgs(watchTime);
+            Assert.AreEqual(watchTime, ambientTickEventArgs.WatchTime, "Retrieved WatchTime should be equal to set value");
+        }
+    }
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.TimeTickEventArgs.cs b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.TimeTickEventArgs.cs
new file mode 100755 (executable)
index 0000000..a4f9bd0
--- /dev/null
@@ -0,0 +1,61 @@
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Test;
+
+namespace Tizen.NUI.Tests
+{
+    [TestFixture]
+    [Description("Tizen.NUI.NUIWatchApplication. Tests")]
+    public class TimeTickEventArgsTests
+    {
+        private string TAG = "NUI";
+
+        [SetUp]
+        public void Init()
+        {
+            Tizen.Log.Info(TAG, "Init() is called!");
+            App.MainTitleChangeText("TimeTickEventArgsTests");
+            App.MainTitleChangeBackgroundColor(null);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Tizen.Log.Info(TAG, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Create a TimeTickEventArgs object. Check whether TimeTickEventArgs is successfully created or not.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.TimeTickEventArgs.TimeTickEventArgs C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void TimeTickEventArgs_INIT()
+        {
+            /* TEST CODE */
+            var watchTime = new WatchTime();
+            var timeTickEventArgs = new NUIWatchApplication.TimeTickEventArgs(watchTime);
+            Assert.IsNotNull(timeTickEventArgs, "Can't create success object TimeTickEventArgs");
+            Assert.IsInstanceOf<NUIWatchApplication.TimeTickEventArgs>(timeTickEventArgs, "Should be an instance of TimeTickEventArgs type.");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test WatchTime. Check whether WatchTime is readable.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.TimeTickEventArgs.WatchTime A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void WatchTime_GET_VALUE()
+        {
+            /* TEST CODE */
+            var watchTime = new WatchTime();
+            NUIWatchApplication.TimeTickEventArgs timeTickEventArgs = new NUIWatchApplication.TimeTickEventArgs(watchTime);
+            Assert.AreEqual(watchTime, timeTickEventArgs.WatchTime, "Retrieved Hover should be equal to set value");
+        }
+    }
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.cs b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.cs
new file mode 100755 (executable)
index 0000000..6f8fa9c
--- /dev/null
@@ -0,0 +1,97 @@
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using System;
+using Tizen.NUI;
+using Tizen.NUI.Test;
+
+namespace Tizen.NUI.Tests
+{
+
+    [TestFixture]
+    [Description("Tizen.NUI.NUIWatchApplication Tests")]
+    public class NUIWatchApplicationTests
+    {
+
+        private static string TAG = "NUI";
+
+        [SetUp]
+        public void Init()
+        {
+            Tizen.Log.Info(TAG, "Init() is called!");
+            App.MainTitleChangeText("NUIWatchApplicationTests");
+            App.MainTitleChangeBackgroundColor(null);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Tizen.Log.Info(TAG, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("dali NUIWatchApplication constructor test. Check whether object is successfully created or not.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.NUIWatchApplication C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void NUIWatchApplication_INIT()
+        {
+            /* TEST CODE */
+            try
+            {
+                var application = new NUIWatchApplication();
+                Assert.IsNotNull(application, "Object should not be null after initializing.");
+                Assert.IsInstanceOf<NUIWatchApplication>(application, "application must be an instance of Applications.WatchApplication.");
+                application.Dispose();
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(TAG, "Caught Exception" + e.ToString());
+                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("dali NUIWatchApplication constructor test. Check whether object  which set stylesheet is successfully created or not.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.NUIWatchApplication C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("COVPARAM", "string")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void NUIWatchApplication_INIT_WITH_STRING()
+        {
+            /* TEST CODE */
+            try
+            {
+                var application = new NUIWatchApplication("stylesheet");
+                Assert.IsNotNull(application, "Object should not be null after initializing.");
+                Assert.IsInstanceOf<NUIWatchApplication>(application, "application must be an instance of Applications.WatchApplication.");
+                application.Dispose();
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(TAG, "Caught Exception" + e.ToString());
+                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test Window. Check whether Window is readable.")]
+        [Property("SPEC", "Tizen.NUI.NUIWatchApplication.Window A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Feng Jin, feng16.jin@samsung.com")]
+        public void Window_GET_VALUE()
+        {
+            /* TEST CODE */
+            var application = new NUIWatchApplication();
+            Assert.IsNotNull(application.Window, "Retrieved Window should be not null");
+            Assert.AreEqual("NUIWatchApplicationTest", application.Window.Title, "Should be equal to the set value");
+        }
+    }
+}
diff --git a/tct-suite-vs/Tizen.NUI.Wearable.Tests/tizen-manifest.xml b/tct-suite-vs/Tizen.NUI.Wearable.Tests/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..6323073
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="Tizen.NUI.Wearable.Tests" version="1.0.0" api-version="5" xmlns="http://tizen.org/ns/packages">
+    <profile name="wearable" />
+    <ui-application appid="Tizen.NUI.Wearable.Tests" exec="Tizen.NUI.Wearable.Tests.dll" multiple="false" taskmanage="true" splash-screen-display="true" type="dotnet" launch_mode="single">
+        <icon>Tizen.NUI.Tests.png</icon>
+        <label>Tizen.NUI.Wearable.Tests</label>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+    </privileges>
+    <provides-appdefined-privileges />
+</manifest>