From: Feng Jin Date: Fri, 1 Feb 2019 14:17:24 +0000 (+0800) Subject: [Tizen.NUI.Wearable][Non-ACR][Add auto and manual TCT for Tizen.NUI.Wearable project] X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d9ed738f3ba3f43383cc07365ec65460d0da7ee6;p=test%2Ftct%2Fcsharp%2Fapi.git [Tizen.NUI.Wearable][Non-ACR][Add auto and manual TCT for Tizen.NUI.Wearable project] Change-Id: Iccbe7e5fbd1e4ef2922abd1e888240b4bc54fb91 Signed-off-by: Feng Jin --- 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 index 000000000..cfc909b82 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.sln @@ -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 index 000000000..ef58907f8 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.cs @@ -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 index 000000000..b15af3774 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest.csproj @@ -0,0 +1,44 @@ + + + + + + $(MSBuildExtensionsPath)\Tizen\VisualStudio\ + + + + + + + + Exe + netcoreapp2.0 + + + + portable + + + None + + + + + + + + + + + + + + + + + + + + + + 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 index 000000000..96664828c 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 index 000000000..55dc8b187 --- /dev/null +++ b/tct-suite-vs/Resource/Tizen.NUI.NUIWatchApplication.Manual.Tests/code/NUIWatchApplicationManualTest/NUIWatchApplicationManualTest/tizen-manifest.xml @@ -0,0 +1,8 @@ + + + + + http://tizen.org/privilege/alarm.set + + + 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 index 000000000..89086602b 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 index 000000000..a00fc36e8 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/ManualTestPage.cs @@ -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 _tcIDList; + private List _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 TCInfoList; + private List 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(); + _listItem = new List(); + int count = 0; + foreach (KeyValuePair 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(); + foreach (KeyValuePair pair in _tRunner.GetTestList()) + { + List preconditions = new List(); + preconditions.Add("Preconditions:"); + List steps = new List(); + steps.Add("Steps:"); + List postconditions = new List(); + postconditions.Add("Postconditions:\n"); + IEnumerator 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(); + 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 index 000000000..68bc5dae4 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Program.cs @@ -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 index 000000000..81bb99a1b --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.csproj @@ -0,0 +1,40 @@ + + + + + Exe + tizen50 + + + + + true + + + + portable + + + None + + + + + + + + + + + Runtime + + + + + + + + + + + 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 index 000000000..89dab28e6 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Tizen.NUI.Wearable.Manual.Tests.sln @@ -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 index 000000000..34a37b850 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/Utils.cs @@ -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 _preconditions; + public List Preconditions + { + get + { + return _preconditions; + } + set + { + _preconditions = value; + } + } + + private List _steps; + public List Steps + { + get + { + return _steps; + } + set + { + _steps = value; + } + } + + private List _postconditions; + public List 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 index 000000000..8d80664ca --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/WearableManualTestPage.cs @@ -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 _tcIDList; + private List _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 TCInfoList; + private List 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(); + _listItem = new List(); + int count = 0; + foreach (KeyValuePair 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(); + foreach (KeyValuePair pair in _tRunner.GetTestList()) + { + List preconditions = new List(); + preconditions.Add("Preconditions:"); + List steps = new List(); + steps.Add("Steps:"); + List postconditions = new List(); + postconditions.Add("Postconditions:\n"); + IEnumerator 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(); + 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 index 000000000..9765b1bda 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 index 000000000..8e7fd7d30 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/testcase/TSNUIWatchApplication.cs @@ -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 index 000000000..399dc2840 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Manual.Tests/tizen-manifest.xml @@ -0,0 +1,12 @@ + + + + + Tizen.NUI.Wearable.Manual.Tests.png + + + + http://tizen.org/privilege/appmanager.launch + + + 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 index 000000000..397b92678 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/Program.cs @@ -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 index 000000000..81bb99a1b --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.csproj @@ -0,0 +1,40 @@ + + + + + Exe + tizen50 + + + + + true + + + + portable + + + None + + + + + + + + + + + Runtime + + + + + + + + + + + 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 index 000000000..a9ee53673 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/Tizen.NUI.Wearable.Tests.sln @@ -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 index 000000000..f9ca411ab --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/Test_Style_Manager.json @@ -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 index 000000000..87abefddf 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 index 000000000..6aeaded94 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/res/dali-toolkit-default-theme.json @@ -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 index 000000000..923221935 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 index 000000000..87abefddf 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 index 000000000..9765b1bda 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 index 000000000..3329d63de --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientChangedEventArgs.cs @@ -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(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 index 000000000..d783f3a85 --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.AmbientTickEventArgs.cs @@ -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(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 index 000000000..a4f9bd0eb --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.TimeTickEventArgs.cs @@ -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(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 index 000000000..6f8fa9cfe --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/testcase/TSNUIWatchApplication.cs @@ -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(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(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 index 000000000..63230730c --- /dev/null +++ b/tct-suite-vs/Tizen.NUI.Wearable.Tests/tizen-manifest.xml @@ -0,0 +1,12 @@ + + + + + Tizen.NUI.Tests.png + + + + http://tizen.org/privilege/appmanager.launch + + +