[NUI] Add TC template for coverage
authorDongsug Song <dongsug.song@samsung.com>
Thu, 4 Feb 2021 08:24:31 +0000 (17:24 +0900)
committerheeyongsong <35289263+heeyongsong@users.noreply.github.com>
Tue, 9 Feb 2021 05:36:55 +0000 (14:36 +0900)
16 files changed:
src/Tizen.NUI/src/internal/Common/FriendAssembly.cs
test/Tizen.NUI.Tests/Tizen.NUI.TCT.sln
test/Tizen.NUI.Tests/Tizen.NUI.TCT/NuiSample.snk [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/Program.cs
test/Tizen.NUI.Tests/Tizen.NUI.TCT/Properties/Resources.Designer.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/Properties/Resources.resx [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/Tizen.NUI.Devel.Tests.csproj
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/TSButtonExample.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/TSLottieAnimationView.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/ViewMemoryLeakTest.cs [deleted file]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/TSButtonExample.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/TSLottieAnimationView.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/ViewMemoryLeakTest.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/internal/Accessibility/TSAccessibilityActionSignal.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/internal/Accessibility/TSAccessibilityFocusOvershotSignal.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.TCT/tizen-manifest.xml

index 6ca516373bf3a3c696895a2cb4f70f25b948ed35..7037dbe040356e77cbd7329736be300384726d03 100755 (executable)
@@ -37,6 +37,7 @@ using System.Runtime.CompilerServices;
 [assembly: InternalsVisibleTo("Tizen.TV.NUI.Example, " + Tizen.NUI.PublicKey.TizenTV)]
 
 [assembly: InternalsVisibleTo("NuiSample, " + Tizen.NUI.PublicKey.Sample)]
+[assembly: InternalsVisibleTo("Tizen.NUI.Devel.Tests, " + Tizen.NUI.PublicKey.Sample)]
 
 namespace Tizen.NUI
 {
index 8bf5b0e19aa919396f967b653050dbce5c0e02e7..39a4478ba847d9958c75d389cb839446ea29c9e9 100755 (executable)
@@ -24,6 +24,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.System.Information",
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen", "..\..\src\Tizen\Tizen.csproj", "{2CF2BA0A-198E-4B8F-B5C4-2645AFBA85FA}"
 EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.System.Feedback", "..\..\src\Tizen.System.Feedback\Tizen.System.Feedback.csproj", "{999E72B5-7822-4187-973A-08800270716A}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
@@ -97,6 +99,12 @@ Global
                {2CF2BA0A-198E-4B8F-B5C4-2645AFBA85FA}.NUI|Any CPU.Build.0 = Debug|Any CPU
                {2CF2BA0A-198E-4B8F-B5C4-2645AFBA85FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {2CF2BA0A-198E-4B8F-B5C4-2645AFBA85FA}.Release|Any CPU.Build.0 = Release|Any CPU
+               {999E72B5-7822-4187-973A-08800270716A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {999E72B5-7822-4187-973A-08800270716A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {999E72B5-7822-4187-973A-08800270716A}.NUI|Any CPU.ActiveCfg = Release|Any CPU
+               {999E72B5-7822-4187-973A-08800270716A}.NUI|Any CPU.Build.0 = Release|Any CPU
+               {999E72B5-7822-4187-973A-08800270716A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {999E72B5-7822-4187-973A-08800270716A}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/NuiSample.snk b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/NuiSample.snk
new file mode 100755 (executable)
index 0000000..d21014f
Binary files /dev/null and b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/NuiSample.snk differ
index f98e2e1fb7ee09fadcfb9cdc1537f9307b57296a..f982259454b464dd5ec5459eeec7dd6cebb184e6 100755 (executable)
@@ -40,12 +40,18 @@ namespace Tizen.NUI.Devel.Tests
         float textSize = 30.0f;
         Window window;
         Layer layer;
+        public static int mainPid;
+        public static int mainTid;
+
         protected override void OnCreate()
         {
             base.OnCreate();
 
             tlog.Debug(tag, "OnCreate() START!");
 
+            mainPid = Process.GetCurrentProcess().Id;
+            mainTid = Thread.CurrentThread.ManagedThreadId;
+
             window = NUIApplication.GetDefaultWindow();
             window.BackgroundColor = Color.Green;
 
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/Properties/Resources.Designer.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/Properties/Resources.Designer.cs
deleted file mode 100755 (executable)
index 1851441..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tizen.NUI.Devel.Tests.Properties {
-    using System;
-
-
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources {
-
-        private static global::System.Resources.ResourceManager resourceMan;
-
-        private static global::System.Globalization.CultureInfo resourceCulture;
-
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources() {
-        }
-
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tizen.NUI.Devel.Tests.Properties.Resources", typeof(Resources).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/Properties/Resources.resx b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/Properties/Resources.resx
deleted file mode 100755 (executable)
index 16d0353..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!--
-    Microsoft ResX Schema
-
-    Version 2.0
-
-    The primary goals of this format is to allow a simple XML format
-    that is mostly human readable. The generation and parsing of the
-    various data types are done through the TypeConverter classes
-    associated with the data types.
-
-    Example:
-
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-
-    There are any number of "resheader" rows that contain simple
-    name/value pairs.
-
-    Each data row contains a name, and value. The row also contains a
-    type or mimetype. Type corresponds to a .NET class that support
-    text/value conversion through the TypeConverter architecture.
-    Classes that don't support this are serialized and stored with the
-    mimetype set.
-
-    The mimetype is used for serialized objects, and tells the
-    ResXResourceReader how to depersist the object. This is currently not
-    extensible. For a given mimetype the value must be set accordingly:
-
-    Note - application/x-microsoft.net.object.binary.base64 is the format
-    that the ResXResourceWriter will generate, however the reader can
-    read any of the formats listed below.
-
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="String1" xml:space="preserve">
-    <value />
-    <comment>test</comment>
-  </data>
-</root>
\ No newline at end of file
index 5022260867a42f8dddf5329e22059506fa00cf05..f1c2a5cb76e9bb3191c67b726a796d4b071354b9 100755 (executable)
@@ -9,10 +9,14 @@
   <!-- Property Group for Tizen Project -->
   <PropertyGroup>
     <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+    <AssemblyName>Tizen.NUI.Devel.Tests</AssemblyName>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>NuiSample.snk</AssemblyOriginatorKeyFile>
   </PropertyGroup>
 
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugType>portable</DebugType>
+    <DefineConstants>TRACE;DEBUG;EXAMPLE_OFF</DefineConstants>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>None</DebugType>
@@ -35,8 +39,5 @@
     <ProjectReference Include="..\nunit.framework\nunit.framework.csproj" />
     <ProjectReference Include="..\nunitlite\nunitlite.csproj" />
   </ItemGroup>
-  <Target Name="PostBuild" AfterTargets="PostBuildEvent">
-    <Exec Command="sdb root on&#xD;&#xA;sdb shell &quot;mount -o remount,rw /&quot;&#xD;&#xA;sdb shell &quot;rm /usr/share/dotnet.tizen/framework/*.ni.dll&quot;&#xD;&#xA;sdb push $(TargetDir)Tizen.NUI.dll $(TargetDir)Tizen.NUI.pdb /usr/share/dotnet.tizen/framework/&#xD;&#xA;sdb shell &quot;chsmack -a '_' /usr/share/dotnet.tizen/framework/Tizen.NUI.dll&quot;&#xD;&#xA;sdb shell &quot;chsmack -a '_' /usr/share/dotnet.tizen/framework/Tizen.NUI.pdb&quot;&#xD;&#xA;sdb push $(TargetDir)Tizen.NUI.Components.dll $(TargetDir)Tizen.NUI.Components.pdb /usr/share/dotnet.tizen/framework/&#xD;&#xA;sdb shell &quot;chsmack -a '_' /usr/share/dotnet.tizen/framework/Tizen.NUI.Components.dll&quot;&#xD;&#xA;sdb shell &quot;chsmack -a '_' /usr/share/dotnet.tizen/framework/Tizen.NUI.Components.pdb&quot;&#xD;&#xA;sdb shell sync&#xD;&#xA;" />
-  </Target>
 
 </Project>
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/TSButtonExample.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/TSButtonExample.cs
deleted file mode 100755 (executable)
index 5859695..0000000
+++ /dev/null
@@ -1,898 +0,0 @@
-#define EXAMPLE
-#undef EXAMPLE
-
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using System;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-using global::System.Resources;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    [TestFixture]
-    [Description("TSButton Example Tests")]
-    public class ButtonTests
-    {
-        private const string TAG = "NUITEST";
-        private string _image_path = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
-
-        [SetUp]
-        public void Init()
-        {
-            Tizen.Log.Info(TAG, "Init() is called!");
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            Tizen.Log.Info(TAG, "Destroy() is called!");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test Button empty constructor. Check it has been triggered")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.Button C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void Button_CHECK_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be an instance of Button!");
-        }
-
-        //[Test]
-        [Category("P2")]
-        [Description("Check exception when constructing a Button with nonexistent style.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.Button C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTX")]
-        [Property("COVPARAM", "string")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void Button_INIT_WITH_STRING_Exception()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Button("defaultButtonX");
-                Assert.Fail("Should throw the Exception: There is no style of defaultButtonX !");
-            }
-            catch (InvalidOperationException e)
-            {
-                Assert.Pass("InvalidOperationException: passed!");
-            }
-        }
-
-        //[Test]
-        [Category("P1")]
-        [Description("Test Button constructor using style. Check it has been triggered")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.Button C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("COVPARAM", "ButtonStyle")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void Button_INIT_WITH_STYLE()
-        {
-            /* TEST CODE */
-            var style = new ButtonStyle();
-            Assert.IsNotNull(style, "Should be not null!");
-            Assert.IsInstanceOf<ButtonStyle>(style, "Should be an instance of ButtonStyle!");
-
-            var button = new Button(style);
-            Assert.IsNotNull(button, "Should be not null!");
-            Assert.IsInstanceOf<Button>(button, "Should be an instance of Button!");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test Style. Check whether Style is readable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.Style A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void Style_CHECK_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be an instance of Button!");
-
-            var style = button.Style;
-            Assert.IsNotNull(style, "Should be not null");
-            Assert.IsInstanceOf<ButtonStyle>(style, "Should be an instance of ButtonStyle!");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test IsSelectable. Check whether IsSelectable is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IsSelectable A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void IsSelectable_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            button.IsSelectable = true;
-            Assert.AreEqual(true, button.IsSelectable, "Should be equals to the set value");
-            button.IsSelectable = false;
-            Assert.AreEqual(false, button.IsSelectable, "Should be equals to the set value");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test Text. Check whether Text is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.Text A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void Text_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            button.Text = "Test Text";
-            Assert.AreEqual("Test Text", button.Text, "Should be equals to the set value of Text");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test TranslatableText. Check whether TranslatableText is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TranslatableText A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TranslatableText_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            if (NUIApplication.MultilingualResourceManager != null)
-            {
-                button.TranslatableText = "Test TranslatableText";
-                Assert.AreEqual("Test TranslatableText", button.TranslatableText, "Should be equals to the set value of TranslatableText");
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test PointSize. Check whether PointSize is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.PointSize A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void PointSize_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            button.PointSize = 10.0f;
-            Assert.AreEqual(10.0f, button.PointSize, "Should be equals to the set value of PointSize");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test FontFamily. Check whether FontFamily is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.FontFamily A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void FontFamily_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            button.FontFamily = "SamsungOne 500";
-            Assert.AreEqual("SamsungOne 500", button.FontFamily, "Should be equals to the set value of FontFamily");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test TextColor. Check whether TextColor is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextColor A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TextColor_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            var color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
-            Assert.IsNotNull(color, "Should be not null");
-            Assert.IsInstanceOf<Color>(color, "Should be equal!");
-            button.TextColor = color;
-
-            Assert.AreEqual(color.R, button.TextColor.R, "Should be equals to the color.R set");
-            Assert.AreEqual(color.G, button.TextColor.G, "Should be equals to the color.G set");
-            Assert.AreEqual(color.B, button.TextColor.B, "Should be equals to the color.B set");
-            Assert.AreEqual(color.A, button.TextColor.A, "Should be equals to the color.A set");
-
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test TextAlignment. Check whether TextAlignment is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextAlignment A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TextAlignment_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            button.TextAlignment = HorizontalAlignment.Begin;
-            Assert.AreEqual(HorizontalAlignment.Begin, button.TextAlignment, "Should be equals to the set value of TextAlignment");
-            button.TextAlignment = HorizontalAlignment.Center;
-            Assert.AreEqual(HorizontalAlignment.Center, button.TextAlignment, "Should be equals to the set value of TextAlignment");
-            button.TextAlignment = HorizontalAlignment.End;
-            Assert.AreEqual(HorizontalAlignment.End, button.TextAlignment, "Should be equals to the set value of TextAlignment");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test IconURL. Check whether IconURL is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IconURL A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void IconURL_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            button.IconURL = _image_path;
-            Assert.AreEqual(_image_path, button.IconURL, "Should be equals to the set value of IconURL");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test TextSelector. Check whether TextSelector is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TextSelector_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            var stringSelector = new StringSelector
-            {
-                Normal = "Normal",
-                Selected = "Selected",
-            };
-            Assert.IsNotNull(stringSelector, "Should be not null");
-            Assert.IsInstanceOf<StringSelector>(stringSelector, "Should be equal!");
-
-            button.TextSelector = stringSelector;
-            Assert.AreEqual(stringSelector.Normal, button.TextSelector.Normal, "Should be equals to the set value of TextSelector");
-            Assert.AreEqual(stringSelector.Selected, button.TextSelector.Selected, "Should be equals to the set value of TextSelector");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P2")]
-        [Description("Check exception when TextSelector receive a null value.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PEX")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TextSelector_SET_GET_VALUE_Exception()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Components.Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-                button.TextSelector = null;
-                Assert.Fail("Should throw the NullReferenceException!");
-            }
-            catch (NullReferenceException e)
-            {
-                Assert.Pass("NullReferenceException: passed!");
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test TranslatableTextSelector. Check whether TranslatableTextSelector is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TranslatableTextSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TranslatableTextSelector_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            ResourceManager testRm = new ResourceManager("Tizen.NUI.Devel.Tests.Properties.Resources", typeof(ButtonTests).Assembly);
-            NUIApplication.MultilingualResourceManager = testRm;
-
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            var stringSelector = new StringSelector
-            {
-                Normal = "Normal",
-                Selected = "Selected",
-            };
-            Assert.IsNotNull(stringSelector, "Should be not null");
-            Assert.IsInstanceOf<StringSelector>(stringSelector, "Should be equal!");
-
-            button.TranslatableTextSelector = stringSelector;
-            Assert.AreEqual(stringSelector.Normal, button.TranslatableTextSelector.Normal, "Should be equals to the set value of TranslatableTextSelector");
-            Assert.AreEqual(stringSelector.Selected, button.TranslatableTextSelector.Selected, "Should be equals to the set value of TranslatableTextSelector");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P2")]
-        [Description("Check exception when TranslatableTextSelector receive a null value.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TranslatableTextSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PEX")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TranslatableTextSelector_SET_GET_VALUE_Exception()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Components.Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-                button.TranslatableTextSelector = null;
-                Assert.Fail("Should throw the NullReferenceException!");
-            }
-            catch (NullReferenceException e)
-            {
-                Assert.Pass("NullReferenceException: passed!");
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test TextColorSelector. Check whether TextColorSelector is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextColorSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TextColorSelector_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            var colorSelector = new ColorSelector
-            {
-                Normal = new Color(0.0f, 0.0f, 1.0f, 1.0f),
-                Selected = new Color(0.0f, 1.0f, 0.0f, 1.0f),
-            };
-            Assert.IsNotNull(colorSelector, "Should be not null");
-            Assert.IsInstanceOf<ColorSelector>(colorSelector, "Should be equal!");
-
-            button.TextColorSelector = colorSelector;
-            Assert.AreEqual(colorSelector.Normal.R, button.TextColorSelector.Normal.R, "Should be equals to the set value of TextColorSelector Normal R");
-            Assert.AreEqual(colorSelector.Normal.G, button.TextColorSelector.Normal.G, "Should be equals to the set value of TextColorSelector Normal G");
-            Assert.AreEqual(colorSelector.Normal.B, button.TextColorSelector.Normal.B, "Should be equals to the set value of TextColorSelector Normal B");
-            Assert.AreEqual(colorSelector.Normal.A, button.TextColorSelector.Normal.A, "Should be equals to the set value of TextColorSelector Normal A");
-
-            Assert.AreEqual(colorSelector.Selected.R, button.TextColorSelector.Selected.R, "Should be equals to the set value of TextColorSelector Selected R");
-            Assert.AreEqual(colorSelector.Selected.G, button.TextColorSelector.Selected.G, "Should be equals to the set value of TextColorSelector Selected G");
-            Assert.AreEqual(colorSelector.Selected.B, button.TextColorSelector.Selected.B, "Should be equals to the set value of TextColorSelector Selected B");
-            Assert.AreEqual(colorSelector.Selected.A, button.TextColorSelector.Selected.A, "Should be equals to the set value of TextColorSelector Selected A");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P2")]
-        [Description("Check exception when TextColorSelector receive a null value.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextColorSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PEX")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void TextColorSelector_SET_GET_VALUE_Exception()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Components.Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-                button.TextColorSelector = null;
-                Assert.Fail("Should throw the NullReferenceException!");
-            }
-            catch (NullReferenceException e)
-            {
-                Assert.Pass("NullReferenceException: passed!");
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test PointSizeSelector. Check whether PointSizeSelector is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.PointSizeSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void PointSizeSelector_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            var floatSelector = new FloatSelector
-            {
-                Normal = 10.0f,
-                Selected = 12.0f,
-            };
-            Assert.IsNotNull(floatSelector, "Should be not null");
-            Assert.IsInstanceOf<FloatSelector>(floatSelector, "Should be equal!");
-
-            button.PointSizeSelector = floatSelector;
-            Assert.AreEqual(floatSelector.Normal, button.PointSizeSelector.Normal, "Should be equals to the set value of PointSizeSelector Normal");
-            Assert.AreEqual(floatSelector.Selected, button.PointSizeSelector.Selected, "Should be equals to the set value of PointSizeSelector Selected");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P2")]
-        [Description("Check exception when PointSizeSelector receive a null value.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.PointSizeSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PEX")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void PointSizeSelector_SET_GET_VALUE_Exception()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Components.Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-                button.PointSizeSelector = null;
-                Assert.Fail("Should throw the NullReferenceException!");
-            }
-            catch (NullReferenceException e)
-            {
-                Assert.Pass("NullReferenceException: passed!");
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test IconURLSelector. Check whether IconURLSelector is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IconURLSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void IconURLSelector_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-            var stringSelector = new StringSelector
-            {
-                Normal = _image_path,
-                Selected = _image_path,
-            };
-            Assert.IsNotNull(stringSelector, "Should be not null");
-            Assert.IsInstanceOf<StringSelector>(stringSelector, "Should be equal!");
-
-            button.IconURLSelector = stringSelector;
-            Assert.AreEqual(stringSelector.Normal, button.IconURLSelector.Normal, "Should be equals to the set value of IconURLSelector Normal");
-            Assert.AreEqual(stringSelector.Selected, button.IconURLSelector.Selected, "Should be equals to the set value of IconURLSelector Selected");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P2")]
-        [Description("Check exception when IconURLSelector receive a null value.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IconURLSelector A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PEX")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void IconURLSelector_SET_GET_VALUE_Exception()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Components.Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-                button.IconURLSelector = null;
-                Assert.Fail("Should throw the NullReferenceException!");
-            }
-            catch (NullReferenceException e)
-            {
-                Assert.Pass("NullReferenceException: passed!");
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test IsSelected. Check whether IsSelected is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IsSelected A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void IsSelected_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-            button.IsSelectable = true;
-            button.IsSelected = true;
-            Assert.AreEqual(true, button.IsSelected, "Retrieved IsSelected should be equal to set value");
-            button.IsSelected = false;
-            Assert.AreEqual(false, button.IsSelected, "Retrieved IsSelected should be equal to set value");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test IsEnabled. Check whether IsEnabled is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IsEnabled A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void IsEnabled_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-            button.IsEnabled = true;
-            Assert.AreEqual(true, button.IsEnabled, "Retrieved IsEnabled should be equal to set value");
-            button.IsEnabled = false;
-            Assert.AreEqual(false, button.IsEnabled, "Retrieved IsEnabled should be equal to set value");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test IconPadding. Check whether IconPadding is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IconPadding A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void IconPadding_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-            button.IconPadding = new Extents(0, 0, 10, 10);
-            Assert.AreEqual(0, button.IconPadding.Start, "Retrieved IconPadding.Start should be equal to set value");
-            Assert.AreEqual(0, button.IconPadding.End, "Retrieved IconPadding.End should be equal to set value");
-            Assert.AreEqual(10, button.IconPadding.Top, "Retrieved IconPadding.Top should be equal to set value");
-            Assert.AreEqual(10, button.IconPadding.Bottom, "Retrieved IconPadding.Bottom should be equal to set value");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test TextPadding. Check whether TextPadding is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextPadding A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void TextPadding_SET_GET_VALUE()
-        {
-            /* TEST CODE */
-            var button = new Components.Button();
-            Assert.IsNotNull(button, "Should be not null");
-            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-            button.TextPadding = new Extents(0, 0, 10, 10);
-            Assert.AreEqual(0, button.TextPadding.Start, "Retrieved TextPadding.Start should be equal to set value");
-            Assert.AreEqual(0, button.TextPadding.End, "Retrieved TextPadding.End should be equal to set value");
-            Assert.AreEqual(10, button.TextPadding.Top, "Retrieved TextPadding.Top should be equal to set value");
-            Assert.AreEqual(10, button.TextPadding.Bottom, "Retrieved TextPadding.Bottom should be equal to set value");
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test OnKey. Check return the right value or not")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.OnKey M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MR")]
-        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
-        public void OnKey_CHECK_RETURN_VALUE()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Components.Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-
-                bool flag = true;
-                flag = button.OnKey(new Key());
-                Assert.AreEqual(false, flag, "OnKey return check fail.");
-            }
-            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());
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test Dispose, try to dispose the Button.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.Dispose M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MCST")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void Dispose_TEST()
-        {
-            /* TEST CODE */
-            try
-            {
-                Button button = new Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
-                button.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());
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test ApplyStyle. Check whether ApplyStyle works or not.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.ApplyStyle M")]
-        [Property("SPEC_URL", " - ")]
-        [Property("CRITERIA", "MR")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void ApplyStyle_NO_RETURN_VALUE()
-        {
-            try
-            {
-                var button = new Button();
-                var style = new ButtonStyle();
-                button.ApplyStyle(style);
-            }
-            catch (Exception e)
-            {
-                Assert.Fail("Caught Exception" + e.ToString());
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test CreateViewStyle. Check whether CreateViewStyle works or not.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.CreateViewStyle M")]
-        [Property("SPEC_URL", " - ")]
-        [Property("CRITERIA", "MR")]
-        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
-        public void CreateViewStyle_CHECK_RETURN_VALUE()
-        {
-            try
-            {
-                var button = new MyButton();
-                ViewStyle style = button.CreateMyViewStyle();
-                Assert.IsNotNull(style, "Should be not null");
-            }
-            catch (Exception e)
-            {
-                Assert.Fail("Caught Exception" + e.ToString());
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test Button's icon part. Check whether null or not")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.Icon A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
-        public void Icon_TEST()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
-                Assert.IsNotNull(button.Icon, "Should be not null");
-                Assert.IsInstanceOf<ImageView>(button.Icon, "Should return ImageView instance");
-                button.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());
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test Button's overlay image part. Check whether null or not")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.OverlayImage A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
-        public void OverlayImage_TEST()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
-                Assert.IsNotNull(button.OverlayImage, "Should be not null");
-                Assert.IsInstanceOf<ImageView>(button.OverlayImage, "Should return ImageView instance");
-                button.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());
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test Button's text part. Check whether null or not")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.TextLabel A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
-        public void TextLabel_TEST()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
-                Assert.IsNotNull(button.TextLabel, "Should be not null");
-                Assert.IsInstanceOf<TextLabel>(button.TextLabel, "Should return TextLabel instance");
-                button.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());
-            }
-        }
-
-#if (EXAMPLE)
-        [Test]
-#endif
-        [Category("P1")]
-        [Description("Test Icon relative orientation in Button. Check whether IconRelativeOrientation is readable and writable.")]
-        [Property("SPEC", "Tizen.NUI.Components.Button.IconRelativeOrientation A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
-        public void IconRelativeOrientation_TEST()
-        {
-            /* TEST CODE */
-            try
-            {
-                var button = new Button();
-                Assert.IsNotNull(button, "Should be not null");
-                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
-                button.IconRelativeOrientation = Button.IconOrientation.Top;
-                Assert.AreEqual(Button.IconOrientation.Top, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
-                button.IconRelativeOrientation = Button.IconOrientation.Bottom;
-                Assert.AreEqual(Button.IconOrientation.Bottom, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
-                button.IconRelativeOrientation = Button.IconOrientation.Left;
-                Assert.AreEqual(Button.IconOrientation.Left, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
-                button.IconRelativeOrientation = Button.IconOrientation.Right;
-                Assert.AreEqual(Button.IconOrientation.Right, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
-                button.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());
-            }
-        }
-
-        public class MyButton : Button
-        {
-            public MyButton() : base() { }
-
-            public ViewStyle CreateMyViewStyle()
-            {
-                return base.CreateViewStyle();
-            }
-        }
-
-        public class DefaultButtonStyle : StyleBase
-        {
-            protected override ViewStyle GetViewStyle()
-            {
-                return new ButtonStyle();
-            }
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/TSLottieAnimationView.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/TSLottieAnimationView.cs
deleted file mode 100755 (executable)
index 145f585..0000000
+++ /dev/null
@@ -1,649 +0,0 @@
-using NUnit.Framework;
-using System;
-using Tizen.NUI.BaseComponents;
-using System.Threading.Tasks;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    using L = Tizen.Log;
-
-    [TestFixture]
-    public class LottieAnimationViewTests
-    {
-        private string tag = "NUITEST";
-        private string lottieFilePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
-        private bool finishedCheck = false;
-
-        [SetUp]
-        public void Init()
-        {
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("LottieAnimationView constructor test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.LottieAnimationView C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public void LottieAnimationView_INIT()
-        {
-            L.Debug(tag, $" LottieAnimationView_INIT() ");
-
-            var lottie = new LottieAnimationView();
-            Assert.IsNotNull(lottie, "null handle");
-            Assert.IsInstanceOf<LottieAnimationView>(lottie, "should be LottieAnimationView instance.");
-
-            var lottie2 = new LottieAnimationView(2.0f);
-            Assert.IsNotNull(lottie2, "null handle");
-            Assert.IsInstanceOf<LottieAnimationView>(lottie2, "should be LottieAnimationView instance.");
-
-            var lottie3 = new LottieAnimationView(3.0f, false);
-            Assert.IsNotNull(lottie3, "null handle");
-            Assert.IsInstanceOf<LottieAnimationView>(lottie3, "should be LottieAnimationView instance.");
-
-            lottie.Dispose();
-            lottie2.Dispose();
-            lottie3.Dispose();
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("URL test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.URL A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task URL_SET_GET_VALUE()
-        {
-            L.Debug(tag, $" URL_SET_GET_VALUE() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            Assert.IsTrue(lottieFilePath + "/lottie.json" == lottie.URL, "should be same as previously set value");
-
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("PlayState test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.PlayState A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PR0")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task PlayState_GET_VALUE()
-        {
-            L.Debug(tag, $" PlayState_GET_VALUE() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            await Task.Delay(500);
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            // PlayStateType.Invalid is impossible to check and test. the state comes from dali native but it never gives Invalid value. it is reserved enum for the future change.
-
-            lottie.Play();
-            await Task.Delay(100);
-            Assert.IsTrue(lottie.PlayState == LottieAnimationView.PlayStateType.Playing, "should be same as previously set value");
-
-            lottie.Pause();
-            await Task.Delay(100);
-
-            Assert.IsTrue(lottie.PlayState == LottieAnimationView.PlayStateType.Paused, "should be same as previously set value");
-
-            lottie.Stop();
-            await Task.Delay(100);
-
-            Assert.IsTrue(lottie.PlayState == LottieAnimationView.PlayStateType.Stopped, "should be same as previously set value");
-
-            // PlayStateType.Invalid is impossible to check and test. the state comes from dali native but it never gives Invalid value. it is reserved enum for the future change.
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("TotalFrame test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.TotalFrame A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task TotalFrame_GET_VALUE()
-        {
-            L.Debug(tag, $" TotalFrame_GET_VALUE() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            lottie.Stop();
-            const int fixedTotalFrameOfLottieFile = 124; // this 124 value is fixed one, that is lottie.json file were created as 124 frames originally. obviously it varies by lottile resource file.
-
-            L.Debug(tag, $"total frame={lottie.TotalFrame}");
-            // this 124 value is fixed one, that is lottie.json file were created as 124 frames originally. obviously it varies by lottile resource file.
-            Assert.IsTrue(fixedTotalFrameOfLottieFile == lottie.TotalFrame, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("CurrentFrame test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.CurrentFrame A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task CurrentFrame_SET_GET_VALUE()
-        {
-            L.Debug(tag, $" CurrentFrame_SET_GET_VALUE() ");
-
-            var lottie = new LottieAnimationView();
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-
-            var current = 3;
-            lottie.CurrentFrame = current;
-            await Task.Delay(1000);
-            Assert.IsTrue(current == lottie.CurrentFrame, "should be same as previously set value");
-
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("LoopingMode test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.LoopingMode A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task LoopingMode_SET_GET_VALUE()
-        {
-            L.Debug(tag, $" LoopingMode_SET_GET_VALUE() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            await Task.Delay(500);
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            var loopingMode = LottieAnimationView.LoopingModeType.AutoReverse;
-            lottie.LoopingMode = loopingMode;
-            Assert.IsTrue(loopingMode == lottie.LoopingMode);
-
-            loopingMode = LottieAnimationView.LoopingModeType.Restart;
-            lottie.LoopingMode = loopingMode;
-            Assert.IsTrue(loopingMode == lottie.LoopingMode);
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("LoopCount test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.LoopCount A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task LoopCount_SET_GET_VALUE()
-        {
-            L.Debug(tag, $" LoopCount_SET_GET_VALUE() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie2.json";
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            var loopCount = -1;
-            lottie.LoopCount = loopCount;
-            Assert.IsTrue(loopCount == lottie.LoopCount, "should be same as previously set value");
-
-            loopCount = 7;
-            lottie.LoopCount = loopCount;
-            Assert.IsTrue(loopCount == lottie.LoopCount, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("StopBehavior test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.StopBehavior A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task StopBehavior_SET_GET_VALUE()
-        {
-            L.Debug(tag, $" StopBehavior_SET_GET_VALUE() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            await Task.Delay(500);
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            var stopBehavior = LottieAnimationView.StopBehaviorType.MaximumFrame;
-
-            lottie.StopBehavior = stopBehavior;
-            Assert.IsTrue(stopBehavior == lottie.StopBehavior, "should be same as previously set value");
-
-            stopBehavior = LottieAnimationView.StopBehaviorType.CurrentFrame;
-            lottie.StopBehavior = stopBehavior;
-            Assert.IsTrue(stopBehavior == lottie.StopBehavior, "should be same as previously set value");
-
-            stopBehavior = LottieAnimationView.StopBehaviorType.MinimumFrame;
-            lottie.StopBehavior = stopBehavior;
-            Assert.IsTrue(stopBehavior == lottie.StopBehavior, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("RedrawInScalingDown test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.RedrawInScalingDown A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task RedrawInScalingDown_SET_GET_VALUE()
-        {
-            L.Debug(tag, $" RedrawInScalingDown_SET_GET_VALUE() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            await Task.Delay(500);
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            var redraw = false;
-
-            lottie.RedrawInScalingDown = redraw;
-            Assert.IsTrue(redraw == lottie.RedrawInScalingDown, "should be same as previously set value");
-
-            redraw = true;
-            lottie.RedrawInScalingDown = redraw;
-            Assert.IsTrue(redraw == lottie.RedrawInScalingDown, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("SetMinMaxFrame test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.SetMinMaxFrame M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MAR")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task SetMinMaxFrame_CHECK()
-        {
-            L.Debug(tag, $" SetMinMaxFrame_CHECK() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            await Task.Delay(500);
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            var min = 5;
-            var max = 9;
-            lottie.SetMinMaxFrame(min, max);
-            await Task.Delay(300);
-
-            lottie.StopBehavior = LottieAnimationView.StopBehaviorType.MinimumFrame;
-            lottie.Play();
-            await Task.Delay(300);
-            L.Debug(tag, $"1. stop behavior ={lottie.StopBehavior} total frame={lottie.TotalFrame}");
-            lottie.Stop();
-            await Task.Delay(300);
-
-            L.Debug(tag, $"2. current frame={lottie.CurrentFrame}, min={min}, max={max}");
-            Assert.IsTrue(min == lottie.CurrentFrame, "should be same as previously set value");
-
-            lottie.StopBehavior = LottieAnimationView.StopBehaviorType.MaximumFrame;
-            lottie.Play();
-            await Task.Delay(300);
-            L.Debug(tag, $"2-1. stop behavior ={lottie.StopBehavior}");
-            lottie.Stop();
-            await Task.Delay(300);
-
-            L.Debug(tag, $"3. current frame={lottie.CurrentFrame}, min={min}, max={max}");
-            Assert.IsTrue(max == lottie.CurrentFrame, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Play test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Play M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MCST")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task Play_CHECK()
-        {
-            L.Debug(tag, $" Play_CHECK() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            lottie.LoopCount = -1;
-            lottie.Play();
-            await Task.Delay(100);
-
-            L.Debug(tag, $"state={lottie.PlayState}");
-            Assert.IsTrue(LottieAnimationView.PlayStateType.Playing == lottie.PlayState, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Pause test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Pause M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MCST")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task Pause_CHECK()
-        {
-            L.Debug(tag, $" Pause_CHECK() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            lottie.LoopCount = -1;
-            lottie.Play();
-            await Task.Delay(100);
-
-            lottie.Pause();
-            await Task.Delay(100);
-
-            L.Debug(tag, $"state={lottie.PlayState}, delay 100ms");
-            Assert.IsTrue(LottieAnimationView.PlayStateType.Paused == lottie.PlayState, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Stop test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Stop M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MCST")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task Stop_CHECK()
-        {
-            L.Debug(tag, $" Stop_CHECK() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            lottie.LoopCount = -1;
-            lottie.Play();
-            lottie.Stop();
-            await Task.Delay(100);
-
-            L.Debug(tag, $"state={lottie.PlayState}");
-            Assert.IsTrue(LottieAnimationView.PlayStateType.Stopped == lottie.PlayState, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("GetContentInfo test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.GetContentInfo M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MR")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task GetContentInfo_CHECK()
-        {
-            L.Debug(tag, $" GetContentInfo_CHECK() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            // this content info values are fixed ones, that were written in lottie.json file created as like that originally. obviously these vary by lottile resource file.
-            const string firstContentInfo = ".chris-gannon-instagram-lottie";
-            const int secondContentInfo = 0;
-            const int thirdContentInfo = 124;
-
-            var fixedContentInfoOfLottieFile = lottie.GetContentInfo();
-
-            // this content info values are fixed ones, that were written in lottie.json file created as like that originally. obviously these vary by lottile resource file.
-            Assert.IsTrue(fixedContentInfoOfLottieFile[0].Item1 == firstContentInfo, "should be same as previously set value");
-            Assert.IsTrue(fixedContentInfoOfLottieFile[0].Item2 == secondContentInfo, "should be same as previously set value");
-            Assert.IsTrue(fixedContentInfoOfLottieFile[0].Item3 == thirdContentInfo, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Finished test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Finished E")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "EVL")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task Finished_CHECK_EVENT()
-        {
-            L.Debug(tag, $" Finished_CHECK_EVENT() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie2.json";
-            await Task.Delay(500);
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            await Task.Delay(500);
-
-            finishedCheck = false;
-            lottie.LoopCount = 1;
-            lottie.Finished += Lottie_Finished;
-
-            lottie.Play();
-
-            L.Debug(tag, $"1. playState={lottie.PlayState}");
-            var lottieFilesPlayDuration = 2000;
-            await Task.Delay(lottieFilesPlayDuration);
-
-            L.Debug(tag, $"2. playState={lottie.PlayState}");
-            if (lottie.PlayState != LottieAnimationView.PlayStateType.Stopped)
-            {
-                L.Debug(tag, $"3. it's not yet stopped! playState={lottie.PlayState}, stop here again.");
-                lottie.Stop();
-                await Task.Delay(1000);
-                L.Debug(tag, $"4. it's not yet stopped! playState={lottie.PlayState}, stop here again.");
-            }
-            Assert.IsTrue(finishedCheck, $"should be same as previously set value, state={lottie.PlayState}");
-
-            L.Debug(tag, $"5. playState={lottie.PlayState}");
-
-            lottie.Finished -= Lottie_Finished;
-            lottie.Unparent();
-            lottie.Dispose();
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-
-        private void Lottie_Finished(object sender, EventArgs e)
-        {
-            L.Debug(tag, $"Finished callback came!");
-            finishedCheck = true;
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("RedrawInScalingDown animation test")]
-        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.RedrawInScalingDown A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
-        [Property("AUTHOR", "dongsug.song@samsung.com")]
-        public async Task RedrawInScalingDown_AnimationTest()
-        {
-            L.Debug(tag, $" RedrawInScalingDown_AnimationTest() ");
-            await Task.Delay(500);
-
-            var lottie = new LottieAnimationView();
-            var lottieRedrawTrue = new LottieAnimationView();
-            await Task.Delay(500);
-
-            lottie.URL = lottieFilePath + "/lottie.json";
-            lottieRedrawTrue.URL = lottieFilePath + "/lottie.json";
-            await Task.Delay(500);
-
-            NUIApplication.GetDefaultWindow().Add(lottie);
-            NUIApplication.GetDefaultWindow().Add(lottieRedrawTrue);
-            await Task.Delay(500);
-
-            lottie.Size = new Size(1000, 1000);
-            lottie.Position = new Position(0, 0);
-            lottie.LoopCount = -1;
-            lottie.Play();
-
-            lottieRedrawTrue.Size = new Size(1000, 1000);
-            lottieRedrawTrue.Position = new Position(1000, 10);
-            lottieRedrawTrue.LoopCount = -1;
-            lottieRedrawTrue.Play();
-
-            await Task.Delay(1000);
-
-            var redraw = false;
-            var redraw2 = true;
-            lottie.RedrawInScalingDown = redraw;
-            lottieRedrawTrue.RedrawInScalingDown = redraw2;
-
-            for (int i = 1000; i > 100; i -= 10)
-            {
-                lottie.Size = new Size(i, i, 0);
-                lottieRedrawTrue.Size = new Size(i, i, 0);
-                await Task.Delay(100);
-            }
-
-            await Task.Delay(9000);
-
-            Assert.IsTrue(redraw == lottie.RedrawInScalingDown, "should be same as previously set value");
-            Assert.IsTrue(redraw2 == lottieRedrawTrue.RedrawInScalingDown, "should be same as previously set value");
-
-            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
-            lottie.Unparent();
-            lottie.Dispose();
-
-            lottieRedrawTrue.Unparent();
-            lottieRedrawTrue.Dispose();
-
-            L.Debug(tag, $"lottie.Dispose() called");
-            await Task.Delay(500);
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/ViewMemoryLeakTest.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/ViewMemoryLeakTest.cs
deleted file mode 100755 (executable)
index c6f0123..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using System;
-using Tizen.NUI.Components;
-using Tizen.NUI.BaseComponents;
-using global::System.Resources;
-
-namespace Tizen.NUI.Devel.Tests
-{
-    [TestFixture]
-    [Description("View memory leak Tests")]
-    public class ViewMemoryLeakTests
-    {
-        private const string TAG = "NUITEST";
-
-        [SetUp]
-        public void Init()
-        {
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("view memory leak test")]
-        [Property("SPEC", "local test")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "local test")]
-        [Property("COVPARAM", "")]
-        [Property("AUTHOR", "dongsug.song")]
-        public void ViewMemoryLeakTest()
-        {
-            /* TEST CODE */
-            test1();
-        }
-
-        private View rootView;
-        private Timer timer;
-        private const uint numberOfTestCount = 1000;
-        private const uint numberOfViews = 500;
-        private int currentTestCount = 0;
-
-        private TextLabel doGC, add500views, remove500views;
-        void test1()
-        {
-            rootView = new View();
-            rootView.Size2D = new Size2D(100, 100);
-            rootView.Position2D = new Position2D(70, 70);
-            rootView.Focusable = true;
-            rootView.BackgroundColor = Color.Red;
-            rootView.KeyEvent += RootView_KeyEvent;
-            rootView.TouchEvent += RootView_TouchEvent;
-
-            Window.Instance.GetDefaultLayer().Add(rootView);
-
-            FocusManager.Instance.SetCurrentFocusView(rootView);
-
-            CreateViews();
-
-            timer = new Timer(1000);
-            timer.Tick += Timer_Tick;
-
-            doGC = new TextLabel()
-            {
-                Size = new Size(200, 100),
-                Position = new Position(500, 500),
-                Text = "Do GC!",
-                BackgroundColor = Color.White,
-            };
-            doGC.TouchEvent += DoGC_TouchEvent;
-            Window.Instance.GetDefaultLayer().Add(doGC);
-
-            add500views = new TextLabel()
-            {
-                Size = new Size(200, 100),
-                Position = new Position(500, 700),
-                Text = "add500views",
-                BackgroundColor = Color.White,
-            };
-            add500views.TouchEvent += add500views_TouchEvent;
-            Window.Instance.GetDefaultLayer().Add(add500views);
-
-            remove500views = new TextLabel()
-            {
-                Size = new Size(200, 100),
-                Position = new Position(500, 900),
-                Text = "remove500views",
-                BackgroundColor = Color.White,
-            };
-            remove500views.TouchEvent += remove500views_TouchEvent;
-            Window.Instance.GetDefaultLayer().Add(remove500views);
-        }
-
-        private bool remove500views_TouchEvent(object source, View.TouchEventArgs e)
-        {
-            if (e.Touch.GetState(0) == PointStateType.Down)
-            {
-                Tizen.Log.Debug("NUITEST", "remove500views");
-                DestroyViews();
-                var me = source as TextLabel;
-                me.BackgroundColor = Color.Blue;
-            }
-            else
-            {
-                var me = source as TextLabel;
-                me.BackgroundColor = Color.White;
-            }
-            return true;
-        }
-
-        private bool add500views_TouchEvent(object source, View.TouchEventArgs e)
-        {
-            if (e.Touch.GetState(0) == PointStateType.Down)
-            {
-                Tizen.Log.Debug("NUITEST", "add500views");
-                CreateViews();
-                var me = source as TextLabel;
-                me.BackgroundColor = Color.Red;
-            }
-            else
-            {
-                var me = source as TextLabel;
-                me.BackgroundColor = Color.White;
-            }
-            return true;
-        }
-
-        private bool DoGC_TouchEvent(object source, View.TouchEventArgs e)
-        {
-            if (e.Touch.GetState(0) == PointStateType.Down)
-            {
-                Tizen.Log.Debug("NUITEST", "Do GC!");
-                GC.Collect();
-                GC.WaitForPendingFinalizers();
-
-                var me = source as TextLabel;
-                me.BackgroundColor = Color.Red;
-            }
-            else
-            {
-                var me = source as TextLabel;
-                me.BackgroundColor = Color.White;
-            }
-            return true;
-        }
-
-        bool onceFlag = false;
-        private bool RootView_TouchEvent(object source, View.TouchEventArgs e)
-        {
-            if (e.Touch.GetState(0) == PointStateType.Down)
-            {
-                if (onceFlag == false)
-                {
-                    onceFlag = true;
-                    timer.Start();
-
-                    Tizen.Log.Debug("NUITEST", "TEST IS STARTED");
-                }
-            }
-            return true;
-        }
-
-        private bool RootView_KeyEvent(object source, View.KeyEventArgs e)
-        {
-            if (e.Key.State == Key.StateType.Down)
-            {
-                if (e.Key.KeyPressedName == "Return")
-                {
-                    timer.Start();
-
-                    Tizen.Log.Debug("NUITEST", $"TEST IS STARTED rootView's child cnt={rootView.ChildCount}");
-                }
-            }
-
-            return false;
-        }
-
-        private bool Timer_Tick(object source, Timer.TickEventArgs e)
-        {
-            GC.Collect();
-            GC.WaitForPendingFinalizers();
-
-            if (currentTestCount == numberOfTestCount)
-            {
-                Tizen.Log.Debug("NUITEST", $"TEST IS FINISHED. rootView's child cnt={rootView.ChildCount}");
-                onceFlag = false;
-                currentTestCount = 0;
-                return false;
-            }
-
-            if (currentTestCount % 2 == 0)
-            {
-                DestroyViews();
-            }
-            else
-            {
-                CreateViews();
-            }
-
-            currentTestCount++;
-
-            return true;
-        }
-
-        View[] viewArray = new View[numberOfViews];
-        bool workingFlag = false;
-        private void CreateViews()
-        {
-            Tizen.Log.Debug("NUITEST", $"CreateViews() start, numberOfViews={numberOfViews}, rootView's child cnt={rootView.ChildCount}");
-            if (workingFlag)
-            {
-                Tizen.Log.Debug("NUITEST", $"@@err CreateViews() working now! just return!");
-                return;
-            }
-            workingFlag = true;
-
-            for (uint i = 0; i < numberOfViews; i++)
-            {
-                View v = new View()
-                {
-                    Size = new Size(20, 20),
-                    BackgroundColor = Color.Green
-                };
-                rootView.Add(v);
-
-                //check ref count
-                //viewArray[i] = v;
-                //RefObject ro = v.GetObjectPtr();
-                //RefObject rv = rootView.GetObjectPtr();
-                //Tizen.Log.Debug("NUITEST", $"1) child.count={ro.ReferenceCount()}, parent cnt={rv.ReferenceCount()}");
-            }
-            Tizen.Log.Debug("NUITEST", $"CreateViews() end rootView's child cnt={rootView.ChildCount}\n");
-            workingFlag = false;
-        }
-
-        private void DestroyViews()
-        {
-            if (workingFlag)
-            {
-                Tizen.Log.Debug("NUITEST", $"@@err DestroyViews() working now! just return!");
-                return;
-            }
-            workingFlag = true;
-
-            if (rootView != null)
-            {
-                if (rootView.ChildCount > 0)
-                {
-                    Tizen.Log.Debug("NUITEST", $"DestroyViews() start, rootView.ChildCount={rootView.ChildCount}");
-                    for (int i = (int)rootView.ChildCount - 1; i >= 0; i--)
-                    {
-                        View v = rootView.GetChildAt((uint)i);
-                        v.Unparent();
-                        v.Dispose();
-                    }
-                    Tizen.Log.Debug("NUITEST", $"DestroyViews() end, rootView.ChildCount={rootView.ChildCount} \n");
-                }
-                //check ref count
-                //for (uint i = 0; i < numberOfViews; i++)
-                //{
-                //    View v = viewArray[i];
-                //    if(v != null)
-                //    {
-                //        RefObject ro = v.GetObjectPtr();
-                //        RefObject rv = rootView.GetObjectPtr();
-
-                //        Tizen.Log.Debug("NUITEST", $"1) child.count={ro.ReferenceCount()}, parent cnt={rv.ReferenceCount()}");
-
-                //        v.Dispose();
-                //        viewArray[i] = v = null;
-                //    }
-                //}
-            }
-            workingFlag = false;
-        }
-    }
-}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/TSButtonExample.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/TSButtonExample.cs
new file mode 100755 (executable)
index 0000000..ced585b
--- /dev/null
@@ -0,0 +1,901 @@
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using System;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+using global::System.Resources;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    [TestFixture]
+    [Description("TSButton Example Tests")]
+    public class ButtonTests
+    {
+        private const string TAG = "NUITEST";
+        private string _image_path = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+
+        [SetUp]
+        public void Init()
+        {
+            Tizen.Log.Info(TAG, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Tizen.Log.Info(TAG, "Destroy() is called!");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Button empty constructor. Check it has been triggered")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.Button C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("COVPARAM", "")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void Button_CHECK_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be an instance of Button!");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P2")]
+        [Description("Check exception when constructing a Button with nonexistent style.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.Button C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTX")]
+        [Property("COVPARAM", "string")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void Button_INIT_WITH_STRING_Exception()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Button("defaultButtonX");
+                Assert.Fail("Should throw the Exception: There is no style of defaultButtonX !");
+            }
+            catch (InvalidOperationException e)
+            {
+                Assert.Pass("InvalidOperationException: passed!");
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Button constructor using style. Check it has been triggered")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.Button C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("COVPARAM", "ButtonStyle")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void Button_INIT_WITH_STYLE()
+        {
+            /* TEST CODE */
+            var style = new ButtonStyle();
+            Assert.IsNotNull(style, "Should be not null!");
+            Assert.IsInstanceOf<ButtonStyle>(style, "Should be an instance of ButtonStyle!");
+
+            var button = new Button(style);
+            Assert.IsNotNull(button, "Should be not null!");
+            Assert.IsInstanceOf<Button>(button, "Should be an instance of Button!");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Style. Check whether Style is readable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.Style A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void Style_CHECK_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be an instance of Button!");
+
+            var style = button.Style;
+            Assert.IsNotNull(style, "Should be not null");
+            Assert.IsInstanceOf<ButtonStyle>(style, "Should be an instance of ButtonStyle!");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test IsSelectable. Check whether IsSelectable is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IsSelectable A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void IsSelectable_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            button.IsSelectable = true;
+            Assert.AreEqual(true, button.IsSelectable, "Should be equals to the set value");
+            button.IsSelectable = false;
+            Assert.AreEqual(false, button.IsSelectable, "Should be equals to the set value");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Text. Check whether Text is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.Text A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void Text_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            button.Text = "Test Text";
+            Assert.AreEqual("Test Text", button.Text, "Should be equals to the set value of Text");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test TranslatableText. Check whether TranslatableText is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TranslatableText A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TranslatableText_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            if (NUIApplication.MultilingualResourceManager != null)
+            {
+                button.TranslatableText = "Test TranslatableText";
+                Assert.AreEqual("Test TranslatableText", button.TranslatableText, "Should be equals to the set value of TranslatableText");
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test PointSize. Check whether PointSize is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.PointSize A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void PointSize_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            button.PointSize = 10.0f;
+            Assert.AreEqual(10.0f, button.PointSize, "Should be equals to the set value of PointSize");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test FontFamily. Check whether FontFamily is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.FontFamily A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void FontFamily_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            button.FontFamily = "SamsungOne 500";
+            Assert.AreEqual("SamsungOne 500", button.FontFamily, "Should be equals to the set value of FontFamily");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test TextColor. Check whether TextColor is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextColor A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TextColor_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            var color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
+            Assert.IsNotNull(color, "Should be not null");
+            Assert.IsInstanceOf<Color>(color, "Should be equal!");
+            button.TextColor = color;
+
+            Assert.AreEqual(color.R, button.TextColor.R, "Should be equals to the color.R set");
+            Assert.AreEqual(color.G, button.TextColor.G, "Should be equals to the color.G set");
+            Assert.AreEqual(color.B, button.TextColor.B, "Should be equals to the color.B set");
+            Assert.AreEqual(color.A, button.TextColor.A, "Should be equals to the color.A set");
+
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test TextAlignment. Check whether TextAlignment is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextAlignment A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TextAlignment_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            button.TextAlignment = HorizontalAlignment.Begin;
+            Assert.AreEqual(HorizontalAlignment.Begin, button.TextAlignment, "Should be equals to the set value of TextAlignment");
+            button.TextAlignment = HorizontalAlignment.Center;
+            Assert.AreEqual(HorizontalAlignment.Center, button.TextAlignment, "Should be equals to the set value of TextAlignment");
+            button.TextAlignment = HorizontalAlignment.End;
+            Assert.AreEqual(HorizontalAlignment.End, button.TextAlignment, "Should be equals to the set value of TextAlignment");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test IconURL. Check whether IconURL is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IconURL A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void IconURL_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            button.IconURL = _image_path;
+            Assert.AreEqual(_image_path, button.IconURL, "Should be equals to the set value of IconURL");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test TextSelector. Check whether TextSelector is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TextSelector_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            var stringSelector = new StringSelector
+            {
+                Normal = "Normal",
+                Selected = "Selected",
+            };
+            Assert.IsNotNull(stringSelector, "Should be not null");
+            Assert.IsInstanceOf<StringSelector>(stringSelector, "Should be equal!");
+
+            button.TextSelector = stringSelector;
+            Assert.AreEqual(stringSelector.Normal, button.TextSelector.Normal, "Should be equals to the set value of TextSelector");
+            Assert.AreEqual(stringSelector.Selected, button.TextSelector.Selected, "Should be equals to the set value of TextSelector");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P2")]
+        [Description("Check exception when TextSelector receive a null value.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PEX")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TextSelector_SET_GET_VALUE_Exception()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Components.Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+                button.TextSelector = null;
+                Assert.Fail("Should throw the NullReferenceException!");
+            }
+            catch (NullReferenceException e)
+            {
+                Assert.Pass("NullReferenceException: passed!");
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test TranslatableTextSelector. Check whether TranslatableTextSelector is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TranslatableTextSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TranslatableTextSelector_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            ResourceManager testRm = new ResourceManager("Tizen.NUI.Devel.Tests.Properties.Resources", typeof(ButtonTests).Assembly);
+            NUIApplication.MultilingualResourceManager = testRm;
+
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            var stringSelector = new StringSelector
+            {
+                Normal = "Normal",
+                Selected = "Selected",
+            };
+            Assert.IsNotNull(stringSelector, "Should be not null");
+            Assert.IsInstanceOf<StringSelector>(stringSelector, "Should be equal!");
+
+            button.TranslatableTextSelector = stringSelector;
+            Assert.AreEqual(stringSelector.Normal, button.TranslatableTextSelector.Normal, "Should be equals to the set value of TranslatableTextSelector");
+            Assert.AreEqual(stringSelector.Selected, button.TranslatableTextSelector.Selected, "Should be equals to the set value of TranslatableTextSelector");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P2")]
+        [Description("Check exception when TranslatableTextSelector receive a null value.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TranslatableTextSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PEX")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TranslatableTextSelector_SET_GET_VALUE_Exception()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Components.Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+                button.TranslatableTextSelector = null;
+                Assert.Fail("Should throw the NullReferenceException!");
+            }
+            catch (NullReferenceException e)
+            {
+                Assert.Pass("NullReferenceException: passed!");
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test TextColorSelector. Check whether TextColorSelector is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextColorSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TextColorSelector_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            var colorSelector = new ColorSelector
+            {
+                Normal = new Color(0.0f, 0.0f, 1.0f, 1.0f),
+                Selected = new Color(0.0f, 1.0f, 0.0f, 1.0f),
+            };
+            Assert.IsNotNull(colorSelector, "Should be not null");
+            Assert.IsInstanceOf<ColorSelector>(colorSelector, "Should be equal!");
+
+            button.TextColorSelector = colorSelector;
+            Assert.AreEqual(colorSelector.Normal.R, button.TextColorSelector.Normal.R, "Should be equals to the set value of TextColorSelector Normal R");
+            Assert.AreEqual(colorSelector.Normal.G, button.TextColorSelector.Normal.G, "Should be equals to the set value of TextColorSelector Normal G");
+            Assert.AreEqual(colorSelector.Normal.B, button.TextColorSelector.Normal.B, "Should be equals to the set value of TextColorSelector Normal B");
+            Assert.AreEqual(colorSelector.Normal.A, button.TextColorSelector.Normal.A, "Should be equals to the set value of TextColorSelector Normal A");
+
+            Assert.AreEqual(colorSelector.Selected.R, button.TextColorSelector.Selected.R, "Should be equals to the set value of TextColorSelector Selected R");
+            Assert.AreEqual(colorSelector.Selected.G, button.TextColorSelector.Selected.G, "Should be equals to the set value of TextColorSelector Selected G");
+            Assert.AreEqual(colorSelector.Selected.B, button.TextColorSelector.Selected.B, "Should be equals to the set value of TextColorSelector Selected B");
+            Assert.AreEqual(colorSelector.Selected.A, button.TextColorSelector.Selected.A, "Should be equals to the set value of TextColorSelector Selected A");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P2")]
+        [Description("Check exception when TextColorSelector receive a null value.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextColorSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PEX")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void TextColorSelector_SET_GET_VALUE_Exception()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Components.Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+                button.TextColorSelector = null;
+                Assert.Fail("Should throw the NullReferenceException!");
+            }
+            catch (NullReferenceException e)
+            {
+                Assert.Pass("NullReferenceException: passed!");
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test PointSizeSelector. Check whether PointSizeSelector is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.PointSizeSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void PointSizeSelector_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            var floatSelector = new FloatSelector
+            {
+                Normal = 10.0f,
+                Selected = 12.0f,
+            };
+            Assert.IsNotNull(floatSelector, "Should be not null");
+            Assert.IsInstanceOf<FloatSelector>(floatSelector, "Should be equal!");
+
+            button.PointSizeSelector = floatSelector;
+            Assert.AreEqual(floatSelector.Normal, button.PointSizeSelector.Normal, "Should be equals to the set value of PointSizeSelector Normal");
+            Assert.AreEqual(floatSelector.Selected, button.PointSizeSelector.Selected, "Should be equals to the set value of PointSizeSelector Selected");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P2")]
+        [Description("Check exception when PointSizeSelector receive a null value.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.PointSizeSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PEX")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void PointSizeSelector_SET_GET_VALUE_Exception()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Components.Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+                button.PointSizeSelector = null;
+                Assert.Fail("Should throw the NullReferenceException!");
+            }
+            catch (NullReferenceException e)
+            {
+                Assert.Pass("NullReferenceException: passed!");
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test IconURLSelector. Check whether IconURLSelector is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IconURLSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void IconURLSelector_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+            var stringSelector = new StringSelector
+            {
+                Normal = _image_path,
+                Selected = _image_path,
+            };
+            Assert.IsNotNull(stringSelector, "Should be not null");
+            Assert.IsInstanceOf<StringSelector>(stringSelector, "Should be equal!");
+
+            button.IconURLSelector = stringSelector;
+            Assert.AreEqual(stringSelector.Normal, button.IconURLSelector.Normal, "Should be equals to the set value of IconURLSelector Normal");
+            Assert.AreEqual(stringSelector.Selected, button.IconURLSelector.Selected, "Should be equals to the set value of IconURLSelector Selected");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P2")]
+        [Description("Check exception when IconURLSelector receive a null value.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IconURLSelector A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PEX")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void IconURLSelector_SET_GET_VALUE_Exception()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Components.Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+                button.IconURLSelector = null;
+                Assert.Fail("Should throw the NullReferenceException!");
+            }
+            catch (NullReferenceException e)
+            {
+                Assert.Pass("NullReferenceException: passed!");
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test IsSelected. Check whether IsSelected is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IsSelected A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void IsSelected_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+            button.IsSelectable = true;
+            button.IsSelected = true;
+            Assert.AreEqual(true, button.IsSelected, "Retrieved IsSelected should be equal to set value");
+            button.IsSelected = false;
+            Assert.AreEqual(false, button.IsSelected, "Retrieved IsSelected should be equal to set value");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test IsEnabled. Check whether IsEnabled is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IsEnabled A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void IsEnabled_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+            button.IsEnabled = true;
+            Assert.AreEqual(true, button.IsEnabled, "Retrieved IsEnabled should be equal to set value");
+            button.IsEnabled = false;
+            Assert.AreEqual(false, button.IsEnabled, "Retrieved IsEnabled should be equal to set value");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test IconPadding. Check whether IconPadding is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IconPadding A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void IconPadding_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+            button.IconPadding = new Extents(0, 0, 10, 10);
+            Assert.AreEqual(0, button.IconPadding.Start, "Retrieved IconPadding.Start should be equal to set value");
+            Assert.AreEqual(0, button.IconPadding.End, "Retrieved IconPadding.End should be equal to set value");
+            Assert.AreEqual(10, button.IconPadding.Top, "Retrieved IconPadding.Top should be equal to set value");
+            Assert.AreEqual(10, button.IconPadding.Bottom, "Retrieved IconPadding.Bottom should be equal to set value");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test TextPadding. Check whether TextPadding is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextPadding A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void TextPadding_SET_GET_VALUE()
+        {
+            /* TEST CODE */
+            var button = new Components.Button();
+            Assert.IsNotNull(button, "Should be not null");
+            Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+            button.TextPadding = new Extents(0, 0, 10, 10);
+            Assert.AreEqual(0, button.TextPadding.Start, "Retrieved TextPadding.Start should be equal to set value");
+            Assert.AreEqual(0, button.TextPadding.End, "Retrieved TextPadding.End should be equal to set value");
+            Assert.AreEqual(10, button.TextPadding.Top, "Retrieved TextPadding.Top should be equal to set value");
+            Assert.AreEqual(10, button.TextPadding.Bottom, "Retrieved TextPadding.Bottom should be equal to set value");
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test OnKey. Check return the right value or not")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.OnKey M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Ma Junqing, junqing.ma@samsung.com")]
+        public void OnKey_CHECK_RETURN_VALUE()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Components.Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+
+                bool flag = true;
+                flag = button.OnKey(new Key());
+                Assert.AreEqual(false, flag, "OnKey return check fail.");
+            }
+            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());
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Dispose, try to dispose the Button.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.Dispose M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MCST")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void Dispose_TEST()
+        {
+            /* TEST CODE */
+            try
+            {
+                Button button = new Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should be equal!");
+                button.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());
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test ApplyStyle. Check whether ApplyStyle works or not.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.ApplyStyle M")]
+        [Property("SPEC_URL", " - ")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void ApplyStyle_NO_RETURN_VALUE()
+        {
+            try
+            {
+                var button = new Button();
+                var style = new ButtonStyle();
+                button.ApplyStyle(style);
+            }
+            catch (Exception e)
+            {
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test CreateViewStyle. Check whether CreateViewStyle works or not.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.CreateViewStyle M")]
+        [Property("SPEC_URL", " - ")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Xianbing Teng, xb.teng@samsung.com")]
+        public void CreateViewStyle_CHECK_RETURN_VALUE()
+        {
+            try
+            {
+                var button = new MyButton();
+                ViewStyle style = button.CreateMyViewStyle();
+                Assert.IsNotNull(style, "Should be not null");
+            }
+            catch (Exception e)
+            {
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Button's icon part. Check whether null or not")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.Icon A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
+        public void Icon_TEST()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
+                Assert.IsNotNull(button.Icon, "Should be not null");
+                Assert.IsInstanceOf<ImageView>(button.Icon, "Should return ImageView instance");
+                button.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());
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Button's overlay image part. Check whether null or not")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.OverlayImage A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
+        public void OverlayImage_TEST()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
+                Assert.IsNotNull(button.OverlayImage, "Should be not null");
+                Assert.IsInstanceOf<ImageView>(button.OverlayImage, "Should return ImageView instance");
+                button.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());
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Button's text part. Check whether null or not")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.TextLabel A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
+        public void TextLabel_TEST()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
+                Assert.IsNotNull(button.TextLabel, "Should be not null");
+                Assert.IsInstanceOf<TextLabel>(button.TextLabel, "Should return TextLabel instance");
+                button.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());
+            }
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Test Icon relative orientation in Button. Check whether IconRelativeOrientation is readable and writable.")]
+        [Property("SPEC", "Tizen.NUI.Components.Button.IconRelativeOrientation A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "Zhou Lei, zhouleon.lei@samsung.com")]
+        public void IconRelativeOrientation_TEST()
+        {
+            /* TEST CODE */
+            try
+            {
+                var button = new Button();
+                Assert.IsNotNull(button, "Should be not null");
+                Assert.IsInstanceOf<Components.Button>(button, "Should return Button instance");
+                button.IconRelativeOrientation = Button.IconOrientation.Top;
+                Assert.AreEqual(Button.IconOrientation.Top, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
+                button.IconRelativeOrientation = Button.IconOrientation.Bottom;
+                Assert.AreEqual(Button.IconOrientation.Bottom, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
+                button.IconRelativeOrientation = Button.IconOrientation.Left;
+                Assert.AreEqual(Button.IconOrientation.Left, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
+                button.IconRelativeOrientation = Button.IconOrientation.Right;
+                Assert.AreEqual(Button.IconOrientation.Right, button.IconRelativeOrientation, "Should be equals to the set value of IconRelativeOrientation");
+                button.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());
+            }
+        }
+
+        public class MyButton : Button
+        {
+            public MyButton() : base() { }
+
+            public ViewStyle CreateMyViewStyle()
+            {
+                return base.CreateViewStyle();
+            }
+        }
+
+        public class DefaultButtonStyle : StyleBase
+        {
+            protected override ViewStyle GetViewStyle()
+            {
+                return new ButtonStyle();
+            }
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/TSLottieAnimationView.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/TSLottieAnimationView.cs
new file mode 100755 (executable)
index 0000000..147c666
--- /dev/null
@@ -0,0 +1,681 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.BaseComponents;
+using System.Threading.Tasks;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using L = Tizen.Log;
+
+    [TestFixture]
+    public class LottieAnimationViewTests
+    {
+        private string tag = "NUITEST";
+        private string lottieFilePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
+        private bool finishedCheck = false;
+
+        [SetUp]
+        public void Init()
+        {
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("LottieAnimationView constructor test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.LottieAnimationView C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void LottieAnimationView_INIT()
+        {
+            L.Debug(tag, $" LottieAnimationView_INIT() ");
+
+            var lottie = new LottieAnimationView();
+            Assert.IsNotNull(lottie, "null handle");
+            Assert.IsInstanceOf<LottieAnimationView>(lottie, "should be LottieAnimationView instance.");
+
+            var lottie2 = new LottieAnimationView(2.0f);
+            Assert.IsNotNull(lottie2, "null handle");
+            Assert.IsInstanceOf<LottieAnimationView>(lottie2, "should be LottieAnimationView instance.");
+
+            var lottie3 = new LottieAnimationView(3.0f, false);
+            Assert.IsNotNull(lottie3, "null handle");
+            Assert.IsInstanceOf<LottieAnimationView>(lottie3, "should be LottieAnimationView instance.");
+
+            lottie.Dispose();
+            lottie2.Dispose();
+            lottie3.Dispose();
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("URL test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.URL A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task URL_SET_GET_VALUE()
+        {
+            L.Debug(tag, $" URL_SET_GET_VALUE() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            Assert.IsTrue(lottieFilePath + "/lottie.json" == lottie.URL, "should be same as previously set value");
+
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("PlayState test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.PlayState A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PR0")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task PlayState_GET_VALUE()
+        {
+            L.Debug(tag, $" PlayState_GET_VALUE() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            await Task.Delay(500);
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            // PlayStateType.Invalid is impossible to check and test. the state comes from dali native but it never gives Invalid value. it is reserved enum for the future change.
+
+            lottie.Play();
+            await Task.Delay(100);
+            Assert.IsTrue(lottie.PlayState == LottieAnimationView.PlayStateType.Playing, "should be same as previously set value");
+
+            lottie.Pause();
+            await Task.Delay(100);
+
+            Assert.IsTrue(lottie.PlayState == LottieAnimationView.PlayStateType.Paused, "should be same as previously set value");
+
+            lottie.Stop();
+            await Task.Delay(100);
+
+            Assert.IsTrue(lottie.PlayState == LottieAnimationView.PlayStateType.Stopped, "should be same as previously set value");
+
+            // PlayStateType.Invalid is impossible to check and test. the state comes from dali native but it never gives Invalid value. it is reserved enum for the future change.
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("TotalFrame test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.TotalFrame A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task TotalFrame_GET_VALUE()
+        {
+            L.Debug(tag, $" TotalFrame_GET_VALUE() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            lottie.Stop();
+            const int fixedTotalFrameOfLottieFile = 124; // this 124 value is fixed one, that is lottie.json file were created as 124 frames originally. obviously it varies by lottile resource file.
+
+            L.Debug(tag, $"total frame={lottie.TotalFrame}");
+            // this 124 value is fixed one, that is lottie.json file were created as 124 frames originally. obviously it varies by lottile resource file.
+            Assert.IsTrue(fixedTotalFrameOfLottieFile == lottie.TotalFrame, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("CurrentFrame test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.CurrentFrame A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task CurrentFrame_SET_GET_VALUE()
+        {
+            L.Debug(tag, $" CurrentFrame_SET_GET_VALUE() ");
+
+            var lottie = new LottieAnimationView();
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+
+            var current = 3;
+            lottie.CurrentFrame = current;
+            await Task.Delay(1000);
+            Assert.IsTrue(current == lottie.CurrentFrame, "should be same as previously set value");
+
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("LoopingMode test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.LoopingMode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task LoopingMode_SET_GET_VALUE()
+        {
+            L.Debug(tag, $" LoopingMode_SET_GET_VALUE() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            await Task.Delay(500);
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            var loopingMode = LottieAnimationView.LoopingModeType.AutoReverse;
+            lottie.LoopingMode = loopingMode;
+            Assert.IsTrue(loopingMode == lottie.LoopingMode);
+
+            loopingMode = LottieAnimationView.LoopingModeType.Restart;
+            lottie.LoopingMode = loopingMode;
+            Assert.IsTrue(loopingMode == lottie.LoopingMode);
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("LoopCount test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.LoopCount A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task LoopCount_SET_GET_VALUE()
+        {
+            L.Debug(tag, $" LoopCount_SET_GET_VALUE() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie2.json";
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            var loopCount = -1;
+            lottie.LoopCount = loopCount;
+            Assert.IsTrue(loopCount == lottie.LoopCount, "should be same as previously set value");
+
+            loopCount = 7;
+            lottie.LoopCount = loopCount;
+            Assert.IsTrue(loopCount == lottie.LoopCount, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("StopBehavior test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.StopBehavior A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task StopBehavior_SET_GET_VALUE()
+        {
+            L.Debug(tag, $" StopBehavior_SET_GET_VALUE() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            await Task.Delay(500);
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            var stopBehavior = LottieAnimationView.StopBehaviorType.MaximumFrame;
+
+            lottie.StopBehavior = stopBehavior;
+            Assert.IsTrue(stopBehavior == lottie.StopBehavior, "should be same as previously set value");
+
+            stopBehavior = LottieAnimationView.StopBehaviorType.CurrentFrame;
+            lottie.StopBehavior = stopBehavior;
+            Assert.IsTrue(stopBehavior == lottie.StopBehavior, "should be same as previously set value");
+
+            stopBehavior = LottieAnimationView.StopBehaviorType.MinimumFrame;
+            lottie.StopBehavior = stopBehavior;
+            Assert.IsTrue(stopBehavior == lottie.StopBehavior, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("RedrawInScalingDown test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.RedrawInScalingDown A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task RedrawInScalingDown_SET_GET_VALUE()
+        {
+            L.Debug(tag, $" RedrawInScalingDown_SET_GET_VALUE() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            await Task.Delay(500);
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            var redraw = false;
+
+            lottie.RedrawInScalingDown = redraw;
+            Assert.IsTrue(redraw == lottie.RedrawInScalingDown, "should be same as previously set value");
+
+            redraw = true;
+            lottie.RedrawInScalingDown = redraw;
+            Assert.IsTrue(redraw == lottie.RedrawInScalingDown, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("SetMinMaxFrame test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.SetMinMaxFrame M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MAR")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task SetMinMaxFrame_CHECK()
+        {
+            L.Debug(tag, $" SetMinMaxFrame_CHECK() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            await Task.Delay(500);
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            var min = 5;
+            var max = 9;
+            lottie.SetMinMaxFrame(min, max);
+            await Task.Delay(300);
+
+            lottie.StopBehavior = LottieAnimationView.StopBehaviorType.MinimumFrame;
+            lottie.Play();
+            await Task.Delay(300);
+            L.Debug(tag, $"1. stop behavior ={lottie.StopBehavior} total frame={lottie.TotalFrame}");
+            lottie.Stop();
+            await Task.Delay(300);
+
+            L.Debug(tag, $"2. current frame={lottie.CurrentFrame}, min={min}, max={max}");
+            Assert.IsTrue(min == lottie.CurrentFrame, "should be same as previously set value");
+
+            lottie.StopBehavior = LottieAnimationView.StopBehaviorType.MaximumFrame;
+            lottie.Play();
+            await Task.Delay(300);
+            L.Debug(tag, $"2-1. stop behavior ={lottie.StopBehavior}");
+            lottie.Stop();
+            await Task.Delay(300);
+
+            L.Debug(tag, $"3. current frame={lottie.CurrentFrame}, min={min}, max={max}");
+            Assert.IsTrue(max == lottie.CurrentFrame, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Play test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Play M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MCST")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task Play_CHECK()
+        {
+            L.Debug(tag, $" Play_CHECK() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            lottie.LoopCount = -1;
+            lottie.Play();
+            await Task.Delay(100);
+
+            L.Debug(tag, $"state={lottie.PlayState}");
+            Assert.IsTrue(LottieAnimationView.PlayStateType.Playing == lottie.PlayState, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Pause test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Pause M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MCST")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task Pause_CHECK()
+        {
+            L.Debug(tag, $" Pause_CHECK() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            lottie.LoopCount = -1;
+            lottie.Play();
+            await Task.Delay(100);
+
+            lottie.Pause();
+            await Task.Delay(100);
+
+            L.Debug(tag, $"state={lottie.PlayState}, delay 100ms");
+            Assert.IsTrue(LottieAnimationView.PlayStateType.Paused == lottie.PlayState, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Stop test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Stop M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MCST")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task Stop_CHECK()
+        {
+            L.Debug(tag, $" Stop_CHECK() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            lottie.LoopCount = -1;
+            lottie.Play();
+            lottie.Stop();
+            await Task.Delay(100);
+
+            L.Debug(tag, $"state={lottie.PlayState}");
+            Assert.IsTrue(LottieAnimationView.PlayStateType.Stopped == lottie.PlayState, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("GetContentInfo test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.GetContentInfo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task GetContentInfo_CHECK()
+        {
+            L.Debug(tag, $" GetContentInfo_CHECK() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            // this content info values are fixed ones, that were written in lottie.json file created as like that originally. obviously these vary by lottile resource file.
+            const string firstContentInfo = ".chris-gannon-instagram-lottie";
+            const int secondContentInfo = 0;
+            const int thirdContentInfo = 124;
+
+            var fixedContentInfoOfLottieFile = lottie.GetContentInfo();
+
+            // this content info values are fixed ones, that were written in lottie.json file created as like that originally. obviously these vary by lottile resource file.
+            Assert.IsTrue(fixedContentInfoOfLottieFile[0].Item1 == firstContentInfo, "should be same as previously set value");
+            Assert.IsTrue(fixedContentInfoOfLottieFile[0].Item2 == secondContentInfo, "should be same as previously set value");
+            Assert.IsTrue(fixedContentInfoOfLottieFile[0].Item3 == thirdContentInfo, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("Finished test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.Finished E")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "EVL")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task Finished_CHECK_EVENT()
+        {
+            L.Debug(tag, $" Finished_CHECK_EVENT() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie2.json";
+            await Task.Delay(500);
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            await Task.Delay(500);
+
+            finishedCheck = false;
+            lottie.LoopCount = 1;
+            lottie.Finished += Lottie_Finished;
+
+            lottie.Play();
+
+            L.Debug(tag, $"1. playState={lottie.PlayState}");
+            var lottieFilesPlayDuration = 2000;
+            await Task.Delay(lottieFilesPlayDuration);
+
+            L.Debug(tag, $"2. playState={lottie.PlayState}");
+            if (lottie.PlayState != LottieAnimationView.PlayStateType.Stopped)
+            {
+                L.Debug(tag, $"3. it's not yet stopped! playState={lottie.PlayState}, stop here again.");
+                lottie.Stop();
+                await Task.Delay(1000);
+                L.Debug(tag, $"4. it's not yet stopped! playState={lottie.PlayState}, stop here again.");
+            }
+            Assert.IsTrue(finishedCheck, $"should be same as previously set value, state={lottie.PlayState}");
+
+            L.Debug(tag, $"5. playState={lottie.PlayState}");
+
+            lottie.Finished -= Lottie_Finished;
+            lottie.Unparent();
+            lottie.Dispose();
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+
+        private void Lottie_Finished(object sender, EventArgs e)
+        {
+            L.Debug(tag, $"Finished callback came!");
+            finishedCheck = true;
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("RedrawInScalingDown animation test")]
+        [Property("SPEC", "Tizen.NUI.BaseComponents.LottieAnimationView.RedrawInScalingDown A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public async Task RedrawInScalingDown_AnimationTest()
+        {
+            L.Debug(tag, $" RedrawInScalingDown_AnimationTest() ");
+            await Task.Delay(500);
+
+            var lottie = new LottieAnimationView();
+            var lottieRedrawTrue = new LottieAnimationView();
+            await Task.Delay(500);
+
+            lottie.URL = lottieFilePath + "/lottie.json";
+            lottieRedrawTrue.URL = lottieFilePath + "/lottie.json";
+            await Task.Delay(500);
+
+            NUIApplication.GetDefaultWindow().Add(lottie);
+            NUIApplication.GetDefaultWindow().Add(lottieRedrawTrue);
+            await Task.Delay(500);
+
+            lottie.Size = new Size(1000, 1000);
+            lottie.Position = new Position(0, 0);
+            lottie.LoopCount = -1;
+            lottie.Play();
+
+            lottieRedrawTrue.Size = new Size(1000, 1000);
+            lottieRedrawTrue.Position = new Position(1000, 10);
+            lottieRedrawTrue.LoopCount = -1;
+            lottieRedrawTrue.Play();
+
+            await Task.Delay(1000);
+
+            var redraw = false;
+            var redraw2 = true;
+            lottie.RedrawInScalingDown = redraw;
+            lottieRedrawTrue.RedrawInScalingDown = redraw2;
+
+            for (int i = 1000; i > 100; i -= 10)
+            {
+                lottie.Size = new Size(i, i, 0);
+                lottieRedrawTrue.Size = new Size(i, i, 0);
+                await Task.Delay(100);
+            }
+
+            await Task.Delay(9000);
+
+            Assert.IsTrue(redraw == lottie.RedrawInScalingDown, "should be same as previously set value");
+            Assert.IsTrue(redraw2 == lottieRedrawTrue.RedrawInScalingDown, "should be same as previously set value");
+
+            L.Debug(tag, $"if some fail comes above, this will be not be shown!");
+            lottie.Unparent();
+            lottie.Dispose();
+
+            lottieRedrawTrue.Unparent();
+            lottieRedrawTrue.Dispose();
+
+            L.Debug(tag, $"lottie.Dispose() called");
+            await Task.Delay(500);
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/ViewMemoryLeakTest.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/etc/ViewMemoryLeakTest.cs
new file mode 100755 (executable)
index 0000000..22a7043
--- /dev/null
@@ -0,0 +1,283 @@
+
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using System;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+using global::System.Resources;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    [TestFixture]
+    [Description("View memory leak Tests")]
+    public class ViewMemoryLeakTests
+    {
+        private const string TAG = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+        }
+
+#if (EXAMPLE)
+        [Test]
+#endif
+        [Category("P1")]
+        [Description("view memory leak test")]
+        [Property("SPEC", "local test")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "local test")]
+        [Property("COVPARAM", "")]
+        [Property("AUTHOR", "dongsug.song")]
+        public void ViewMemoryLeakTest()
+        {
+            /* TEST CODE */
+            test1();
+        }
+
+        private View rootView;
+        private Timer timer;
+        private const uint numberOfTestCount = 1000;
+        private const uint numberOfViews = 500;
+        private int currentTestCount = 0;
+
+        private TextLabel doGC, add500views, remove500views;
+        void test1()
+        {
+            rootView = new View();
+            rootView.Size2D = new Size2D(100, 100);
+            rootView.Position2D = new Position2D(70, 70);
+            rootView.Focusable = true;
+            rootView.BackgroundColor = Color.Red;
+            rootView.KeyEvent += RootView_KeyEvent;
+            rootView.TouchEvent += RootView_TouchEvent;
+
+            Window.Instance.GetDefaultLayer().Add(rootView);
+
+            FocusManager.Instance.SetCurrentFocusView(rootView);
+
+            CreateViews();
+
+            timer = new Timer(1000);
+            timer.Tick += Timer_Tick;
+
+            doGC = new TextLabel()
+            {
+                Size = new Size(200, 100),
+                Position = new Position(500, 500),
+                Text = "Do GC!",
+                BackgroundColor = Color.White,
+            };
+            doGC.TouchEvent += DoGC_TouchEvent;
+            Window.Instance.GetDefaultLayer().Add(doGC);
+
+            add500views = new TextLabel()
+            {
+                Size = new Size(200, 100),
+                Position = new Position(500, 700),
+                Text = "add500views",
+                BackgroundColor = Color.White,
+            };
+            add500views.TouchEvent += add500views_TouchEvent;
+            Window.Instance.GetDefaultLayer().Add(add500views);
+
+            remove500views = new TextLabel()
+            {
+                Size = new Size(200, 100),
+                Position = new Position(500, 900),
+                Text = "remove500views",
+                BackgroundColor = Color.White,
+            };
+            remove500views.TouchEvent += remove500views_TouchEvent;
+            Window.Instance.GetDefaultLayer().Add(remove500views);
+        }
+
+        private bool remove500views_TouchEvent(object source, View.TouchEventArgs e)
+        {
+            if (e.Touch.GetState(0) == PointStateType.Down)
+            {
+                Tizen.Log.Debug("NUITEST", "remove500views");
+                DestroyViews();
+                var me = source as TextLabel;
+                me.BackgroundColor = Color.Blue;
+            }
+            else
+            {
+                var me = source as TextLabel;
+                me.BackgroundColor = Color.White;
+            }
+            return true;
+        }
+
+        private bool add500views_TouchEvent(object source, View.TouchEventArgs e)
+        {
+            if (e.Touch.GetState(0) == PointStateType.Down)
+            {
+                Tizen.Log.Debug("NUITEST", "add500views");
+                CreateViews();
+                var me = source as TextLabel;
+                me.BackgroundColor = Color.Red;
+            }
+            else
+            {
+                var me = source as TextLabel;
+                me.BackgroundColor = Color.White;
+            }
+            return true;
+        }
+
+        private bool DoGC_TouchEvent(object source, View.TouchEventArgs e)
+        {
+            if (e.Touch.GetState(0) == PointStateType.Down)
+            {
+                Tizen.Log.Debug("NUITEST", "Do GC!");
+                GC.Collect();
+                GC.WaitForPendingFinalizers();
+
+                var me = source as TextLabel;
+                me.BackgroundColor = Color.Red;
+            }
+            else
+            {
+                var me = source as TextLabel;
+                me.BackgroundColor = Color.White;
+            }
+            return true;
+        }
+
+        bool onceFlag = false;
+        private bool RootView_TouchEvent(object source, View.TouchEventArgs e)
+        {
+            if (e.Touch.GetState(0) == PointStateType.Down)
+            {
+                if (onceFlag == false)
+                {
+                    onceFlag = true;
+                    timer.Start();
+
+                    Tizen.Log.Debug("NUITEST", "TEST IS STARTED");
+                }
+            }
+            return true;
+        }
+
+        private bool RootView_KeyEvent(object source, View.KeyEventArgs e)
+        {
+            if (e.Key.State == Key.StateType.Down)
+            {
+                if (e.Key.KeyPressedName == "Return")
+                {
+                    timer.Start();
+
+                    Tizen.Log.Debug("NUITEST", $"TEST IS STARTED rootView's child cnt={rootView.ChildCount}");
+                }
+            }
+
+            return false;
+        }
+
+        private bool Timer_Tick(object source, Timer.TickEventArgs e)
+        {
+            GC.Collect();
+            GC.WaitForPendingFinalizers();
+
+            if (currentTestCount == numberOfTestCount)
+            {
+                Tizen.Log.Debug("NUITEST", $"TEST IS FINISHED. rootView's child cnt={rootView.ChildCount}");
+                onceFlag = false;
+                currentTestCount = 0;
+                return false;
+            }
+
+            if (currentTestCount % 2 == 0)
+            {
+                DestroyViews();
+            }
+            else
+            {
+                CreateViews();
+            }
+
+            currentTestCount++;
+
+            return true;
+        }
+
+        View[] viewArray = new View[numberOfViews];
+        bool workingFlag = false;
+        private void CreateViews()
+        {
+            Tizen.Log.Debug("NUITEST", $"CreateViews() start, numberOfViews={numberOfViews}, rootView's child cnt={rootView.ChildCount}");
+            if (workingFlag)
+            {
+                Tizen.Log.Debug("NUITEST", $"@@err CreateViews() working now! just return!");
+                return;
+            }
+            workingFlag = true;
+
+            for (uint i = 0; i < numberOfViews; i++)
+            {
+                View v = new View()
+                {
+                    Size = new Size(20, 20),
+                    BackgroundColor = Color.Green
+                };
+                rootView.Add(v);
+
+                //check ref count
+                //viewArray[i] = v;
+                //RefObject ro = v.GetObjectPtr();
+                //RefObject rv = rootView.GetObjectPtr();
+                //Tizen.Log.Debug("NUITEST", $"1) child.count={ro.ReferenceCount()}, parent cnt={rv.ReferenceCount()}");
+            }
+            Tizen.Log.Debug("NUITEST", $"CreateViews() end rootView's child cnt={rootView.ChildCount}\n");
+            workingFlag = false;
+        }
+
+        private void DestroyViews()
+        {
+            if (workingFlag)
+            {
+                Tizen.Log.Debug("NUITEST", $"@@err DestroyViews() working now! just return!");
+                return;
+            }
+            workingFlag = true;
+
+            if (rootView != null)
+            {
+                if (rootView.ChildCount > 0)
+                {
+                    Tizen.Log.Debug("NUITEST", $"DestroyViews() start, rootView.ChildCount={rootView.ChildCount}");
+                    for (int i = (int)rootView.ChildCount - 1; i >= 0; i--)
+                    {
+                        View v = rootView.GetChildAt((uint)i);
+                        v.Unparent();
+                        v.Dispose();
+                    }
+                    Tizen.Log.Debug("NUITEST", $"DestroyViews() end, rootView.ChildCount={rootView.ChildCount} \n");
+                }
+                //check ref count
+                //for (uint i = 0; i < numberOfViews; i++)
+                //{
+                //    View v = viewArray[i];
+                //    if(v != null)
+                //    {
+                //        RefObject ro = v.GetObjectPtr();
+                //        RefObject rv = rootView.GetObjectPtr();
+
+                //        Tizen.Log.Debug("NUITEST", $"1) child.count={ro.ReferenceCount()}, parent cnt={rv.ReferenceCount()}");
+
+                //        v.Dispose();
+                //        viewArray[i] = v = null;
+                //    }
+                //}
+            }
+            workingFlag = false;
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/internal/Accessibility/TSAccessibilityActionSignal.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/internal/Accessibility/TSAccessibilityActionSignal.cs
new file mode 100755 (executable)
index 0000000..53e7845
--- /dev/null
@@ -0,0 +1,147 @@
+
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Accessibility/AccessibilityActionSignal")]
+    public class InternalAccessibilityActionSignalTest
+    {
+        private const string tag = "NUITEST";
+        private delegate bool dummyCallback(IntPtr accessibilityManager);
+        private bool OnDummyCallback(IntPtr data)
+        {
+            return false;
+        }
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Description("AccessibilityActionSignal constructor")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityActionSignalConstructor()
+        {
+            tlog.Debug(tag, $"AccessibilityActionSignalConstructor START");
+
+            var testingTarget = new AccessibilityActionSignal();
+
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityActionSignal>(testingTarget, "should be an instance of testing target class!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"AccessibilityActionSignalConstructor END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityActionSignal Empty")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityActionSignalEmpty()
+        {
+            tlog.Debug(tag, $"AccessibilityActionSignalEmpty START");
+
+            var testingTarget = new AccessibilityActionSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityActionSignal>(testingTarget, "should be an instance of testing target class!");
+
+            var result = testingTarget.Empty();
+            Assert.IsTrue(result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"AccessibilityActionSignalEmpty END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityActionSignal GetConnectionCount")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityActionSignalGetConnectionCount()
+        {
+            tlog.Debug(tag, $"AccessibilityActionSignal_GetConnectionCount START");
+
+            var testingTarget = new AccessibilityActionSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityActionSignal>(testingTarget, "should be an instance of testing target class!");
+
+            var result = testingTarget.GetConnectionCount();
+            Assert.IsTrue(result == 0, "result should be 0");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"AccessibilityActionSignalGetConnectionCount END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityActionSignal Connection")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityActionSignalConnection()
+        {
+            tlog.Debug(tag, $"AccessibilityActionSignalConnection START");
+
+            var testingTarget = new AccessibilityActionSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityActionSignal>(testingTarget, "should be an instance of testing target class!");
+
+            dummyCallback callback = OnDummyCallback;
+            testingTarget.Connect(callback);
+            testingTarget.Disconnect(callback);
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"AccessibilityActionSignalConnection END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityActionSignal Disconnection")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityActionSignalDisconnection()
+        {
+            tlog.Debug(tag, $"AccessibilityActionSignalDisconnection START");
+
+            var testingTarget = new AccessibilityActionSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityActionSignal>(testingTarget, "should be an instance of testing target class!");
+
+            dummyCallback callback = OnDummyCallback;
+            testingTarget.Connect(callback);
+            testingTarget.Disconnect(callback);
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"AccessibilityActionSignalDisconnection END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityActionSignal Emit")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityActionSignalEmit()
+        {
+            tlog.Debug(tag, $"AccessibilityActionSignalEmit START");
+            var currentPid = global::System.Diagnostics.Process.GetCurrentProcess().Id;
+            var currentTid = global::System.Threading.Thread.CurrentThread.ManagedThreadId;
+
+            tlog.Debug(tag, $"thread check! main pid={App.mainPid}, current pid={currentPid}, main tid={App.mainTid}, current tid={currentTid}");
+
+            var testingTarget = new AccessibilityActionSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityActionSignal>(testingTarget, "should be an instance of testing target class!");
+
+            testingTarget.Emit(Tizen.NUI.Accessibility.AccessibilityManager.Instance);
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"AccessibilityActionSignalEmit END (OK)");
+        }
+
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/internal/Accessibility/TSAccessibilityFocusOvershotSignal.cs b/test/Tizen.NUI.Tests/Tizen.NUI.TCT/testcase/internal/Accessibility/TSAccessibilityFocusOvershotSignal.cs
new file mode 100755 (executable)
index 0000000..98afa2b
--- /dev/null
@@ -0,0 +1,150 @@
+
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Accessibility/AccessibilityFocusOvershotSignal")]
+    public class InternalAccessibilityFocusOvershotSignalTests
+    {
+        private const string tag = "NUITEST";
+        private delegate bool dummyCallback(IntPtr accessibilityManager);
+        private bool OnDummyCallback(IntPtr data)
+        {
+            return false;
+        }
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Description("AccessibilityFocusOvershotSignal constructor")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityFocusOvershotSignalConstructor()
+        {
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalConstructor START");
+
+            var testingTarget = new AccessibilityFocusOvershotSignal();
+
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityFocusOvershotSignal>(testingTarget, "should be an instance of testing target class!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalConstructor END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityFocusOvershotSignal Empty")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityFocusOvershotSignalEmpty()
+        {
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalEmpty START");
+
+            var testingTarget = new AccessibilityFocusOvershotSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityFocusOvershotSignal>(testingTarget, "should be an instance of testing target class!");
+
+            var result = testingTarget.Empty();
+            Assert.IsTrue(result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalEmpty END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityFocusOvershotSignal GetConnectionCount")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityFocusOvershotSignalGetConnectionCount()
+        {
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalGetConnectionCount START");
+
+            var testingTarget = new AccessibilityFocusOvershotSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityFocusOvershotSignal>(testingTarget, "should be an instance of testing target class!");
+
+            var result = testingTarget.GetConnectionCount();
+            Assert.IsTrue(result == 0, "result should be 0");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalGetConnectionCount END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityFocusOvershotSignal Connection")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityFocusOvershotSignalConnection()
+        {
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalConnection START");
+
+            var testingTarget = new AccessibilityFocusOvershotSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityFocusOvershotSignal>(testingTarget, "should be an instance of testing target class!");
+
+            dummyCallback callback = OnDummyCallback;
+            testingTarget.Connect(callback);
+            testingTarget.Disconnect(callback);
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalConnection END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityFocusOvershotSignal Disconnection")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityFocusOvershotSignalDisconnection()
+        {
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalDisconnection START");
+
+            var testingTarget = new AccessibilityFocusOvershotSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityFocusOvershotSignal>(testingTarget, "should be an instance of testing target class!");
+
+            dummyCallback callback = OnDummyCallback;
+            testingTarget.Connect(callback);
+            testingTarget.Disconnect(callback);
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalDisconnection END (OK)");
+        }
+
+        [Test]
+        [Description("AccessibilityFocusOvershotSignal Emit")]
+        [Property("AUTHOR", "dongsug.song@samsung.com")]
+        public void AccessibilityFocusOvershotSignalEmit()
+        {
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalEmit START");
+            var currentPid = global::System.Diagnostics.Process.GetCurrentProcess().Id;
+            var currentTid = global::System.Threading.Thread.CurrentThread.ManagedThreadId;
+
+            tlog.Debug(tag, $"thread check! main pid={App.mainPid}, current pid={currentPid}, main tid={App.mainTid}, current tid={currentTid}");
+
+            var testingTarget = new AccessibilityFocusOvershotSignal();
+            Assert.IsNotNull(testingTarget, "should be not null");
+            Assert.IsInstanceOf<AccessibilityFocusOvershotSignal>(testingTarget, "should be an instance of testing target class!");
+
+            View dummy = new View();
+            testingTarget.Emit(dummy, Accessibility.AccessibilityManager.FocusOvershotDirection.Previous);
+            
+            testingTarget.Dispose();
+            dummy.Dispose();
+
+            tlog.Debug(tag, $"AccessibilityFocusOvershotSignalEmit END (OK)");
+        }
+
+    }
+}
index 086f74e5141af66357786064e933cfd6a5e19b0d..8d32572b1f52537eb53c69641bde44cde577299f 100755 (executable)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest package="Tizen.NUI.Devel.Tests" version="1.0.0" api-version="8" xmlns="http://tizen.org/ns/packages">
+<manifest package="Tizen.NUI.Devel.Tests" version="1.0.0" api-version="9" xmlns="http://tizen.org/ns/packages">
     <profile name="common" />
     <ui-application appid="Tizen.NUI.Devel.Tests" exec="Tizen.NUI.Devel.Tests.dll" multiple="false" taskmanage="true" splash-screen-display="true" type="dotnet" launch_mode="single">
         <icon>nui-csharp.png</icon>