Merge "fix issue in negative line spacing with key arrow down" into devel/master
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-TextEditor.cpp
index 02dff2e..9db4289 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  *
  */
 
-#include <iostream>
-#include <stdlib.h>
-#include <unistd.h>
-#include <dali/public-api/rendering/renderer.h>
-#include <dali/devel-api/adaptor-framework/clipboard.h>
-#include <dali/devel-api/adaptor-framework/key-devel.h>
-#include <dali/devel-api/text-abstraction/font-client.h>
-#include <dali/integration-api/events/key-event-integ.h>
-#include <dali/integration-api/events/touch-event-integ.h>
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h>
 #include <dali-toolkit/devel-api/text/rendering-backend.h>
 #include <dali-toolkit/devel-api/text/text-enumerations-devel.h>
 
+#include <dali/devel-api/actors/actor-devel.h>
+#include <dali/devel-api/adaptor-framework/clipboard.h>
+#include <dali/devel-api/adaptor-framework/key-devel.h>
+#include <dali/devel-api/text-abstraction/font-client.h>
+#include <dali/integration-api/events/key-event-integ.h>
+#include <dali/integration-api/events/touch-event-integ.h>
+#include <dali/public-api/rendering/renderer.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <iostream>
+#include "test-text-geometry-utils.h"
+
 using namespace Dali;
 using namespace Toolkit;
 
@@ -45,7 +48,6 @@ void dali_texteditor_cleanup(void)
 
 namespace
 {
-
 const char* const PROPERTY_NAME_RENDERING_BACKEND                    = "renderingBackend";
 const char* const PROPERTY_NAME_TEXT                                 = "text";
 const char* const PROPERTY_NAME_TEXT_COLOR                           = "textColor";
@@ -77,81 +79,85 @@ const char* const PROPERTY_NAME_INPUT_FONT_FAMILY                    = "inputFon
 const char* const PROPERTY_NAME_INPUT_FONT_STYLE                     = "inputFontStyle";
 const char* const PROPERTY_NAME_INPUT_POINT_SIZE                     = "inputPointSize";
 
-const char* const PROPERTY_NAME_LINE_SPACING                         = "lineSpacing";
-const char* const PROPERTY_NAME_INPUT_LINE_SPACING                   = "inputLineSpacing";
-const char* const PROPERTY_NAME_UNDERLINE                            = "underline";
-const char* const PROPERTY_NAME_INPUT_UNDERLINE                      = "inputUnderline";
-const char* const PROPERTY_NAME_SHADOW                               = "shadow";
-const char* const PROPERTY_NAME_INPUT_SHADOW                         = "inputShadow";
-const char* const PROPERTY_NAME_EMBOSS                               = "emboss";
-const char* const PROPERTY_NAME_INPUT_EMBOSS                         = "inputEmboss";
-const char* const PROPERTY_NAME_OUTLINE                              = "outline";
-const char* const PROPERTY_NAME_INPUT_OUTLINE                        = "inputOutline";
-
-const char* const PROPERTY_NAME_SMOOTH_SCROLL                        = "smoothScroll";
-const char* const PROPERTY_NAME_SMOOTH_SCROLL_DURATION               = "smoothScrollDuration";
-const char* const PROPERTY_NAME_ENABLE_SCROLL_BAR                    = "enableScrollBar";
-const char* const PROPERTY_NAME_SCROLL_BAR_SHOW_DURATION             = "scrollBarShowDuration";
-const char* const PROPERTY_NAME_SCROLL_BAR_FADE_DURATION             = "scrollBarFadeDuration";
-const char* const PROPERTY_NAME_PIXEL_SIZE                           = "pixelSize";
-const char* const PROPERTY_NAME_LINE_COUNT                           = "lineCount";
-const char* const PROPERTY_NAME_PLACEHOLDER_TEXT                     = "placeholderText";
-const char* const PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR               = "placeholderTextColor";
-const char* const PROPERTY_NAME_ENABLE_SELECTION                     = "enableSelection";
-const char* const PROPERTY_NAME_PLACEHOLDER                          = "placeholder";
-const char* const PROPERTY_NAME_ENABLE_SHIFT_SELECTION               = "enableShiftSelection";
-const char* const PROPERTY_NAME_ENABLE_GRAB_HANDLE                   = "enableGrabHandle";
-const char* const PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION      = "matchSystemLanguageDirection";
-const char* const PROPERTY_NAME_MAX_LENGTH                           = "maxLength";
-const char* const PROPERTY_NAME_FONT_SIZE_SCALE                      = "fontSizeScale";
-const char* const PROPERTY_NAME_GRAB_HANDLE_COLOR                    = "grabHandleColor";
-const char* const PROPERTY_NAME_ENABLE_GRAB_HANDLE_POPUP             = "enableGrabHandlePopup";
-const char* const PROPERTY_NAME_INPUT_METHOD_SETTINGS                = "inputMethodSettings";
-const char* const PROPERTY_NAME_INPUT_FILTER                         = "inputFilter";
-
-const Vector4 PLACEHOLDER_TEXT_COLOR( 0.8f, 0.8f, 0.8f, 0.8f );
-const Dali::Vector4 LIGHT_BLUE( 0.75f, 0.96f, 1.f, 1.f ); // The text highlight color.
+const char* const PROPERTY_NAME_LINE_SPACING        = "lineSpacing";
+const char* const PROPERTY_NAME_INPUT_LINE_SPACING  = "inputLineSpacing";
+const char* const PROPERTY_NAME_UNDERLINE           = "underline";
+const char* const PROPERTY_NAME_INPUT_UNDERLINE     = "inputUnderline";
+const char* const PROPERTY_NAME_SHADOW              = "shadow";
+const char* const PROPERTY_NAME_INPUT_SHADOW        = "inputShadow";
+const char* const PROPERTY_NAME_EMBOSS              = "emboss";
+const char* const PROPERTY_NAME_INPUT_EMBOSS        = "inputEmboss";
+const char* const PROPERTY_NAME_OUTLINE             = "outline";
+const char* const PROPERTY_NAME_INPUT_OUTLINE       = "inputOutline";
+const char* const PROPERTY_NAME_STRIKETHROUGH       = "strikethrough";
+const char* const PROPERTY_NAME_INPUT_STRIKETHROUGH = "inputStrikethrough";
+
+const char* const PROPERTY_NAME_SMOOTH_SCROLL                   = "smoothScroll";
+const char* const PROPERTY_NAME_SMOOTH_SCROLL_DURATION          = "smoothScrollDuration";
+const char* const PROPERTY_NAME_ENABLE_SCROLL_BAR               = "enableScrollBar";
+const char* const PROPERTY_NAME_SCROLL_BAR_SHOW_DURATION        = "scrollBarShowDuration";
+const char* const PROPERTY_NAME_SCROLL_BAR_FADE_DURATION        = "scrollBarFadeDuration";
+const char* const PROPERTY_NAME_PIXEL_SIZE                      = "pixelSize";
+const char* const PROPERTY_NAME_LINE_COUNT                      = "lineCount";
+const char* const PROPERTY_NAME_PLACEHOLDER_TEXT                = "placeholderText";
+const char* const PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR          = "placeholderTextColor";
+const char* const PROPERTY_NAME_ENABLE_SELECTION                = "enableSelection";
+const char* const PROPERTY_NAME_PLACEHOLDER                     = "placeholder";
+const char* const PROPERTY_NAME_ENABLE_SHIFT_SELECTION          = "enableShiftSelection";
+const char* const PROPERTY_NAME_ENABLE_GRAB_HANDLE              = "enableGrabHandle";
+const char* const PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION = "matchSystemLanguageDirection";
+const char* const PROPERTY_NAME_MAX_LENGTH                      = "maxLength";
+const char* const PROPERTY_NAME_FONT_SIZE_SCALE                 = "fontSizeScale";
+const char* const PROPERTY_NAME_ENABLE_FONT_SIZE_SCALE          = "enableFontSizeScale";
+const char* const PROPERTY_NAME_GRAB_HANDLE_COLOR               = "grabHandleColor";
+const char* const PROPERTY_NAME_ENABLE_GRAB_HANDLE_POPUP        = "enableGrabHandlePopup";
+const char* const PROPERTY_NAME_INPUT_METHOD_SETTINGS           = "inputMethodSettings";
+const char* const PROPERTY_NAME_INPUT_FILTER                    = "inputFilter";
+
+const Vector4       PLACEHOLDER_TEXT_COLOR(0.8f, 0.8f, 0.8f, 0.8f);
+const Dali::Vector4 LIGHT_BLUE(0.75f, 0.96f, 1.f, 1.f); // The text highlight color.
 
 const float RENDER_FRAME_INTERVAL = 16.66f;
 
 const unsigned int DEFAULT_FONT_SIZE = 1152u;
-const std::string DEFAULT_FONT_DIR( "/resources/fonts" );
+const std::string  DEFAULT_FONT_DIR("/resources/fonts");
 
-const int KEY_A_CODE = 38;
-const int KEY_D_CODE = 40;
-const int KEY_C_CODE = 54;
-const int KEY_V_CODE = 55;
-const int KEY_X_CODE = 53;
+const int KEY_A_CODE           = 38;
+const int KEY_D_CODE           = 40;
+const int KEY_C_CODE           = 54;
+const int KEY_V_CODE           = 55;
+const int KEY_X_CODE           = 53;
 const int KEY_WHITE_SPACE_CODE = 65;
 
-const int KEY_SHIFT_MODIFIER = 257;
+const int KEY_SHIFT_MODIFIER   = 257;
 const int KEY_CONTROL_MODIFIER = 258;
 
-const char* HANDLE_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/insertpoint-icon.png";
-const char* HANDLE_LEFT_SELECTION_FILE_NAME = TEST_RESOURCE_DIR "/selection_handle_drop_left.png";
+const char* HANDLE_IMAGE_FILE_NAME           = TEST_RESOURCE_DIR "/insertpoint-icon.png";
+const char* HANDLE_LEFT_SELECTION_FILE_NAME  = TEST_RESOURCE_DIR "/selection_handle_drop_left.png";
 const char* HANDLE_RIGHT_SELECTION_FILE_NAME = TEST_RESOURCE_DIR "/selection_handle_drop_right.png";
 
 const std::string DEFAULT_DEVICE_NAME("hwKeyboard");
 
-static bool gSelectionChangedCallbackCalled;
-static uint32_t oldSelectionStart;
-static uint32_t oldSelectionEnd;
-static bool gSelectionClearedCallbackCalled;
-static bool gAnchorClickedCallBackCalled;
-static bool gAnchorClickedCallBackNotCalled;
-static bool gTextChangedCallBackCalled;
-static bool gInputFilteredAcceptedCallbackCalled;
-static bool gInputFilteredRejectedCallbackCalled;
-static bool gInputStyleChangedCallbackCalled;
-static bool gMaxCharactersCallBackCalled;
-static bool gCursorPositionChangedCallbackCalled;
-static uint32_t oldCursorPos;
+static bool                                        gSelectionChangedCallbackCalled;
+static uint32_t                                    oldSelectionStart;
+static uint32_t                                    oldSelectionEnd;
+static bool                                        gSelectionClearedCallbackCalled;
+static bool                                        gSelectionStartedCallbackCalled;
+static bool                                        gAnchorClickedCallBackCalled;
+static bool                                        gAnchorClickedCallBackNotCalled;
+static bool                                        gTextChangedCallBackCalled;
+static bool                                        gInputFilteredAcceptedCallbackCalled;
+static bool                                        gInputFilteredRejectedCallbackCalled;
+static bool                                        gInputStyleChangedCallbackCalled;
+static bool                                        gMaxCharactersCallBackCalled;
+static bool                                        gCursorPositionChangedCallbackCalled;
+static uint32_t                                    oldCursorPos;
 static Dali::Toolkit::TextEditor::InputStyle::Mask gInputStyleMask;
 
 struct CallbackFunctor
 {
   CallbackFunctor(bool* callbackFlag)
-  : mCallbackFlag( callbackFlag )
+  : mCallbackFlag(callbackFlag)
   {
   }
 
@@ -162,6 +168,13 @@ struct CallbackFunctor
   bool* mCallbackFlag;
 };
 
+static void TestSelectionStartedCallback(TextEditor control)
+{
+  tet_infoline(" TestSelectionStartedCallback");
+
+  gSelectionStartedCallbackCalled = true;
+}
+
 static void TestSelectionClearedCallback(TextEditor control)
 {
   tet_infoline(" TestSelectionClearedCallback");
@@ -174,8 +187,8 @@ static void TestSelectionChangedCallback(TextEditor control, uint32_t oldStart,
   tet_infoline(" TestSelectionChangedCallback");
 
   gSelectionChangedCallbackCalled = true;
-  oldSelectionStart = oldStart;
-  oldSelectionEnd   = oldEnd;
+  oldSelectionStart               = oldStart;
+  oldSelectionEnd                 = oldEnd;
 }
 
 static void TestAnchorClickedCallback(TextEditor control, const char* href, unsigned int hrefLength)
@@ -184,36 +197,36 @@ static void TestAnchorClickedCallback(TextEditor control, const char* href, unsi
 
   gAnchorClickedCallBackNotCalled = false;
 
-  if (!strcmp(href, "https://www.tizen.org") && hrefLength == strlen(href))
+  if(!strcmp(href, "https://www.tizen.org") && hrefLength == strlen(href))
   {
     gAnchorClickedCallBackCalled = true;
   }
 }
 
-static void TestCursorPositionChangedCallback( TextEditor control, unsigned int oldPos )
+static void TestCursorPositionChangedCallback(TextEditor control, unsigned int oldPos)
 {
   tet_infoline(" TestCursorPositionChangedCallback");
 
   gCursorPositionChangedCallbackCalled = true;
-  oldCursorPos = oldPos;
+  oldCursorPos                         = oldPos;
 }
 
-static void TestTextChangedCallback( TextEditor control )
+static void TestTextChangedCallback(TextEditor control)
 {
   tet_infoline(" TestTextChangedCallback");
 
   gTextChangedCallBackCalled = true;
 }
 
-static void TestInputStyleChangedCallback( TextEditor control, TextEditor::InputStyle::Mask mask )
+static void TestInputStyleChangedCallback(TextEditor control, TextEditor::InputStyle::Mask mask)
 {
   tet_infoline(" TestInputStyleChangedCallback");
 
   gInputStyleChangedCallbackCalled = true;
-  gInputStyleMask = mask;
+  gInputStyleMask                  = mask;
 }
 
-static void TestMaxLengthReachedCallback( TextEditor control )
+static void TestMaxLengthReachedCallback(TextEditor control)
 {
   tet_infoline(" TestMaxLengthReachedCallback");
 
@@ -235,112 +248,112 @@ static void TestInputFilteredCallback(TextEditor control, Toolkit::InputFilter::
 }
 
 // Generate a KeyEvent to send to Core.
-Integration::KeyEvent GenerateKey( const std::string& keyName,
-                                   const std::string& logicalKey,
-                                   const std::string& keyString,
-                                   int keyCode,
-                                   int keyModifier,
-                                   unsigned long timeStamp,
-                                   const Integration::KeyEvent::State& keyState,
-                                   const std::string& compose = "",
-                                   const std::string& deviceName = DEFAULT_DEVICE_NAME,
-                                   const Device::Class::Type& deviceClass = Device::Class::NONE,
-                                   const Device::Subclass::Type& deviceSubclass = Device::Subclass::NONE )
+Integration::KeyEvent GenerateKey(const std::string&                  keyName,
+                                  const std::string&                  logicalKey,
+                                  const std::string&                  keyString,
+                                  int                                 keyCode,
+                                  int                                 keyModifier,
+                                  unsigned long                       timeStamp,
+                                  const Integration::KeyEvent::State& keyState,
+                                  const std::string&                  compose        = "",
+                                  const std::string&                  deviceName     = DEFAULT_DEVICE_NAME,
+                                  const Device::Class::Type&          deviceClass    = Device::Class::NONE,
+                                  const Device::Subclass::Type&       deviceSubclass = Device::Subclass::NONE)
 {
-  return Integration::KeyEvent( keyName,
-                                logicalKey,
-                                keyString,
-                                keyCode,
-                                keyModifier,
-                                timeStamp,
-                                keyState,
-                                compose,
-                                deviceName,
-                                deviceClass,
-                                deviceSubclass );
+  return Integration::KeyEvent(keyName,
+                               logicalKey,
+                               keyString,
+                               keyCode,
+                               keyModifier,
+                               timeStamp,
+                               keyState,
+                               compose,
+                               deviceName,
+                               deviceClass,
+                               deviceSubclass);
 }
 
-Dali::Integration::Point GetPointDownInside( Vector2& pos )
+Dali::Integration::Point GetPointDownInside(Vector2& pos)
 {
   Dali::Integration::Point point;
-  point.SetState( PointState::DOWN );
-  point.SetScreenPosition( pos );
+  point.SetState(PointState::DOWN);
+  point.SetScreenPosition(pos);
   return point;
 }
 
-Dali::Integration::Point GetPointUpInside( Vector2& pos )
+Dali::Integration::Point GetPointUpInside(Vector2& pos)
 {
   Dali::Integration::Point point;
-  point.SetState( PointState::UP );
-  point.SetScreenPosition( pos );
+  point.SetState(PointState::UP);
+  point.SetScreenPosition(pos);
   return point;
 }
 
-bool DaliTestCheckMaps( const Property::Map& fontStyleMapGet, const Property::Map& fontStyleMapSet )
+bool DaliTestCheckMaps(const Property::Map& fontStyleMapGet, const Property::Map& fontStyleMapSet)
 {
-  if( fontStyleMapGet.Count() == fontStyleMapSet.Count() )
+  if(fontStyleMapGet.Count() == fontStyleMapSet.Count())
   {
-    for( unsigned int index = 0u; index < fontStyleMapGet.Count(); ++index )
+    for(unsigned int index = 0u; index < fontStyleMapGet.Count(); ++index)
     {
-      const KeyValuePair& valueGet = fontStyleMapGet.GetKeyValue( index );
+      const KeyValuePair& valueGet = fontStyleMapGet.GetKeyValue(index);
 
       Property::Value* valueSet = NULL;
-      if ( valueGet.first.type == Property::Key::INDEX )
+      if(valueGet.first.type == Property::Key::INDEX)
       {
-        valueSet = fontStyleMapSet.Find( valueGet.first.indexKey );
+        valueSet = fontStyleMapSet.Find(valueGet.first.indexKey);
       }
       else
       {
         // Get Key is a string so searching Set Map for a string key
-        valueSet = fontStyleMapSet.Find( valueGet.first.stringKey );
+        valueSet = fontStyleMapSet.Find(valueGet.first.stringKey);
       }
 
-      if( NULL != valueSet )
+      if(NULL != valueSet)
       {
-        if( valueSet->GetType() == Dali::Property::STRING && ( valueGet.second.Get<std::string>() != valueSet->Get<std::string>() ) )
+        if(valueSet->GetType() == Dali::Property::STRING && (valueGet.second.Get<std::string>() != valueSet->Get<std::string>()))
         {
-          tet_printf( "Value got : [%s], expected : [%s]", valueGet.second.Get<std::string>().c_str(), valueSet->Get<std::string>().c_str() );
+          tet_printf("Value got : [%s], expected : [%s]", valueGet.second.Get<std::string>().c_str(), valueSet->Get<std::string>().c_str());
           return false;
         }
-        else if( valueSet->GetType() == Dali::Property::BOOLEAN && ( valueGet.second.Get<bool>() != valueSet->Get<bool>() ) )
+        else if(valueSet->GetType() == Dali::Property::BOOLEAN && (valueGet.second.Get<bool>() != valueSet->Get<bool>()))
         {
-          tet_printf( "Value got : [%d], expected : [%d]", valueGet.second.Get<bool>(), valueSet->Get<bool>() );
+          tet_printf("Value got : [%d], expected : [%d]", valueGet.second.Get<bool>(), valueSet->Get<bool>());
           return false;
         }
-        else if( valueSet->GetType() == Dali::Property::INTEGER && ( valueGet.second.Get<int>() != valueSet->Get<int>() ) )
+        else if(valueSet->GetType() == Dali::Property::INTEGER && (valueGet.second.Get<int>() != valueSet->Get<int>()))
         {
-          tet_printf( "Value got : [%d], expected : [%d]", valueGet.second.Get<int>(), valueSet->Get<int>() );
+          tet_printf("Value got : [%d], expected : [%d]", valueGet.second.Get<int>(), valueSet->Get<int>());
           return false;
         }
-        else if( valueSet->GetType() == Dali::Property::FLOAT && ( valueGet.second.Get<float>() != valueSet->Get<float>() ) )
+        else if(valueSet->GetType() == Dali::Property::FLOAT && (valueGet.second.Get<float>() != valueSet->Get<float>()))
         {
-          tet_printf( "Value got : [%f], expected : [%f]", valueGet.second.Get<float>(), valueSet->Get<float>() );
+          tet_printf("Value got : [%f], expected : [%f]", valueGet.second.Get<float>(), valueSet->Get<float>());
           return false;
         }
-        else if( valueSet->GetType() == Dali::Property::VECTOR2 && ( valueGet.second.Get<Vector2>() != valueSet->Get<Vector2>() ) )
+        else if(valueSet->GetType() == Dali::Property::VECTOR2 && (valueGet.second.Get<Vector2>() != valueSet->Get<Vector2>()))
         {
           Vector2 vector2Get = valueGet.second.Get<Vector2>();
           Vector2 vector2Set = valueSet->Get<Vector2>();
-          tet_printf( "Value got : [%f, %f], expected : [%f, %f]", vector2Get.x, vector2Get.y, vector2Set.x, vector2Set.y );
+          tet_printf("Value got : [%f, %f], expected : [%f, %f]", vector2Get.x, vector2Get.y, vector2Set.x, vector2Set.y);
           return false;
         }
-        else if( valueSet->GetType() == Dali::Property::VECTOR4 && ( valueGet.second.Get<Vector4>() != valueSet->Get<Vector4>() ) )
+        else if(valueSet->GetType() == Dali::Property::VECTOR4 && (valueGet.second.Get<Vector4>() != valueSet->Get<Vector4>()))
         {
           Vector4 vector4Get = valueGet.second.Get<Vector4>();
           Vector4 vector4Set = valueSet->Get<Vector4>();
-          tet_printf( "Value got : [%f, %f, %f, %f], expected : [%f, %f, %f, %f]", vector4Get.r, vector4Get.g, vector4Get.b, vector4Get.a, vector4Set.r, vector4Set.g, vector4Set.b, vector4Set.a );
+          tet_printf("Value got : [%f, %f, %f, %f], expected : [%f, %f, %f, %f]", vector4Get.r, vector4Get.g, vector4Get.b, vector4Get.a, vector4Set.r, vector4Set.g, vector4Set.b, vector4Set.a);
           return false;
         }
       }
       else
       {
-        if ( valueGet.first.type == Property::Key::INDEX )
+        if(valueGet.first.type == Property::Key::INDEX)
         {
-          tet_printf( "  The key %d doesn't exist.", valueGet.first.indexKey );
+          tet_printf("  The key %d doesn't exist.", valueGet.first.indexKey);
         }
         else
         {
-          tet_printf( "  The key %s doesn't exist.", valueGet.first.stringKey.c_str() );
+          tet_printf("  The key %s doesn't exist.", valueGet.first.stringKey.c_str());
         }
         return false;
       }
@@ -354,18 +367,18 @@ class ScrollStateChangeCallback : public Dali::ConnectionTracker
 {
 public:
   ScrollStateChangeCallback(bool& startedCalled, bool& finishedCalled)
-  : mStartedCalled( startedCalled ),
-    mFinishedCalled( finishedCalled )
+  : mStartedCalled(startedCalled),
+    mFinishedCalled(finishedCalled)
   {
   }
 
-  void Callback( TextEditor editor, TextEditor::Scroll::Type type )
+  void Callback(TextEditor editor, TextEditor::Scroll::Type type)
   {
-    if( type == TextEditor::Scroll::STARTED )
+    if(type == TextEditor::Scroll::STARTED)
     {
       mStartedCalled = true;
     }
-    else if( type == TextEditor::Scroll::FINISHED )
+    else if(type == TextEditor::Scroll::FINISHED)
     {
       mFinishedCalled = true;
     }
@@ -382,7 +395,7 @@ int UtcDaliToolkitTextEditorConstructorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorConstructorP");
   TextEditor textEditor;
-  DALI_TEST_CHECK( !textEditor );
+  DALI_TEST_CHECK(!textEditor);
   END_TEST;
 }
 
@@ -391,7 +404,7 @@ int UtcDaliToolkitTextEditorNewP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorNewP");
   TextEditor textEditor = TextEditor::New();
-  DALI_TEST_CHECK( textEditor );
+  DALI_TEST_CHECK(textEditor);
   END_TEST;
 }
 
@@ -400,13 +413,13 @@ int UtcDaliToolkitTextEditorDownCastP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorDownCastP");
   TextEditor textEditor1 = TextEditor::New();
-  BaseHandle object( textEditor1 );
+  BaseHandle object(textEditor1);
 
-  TextEditor textEditor2 = TextEditor::DownCast( object );
-  DALI_TEST_CHECK( textEditor2 );
+  TextEditor textEditor2 = TextEditor::DownCast(object);
+  DALI_TEST_CHECK(textEditor2);
 
-  TextEditor textEditor3 = DownCast< TextEditor >( object );
-  DALI_TEST_CHECK( textEditor3 );
+  TextEditor textEditor3 = DownCast<TextEditor>(object);
+  DALI_TEST_CHECK(textEditor3);
   END_TEST;
 }
 
@@ -415,11 +428,11 @@ int UtcDaliToolkitTextEditorDownCastN(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorDownCastN");
   BaseHandle uninitializedObject;
-  TextEditor textEditor1 = TextEditor::DownCast( uninitializedObject );
-  DALI_TEST_CHECK( !textEditor1 );
+  TextEditor textEditor1 = TextEditor::DownCast(uninitializedObject);
+  DALI_TEST_CHECK(!textEditor1);
 
-  TextEditor textEditor2 = DownCast< TextEditor >( uninitializedObject );
-  DALI_TEST_CHECK( !textEditor2 );
+  TextEditor textEditor2 = DownCast<TextEditor>(uninitializedObject);
+  DALI_TEST_CHECK(!textEditor2);
   END_TEST;
 }
 
@@ -428,11 +441,11 @@ int UtcDaliToolkitTextEditorCopyConstructorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorCopyConstructorP");
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Test" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
 
-  TextEditor copy( textEditor );
-  DALI_TEST_CHECK( copy );
-  DALI_TEST_CHECK( copy.GetProperty<std::string>( TextEditor::Property::TEXT ) == textEditor.GetProperty<std::string>( TextEditor::Property::TEXT ) );
+  TextEditor copy(textEditor);
+  DALI_TEST_CHECK(copy);
+  DALI_TEST_CHECK(copy.GetProperty<std::string>(TextEditor::Property::TEXT) == textEditor.GetProperty<std::string>(TextEditor::Property::TEXT));
   END_TEST;
 }
 
@@ -441,14 +454,14 @@ int UtcDaliTextEditorMoveConstructor(void)
   ToolkitTestApplication application;
 
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Test" );
-  DALI_TEST_CHECK( textEditor.GetProperty<std::string>( TextEditor::Property::TEXT ) == "Test" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
+  DALI_TEST_CHECK(textEditor.GetProperty<std::string>(TextEditor::Property::TEXT) == "Test");
 
-  TextEditor moved = std::move( textEditor );
-  DALI_TEST_CHECK( moved );
-  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
-  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextEditor::Property::TEXT ) == "Test" );
-  DALI_TEST_CHECK( !textEditor );
+  TextEditor moved = std::move(textEditor);
+  DALI_TEST_CHECK(moved);
+  DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_CHECK(moved.GetProperty<std::string>(TextEditor::Property::TEXT) == "Test");
+  DALI_TEST_CHECK(!textEditor);
 
   END_TEST;
 }
@@ -458,11 +471,11 @@ int UtcDaliToolkitTextEditorAssignmentOperatorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorAssignmentOperatorP");
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Test" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
 
   TextEditor copy = textEditor;
-  DALI_TEST_CHECK( copy );
-  DALI_TEST_CHECK( copy.GetProperty<std::string>( TextEditor::Property::TEXT ) == textEditor.GetProperty<std::string>( TextEditor::Property::TEXT ) );
+  DALI_TEST_CHECK(copy);
+  DALI_TEST_CHECK(copy.GetProperty<std::string>(TextEditor::Property::TEXT) == textEditor.GetProperty<std::string>(TextEditor::Property::TEXT));
   END_TEST;
 }
 
@@ -471,15 +484,15 @@ int UtcDaliTextEditorMoveAssignment(void)
   ToolkitTestApplication application;
 
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Test" );
-  DALI_TEST_CHECK( textEditor.GetProperty<std::string>( TextEditor::Property::TEXT ) == "Test" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
+  DALI_TEST_CHECK(textEditor.GetProperty<std::string>(TextEditor::Property::TEXT) == "Test");
 
   TextEditor moved;
-  moved = std::move( textEditor );
-  DALI_TEST_CHECK( moved );
-  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
-  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextEditor::Property::TEXT ) == "Test" );
-  DALI_TEST_CHECK( !textEditor );
+  moved = std::move(textEditor);
+  DALI_TEST_CHECK(moved);
+  DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_CHECK(moved.GetProperty<std::string>(TextEditor::Property::TEXT) == "Test");
+  DALI_TEST_CHECK(!textEditor);
 
   END_TEST;
 }
@@ -489,7 +502,7 @@ int UtcDaliTextEditorNewP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorNewP");
   TextEditor textEditor = TextEditor::New();
-  DALI_TEST_CHECK( textEditor );
+  DALI_TEST_CHECK(textEditor);
   END_TEST;
 }
 
@@ -499,85 +512,90 @@ int UtcDaliTextEditorGetPropertyP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorGetPropertyP");
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
   // Check Property Indices are correct
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_RENDERING_BACKEND ) == DevelTextEditor::Property::RENDERING_BACKEND );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_TEXT ) == TextEditor::Property::TEXT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_TEXT_COLOR ) == TextEditor::Property::TEXT_COLOR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_FONT_FAMILY ) == TextEditor::Property::FONT_FAMILY );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_FONT_STYLE ) == TextEditor::Property::FONT_STYLE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_POINT_SIZE ) == TextEditor::Property::POINT_SIZE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_HORIZONTAL_ALIGNMENT ) == TextEditor::Property::HORIZONTAL_ALIGNMENT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SCROLL_THRESHOLD ) == TextEditor::Property::SCROLL_THRESHOLD );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SCROLL_SPEED ) == TextEditor::Property::SCROLL_SPEED );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_PRIMARY_CURSOR_COLOR ) == TextEditor::Property::PRIMARY_CURSOR_COLOR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SECONDARY_CURSOR_COLOR ) == TextEditor::Property::SECONDARY_CURSOR_COLOR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_CURSOR_BLINK ) == TextEditor::Property::ENABLE_CURSOR_BLINK );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_CURSOR_BLINK_INTERVAL ) == TextEditor::Property::CURSOR_BLINK_INTERVAL );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_CURSOR_BLINK_DURATION ) == TextEditor::Property::CURSOR_BLINK_DURATION );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_CURSOR_WIDTH ) == TextEditor::Property::CURSOR_WIDTH );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_GRAB_HANDLE_IMAGE ) == TextEditor::Property::GRAB_HANDLE_IMAGE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_GRAB_HANDLE_PRESSED_IMAGE ) == TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_IMAGE_LEFT ) == TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_IMAGE_RIGHT ) == TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_LEFT ) == TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_RIGHT ) == TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_LEFT ) == TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_RIGHT ) == TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SELECTION_HIGHLIGHT_COLOR ) == TextEditor::Property::SELECTION_HIGHLIGHT_COLOR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_DECORATION_BOUNDING_BOX ) == TextEditor::Property::DECORATION_BOUNDING_BOX );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_MARKUP ) == TextEditor::Property::ENABLE_MARKUP );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_COLOR ) == TextEditor::Property::INPUT_COLOR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_FONT_FAMILY ) == TextEditor::Property::INPUT_FONT_FAMILY );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_FONT_STYLE ) == TextEditor::Property::INPUT_FONT_STYLE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_POINT_SIZE ) == TextEditor::Property::INPUT_POINT_SIZE );
-
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_LINE_SPACING ) == TextEditor::Property::LINE_SPACING );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_LINE_SPACING ) == TextEditor::Property::INPUT_LINE_SPACING );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_UNDERLINE ) == TextEditor::Property::UNDERLINE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_UNDERLINE ) == TextEditor::Property::INPUT_UNDERLINE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SHADOW ) == TextEditor::Property::SHADOW );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_SHADOW ) == TextEditor::Property::INPUT_SHADOW );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_EMBOSS ) == TextEditor::Property::EMBOSS );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_EMBOSS ) == TextEditor::Property::INPUT_EMBOSS );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_OUTLINE ) == TextEditor::Property::OUTLINE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_OUTLINE ) == TextEditor::Property::INPUT_OUTLINE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SMOOTH_SCROLL ) == TextEditor::Property::SMOOTH_SCROLL );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SMOOTH_SCROLL_DURATION ) == TextEditor::Property::SMOOTH_SCROLL_DURATION );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_SCROLL_BAR ) == TextEditor::Property::ENABLE_SCROLL_BAR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SCROLL_BAR_SHOW_DURATION ) == TextEditor::Property::SCROLL_BAR_SHOW_DURATION );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SCROLL_BAR_FADE_DURATION ) == TextEditor::Property::SCROLL_BAR_FADE_DURATION );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_PIXEL_SIZE ) == TextEditor::Property::PIXEL_SIZE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_LINE_COUNT) == TextEditor::Property::LINE_COUNT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_SELECTION ) == TextEditor::Property::ENABLE_SELECTION );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER ) == TextEditor::Property::PLACEHOLDER );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_FONT_SIZE_SCALE ) == DevelTextEditor::Property::FONT_SIZE_SCALE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT ) == DevelTextEditor::Property::PLACEHOLDER_TEXT );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR ) == DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_SHIFT_SELECTION ) == DevelTextEditor::Property::ENABLE_SHIFT_SELECTION );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_GRAB_HANDLE ) == DevelTextEditor::Property::ENABLE_GRAB_HANDLE );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION ) == DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_MAX_LENGTH ) == DevelTextEditor::Property::MAX_LENGTH );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_GRAB_HANDLE_COLOR ) == DevelTextEditor::Property::GRAB_HANDLE_COLOR );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_GRAB_HANDLE_POPUP ) == DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_METHOD_SETTINGS ) == DevelTextEditor::Property::INPUT_METHOD_SETTINGS );
-  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_FILTER ) == DevelTextEditor::Property::INPUT_FILTER );
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_RENDERING_BACKEND) == DevelTextEditor::Property::RENDERING_BACKEND);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_TEXT) == TextEditor::Property::TEXT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_TEXT_COLOR) == TextEditor::Property::TEXT_COLOR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_FONT_FAMILY) == TextEditor::Property::FONT_FAMILY);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_FONT_STYLE) == TextEditor::Property::FONT_STYLE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_POINT_SIZE) == TextEditor::Property::POINT_SIZE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_HORIZONTAL_ALIGNMENT) == TextEditor::Property::HORIZONTAL_ALIGNMENT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SCROLL_THRESHOLD) == TextEditor::Property::SCROLL_THRESHOLD);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SCROLL_SPEED) == TextEditor::Property::SCROLL_SPEED);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_PRIMARY_CURSOR_COLOR) == TextEditor::Property::PRIMARY_CURSOR_COLOR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SECONDARY_CURSOR_COLOR) == TextEditor::Property::SECONDARY_CURSOR_COLOR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_CURSOR_BLINK) == TextEditor::Property::ENABLE_CURSOR_BLINK);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_CURSOR_BLINK_INTERVAL) == TextEditor::Property::CURSOR_BLINK_INTERVAL);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_CURSOR_BLINK_DURATION) == TextEditor::Property::CURSOR_BLINK_DURATION);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_CURSOR_WIDTH) == TextEditor::Property::CURSOR_WIDTH);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_GRAB_HANDLE_IMAGE) == TextEditor::Property::GRAB_HANDLE_IMAGE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_GRAB_HANDLE_PRESSED_IMAGE) == TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_IMAGE_LEFT) == TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_IMAGE_RIGHT) == TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_LEFT) == TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_RIGHT) == TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_LEFT) == TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_RIGHT) == TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SELECTION_HIGHLIGHT_COLOR) == TextEditor::Property::SELECTION_HIGHLIGHT_COLOR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_DECORATION_BOUNDING_BOX) == TextEditor::Property::DECORATION_BOUNDING_BOX);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_MARKUP) == TextEditor::Property::ENABLE_MARKUP);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_COLOR) == TextEditor::Property::INPUT_COLOR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_FONT_FAMILY) == TextEditor::Property::INPUT_FONT_FAMILY);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_FONT_STYLE) == TextEditor::Property::INPUT_FONT_STYLE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_POINT_SIZE) == TextEditor::Property::INPUT_POINT_SIZE);
+
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_LINE_SPACING) == TextEditor::Property::LINE_SPACING);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_LINE_SPACING) == TextEditor::Property::INPUT_LINE_SPACING);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_UNDERLINE) == TextEditor::Property::UNDERLINE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_UNDERLINE) == TextEditor::Property::INPUT_UNDERLINE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SHADOW) == TextEditor::Property::SHADOW);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_SHADOW) == TextEditor::Property::INPUT_SHADOW);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_EMBOSS) == TextEditor::Property::EMBOSS);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_EMBOSS) == TextEditor::Property::INPUT_EMBOSS);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_OUTLINE) == TextEditor::Property::OUTLINE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_OUTLINE) == TextEditor::Property::INPUT_OUTLINE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_STRIKETHROUGH) == DevelTextEditor::Property::STRIKETHROUGH);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_STRIKETHROUGH) == DevelTextEditor::Property::INPUT_STRIKETHROUGH);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SMOOTH_SCROLL) == TextEditor::Property::SMOOTH_SCROLL);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SMOOTH_SCROLL_DURATION) == TextEditor::Property::SMOOTH_SCROLL_DURATION);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_SCROLL_BAR) == TextEditor::Property::ENABLE_SCROLL_BAR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SCROLL_BAR_SHOW_DURATION) == TextEditor::Property::SCROLL_BAR_SHOW_DURATION);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_SCROLL_BAR_FADE_DURATION) == TextEditor::Property::SCROLL_BAR_FADE_DURATION);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_PIXEL_SIZE) == TextEditor::Property::PIXEL_SIZE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_LINE_COUNT) == TextEditor::Property::LINE_COUNT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_SELECTION) == TextEditor::Property::ENABLE_SELECTION);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_PLACEHOLDER) == TextEditor::Property::PLACEHOLDER);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_FONT_SIZE_SCALE) == DevelTextEditor::Property::FONT_SIZE_SCALE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_FONT_SIZE_SCALE) == DevelTextEditor::Property::ENABLE_FONT_SIZE_SCALE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_PLACEHOLDER_TEXT) == DevelTextEditor::Property::PLACEHOLDER_TEXT);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR) == DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_SHIFT_SELECTION) == DevelTextEditor::Property::ENABLE_SHIFT_SELECTION);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_GRAB_HANDLE) == DevelTextEditor::Property::ENABLE_GRAB_HANDLE);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION) == DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_MAX_LENGTH) == DevelTextEditor::Property::MAX_LENGTH);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_GRAB_HANDLE_COLOR) == DevelTextEditor::Property::GRAB_HANDLE_COLOR);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_ENABLE_GRAB_HANDLE_POPUP) == DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_METHOD_SETTINGS) == DevelTextEditor::Property::INPUT_METHOD_SETTINGS);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_FILTER) == DevelTextEditor::Property::INPUT_FILTER);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_STRIKETHROUGH) == DevelTextEditor::Property::STRIKETHROUGH);
+  DALI_TEST_CHECK(editor.GetPropertyIndex(PROPERTY_NAME_INPUT_STRIKETHROUGH) == DevelTextEditor::Property::INPUT_STRIKETHROUGH);
 
   END_TEST;
 }
 
-bool SetPropertyMapRetrieved( TextEditor& editor, const Property::Index property, const std::string mapKey, const std::string mapValue )
+bool SetPropertyMapRetrieved(TextEditor& editor, const Property::Index property, const std::string mapKey, const std::string mapValue)
 {
-  bool result = false;
+  bool          result = false;
   Property::Map imageMap;
-  imageMap[mapKey] =mapValue;
+  imageMap[mapKey] = mapValue;
 
-  editor.SetProperty( property , imageMap );
-  Property::Value propValue = editor.GetProperty( property );
-  Property::Map* resultMap = propValue.GetMap();
+  editor.SetProperty(property, imageMap);
+  Property::Value propValue = editor.GetProperty(property);
+  Property::Map*  resultMap = propValue.GetMap();
 
-  if ( resultMap->Find( mapKey )->Get< std::string>() == mapValue )
+  if(resultMap->Find(mapKey)->Get<std::string>() == mapValue)
   {
     result = true;
   }
@@ -591,250 +609,308 @@ int UtcDaliTextEditorSetPropertyP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorSetPropertyP");
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-  application.GetScene().Add( editor );
+  DALI_TEST_CHECK(editor);
+  application.GetScene().Add(editor);
 
   // Note - we can't check the defaults since the stylesheets are platform-specific
 
   // Check the render backend property.
-  editor.SetProperty( DevelTextEditor::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS );
-  DALI_TEST_EQUALS( (DevelText::RenderingType)editor.GetProperty<int>( DevelTextEditor::Property::RENDERING_BACKEND ), DevelText::RENDERING_SHARED_ATLAS, TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS);
+  DALI_TEST_EQUALS((DevelText::RenderingType)editor.GetProperty<int>(DevelTextEditor::Property::RENDERING_BACKEND), DevelText::RENDERING_SHARED_ATLAS, TEST_LOCATION);
 
   // Check text property.
-  editor.SetProperty( TextEditor::Property::TEXT, "Setting Text" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("Setting Text"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::TEXT, "Setting Text");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("Setting Text"), TEST_LOCATION);
 
   // Check text's color property
-  editor.SetProperty( TextEditor::Property::TEXT_COLOR, Color::WHITE );
-  DALI_TEST_EQUALS( editor.GetProperty<Vector4>( TextEditor::Property::TEXT_COLOR ), Color::WHITE, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::TEXT_COLOR, Color::WHITE);
+  DALI_TEST_EQUALS(editor.GetProperty<Vector4>(TextEditor::Property::TEXT_COLOR), Color::WHITE, TEST_LOCATION);
 
   // Check font properties.
-  editor.SetProperty( TextEditor::Property::FONT_FAMILY, "Setting font family" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::FONT_FAMILY ), std::string("Setting font family"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::FONT_FAMILY, "Setting font family");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::FONT_FAMILY), std::string("Setting font family"), TEST_LOCATION);
 
-  Property::Map fontStyleMapSet;
-  Property::Map fontStyleMapGet;
+  Property::Map    fontStyleMapSet;
+  Property::Map    fontStyleMapGet;
   Property::Value* slantValue = NULL;
 
-  fontStyleMapSet.Insert( "weight", "bold" );
-  fontStyleMapSet.Insert( "width", "condensed" );
-  fontStyleMapSet.Insert( "slant", "italic" );
+  fontStyleMapSet.Insert("weight", "bold");
+  fontStyleMapSet.Insert("width", "condensed");
+  fontStyleMapSet.Insert("slant", "italic");
 
-  editor.SetProperty( TextEditor::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::POINT_SIZE ), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::POINT_SIZE), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
-  editor.SetProperty( DevelTextEditor::Property::FONT_SIZE_SCALE, 2.5f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( DevelTextEditor::Property::FONT_SIZE_SCALE ), 2.5f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( DevelTextEditor::Property::FONT_SIZE_SCALE, 1.0f );
+  editor.SetProperty(DevelTextEditor::Property::FONT_SIZE_SCALE, 2.5f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(DevelTextEditor::Property::FONT_SIZE_SCALE), 2.5f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(DevelTextEditor::Property::FONT_SIZE_SCALE, 1.0f);
+
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_FONT_SIZE_SCALE, false);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::ENABLE_FONT_SIZE_SCALE), false, TEST_LOCATION);
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_FONT_SIZE_SCALE, true);
 
   // Reset font style.
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "normal" );
-  fontStyleMapSet.Insert( "slant", "oblique" );
-  editor.SetProperty( TextEditor::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapSet.Insert("weight", "normal");
+  fontStyleMapSet.Insert("slant", "oblique");
+  editor.SetProperty(TextEditor::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "slant", "roman" );
-  editor.SetProperty( TextEditor::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::FONT_STYLE );
+  fontStyleMapSet.Insert("slant", "roman");
+  editor.SetProperty(TextEditor::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::FONT_STYLE);
 
   // Replace 'roman' for 'normal'.
-  slantValue = fontStyleMapGet.Find( "slant" );
-  if( NULL != slantValue )
+  slantValue = fontStyleMapGet.Find("slant");
+  if(NULL != slantValue)
   {
-    if( "normal" == slantValue->Get<std::string>() )
+    if("normal" == slantValue->Get<std::string>())
     {
       fontStyleMapGet["slant"] = "roman";
     }
   }
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   fontStyleMapSet.Clear();
 
-  editor.SetProperty( TextEditor::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   // Check that the Alignment properties can be correctly set
-  editor.SetProperty( TextEditor::Property::HORIZONTAL_ALIGNMENT, "END" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::HORIZONTAL_ALIGNMENT ), "END", TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::HORIZONTAL_ALIGNMENT, "END");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::HORIZONTAL_ALIGNMENT), "END", TEST_LOCATION);
 
   // Check scroll properties.
-  editor.SetProperty( TextEditor::Property::SCROLL_THRESHOLD, 1.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SCROLL_THRESHOLD ), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::SCROLL_SPEED, 100.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SCROLL_SPEED ), 100.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::SCROLL_THRESHOLD, 1.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SCROLL_THRESHOLD), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::SCROLL_SPEED, 100.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SCROLL_SPEED), 100.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check cursor properties
-  editor.SetProperty( TextEditor::Property::PRIMARY_CURSOR_COLOR, Color::RED );
-  DALI_TEST_EQUALS( editor.GetProperty<Vector4>( TextEditor::Property::PRIMARY_CURSOR_COLOR ), Color::RED, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::SECONDARY_CURSOR_COLOR, Color::BLUE );
-  DALI_TEST_EQUALS( editor.GetProperty<Vector4>( TextEditor::Property::SECONDARY_CURSOR_COLOR ), Color::BLUE, TEST_LOCATION );
-
-  editor.SetProperty( TextEditor::Property::ENABLE_CURSOR_BLINK, false );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::ENABLE_CURSOR_BLINK ), false, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::CURSOR_BLINK_INTERVAL, 1.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::CURSOR_BLINK_INTERVAL ), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::CURSOR_BLINK_DURATION, 10.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::CURSOR_BLINK_DURATION ), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::CURSOR_WIDTH, 1 );
-  DALI_TEST_EQUALS( editor.GetProperty<int>( TextEditor::Property::CURSOR_WIDTH ), 1, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::PRIMARY_CURSOR_COLOR, Color::RED);
+  DALI_TEST_EQUALS(editor.GetProperty<Vector4>(TextEditor::Property::PRIMARY_CURSOR_COLOR), Color::RED, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::SECONDARY_CURSOR_COLOR, Color::BLUE);
+  DALI_TEST_EQUALS(editor.GetProperty<Vector4>(TextEditor::Property::SECONDARY_CURSOR_COLOR), Color::BLUE, TEST_LOCATION);
+
+  editor.SetProperty(TextEditor::Property::ENABLE_CURSOR_BLINK, false);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::ENABLE_CURSOR_BLINK), false, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::CURSOR_BLINK_INTERVAL, 1.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::CURSOR_BLINK_INTERVAL), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::CURSOR_BLINK_DURATION, 10.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::CURSOR_BLINK_DURATION), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::CURSOR_WIDTH, 1);
+  DALI_TEST_EQUALS(editor.GetProperty<int>(TextEditor::Property::CURSOR_WIDTH), 1, TEST_LOCATION);
 
   // Check handle images
-  editor.SetProperty( TextEditor::Property::GRAB_HANDLE_IMAGE, "image1" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::GRAB_HANDLE_IMAGE ), "image1", TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE, "image2" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE ), "image2", TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT, "image3" );
+  editor.SetProperty(TextEditor::Property::GRAB_HANDLE_IMAGE, "image1");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::GRAB_HANDLE_IMAGE), "image1", TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE, "image2");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE), "image2", TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT, "image3");
 
   // Check handle images
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( editor, TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT, "filename", "leftHandleImage" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( editor, TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT, "filename", "rightHandleImage" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( editor, TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, "filename", "leftHandleImagePressed" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( editor, TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, "filename", "rightHandleImagePressed" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( editor, TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, "filename", "leftHandleMarkerImage" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( editor, TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, "filename", "rightHandleMarkerImage" )  );
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(editor, TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT, "filename", "leftHandleImage"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(editor, TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT, "filename", "rightHandleImage"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(editor, TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, "filename", "leftHandleImagePressed"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(editor, TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, "filename", "rightHandleImagePressed"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(editor, TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, "filename", "leftHandleMarkerImage"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(editor, TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, "filename", "rightHandleMarkerImage"));
 
   // Check the highlight color
-  editor.SetProperty( TextEditor::Property::SELECTION_HIGHLIGHT_COLOR, Color::GREEN );
-  DALI_TEST_EQUALS( editor.GetProperty<Vector4>( TextEditor::Property::SELECTION_HIGHLIGHT_COLOR ), Color::GREEN, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::SELECTION_HIGHLIGHT_COLOR, Color::GREEN);
+  DALI_TEST_EQUALS(editor.GetProperty<Vector4>(TextEditor::Property::SELECTION_HIGHLIGHT_COLOR), Color::GREEN, TEST_LOCATION);
 
   // Decoration bounding box
-  editor.SetProperty( TextEditor::Property::DECORATION_BOUNDING_BOX, Rect<int>( 0, 0, 1, 1 ) );
-  DALI_TEST_EQUALS( editor.GetProperty<Rect <int > >( TextEditor::Property::DECORATION_BOUNDING_BOX ), Rect<int>( 0, 0, 1, 1 ), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::DECORATION_BOUNDING_BOX, Rect<int>(0, 0, 1, 1));
+  DALI_TEST_EQUALS(editor.GetProperty<Rect<int> >(TextEditor::Property::DECORATION_BOUNDING_BOX), Rect<int>(0, 0, 1, 1), TEST_LOCATION);
 
   // Check the enable markup property.
-  DALI_TEST_CHECK( !editor.GetProperty<bool>( TextEditor::Property::ENABLE_MARKUP ) );
-  editor.SetProperty( TextEditor::Property::ENABLE_MARKUP, true );
-  DALI_TEST_CHECK( editor.GetProperty<bool>( TextEditor::Property::ENABLE_MARKUP ) );
+  DALI_TEST_CHECK(!editor.GetProperty<bool>(TextEditor::Property::ENABLE_MARKUP));
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  DALI_TEST_CHECK(editor.GetProperty<bool>(TextEditor::Property::ENABLE_MARKUP));
 
   // Check input color property.
-  editor.SetProperty( TextEditor::Property::INPUT_COLOR, Color::YELLOW );
-  DALI_TEST_EQUALS( editor.GetProperty<Vector4>( TextEditor::Property::INPUT_COLOR ), Color::YELLOW, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_COLOR, Color::YELLOW);
+  DALI_TEST_EQUALS(editor.GetProperty<Vector4>(TextEditor::Property::INPUT_COLOR), Color::YELLOW, TEST_LOCATION);
 
   // Check input font properties.
-  editor.SetProperty( TextEditor::Property::INPUT_FONT_FAMILY, "Setting input font family" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::INPUT_FONT_FAMILY ), "Setting input font family", TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_FONT_FAMILY, "Setting input font family");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::INPUT_FONT_FAMILY), "Setting input font family", TEST_LOCATION);
 
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "bold" );
-  fontStyleMapSet.Insert( "width", "condensed" );
-  fontStyleMapSet.Insert( "slant", "italic" );
+  fontStyleMapSet.Insert("weight", "bold");
+  fontStyleMapSet.Insert("width", "condensed");
+  fontStyleMapSet.Insert("slant", "italic");
 
-  editor.SetProperty( TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::INPUT_FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::INPUT_POINT_SIZE, 12.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::INPUT_POINT_SIZE ), 12.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_POINT_SIZE, 12.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::INPUT_POINT_SIZE), 12.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Reset input font style.
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "normal" );
-  fontStyleMapSet.Insert( "slant", "oblique" );
+  fontStyleMapSet.Insert("weight", "normal");
+  fontStyleMapSet.Insert("slant", "oblique");
 
-  editor.SetProperty( TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::INPUT_FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "slant", "roman" );
+  fontStyleMapSet.Insert("slant", "roman");
 
-  editor.SetProperty( TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::INPUT_FONT_STYLE );
+  editor.SetProperty(TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::INPUT_FONT_STYLE);
 
   // Replace 'roman' for 'normal'.
-  slantValue = fontStyleMapGet.Find( "slant" );
-  if( NULL != slantValue )
+  slantValue = fontStyleMapGet.Find("slant");
+  if(NULL != slantValue)
   {
-    if( "normal" == slantValue->Get<std::string>() )
+    if("normal" == slantValue->Get<std::string>())
     {
       fontStyleMapGet["slant"] = "roman";
     }
   }
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   fontStyleMapSet.Clear();
 
-  editor.SetProperty( TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::INPUT_FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   // Check the line spacing property
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::LINE_SPACING ), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::LINE_SPACING, 10.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::LINE_SPACING ), 10.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::LINE_SPACING), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::LINE_SPACING, 10.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::LINE_SPACING), 10.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check the input line spacing property
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::INPUT_LINE_SPACING ), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::INPUT_LINE_SPACING, 20.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::INPUT_LINE_SPACING ), 20.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::INPUT_LINE_SPACING), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::INPUT_LINE_SPACING, 20.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::INPUT_LINE_SPACING), 20.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check the underline property
 
   Property::Map underlineMapSet;
   Property::Map underlineMapGet;
 
-  underlineMapSet.Insert( "enable", true );
-  underlineMapSet.Insert( "color", Color::RED );
-  underlineMapSet.Insert( "height", 1 );
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::RED);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::SOLID);
+  underlineMapSet.Insert("dashWidth", 5);
+  underlineMapSet.Insert("dashGap", 3);
+
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::UNDERLINE, underlineMapSet );
+  application.SendNotification();
+  application.Render();
+
+  // Check the dashed underline property
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::RED);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DASHED);
+  underlineMapSet.Insert("dashWidth", 5);
+  underlineMapSet.Insert("dashGap", 3);
+
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  // Check the double underline property
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::RED);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 5);
+  underlineMapSet.Insert("dashGap", 3);
+
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
 
-  underlineMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::UNDERLINE );
-  DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
+  application.SendNotification();
+  application.Render();
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
 
   // Check the input underline property
-  editor.SetProperty( TextEditor::Property::INPUT_UNDERLINE, "Underline input properties" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::INPUT_UNDERLINE ), std::string("Underline input properties"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_UNDERLINE, "Underline input properties");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::INPUT_UNDERLINE), std::string("Underline input properties"), TEST_LOCATION);
 
   // Check the shadow property
   Property::Map shadowMapSet;
   Property::Map shadowMapGet;
 
-  shadowMapSet.Insert( "color", Color::GREEN );
-  shadowMapSet.Insert( "offset", Vector2(2.0f, 2.0f) );
-  shadowMapSet.Insert( "blurRadius", 3.0f );
+  shadowMapSet.Insert("color", Color::GREEN);
+  shadowMapSet.Insert("offset", Vector2(2.0f, 2.0f));
+  shadowMapSet.Insert("blurRadius", 3.0f);
 
-  editor.SetProperty( TextEditor::Property::SHADOW, shadowMapSet );
+  editor.SetProperty(TextEditor::Property::SHADOW, shadowMapSet);
 
-  shadowMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::SHADOW );
-  DALI_TEST_EQUALS( shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowMapSet ), true, TEST_LOCATION );
+  shadowMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::SHADOW);
+  DALI_TEST_EQUALS(shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(shadowMapGet, shadowMapSet), true, TEST_LOCATION);
 
   // Check the input shadow property
-  editor.SetProperty( TextEditor::Property::INPUT_SHADOW, "Shadow input properties" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::INPUT_SHADOW ), std::string("Shadow input properties"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_SHADOW, "Shadow input properties");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::INPUT_SHADOW), std::string("Shadow input properties"), TEST_LOCATION);
 
   // Check the emboss property
-  editor.SetProperty( TextEditor::Property::EMBOSS, "Emboss properties" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::EMBOSS ), std::string("Emboss properties"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::EMBOSS, "Emboss properties");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::EMBOSS), std::string("Emboss properties"), TEST_LOCATION);
 
   // Check the input emboss property
-  editor.SetProperty( TextEditor::Property::INPUT_EMBOSS, "Emboss input properties" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::INPUT_EMBOSS ), std::string("Emboss input properties"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_EMBOSS, "Emboss input properties");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::INPUT_EMBOSS), std::string("Emboss input properties"), TEST_LOCATION);
 
   // Check the outline property
 
   // Test string type first
   // This is purely to maintain backward compatibility, but we don't support string as the outline property type.
-  editor.SetProperty( TextEditor::Property::OUTLINE, "Outline properties" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::OUTLINE ), std::string("Outline properties"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::OUTLINE, "Outline properties");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::OUTLINE), std::string("Outline properties"), TEST_LOCATION);
 
   // Then test the property map type
   Property::Map outlineMapSet;
@@ -843,179 +919,179 @@ int UtcDaliTextEditorSetPropertyP(void)
   outlineMapSet["color"] = Color::RED;
   outlineMapSet["width"] = 2.0f;
 
-  editor.SetProperty( TextEditor::Property::OUTLINE, outlineMapSet );
+  editor.SetProperty(TextEditor::Property::OUTLINE, outlineMapSet);
 
-  outlineMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::OUTLINE );
-  DALI_TEST_EQUALS( outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( outlineMapGet, outlineMapSet ), true, TEST_LOCATION );
+  outlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::OUTLINE);
+  DALI_TEST_EQUALS(outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(outlineMapGet, outlineMapSet), true, TEST_LOCATION);
 
   // Check the input outline property
-  editor.SetProperty( TextEditor::Property::INPUT_OUTLINE, "Outline input properties" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::INPUT_OUTLINE ), std::string("Outline input properties"), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::INPUT_OUTLINE, "Outline input properties");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::INPUT_OUTLINE), std::string("Outline input properties"), TEST_LOCATION);
 
   // Check the smooth scroll property
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::SMOOTH_SCROLL ), false, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL, true );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::SMOOTH_SCROLL ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::SMOOTH_SCROLL), false, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::SMOOTH_SCROLL, true);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::SMOOTH_SCROLL), true, TEST_LOCATION);
 
   // Check the smooth scroll duration property
-  editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL_DURATION, 0.2f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SMOOTH_SCROLL_DURATION ), 0.2f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::SMOOTH_SCROLL_DURATION, 0.2f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SMOOTH_SCROLL_DURATION), 0.2f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check the scroll bar property
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::ENABLE_SCROLL_BAR ), false, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::ENABLE_SCROLL_BAR, true );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::ENABLE_SCROLL_BAR ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::ENABLE_SCROLL_BAR), false, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::ENABLE_SCROLL_BAR, true);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::ENABLE_SCROLL_BAR), true, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::SCROLL_BAR_SHOW_DURATION, 0.3f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SCROLL_BAR_SHOW_DURATION ), 0.3f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( TextEditor::Property::SCROLL_BAR_FADE_DURATION, 0.2f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SCROLL_BAR_FADE_DURATION ), 0.2f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::SCROLL_BAR_SHOW_DURATION, 0.3f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SCROLL_BAR_SHOW_DURATION), 0.3f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(TextEditor::Property::SCROLL_BAR_FADE_DURATION, 0.2f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SCROLL_BAR_FADE_DURATION), 0.2f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check the pixel size of font
-  editor.SetProperty( TextEditor::Property::PIXEL_SIZE, 20.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::PIXEL_SIZE ), 20.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::PIXEL_SIZE, 20.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::PIXEL_SIZE), 20.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check placeholder text properties.
-  editor.SetProperty( DevelTextEditor::Property::PLACEHOLDER_TEXT, "Setting Placeholder Text" );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( DevelTextEditor::Property::PLACEHOLDER_TEXT ), std::string("Setting Placeholder Text"), TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::PLACEHOLDER_TEXT, "Setting Placeholder Text");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(DevelTextEditor::Property::PLACEHOLDER_TEXT), std::string("Setting Placeholder Text"), TEST_LOCATION);
 
   // Check placeholder text's color property.
-  editor.SetProperty( DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR, Color::RED );
-  DALI_TEST_EQUALS( editor.GetProperty<Vector4>( DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR ), Color::RED, TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR, Color::RED);
+  DALI_TEST_EQUALS(editor.GetProperty<Vector4>(DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR), Color::RED, TEST_LOCATION);
 
   // Check the enable selection property
-  editor.SetProperty( TextEditor::Property::ENABLE_SELECTION, false );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::ENABLE_SELECTION ), false, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::ENABLE_SELECTION, false);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::ENABLE_SELECTION), false, TEST_LOCATION);
 
   // Check the placeholder property with pixel size
   Property::Map placeholderPixelSizeMapSet;
   Property::Map placeholderPixelSizeMapGet;
   Property::Map placeholderFontstyleMap;
-  placeholderPixelSizeMapSet["text"] = "Setting Placeholder Text";
+  placeholderPixelSizeMapSet["text"]        = "Setting Placeholder Text";
   placeholderPixelSizeMapSet["textFocused"] = "Setting Placeholder Text Focused";
-  placeholderPixelSizeMapSet["color"] = Color::BLUE;
-  placeholderPixelSizeMapSet["fontFamily"] = "Arial";
-  placeholderPixelSizeMapSet["pixelSize"] = 15.0f;
+  placeholderPixelSizeMapSet["color"]       = Color::BLUE;
+  placeholderPixelSizeMapSet["fontFamily"]  = "Arial";
+  placeholderPixelSizeMapSet["pixelSize"]   = 15.0f;
 
-  placeholderFontstyleMap.Insert( "weight", "bold" );
+  placeholderFontstyleMap.Insert("weight", "bold");
   placeholderPixelSizeMapSet["fontStyle"] = placeholderFontstyleMap;
-  editor.SetProperty( TextEditor::Property::PLACEHOLDER, placeholderPixelSizeMapSet );
+  editor.SetProperty(TextEditor::Property::PLACEHOLDER, placeholderPixelSizeMapSet);
 
-  placeholderPixelSizeMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderPixelSizeMapGet.Count(), placeholderPixelSizeMapSet.Count(), TEST_LOCATION );
+  placeholderPixelSizeMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderPixelSizeMapGet.Count(), placeholderPixelSizeMapSet.Count(), TEST_LOCATION);
 
   tet_infoline("Test Placeholder settings set as strings is converted correctly to Property Index key and holds set value");
   Property::Map placeholderConversionMap;
-  placeholderConversionMap[ Text::PlaceHolder::Property::TEXT ] = placeholderPixelSizeMapSet["text"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::TEXT_FOCUSED ] = placeholderPixelSizeMapSet["textFocused"] ;
-  placeholderConversionMap[ Text::PlaceHolder::Property::COLOR ] = placeholderPixelSizeMapSet["color"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderPixelSizeMapSet["fontStyle"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_FAMILY ] = placeholderPixelSizeMapSet["fontFamily"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::PIXEL_SIZE ] = placeholderPixelSizeMapSet["pixelSize"];
+  placeholderConversionMap[Text::PlaceHolder::Property::TEXT]         = placeholderPixelSizeMapSet["text"];
+  placeholderConversionMap[Text::PlaceHolder::Property::TEXT_FOCUSED] = placeholderPixelSizeMapSet["textFocused"];
+  placeholderConversionMap[Text::PlaceHolder::Property::COLOR]        = placeholderPixelSizeMapSet["color"];
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_STYLE]   = placeholderPixelSizeMapSet["fontStyle"];
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_FAMILY]  = placeholderPixelSizeMapSet["fontFamily"];
+  placeholderConversionMap[Text::PlaceHolder::Property::PIXEL_SIZE]   = placeholderPixelSizeMapSet["pixelSize"];
 
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderPixelSizeMapGet, placeholderConversionMap ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderPixelSizeMapGet, placeholderConversionMap), true, TEST_LOCATION);
 
   // Check the placeholder property with point size
   Property::Map placeholderMapSet;
   Property::Map placeholderMapGet;
-  placeholderMapSet["text"] = "Setting Placeholder Text";
+  placeholderMapSet["text"]        = "Setting Placeholder Text";
   placeholderMapSet["textFocused"] = "Setting Placeholder Text Focused";
-  placeholderMapSet["color"] = Color::RED;
-  placeholderMapSet["fontFamily"] = "Arial";
-  placeholderMapSet["pointSize"] = 12.0f;
+  placeholderMapSet["color"]       = Color::RED;
+  placeholderMapSet["fontFamily"]  = "Arial";
+  placeholderMapSet["pointSize"]   = 12.0f;
   // Check the placeholder font style property
   placeholderFontstyleMap.Clear();
 
-  placeholderFontstyleMap.Insert( "weight", "bold" );
-  placeholderFontstyleMap.Insert( "width", "condensed" );
-  placeholderFontstyleMap.Insert( "slant", "italic" );
+  placeholderFontstyleMap.Insert("weight", "bold");
+  placeholderFontstyleMap.Insert("width", "condensed");
+  placeholderFontstyleMap.Insert("slant", "italic");
   placeholderMapSet["fontStyle"] = placeholderFontstyleMap;
-  editor.SetProperty( TextEditor::Property::PLACEHOLDER, placeholderMapSet );
+  editor.SetProperty(TextEditor::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
+  placeholderMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
 
   tet_infoline("Test Placeholder settings set as strings is converted correctly to Property Index key and holds set value");
   placeholderConversionMap.Clear();
-  placeholderConversionMap[ Text::PlaceHolder::Property::TEXT ] = placeholderMapSet["text"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::TEXT_FOCUSED ] = placeholderMapSet["textFocused"] ;
-  placeholderConversionMap[ Text::PlaceHolder::Property::COLOR ] = placeholderMapSet["color"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderPixelSizeMapSet["fontStyle"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_FAMILY ] = placeholderMapSet["fontFamily"];
-  placeholderConversionMap[ Text::PlaceHolder::Property::POINT_SIZE ] = placeholderMapSet["pointSize"];
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderConversionMap ), true, TEST_LOCATION );
+  placeholderConversionMap[Text::PlaceHolder::Property::TEXT]         = placeholderMapSet["text"];
+  placeholderConversionMap[Text::PlaceHolder::Property::TEXT_FOCUSED] = placeholderMapSet["textFocused"];
+  placeholderConversionMap[Text::PlaceHolder::Property::COLOR]        = placeholderMapSet["color"];
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_STYLE]   = placeholderPixelSizeMapSet["fontStyle"];
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_FAMILY]  = placeholderMapSet["fontFamily"];
+  placeholderConversionMap[Text::PlaceHolder::Property::POINT_SIZE]   = placeholderMapSet["pointSize"];
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderConversionMap), true, TEST_LOCATION);
 
   // Reset font style.
   placeholderFontstyleMap.Clear();
-  placeholderFontstyleMap.Insert( "weight", "normal" );
-  placeholderFontstyleMap.Insert( "slant", "oblique" );
+  placeholderFontstyleMap.Insert("weight", "normal");
+  placeholderFontstyleMap.Insert("slant", "oblique");
   placeholderMapSet["fontStyle"] = placeholderFontstyleMap;
-  editor.SetProperty( TextEditor::Property::PLACEHOLDER, placeholderMapSet );
+  editor.SetProperty(TextEditor::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderMapSet["fontStyle"];
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderConversionMap ), true, TEST_LOCATION );
+  placeholderMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_STYLE] = placeholderMapSet["fontStyle"];
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderConversionMap), true, TEST_LOCATION);
 
   placeholderFontstyleMap.Clear();
-  placeholderFontstyleMap.Insert( "slant", "roman" );
+  placeholderFontstyleMap.Insert("slant", "roman");
   placeholderMapSet["fontStyle"] = placeholderFontstyleMap;
-  editor.SetProperty( TextEditor::Property::PLACEHOLDER, placeholderMapSet );
+  editor.SetProperty(TextEditor::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::PLACEHOLDER );
+  placeholderMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::PLACEHOLDER);
 
   placeholderFontstyleMap.Clear();
   placeholderMapSet["fontStyle"] = placeholderFontstyleMap;
 
-  editor.SetProperty( TextEditor::Property::PLACEHOLDER, placeholderMapSet );
-  placeholderMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderMapSet["fontStyle"];
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderConversionMap ), true, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::PLACEHOLDER, placeholderMapSet);
+  placeholderMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_STYLE] = placeholderMapSet["fontStyle"];
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderConversionMap), true, TEST_LOCATION);
 
-  editor.SetProperty( Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT );
-  DALI_TEST_EQUALS( editor.GetProperty<int>( Actor::Property::LAYOUT_DIRECTION ), static_cast<int>( LayoutDirection::RIGHT_TO_LEFT ), TEST_LOCATION );
+  editor.SetProperty(Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT);
+  DALI_TEST_EQUALS(editor.GetProperty<int>(Actor::Property::LAYOUT_DIRECTION), static_cast<int>(LayoutDirection::RIGHT_TO_LEFT), TEST_LOCATION);
 
   // Check handle color
-  editor.SetProperty( DevelTextEditor::Property::GRAB_HANDLE_COLOR, Color::GREEN );
-  DALI_TEST_EQUALS( editor.GetProperty<Vector4>( DevelTextEditor::Property::GRAB_HANDLE_COLOR ), Color::GREEN, TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::GRAB_HANDLE_COLOR, Color::GREEN);
+  DALI_TEST_EQUALS(editor.GetProperty<Vector4>(DevelTextEditor::Property::GRAB_HANDLE_COLOR), Color::GREEN, TEST_LOCATION);
 
   // Test the ENABLE_GRAB_HANDLE_POPUP property
-  editor.SetProperty( DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP, false );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP ), false, TEST_LOCATION);
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP, false);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP), false, TEST_LOCATION);
 
   // Check the input method setting
-  Property::Map propertyMap;
-  InputMethod::PanelLayout::Type panelLayout = InputMethod::PanelLayout::NUMBER;
-  InputMethod::AutoCapital::Type autoCapital = InputMethod::AutoCapital::WORD;
-  InputMethod::ButtonAction::Type buttonAction = InputMethod::ButtonAction::GO;
-  int inputVariation = 1;
-  propertyMap["PANEL_LAYOUT"] = panelLayout;
-  propertyMap["AUTO_CAPITALIZE"] = autoCapital;
-  propertyMap["BUTTON_ACTION"] = buttonAction;
-  propertyMap["VARIATION"] = inputVariation;
-  editor.SetProperty( DevelTextEditor::Property::INPUT_METHOD_SETTINGS, propertyMap );
-
-  Property::Value value = editor.GetProperty( DevelTextEditor::Property::INPUT_METHOD_SETTINGS );
-  Property::Map map;
-  DALI_TEST_CHECK( value.Get( map ) );
+  Property::Map                   propertyMap;
+  InputMethod::PanelLayout::Type  panelLayout    = InputMethod::PanelLayout::NUMBER;
+  InputMethod::AutoCapital::Type  autoCapital    = InputMethod::AutoCapital::WORD;
+  InputMethod::ButtonAction::Type buttonAction   = InputMethod::ButtonAction::GO;
+  int                             inputVariation = 1;
+  propertyMap["PANEL_LAYOUT"]                    = panelLayout;
+  propertyMap["AUTO_CAPITALIZE"]                 = autoCapital;
+  propertyMap["BUTTON_ACTION"]                   = buttonAction;
+  propertyMap["VARIATION"]                       = inputVariation;
+  editor.SetProperty(DevelTextEditor::Property::INPUT_METHOD_SETTINGS, propertyMap);
+
+  Property::Value value = editor.GetProperty(DevelTextEditor::Property::INPUT_METHOD_SETTINGS);
+  Property::Map   map;
+  DALI_TEST_CHECK(value.Get(map));
 
   int layout = 0;
-  DALI_TEST_CHECK( map[ "PANEL_LAYOUT" ].Get( layout ) );
-  DALI_TEST_EQUALS( static_cast<int>(panelLayout), layout, TEST_LOCATION );
+  DALI_TEST_CHECK(map["PANEL_LAYOUT"].Get(layout));
+  DALI_TEST_EQUALS(static_cast<int>(panelLayout), layout, TEST_LOCATION);
 
   int capital = 0;
-  DALI_TEST_CHECK( map[ "AUTO_CAPITALIZE" ].Get( capital ) );
-  DALI_TEST_EQUALS( static_cast<int>(autoCapital), capital, TEST_LOCATION );
+  DALI_TEST_CHECK(map["AUTO_CAPITALIZE"].Get(capital));
+  DALI_TEST_EQUALS(static_cast<int>(autoCapital), capital, TEST_LOCATION);
 
   int action = 0;
-  DALI_TEST_CHECK( map[ "BUTTON_ACTION" ].Get( action ) );
-  DALI_TEST_EQUALS( static_cast<int>(buttonAction), action, TEST_LOCATION );
+  DALI_TEST_CHECK(map["BUTTON_ACTION"].Get(action));
+  DALI_TEST_EQUALS(static_cast<int>(buttonAction), action, TEST_LOCATION);
 
   int variation = 0;
-  DALI_TEST_CHECK( map[ "VARIATION" ].Get( variation ) );
-  DALI_TEST_EQUALS( inputVariation, variation, TEST_LOCATION );
+  DALI_TEST_CHECK(map["VARIATION"].Get(variation));
+  DALI_TEST_EQUALS(inputVariation, variation, TEST_LOCATION);
 
   // Check the input filter property
   Property::Map inputFilterMapSet;
@@ -1032,13 +1108,43 @@ int UtcDaliTextEditorSetPropertyP(void)
   inputFilterMapSet.Clear();
   editor.SetProperty(DevelTextEditor::Property::INPUT_FILTER, inputFilterMapSet);
 
+  // Check the strikethrough property
+
+  Property::Map strikethroughMapSet;
+  Property::Map strikethroughMapGet;
+
+  application.SendNotification();
+  application.Render();
+
+  // Check the input strikethrough property
+
+  strikethroughMapSet.Clear();
+  strikethroughMapGet.Clear();
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::BLUE);
+  strikethroughMapSet.Insert("height", 2.0f);
+
+  editor.SetProperty(DevelTextEditor::Property::STRIKETHROUGH, strikethroughMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  strikethroughMapGet = editor.GetProperty<Property::Map>(DevelTextEditor::Property::STRIKETHROUGH);
+
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapSet, strikethroughMapGet), true, TEST_LOCATION);
+
+  // Check the input strikethrough property
+  editor.SetProperty(DevelTextEditor::Property::INPUT_STRIKETHROUGH, "Strikethrough input properties");
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(DevelTextEditor::Property::INPUT_STRIKETHROUGH), std::string("Strikethrough input properties"), TEST_LOCATION);
+
   application.SendNotification();
   application.Render();
 
   // Check the line size property
-  DALI_TEST_EQUALS( editor.GetProperty<float>( DevelTextEditor::Property::MIN_LINE_SIZE ), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  editor.SetProperty( DevelTextEditor::Property::MIN_LINE_SIZE, 50.f );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( DevelTextEditor::Property::MIN_LINE_SIZE ), 50.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<float>(DevelTextEditor::Property::MIN_LINE_SIZE), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  editor.SetProperty(DevelTextEditor::Property::MIN_LINE_SIZE, 50.f);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(DevelTextEditor::Property::MIN_LINE_SIZE), 50.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1051,22 +1157,22 @@ int utcDaliTextEditorAtlasRenderP(void)
   StyleManager styleManager = StyleManager::Get();
   styleManager.ApplyDefaultTheme();
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  editor.SetProperty( TextEditor::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+  editor.SetProperty(TextEditor::Property::HORIZONTAL_ALIGNMENT, "CENTER");
 
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   try
   {
     // Render some text with the shared atlas backend
-    editor.SetProperty( DevelTextEditor::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS );
+    editor.SetProperty(DevelTextEditor::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS);
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1125,40 +1231,40 @@ int utcDaliTextEditorTextChangedP(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextEditorTextChangedP");
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
-  editor.TextChangedSignal().Connect( &TestTextChangedCallback );
+  editor.TextChangedSignal().Connect(&TestTextChangedCallback);
   bool textChangedSignal = false;
-  editor.ConnectSignal( testTracker, "textChanged",   CallbackFunctor(&textChangedSignal) );
+  editor.ConnectSignal(testTracker, "textChanged", CallbackFunctor(&textChangedSignal));
 
   gTextChangedCallBackCalled = false;
-  editor.SetProperty( TextEditor::Property::TEXT, "ABC" );
-  DALI_TEST_CHECK( gTextChangedCallBackCalled );
-  DALI_TEST_CHECK( textChangedSignal );
+  editor.SetProperty(TextEditor::Property::TEXT, "ABC");
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_CHECK(textChangedSignal);
 
   application.SendNotification();
   editor.SetKeyInputFocus();
 
   gTextChangedCallBackCalled = false;
-  application.ProcessEvent( GenerateKey( "D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  DALI_TEST_CHECK( gTextChangedCallBackCalled );
+  application.ProcessEvent(GenerateKey("D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
 
   // Remove all text
-  editor.SetProperty( TextField::Property::TEXT, "" );
+  editor.SetProperty(TextField::Property::TEXT, "");
 
   // Pressing backspace key: TextChangedCallback should not be called when there is no text in texteditor.
   gTextChangedCallBackCalled = false;
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  DALI_TEST_CHECK(!gTextChangedCallBackCalled);
 
   // Pressing delete key: TextChangedCallback should not be called when there is no text in texteditor.
   gTextChangedCallBackCalled = false;
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  DALI_TEST_CHECK(!gTextChangedCallBackCalled);
 
   END_TEST;
 }
@@ -1168,73 +1274,70 @@ int utcDaliTextEditorTextChangedWithInputMethodContext(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextEditorTextChangedWithInputMethodContext");
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   editor.TextChangedSignal().Connect(&TestTextChangedCallback);
   bool textChangedSignal = false;
-  editor.ConnectSignal( testTracker, "textChanged",   CallbackFunctor(&textChangedSignal) );
-
+  editor.ConnectSignal(testTracker, "textChanged", CallbackFunctor(&textChangedSignal));
 
   // get InputMethodContext
-  std::string text;
+  std::string                   text;
   InputMethodContext::EventData imfEvent;
-  InputMethodContext inputMethodContext = DevelTextEditor::GetInputMethodContext( editor );
+  InputMethodContext            inputMethodContext = DevelTextEditor::GetInputMethodContext(editor);
 
   editor.SetKeyInputFocus();
-  editor.SetProperty( DevelTextEditor::Property::ENABLE_EDITING, true );
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_EDITING, true);
 
   // input text
   gTextChangedCallBackCalled = false;
-  imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "ㅎ", 0, 1 );
+  imfEvent                   = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "ㅎ", 0, 1);
   inputMethodContext.EventReceivedSignal().Emit(inputMethodContext, imfEvent);
   application.SendNotification();
   application.Render();
-  DALI_TEST_CHECK( gTextChangedCallBackCalled );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("ㅎ"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("ㅎ"), TEST_LOCATION);
 
   gTextChangedCallBackCalled = false;
-  imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "호", 0, 1 );
+  imfEvent                   = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "호", 0, 1);
   inputMethodContext.EventReceivedSignal().Emit(inputMethodContext, imfEvent);
   application.SendNotification();
   application.Render();
-  DALI_TEST_CHECK( gTextChangedCallBackCalled );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("호"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("호"), TEST_LOCATION);
 
   gTextChangedCallBackCalled = false;
-  imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "혿", 0, 1 );
+  imfEvent                   = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "혿", 0, 1);
   inputMethodContext.EventReceivedSignal().Emit(inputMethodContext, imfEvent);
   application.SendNotification();
   application.Render();
-  DALI_TEST_CHECK( gTextChangedCallBackCalled );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("혿"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("혿"), TEST_LOCATION);
 
   gTextChangedCallBackCalled = false;
-  imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "", 0, 1 );
+  imfEvent                   = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "", 0, 1);
   inputMethodContext.EventReceivedSignal().Emit(inputMethodContext, imfEvent);
-  DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+  DALI_TEST_CHECK(!gTextChangedCallBackCalled);
 
-  imfEvent = InputMethodContext::EventData( InputMethodContext::COMMIT, "호", 0, 1 );
+  imfEvent = InputMethodContext::EventData(InputMethodContext::COMMIT, "호", 0, 1);
   inputMethodContext.EventReceivedSignal().Emit(inputMethodContext, imfEvent);
-  DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+  DALI_TEST_CHECK(!gTextChangedCallBackCalled);
 
-  imfEvent = InputMethodContext::EventData( InputMethodContext::PRE_EDIT, "두", 1, 2 );
+  imfEvent = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "두", 1, 2);
   inputMethodContext.EventReceivedSignal().Emit(inputMethodContext, imfEvent);
-  DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+  DALI_TEST_CHECK(!gTextChangedCallBackCalled);
 
   application.SendNotification();
   application.Render();
-  DALI_TEST_CHECK( gTextChangedCallBackCalled );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("호두"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("호두"), TEST_LOCATION);
 
   END_TEST;
 }
 
-
 int utcDaliTextEditorInputStyleChanged01(void)
 {
   // The text-editor emits signals when the input style changes. These changes of style are
@@ -1247,34 +1350,33 @@ int utcDaliTextEditorInputStyleChanged01(void)
 
   // Load some fonts.
 
-  char* pathNamePtr = get_current_dir_name();
-  const std::string pathName( pathNamePtr );
-  free( pathNamePtr );
+  char*             pathNamePtr = get_current_dir_name();
+  const std::string pathName(pathNamePtr);
+  free(pathNamePtr);
 
   TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
-  fontClient.SetDpi( 93u, 93u );
+  fontClient.SetDpi(93u, 93u);
 
-  fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif.ttf", DEFAULT_FONT_SIZE );
-  fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif-Bold.ttf", DEFAULT_FONT_SIZE );
+  fontClient.GetFontId(pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif.ttf", DEFAULT_FONT_SIZE);
+  fontClient.GetFontId(pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif-Bold.ttf", DEFAULT_FONT_SIZE);
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-
+  DALI_TEST_CHECK(editor);
 
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
-  editor.SetProperty( TextEditor::Property::ENABLE_MARKUP, true );
-  editor.SetProperty( TextEditor::Property::TEXT, "<font family='DejaVuSerif' size='18'>He<color value='green'>llo</color> <font weight='bold'>world</font> demo</font>" );
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::TEXT, "<font family='DejaVuSerif' size='18'>He<color value='green'>llo</color> <font weight='bold'>world</font> demo</font>");
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
-  editor.InputStyleChangedSignal().Connect( &TestInputStyleChangedCallback );
+  editor.InputStyleChangedSignal().Connect(&TestInputStyleChangedCallback);
   bool inputStyleChangedSignal = false;
-  editor.ConnectSignal( testTracker, "inputStyleChanged",   CallbackFunctor(&inputStyleChangedSignal) );
+  editor.ConnectSignal(testTracker, "inputStyleChanged", CallbackFunctor(&inputStyleChangedSignal));
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // Render and notify
   application.SendNotification();
@@ -1284,11 +1386,11 @@ int utcDaliTextEditorInputStyleChanged01(void)
   application.RunIdles();
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 18.0f, 25.0f );
+  TestGenerateTap(application, 18.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1297,25 +1399,25 @@ int utcDaliTextEditorInputStyleChanged01(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ), static_cast<unsigned int>( TextEditor::InputStyle::FONT_FAMILY | TextEditor::InputStyle::POINT_SIZE ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextEditor::InputStyle::FONT_FAMILY | TextEditor::InputStyle::POINT_SIZE), TEST_LOCATION);
 
-    const std::string fontFamily = editor.GetProperty( TextEditor::Property::INPUT_FONT_FAMILY ).Get<std::string>();
-    DALI_TEST_EQUALS( fontFamily, "DejaVuSerif", TEST_LOCATION );
+    const std::string fontFamily = editor.GetProperty(TextEditor::Property::INPUT_FONT_FAMILY).Get<std::string>();
+    DALI_TEST_EQUALS(fontFamily, "DejaVuSerif", TEST_LOCATION);
 
-    const float pointSize = editor.GetProperty( TextEditor::Property::INPUT_POINT_SIZE ).Get<float>();
-    DALI_TEST_EQUALS( pointSize, 18.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+    const float pointSize = editor.GetProperty(TextEditor::Property::INPUT_POINT_SIZE).Get<float>();
+    DALI_TEST_EQUALS(pointSize, 18.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 30.0f, 25.0f );
+  TestGenerateTap(application, 30.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1324,15 +1426,15 @@ int utcDaliTextEditorInputStyleChanged01(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( !gInputStyleChangedCallbackCalled );
-  DALI_TEST_CHECK( !inputStyleChangedSignal );
+  DALI_TEST_CHECK(!gInputStyleChangedCallbackCalled);
+  DALI_TEST_CHECK(!inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 43.0f, 25.0f );
+  TestGenerateTap(application, 43.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1341,22 +1443,22 @@ int utcDaliTextEditorInputStyleChanged01(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ), static_cast<unsigned int>( TextEditor::InputStyle::COLOR ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextEditor::InputStyle::COLOR), TEST_LOCATION);
 
-    const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::GREEN, TEST_LOCATION );
+    const Vector4 color = editor.GetProperty(TextEditor::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::GREEN, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 88.0f, 25.0f );
+  TestGenerateTap(application, 88.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1365,31 +1467,31 @@ int utcDaliTextEditorInputStyleChanged01(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ), static_cast<unsigned int>( TextEditor::InputStyle::COLOR | TextEditor::InputStyle::FONT_STYLE ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextEditor::InputStyle::COLOR | TextEditor::InputStyle::FONT_STYLE), TEST_LOCATION);
 
-    const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::BLACK, TEST_LOCATION );
+    const Vector4 color = editor.GetProperty(TextEditor::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLACK, TEST_LOCATION);
 
     Property::Map fontStyleMapSet;
     Property::Map fontStyleMapGet;
 
-    fontStyleMapSet.Insert( "weight", "bold" );
+    fontStyleMapSet.Insert("weight", "bold");
 
-    fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::INPUT_FONT_STYLE );
-    DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-    DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+    fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::INPUT_FONT_STYLE);
+    DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+    DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 115.0f, 25.0f );
+  TestGenerateTap(application, 115.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1398,15 +1500,15 @@ int utcDaliTextEditorInputStyleChanged01(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( !gInputStyleChangedCallbackCalled );
-  DALI_TEST_CHECK( !inputStyleChangedSignal );
+  DALI_TEST_CHECK(!gInputStyleChangedCallbackCalled);
+  DALI_TEST_CHECK(!inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 164.0f, 25.0f );
+  TestGenerateTap(application, 164.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1415,26 +1517,26 @@ int utcDaliTextEditorInputStyleChanged01(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ), static_cast<unsigned int>( TextEditor::InputStyle::FONT_STYLE ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextEditor::InputStyle::FONT_STYLE), TEST_LOCATION);
 
     Property::Map fontStyleMapSet;
     Property::Map fontStyleMapGet;
 
-    fontStyleMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::INPUT_FONT_STYLE );
-    DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-    DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+    fontStyleMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::INPUT_FONT_STYLE);
+    DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+    DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 191.0f, 25.0f );
+  TestGenerateTap(application, 191.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1443,8 +1545,8 @@ int utcDaliTextEditorInputStyleChanged01(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( !gInputStyleChangedCallbackCalled );
-  DALI_TEST_CHECK( !inputStyleChangedSignal );
+  DALI_TEST_CHECK(!gInputStyleChangedCallbackCalled);
+  DALI_TEST_CHECK(!inputStyleChangedSignal);
 
   END_TEST;
 }
@@ -1461,34 +1563,33 @@ int utcDaliTextEditorInputStyleChanged02(void)
 
   // Load some fonts.
 
-  char* pathNamePtr = get_current_dir_name();
-  const std::string pathName( pathNamePtr );
-  free( pathNamePtr );
+  char*             pathNamePtr = get_current_dir_name();
+  const std::string pathName(pathNamePtr);
+  free(pathNamePtr);
 
   TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
-  fontClient.SetDpi( 93u, 93u );
+  fontClient.SetDpi(93u, 93u);
 
-  fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif.ttf", DEFAULT_FONT_SIZE );
-  fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif-Bold.ttf", DEFAULT_FONT_SIZE );
+  fontClient.GetFontId(pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif.ttf", DEFAULT_FONT_SIZE);
+  fontClient.GetFontId(pathName + DEFAULT_FONT_DIR + "/dejavu/DejaVuSerif-Bold.ttf", DEFAULT_FONT_SIZE);
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-
+  DALI_TEST_CHECK(editor);
 
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
-  editor.SetProperty( TextEditor::Property::ENABLE_MARKUP, true );
-  editor.SetProperty( TextEditor::Property::TEXT, "<font family='DejaVuSerif' size='18'>He<color value='blue'> l</color><color value='green'>lo</color> <font weight='bold'>world</font> demo</font>" );
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::TEXT, "<font family='DejaVuSerif' size='18'>He<color value='blue'> l</color><color value='green'>lo</color> <font weight='bold'>world</font> demo</font>");
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
-  editor.InputStyleChangedSignal().Connect( &TestInputStyleChangedCallback );
+  editor.InputStyleChangedSignal().Connect(&TestInputStyleChangedCallback);
   bool inputStyleChangedSignal = false;
-  editor.ConnectSignal( testTracker, "inputStyleChanged",   CallbackFunctor(&inputStyleChangedSignal) );
+  editor.ConnectSignal(testTracker, "inputStyleChanged", CallbackFunctor(&inputStyleChangedSignal));
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // Render and notify
   application.SendNotification();
@@ -1498,12 +1599,12 @@ int utcDaliTextEditorInputStyleChanged02(void)
   application.RunIdles();
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 53.0f, 25.0f, 100 );
-  TestGenerateTap( application, 53.0f, 25.0f, 200 );
+  TestGenerateTap(application, 53.0f, 25.0f, 100);
+  TestGenerateTap(application, 53.0f, 25.0f, 200);
 
   // Render and notify
   application.SendNotification();
@@ -1512,31 +1613,31 @@ int utcDaliTextEditorInputStyleChanged02(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ),
-                      static_cast<unsigned int>( TextEditor::InputStyle::FONT_FAMILY |
-                                                 TextEditor::InputStyle::POINT_SIZE  |
-                                                 TextEditor::InputStyle::COLOR ),
-                      TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextEditor::InputStyle::FONT_FAMILY |
+                                               TextEditor::InputStyle::POINT_SIZE |
+                                               TextEditor::InputStyle::COLOR),
+                     TEST_LOCATION);
 
-    const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::GREEN, TEST_LOCATION );
+    const Vector4 color = editor.GetProperty(TextEditor::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::GREEN, TEST_LOCATION);
 
-    const std::string fontFamily = editor.GetProperty( TextEditor::Property::INPUT_FONT_FAMILY ).Get<std::string>();
-    DALI_TEST_EQUALS( fontFamily, "DejaVuSerif", TEST_LOCATION );
+    const std::string fontFamily = editor.GetProperty(TextEditor::Property::INPUT_FONT_FAMILY).Get<std::string>();
+    DALI_TEST_EQUALS(fontFamily, "DejaVuSerif", TEST_LOCATION);
 
-    const float pointSize = editor.GetProperty( TextEditor::Property::INPUT_POINT_SIZE ).Get<float>();
-    DALI_TEST_EQUALS( pointSize, 18.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+    const float pointSize = editor.GetProperty(TextEditor::Property::INPUT_POINT_SIZE).Get<float>();
+    DALI_TEST_EQUALS(pointSize, 18.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -1545,23 +1646,23 @@ int utcDaliTextEditorInputStyleChanged02(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ),
-                      static_cast<unsigned int>( TextEditor::InputStyle::COLOR ),
-                      TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextEditor::InputStyle::COLOR),
+                     TEST_LOCATION);
 
-    const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::BLUE, TEST_LOCATION );
+    const Vector4 color = editor.GetProperty(TextEditor::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLUE, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -1570,14 +1671,14 @@ int utcDaliTextEditorInputStyleChanged02(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( !gInputStyleChangedCallbackCalled );
-  DALI_TEST_CHECK( !inputStyleChangedSignal );
+  DALI_TEST_CHECK(!gInputStyleChangedCallbackCalled);
+  DALI_TEST_CHECK(!inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -1586,39 +1687,40 @@ int utcDaliTextEditorInputStyleChanged02(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ),
-                      static_cast<unsigned int>( TextEditor::InputStyle::COLOR ),
-                      TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextEditor::InputStyle::COLOR),
+                     TEST_LOCATION);
 
-    const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::BLACK, TEST_LOCATION );
+    const Vector4 color = editor.GetProperty(TextEditor::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLACK, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
-  editor.SetProperty( TextEditor::Property::INPUT_COLOR, Color::YELLOW );
+  editor.SetProperty(TextEditor::Property::INPUT_COLOR, Color::YELLOW);
 
   Property::Map fontStyleMapSet;
-  fontStyleMapSet.Insert( "weight", "thin" );
-  fontStyleMapSet.Insert( "width", "condensed" );
-  fontStyleMapSet.Insert( "slant", "italic" );
+  fontStyleMapSet.Insert("weight", "thin");
+  fontStyleMapSet.Insert("width", "condensed");
+  fontStyleMapSet.Insert("slant", "italic");
 
-  editor.SetProperty( TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  editor.SetProperty( TextEditor::Property::INPUT_POINT_SIZE, 20.f );
-  editor.SetProperty( TextEditor::Property::INPUT_LINE_SPACING, 5.f );
+  editor.SetProperty(TextEditor::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  editor.SetProperty(TextEditor::Property::INPUT_POINT_SIZE, 20.f);
+  editor.SetProperty(TextEditor::Property::INPUT_LINE_SPACING, 5.f);
 
-  editor.SetProperty( TextEditor::Property::INPUT_UNDERLINE, "underline" );
-  editor.SetProperty( TextEditor::Property::INPUT_SHADOW, "shadow" );
-  editor.SetProperty( TextEditor::Property::INPUT_EMBOSS, "emboss" );
-  editor.SetProperty( TextEditor::Property::INPUT_OUTLINE, "outline" );
+  editor.SetProperty(TextEditor::Property::INPUT_UNDERLINE, "underline");
+  editor.SetProperty(TextEditor::Property::INPUT_SHADOW, "shadow");
+  editor.SetProperty(TextEditor::Property::INPUT_EMBOSS, "emboss");
+  editor.SetProperty(TextEditor::Property::INPUT_OUTLINE, "outline");
+  editor.SetProperty(DevelTextEditor::Property::INPUT_STRIKETHROUGH, "strikethrough");
 
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -1627,11 +1729,11 @@ int utcDaliTextEditorInputStyleChanged02(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( !gInputStyleChangedCallbackCalled );
-  DALI_TEST_CHECK( !inputStyleChangedSignal );
+  DALI_TEST_CHECK(!gInputStyleChangedCallbackCalled);
+  DALI_TEST_CHECK(!inputStyleChangedSignal);
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 63.0f, 25.0f, 900 );
+  TestGenerateTap(application, 63.0f, 25.0f, 900);
 
   // Render and notify
   application.SendNotification();
@@ -1640,40 +1742,40 @@ int utcDaliTextEditorInputStyleChanged02(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ),
-                      static_cast<unsigned int>( TextEditor::InputStyle::COLOR |
-                                                 TextEditor::InputStyle::POINT_SIZE |
-                                                 TextEditor::InputStyle::FONT_STYLE |
-                                                 TextEditor::InputStyle::LINE_SPACING |
-                                                 TextEditor::InputStyle::UNDERLINE |
-                                                 TextEditor::InputStyle::SHADOW |
-                                                 TextEditor::InputStyle::EMBOSS |
-                                                 TextEditor::InputStyle::OUTLINE ),
-                      TEST_LOCATION );
-
-    const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::BLACK, TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextEditor::InputStyle::COLOR |
+                                               TextEditor::InputStyle::POINT_SIZE |
+                                               TextEditor::InputStyle::FONT_STYLE |
+                                               TextEditor::InputStyle::LINE_SPACING |
+                                               TextEditor::InputStyle::UNDERLINE |
+                                               TextEditor::InputStyle::SHADOW |
+                                               TextEditor::InputStyle::EMBOSS |
+                                               TextEditor::InputStyle::OUTLINE),
+                     TEST_LOCATION);
+
+    const Vector4 color = editor.GetProperty(TextEditor::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLACK, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextEditor::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextEditor::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
-  editor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVuSerif" );
+  editor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVuSerif");
 
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "black" );
-  fontStyleMapSet.Insert( "width", "expanded" );
-  fontStyleMapSet.Insert( "slant", "oblique" );
+  fontStyleMapSet.Insert("weight", "black");
+  fontStyleMapSet.Insert("width", "expanded");
+  fontStyleMapSet.Insert("slant", "oblique");
 
-  editor.SetProperty( TextEditor::Property::FONT_STYLE, fontStyleMapSet );
+  editor.SetProperty(TextEditor::Property::FONT_STYLE, fontStyleMapSet);
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 30.0f, 25.0f, 1500 );
+  TestGenerateTap(application, 30.0f, 25.0f, 1500);
 
   // Render and notify
   application.SendNotification();
@@ -1682,19 +1784,19 @@ int utcDaliTextEditorInputStyleChanged02(void)
   // Executes the idle callbacks added by the text control on the change of input style.
   application.RunIdles();
 
-  DALI_TEST_CHECK( gInputStyleChangedCallbackCalled );
-  if( gInputStyleChangedCallbackCalled )
+  DALI_TEST_CHECK(gInputStyleChangedCallbackCalled);
+  if(gInputStyleChangedCallbackCalled)
   {
-    DALI_TEST_EQUALS( static_cast<unsigned int>( gInputStyleMask ),
-                      static_cast<unsigned int>( TextEditor::InputStyle::COLOR |
-                                                 TextEditor::InputStyle::POINT_SIZE |
-                                                 TextEditor::InputStyle::FONT_STYLE ),
-                      TEST_LOCATION );
-
-    const Vector4 color = editor.GetProperty( TextEditor::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::YELLOW, TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextEditor::InputStyle::COLOR |
+                                               TextEditor::InputStyle::POINT_SIZE |
+                                               TextEditor::InputStyle::FONT_STYLE),
+                     TEST_LOCATION);
+
+    const Vector4 color = editor.GetProperty(TextEditor::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::YELLOW, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   END_TEST;
 }
@@ -1708,78 +1810,78 @@ int utcDaliTextEditorEvent01(void)
   // have the focus and add text with key events should be possible.
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Add a key event but as the text editor has not the focus it should do nothing.
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string(""), TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::TEXT), std::string(""), TEST_LOCATION);
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Now the text editor has the focus, so it can handle the key events.
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("aa"), TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("aa"), TEST_LOCATION);
 
   // Create a second text editor and send key events to it.
   TextEditor editor2 = TextEditor::New();
 
-  editor2.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor2.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  editor2.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) );
-  editor2.SetProperty( Actor::Property::POSITION, Vector2( 100.f, 100.f ));
+  editor2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor2.SetProperty(Actor::Property::SIZE, Vector2(100.f, 100.f));
+  editor2.SetProperty(Actor::Property::POSITION, Vector2(100.f, 100.f));
 
-  application.GetScene().Add( editor2 );
+  application.GetScene().Add(editor2);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Create a tap event on the second text editor.
-  TestGenerateTap( application, 150.0f, 125.0f );
+  TestGenerateTap(application, 150.0f, 125.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The second text editor has the focus. It should handle the key events.
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Check the text has been added to the second text editor.
-  DALI_TEST_EQUALS( editor2.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("aa"), TEST_LOCATION );
+  DALI_TEST_EQUALS(editor2.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("aa"), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1792,127 +1894,127 @@ int utcDaliTextEditorEvent02(void)
   // Checks if the right number of actors are created.
 
   TextEditor editor = TextEditor::New();
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  DALI_TEST_CHECK( editor );
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Check there are the expected number of children (the stencil).
-  DALI_TEST_EQUALS( editor.GetChildCount(), 1u, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetChildCount(), 1u, TEST_LOCATION);
 
-  Actor stencil = editor.GetChildAt( 0u );
+  Actor stencil = editor.GetChildAt(0u);
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 150.0f, 25.0f, 100 );
+  TestGenerateTap(application, 150.0f, 25.0f, 100);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Actor layer = editor.GetChildAt( 1u );
-  DALI_TEST_EQUALS( layer.GetChildCount(), 1u, TEST_LOCATION ); // The cursor.
-  DALI_TEST_EQUALS( stencil.GetChildCount(), 0u, TEST_LOCATION );
+  Actor layer = editor.GetChildAt(2u);
+  DALI_TEST_EQUALS(layer.GetChildCount(), 1u, TEST_LOCATION); // The cursor.
+  DALI_TEST_EQUALS(stencil.GetChildCount(), 0u, TEST_LOCATION);
 
   // Now the text editor has the focus, so it can handle the key events.
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Checks the cursor and the renderer have been created.
-  DALI_TEST_EQUALS( layer.GetChildCount(), 1u, TEST_LOCATION ); // The cursor.
-  DALI_TEST_EQUALS( stencil.GetChildCount(), 1u, TEST_LOCATION ); // The renderer
+  DALI_TEST_EQUALS(layer.GetChildCount(), 1u, TEST_LOCATION);   // The cursor.
+  DALI_TEST_EQUALS(stencil.GetChildCount(), 2u, TEST_LOCATION); // The renderer, clipped cursor
 
-  Control cursor = Control::DownCast( layer.GetChildAt( 0u ) );
-  DALI_TEST_CHECK( cursor );
+  Control cursor = Control::DownCast(layer.GetChildAt(0u));
+  DALI_TEST_CHECK(cursor);
 
   // The stencil actor has a container with all the actors which contain the text renderers.
-  Actor container = stencil.GetChildAt( 0u );
-  for( unsigned int index = 0; index < container.GetChildCount(); ++index )
+  Actor container = stencil.GetChildAt(0u);
+  for(unsigned int index = 0; index < container.GetChildCount(); ++index)
   {
-    Renderer renderer = container.GetChildAt( index ).GetRendererAt( 0u );
-    DALI_TEST_CHECK( renderer );
+    Renderer renderer = container.GetChildAt(index).GetRendererAt(0u);
+    DALI_TEST_CHECK(renderer);
   }
 
   // Move the cursor and check the position changes.
-  Vector3 position1 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position1 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Vector3 position2 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position2 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_CHECK( position2.x < position1.x );
+  DALI_TEST_CHECK(position2.x < position1.x);
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Vector3 position3 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position3 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_EQUALS( position1, position3, TEST_LOCATION ); // Should be in the same position1.
+  DALI_TEST_EQUALS(position1, position3, TEST_LOCATION); // Should be in the same position1.
 
   // Send some taps and check the cursor positions.
 
   // Try to tap at the beginning.
-  TestGenerateTap( application, 1.0f, 25.0f, 700 );
+  TestGenerateTap(application, 1.0f, 25.0f, 700);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Cursor position should be the same than position1.
-  Vector3 position4 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position4 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_EQUALS( position2, position4, TEST_LOCATION ); // Should be in the same position2.
+  DALI_TEST_EQUALS(position2, position4, TEST_LOCATION); // Should be in the same position2.
 
   // Tap away from the start position.
-  TestGenerateTap( application, 16.0f, 25.0f, 1400 );
+  TestGenerateTap(application, 16.0f, 25.0f, 1400);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Vector3 position5 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position5 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_CHECK( position5.x > position4.x );
+  DALI_TEST_CHECK(position5.x > position4.x);
 
   // Remove all the text.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  editor.SetProperty( TextEditor::Property::TEXT, "" );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  editor.SetProperty(TextEditor::Property::TEXT, "");
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Cursor position should be the same than position2.
-  Vector3 position6 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position6 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_EQUALS( position2, position6, TEST_LOCATION );// Should be in the same position2.
+  DALI_TEST_EQUALS(position2, position6, TEST_LOCATION); // Should be in the same position2.
 
-  // Should not be a renderer.
-  DALI_TEST_EQUALS( stencil.GetChildCount(), 0u, TEST_LOCATION );
+  // Should not be a renderer, there is only a clipped cursor.
+  DALI_TEST_EQUALS(stencil.GetChildCount(), 1u, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1925,18 +2027,18 @@ int utcDaliTextEditorEvent03(void)
   // Checks if the highlight actor is created.
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "This is a long text for the size of the text-editor." );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 30.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "This is a long text for the size of the text-editor.");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(30.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
@@ -1945,7 +2047,7 @@ int utcDaliTextEditorEvent03(void)
   // Send some taps and check text controller with clipboard window
   Dali::Clipboard clipboard = Clipboard::Get();
   clipboard.ShowClipboard();
-  TestGenerateTap( application, 3.0f, 25.0f, 100 );
+  TestGenerateTap(application, 3.0f, 25.0f, 100);
   clipboard.HideClipboard();
 
   // Render and notify
@@ -1953,51 +2055,51 @@ int utcDaliTextEditorEvent03(void)
   application.Render();
 
   // Tap first to get the focus.
-  TestGenerateTap( application, 3.0f, 25.0f, 1000 );
+  TestGenerateTap(application, 3.0f, 25.0f, 1000);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Double tap to select a word.
-  TestGenerateTap( application, 3.0f, 25.0f, 1100 );
+  TestGenerateTap(application, 3.0f, 25.0f, 1100);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The stencil actor should have two actors: the renderer and the highlight actor.
-  Actor stencil = editor.GetChildAt( 0u );
+  Actor stencil = editor.GetChildAt(0u);
 
   // Highlight needs to be drawn before text, so should come first in child order
-  Renderer highlight = stencil.GetChildAt( 0u ).GetRendererAt( 0u );
-  DALI_TEST_CHECK( highlight );
+  Renderer highlight = stencil.GetChildAt(0u).GetRendererAt(0u);
+  DALI_TEST_CHECK(highlight);
 
   // The stencil actor has a container with all the actors which contain the text renderers.
-  Actor container = stencil.GetChildAt( 1u );
-  for( unsigned int index = 0; index < container.GetChildCount(); ++index )
+  Actor container = stencil.GetChildAt(1u);
+  for(unsigned int index = 0; index < container.GetChildCount(); ++index)
   {
-    Renderer renderer = container.GetChildAt( index ).GetRendererAt( 0u );
-    DALI_TEST_CHECK( renderer );
+    Renderer renderer = container.GetChildAt(index).GetRendererAt(0u);
+    DALI_TEST_CHECK(renderer);
   }
 
   // Double tap out of bounds
-  TestGenerateTap( application, 29.0f, 25.0f, 1700 );
-  TestGenerateTap( application, 29.0f, 25.0f, 1800 );
+  TestGenerateTap(application, 29.0f, 25.0f, 1700);
+  TestGenerateTap(application, 29.0f, 25.0f, 1800);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The stencil actor should have one actors: the renderer actor.
-  stencil = editor.GetChildAt( 0u );
+  stencil = editor.GetChildAt(0u);
 
   // The stencil actor has a container with all the actors which contain the text renderers.
-  container = stencil.GetChildAt( 0u );
-  for( unsigned int index = 0; index < container.GetChildCount(); ++index )
+  container = stencil.GetChildAt(0u);
+  for(unsigned int index = 0; index < container.GetChildCount(); ++index)
   {
-    Renderer renderer = container.GetChildAt( index ).GetRendererAt( 0u );
-    DALI_TEST_CHECK( renderer );
+    Renderer renderer = container.GetChildAt(index).GetRendererAt(0u);
+    DALI_TEST_CHECK(renderer);
   }
 
   // Long Press
@@ -2025,42 +2127,42 @@ int utcDaliTextEditorEvent04(void)
   // Checks if the highlight actor is created.
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworl" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworl");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move at the end of the text.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  for( unsigned int index = 0u; index < 10u; ++index )
+  for(unsigned int index = 0u; index < 10u; ++index)
   {
-    application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-    application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+    application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+    application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
     // Render and notify
     application.SendNotification();
@@ -2068,26 +2170,26 @@ int utcDaliTextEditorEvent04(void)
   }
 
   // Add a character
-  application.ProcessEvent( GenerateKey( "d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "Hello\nworld", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello\nworld", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Add some key events
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_UP, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_UP, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_UP, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_UP, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  for( unsigned int index = 0u; index < 10u; ++index )
+  for(unsigned int index = 0u; index < 10u; ++index)
   {
-    application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-    application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+    application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+    application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
     // Render and notify
     application.SendNotification();
@@ -2095,13 +2197,13 @@ int utcDaliTextEditorEvent04(void)
   }
 
   // Add a character
-  application.ProcessEvent( GenerateKey( " ", "", " ", KEY_WHITE_SPACE_CODE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey(" ", "", " ", KEY_WHITE_SPACE_CODE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( " Hello\nworld", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS(" Hello\nworld", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   END_TEST;
 }
@@ -2114,76 +2216,76 @@ int utcDaliTextEditorEvent05(void)
   // Checks if the highlight actor is created.
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworl" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 50.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL, true );
-  editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL_DURATION, 0.2f );
-  editor.SetProperty( TextEditor::Property::ENABLE_SCROLL_BAR, true );
-  editor.SetProperty( TextEditor::Property::SCROLL_BAR_SHOW_DURATION, 0.3f );
-  editor.SetProperty( TextEditor::Property::SCROLL_BAR_FADE_DURATION, 0.2f );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworl");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(50.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::SMOOTH_SCROLL, true);
+  editor.SetProperty(TextEditor::Property::SMOOTH_SCROLL_DURATION, 0.2f);
+  editor.SetProperty(TextEditor::Property::ENABLE_SCROLL_BAR, true);
+  editor.SetProperty(TextEditor::Property::SCROLL_BAR_SHOW_DURATION, 0.3f);
+  editor.SetProperty(TextEditor::Property::SCROLL_BAR_FADE_DURATION, 0.2f);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move at the end of the text.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  for( unsigned int index = 0u; index < 10u; ++index )
+  for(unsigned int index = 0u; index < 10u; ++index)
   {
     // Add a character
-    application.ProcessEvent( GenerateKey( "d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+    application.ProcessEvent(GenerateKey("d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
     // Render and notify
     application.SendNotification();
     application.Render();
   }
   // Modify duration after scroll is enabled
-  editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL_DURATION, 0.1f );
+  editor.SetProperty(TextEditor::Property::SMOOTH_SCROLL_DURATION, 0.1f);
 
   // Continuous scroll left to increase coverage
-  for( unsigned int index = 0u; index < 10u; ++index )
+  for(unsigned int index = 0u; index < 10u; ++index)
   {
-    application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+    application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
     // Render and notify
     application.SendNotification();
     application.Render();
   }
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SMOOTH_SCROLL_DURATION ), 0.1f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::SMOOTH_SCROLL ), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( TextEditor::Property::ENABLE_SCROLL_BAR ), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SCROLL_BAR_SHOW_DURATION ), 0.3f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  DALI_TEST_EQUALS( editor.GetProperty<float>( TextEditor::Property::SCROLL_BAR_FADE_DURATION ), 0.2f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SMOOTH_SCROLL_DURATION), 0.1f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::SMOOTH_SCROLL), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(TextEditor::Property::ENABLE_SCROLL_BAR), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SCROLL_BAR_SHOW_DURATION), 0.3f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty<float>(TextEditor::Property::SCROLL_BAR_FADE_DURATION), 0.2f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Press Escape to increase coverage
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::UP, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::UP, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_CHECK( !editor.HasKeyInputFocus() );
+  DALI_TEST_CHECK(!editor.HasKeyInputFocus());
 
   END_TEST;
 }
@@ -2196,82 +2298,81 @@ int utcDaliTextEditorEvent06(void)
   // Checks if the highlight actor is created.
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworld\nHello world" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworld\nHello world");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move to seconds line of the text.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  float layoutHeight = editor.GetHeightForWidth( 100.f );
-
+  float layoutHeight = editor.GetHeightForWidth(100.f);
 
   // Add  another script characters ( glyph height is defferent )
-  application.ProcessEvent( GenerateKey( "d", "", "ㅁ", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "ㅁ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "d", "", "ኢ", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "ኢ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("d", "", "ㅁ", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "ㅁ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("d", "", "ኢ", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "ኢ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Delete characters
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
-  DALI_TEST_EQUALS( layoutHeight, editor.GetHeightForWidth( 100.f ), TEST_LOCATION );
+  DALI_TEST_EQUALS(layoutHeight, editor.GetHeightForWidth(100.f), TEST_LOCATION);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "Hello\nworld\nHello world", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello\nworld\nHello world", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // For coverage
-  application.ProcessEvent( GenerateKey( "", "", "", 0, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", 0, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_VOLUME_UP, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_VOLUME_UP, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_VOLUME_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_VOLUME_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
@@ -2286,155 +2387,154 @@ int utcDaliTextEditorEvent07(void)
   // Checks if the highlight actor is created.
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworld\nHello world" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworld\nHello world");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move to second line of the text.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Select some text in the right of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Cut the selected text
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "x", "", "x", KEY_X_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("x", "", "x", KEY_X_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "Hello\nld\nHello world", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello\nld\nHello world", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Select some text in the left of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN,  "",DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Copy the selected text
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move the cursor to the third line
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Paste the selected text at the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "v", "", "v", KEY_V_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "v", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("v", "", "v", KEY_V_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "v", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
-
+  DALI_TEST_EQUALS("Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Disable Shift Selection
-  editor.SetProperty( DevelTextEditor::Property::ENABLE_SHIFT_SELECTION, false );
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_SHIFT_SELECTION, false);
 
   // Test to select some text in the right of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Cut the selected text
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "x", "", "x", KEY_X_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("x", "", "x", KEY_X_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The text isn't selected and not changed because of 'SetProperty( DevelTextEditor::Property::ENABLE_SHIFT_SELECTION, false )'
-  DALI_TEST_EQUALS( "Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Test to select some text in the left of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Copy the selected text
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The text is not selected and not changed because of 'SetProperty( DevelTextEditor::Property::ENABLE_SHIFT_SELECTION, false )'
-  DALI_TEST_EQUALS( "Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Select all Text
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // replace text with "c"
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   //text is "c"
-  DALI_TEST_EQUALS( "c", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("c", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // select all text
   DevelTextEditor::SelectWholeText(editor);
@@ -2444,8 +2544,8 @@ int utcDaliTextEditorEvent07(void)
   application.Render();
 
   // Copy the selected text using logical keys
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "ؤ", "c", "ؤ", KEY_C_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("ؤ", "c", "ؤ", KEY_C_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -2459,30 +2559,30 @@ int utcDaliTextEditorEvent07(void)
   application.Render();
 
   // Paste the selected using logical keys
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "ر", "v", "ر", KEY_V_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "v", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("ر", "v", "ر", KEY_V_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "v", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   //text is "cc"
-  DALI_TEST_EQUALS( "cc", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("cc", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // select all using logical keys
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "ش", "a", "ش", KEY_A_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("ش", "a", "ش", KEY_A_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // cut text using logical keys
-  application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "ء", "x", "ء", KEY_X_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("ء", "x", "ء", KEY_X_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   //text is ""
-  DALI_TEST_EQUALS( "", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   END_TEST;
 }
@@ -2495,25 +2595,25 @@ int utcDaliTextEditorEvent08(void)
   // Checks if the highlight actor is released correctly.
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "DALi" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "DALi");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -2521,164 +2621,164 @@ int utcDaliTextEditorEvent08(void)
 
   // When the left selection handle and the right selection handle are at the same position, the highlight box should be deactivated.
   // Test to select some text in the left of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test to the left selection handle position and the right selection handle position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test to select full text in the left of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test to release the current full text selection
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test to move the current cursor position correctly
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Add a character
-  application.ProcessEvent( GenerateKey( "d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "DdALi", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("DdALi", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Test to select some text in the right of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test the cursor position with right arrow key
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Add a character
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "DdALci", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("DdALci", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Test to select some text in the left of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test the cursor position with left arrow key
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Add a character
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "DcdALci", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("DcdALci", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Test to select some text in the right of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test the cursor position with left arrow key
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Add a character
-  application.ProcessEvent( GenerateKey( "x", "", "x", KEY_X_CODE, 0, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("x", "", "x", KEY_X_CODE, 0, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "DcxdALci", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("DcxdALci", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Test to select some text in the left of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Test the cursor position with right arrow key
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Add a character
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "DcxcdALci", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("DcxcdALci", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   END_TEST;
 }
@@ -2689,62 +2789,62 @@ int utcDaliTextEditorHandles(void)
   tet_infoline(" utcDaliTextEditorHandles");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "This is a long text for the size of the text-editor." );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( TextEditor::Property::GRAB_HANDLE_IMAGE, HANDLE_IMAGE_FILE_NAME );
-  editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL, true );
+  editor.SetProperty(TextEditor::Property::TEXT, "This is a long text for the size of the text-editor.");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(TextEditor::Property::GRAB_HANDLE_IMAGE, HANDLE_IMAGE_FILE_NAME);
+  editor.SetProperty(TextEditor::Property::SMOOTH_SCROLL, true);
 
-  editor.SetProperty( TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT, Property::Map{ {"filename", HANDLE_LEFT_SELECTION_FILE_NAME } } );
-  editor.SetProperty( TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT, Property::Map{ {"filename", HANDLE_LEFT_SELECTION_FILE_NAME } } );
-  editor.SetProperty( TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, Property::Map{ {"filename", HANDLE_RIGHT_SELECTION_FILE_NAME } } );
-  editor.SetProperty( TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, Property::Map{ {"filename", HANDLE_RIGHT_SELECTION_FILE_NAME } } );
+  editor.SetProperty(TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT, Property::Map{{"filename", HANDLE_LEFT_SELECTION_FILE_NAME}});
+  editor.SetProperty(TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT, Property::Map{{"filename", HANDLE_LEFT_SELECTION_FILE_NAME}});
+  editor.SetProperty(TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, Property::Map{{"filename", HANDLE_RIGHT_SELECTION_FILE_NAME}});
+  editor.SetProperty(TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, Property::Map{{"filename", HANDLE_RIGHT_SELECTION_FILE_NAME}});
 
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 30.f, 500.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(30.f, 500.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap first to get the focus.
-  TestGenerateTap( application, 3.0f, 25.0f, 100 );
+  TestGenerateTap(application, 3.0f, 25.0f, 100);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap to create the grab handle.
-  TestGenerateTap( application, 3.0f, 25.0f, 700 );
+  TestGenerateTap(application, 3.0f, 25.0f, 700);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Get the active layer where the text's decoration is added.
-  Actor activeLayer = editor.GetChildAt( 1u );
+  Actor activeLayer = editor.GetChildAt(1u);
 
   // Get the handle's actor.
-  Actor handle = activeLayer.GetChildAt( 1u );
-  handle.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) );
+  Actor handle = activeLayer.GetChildAt(0u);
+  handle.SetProperty(Actor::Property::SIZE, Vector2(100.f, 100.f));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Touch the grab handle to set it as pressed.
-  Vector2 touchPos( 10.0f, 50.0f );
+  Vector2                       touchPos(10.0f, 50.0f);
   Dali::Integration::TouchEvent event;
   event = Dali::Integration::TouchEvent();
-  event.AddPoint( GetPointDownInside( touchPos ) );
-  application.ProcessEvent( event );
+  event.AddPoint(GetPointDownInside(touchPos));
+  application.ProcessEvent(event);
 
   // Render and notify
   application.SendNotification();
@@ -2752,42 +2852,41 @@ int utcDaliTextEditorHandles(void)
 
   // Pan the grab handle
   uint32_t time = 100;
-  TestStartPan( application, Vector2(10.0f, 50.0f), Vector2(10.0f, 50.0f), time );
-  TestMovePan( application, Vector2(10.0f, 30.0f), time );
-  TestEndPan( application, Vector2(10.0f, 50.0f), time);
+  TestStartPan(application, Vector2(10.0f, 50.0f), Vector2(10.0f, 50.0f), time);
+  TestMovePan(application, Vector2(10.0f, 30.0f), time);
+  TestEndPan(application, Vector2(10.0f, 50.0f), time);
   application.SendNotification();
   application.Render();
 
-
   // Release the grab handle.
   event = Dali::Integration::TouchEvent();
-  event.AddPoint( GetPointUpInside( touchPos ) );
-  application.ProcessEvent( event );
+  event.AddPoint(GetPointUpInside(touchPos));
+  application.ProcessEvent(event);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap first to get the focus.
-  TestGenerateTap( application, 3.0f, 25.0f, 1400 );
+  TestGenerateTap(application, 3.0f, 25.0f, 1400);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Double tap to select a word and create the selection handles.
-  TestGenerateTap( application, 3.0f, 25.0f, 1500 );
+  TestGenerateTap(application, 3.0f, 25.0f, 1500);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  touchPos = Vector2( 10.0f, 50.0f );
+  touchPos = Vector2(10.0f, 50.0f);
 
   // Touch the left selection handle to set it as pressed.
   event = Dali::Integration::TouchEvent();
-  event.AddPoint( GetPointDownInside( touchPos ) );
-  application.ProcessEvent( event );
+  event.AddPoint(GetPointDownInside(touchPos));
+  application.ProcessEvent(event);
 
   // Render and notify
   application.SendNotification();
@@ -2795,8 +2894,8 @@ int utcDaliTextEditorHandles(void)
 
   // Release the left selection handle.
   event = Dali::Integration::TouchEvent();
-  event.AddPoint( GetPointUpInside( touchPos ) );
-  application.ProcessEvent( event );
+  event.AddPoint(GetPointUpInside(touchPos));
+  application.ProcessEvent(event);
 
   // Render and notify
   application.SendNotification();
@@ -2810,41 +2909,140 @@ int utcDaliTextEditorUnderPropertyStringP(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextEditorUnderPropertyStringP");
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  std::string underlineSettings1( "{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}" );
+  std::string underlineSettings1("{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\",\"type\":\"SOLID\",\"dashWidth\":\"2\",\"dashGap\":\"1\"}");
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::UNDERLINE, underlineSettings1 );
-  DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::UNDERLINE ), underlineSettings1, TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineSettings1);
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(TextEditor::Property::UNDERLINE), underlineSettings1, TEST_LOCATION);
 
   tet_infoline("Set underline settings with a map");
   // Check the input underline property
   Property::Map underlineMapSet;
   Property::Map underlineMapGet;
-  underlineMapSet.Insert( "enable", true );
-  underlineMapSet.Insert( "color", Color::BLUE );
-  underlineMapSet.Insert( "height", 2 );
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::SOLID);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+  editor.SetProperty(TextEditor::Property::TEXT, "text");
+  underlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapSet, underlineMapGet), true, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  tet_infoline("Set dashed underline settings with a map");
+  // Check the input underline property
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DASHED);
+  underlineMapSet.Insert("dashWidth", 5);
+  underlineMapSet.Insert("dashGap", 3);
+
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+  editor.SetProperty(TextEditor::Property::TEXT, "text");
+  underlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapSet, underlineMapGet), true, TEST_LOCATION);
+
+  // Check the input underline property
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 5);
+  underlineMapSet.Insert("dashGap", 3);
+
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+  editor.SetProperty(TextEditor::Property::TEXT, "text");
+  underlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapSet, underlineMapGet), true, TEST_LOCATION);
+
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+  editor.SetProperty(TextEditor::Property::TEXT, "text");
+  underlineMapGet = editor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapSet, underlineMapGet), true, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
 
-  editor.SetProperty( TextEditor::Property::UNDERLINE, underlineMapSet );
-  underlineMapGet = editor.GetProperty<Property::Map>( TextEditor::Property::UNDERLINE );
-  DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapSet, underlineMapGet ), true,  TEST_LOCATION );
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
 
   tet_infoline("Set underline settings with a string");
-  editor.SetProperty( TextEditor::Property::UNDERLINE, underlineSettings1 );
-  Property::Value value = editor.GetProperty( TextEditor::Property::UNDERLINE );
-  std::string result;
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineSettings1);
+  Property::Value value = editor.GetProperty(TextEditor::Property::UNDERLINE);
+  std::string     result;
   value.Get(result);
-  DALI_TEST_EQUALS( result , underlineSettings1, TEST_LOCATION  );
+  DALI_TEST_EQUALS(result, underlineSettings1, TEST_LOCATION);
 
   tet_infoline("Trying to set invalid underline settings, should not update and stay at previous settings");
-  std::string underlineSettingsVoid( "{\"enable\":\"true\",\"coooolor\":\"blue\",\"heeeight\":\"4\"}" );
-  editor.SetProperty( TextEditor::Property::UNDERLINE, underlineSettingsVoid );
-  value = editor.GetProperty( TextEditor::Property::UNDERLINE );
+  std::string underlineSettingsVoid("{\"enable\":\"true\",\"coooolor\":\"blue\",\"heeeight\":\"4\"}");
+  editor.SetProperty(TextEditor::Property::UNDERLINE, underlineSettingsVoid);
+  value = editor.GetProperty(TextEditor::Property::UNDERLINE);
+  value.Get(result);
+  DALI_TEST_EQUALS(result, underlineSettings1, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int utcDaliTextEditorStrikethroughPropertyStringP(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorStrikethroughPropertyStringP");
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  std::string strikethroughSettings1("{\"enable\":\"true\",\"color\":\"red\",\"height\":\"2\"}");
+
+  application.GetScene().Add(editor);
+
+  editor.SetProperty(DevelTextEditor::Property::STRIKETHROUGH, strikethroughSettings1);
+  DALI_TEST_EQUALS(editor.GetProperty<std::string>(DevelTextEditor::Property::STRIKETHROUGH), strikethroughSettings1, TEST_LOCATION);
+
+  tet_infoline("Set strikethrough settings with a map");
+  // Check the input strikethrough property
+  Property::Map strikethroughMapSet;
+  Property::Map strikethroughMapGet;
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::BLUE);
+  strikethroughMapSet.Insert("height", 2.0f);
+
+  editor.SetProperty(DevelTextEditor::Property::STRIKETHROUGH, strikethroughMapSet);
+  strikethroughMapGet = editor.GetProperty<Property::Map>(DevelTextEditor::Property::STRIKETHROUGH);
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapSet, strikethroughMapGet), true, TEST_LOCATION);
+
+  tet_infoline("Set strikethrough settings with a string");
+  editor.SetProperty(DevelTextEditor::Property::STRIKETHROUGH, strikethroughSettings1);
+  Property::Value value = editor.GetProperty(DevelTextEditor::Property::STRIKETHROUGH);
+  std::string     result;
+  value.Get(result);
+  DALI_TEST_EQUALS(result, strikethroughSettings1, TEST_LOCATION);
+
+  tet_infoline("Trying to set invalid strikethrough settings, should not update and stay at previous settings");
+  std::string strikethroughSettingsVoid("{\"enable\":\"true\",\"coooolor\":\"blue\",\"height\":\"2\"}");
+  editor.SetProperty(DevelTextEditor::Property::STRIKETHROUGH, strikethroughSettingsVoid);
+  value = editor.GetProperty(TextEditor::Property::UNDERLINE);
   value.Get(result);
-  DALI_TEST_EQUALS( result , underlineSettings1, TEST_LOCATION  );
+  DALI_TEST_EQUALS(result, strikethroughSettings1, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2852,21 +3050,21 @@ int utcDaliTextEditorUnderPropertyStringP(void)
 int utcDaliTextEditorShadowPropertyStringP(void)
 {
   ToolkitTestApplication application;
-  tet_infoline(" utcDaliTextEditorUnderPropertyStringP Setting Shadow propeties by string");
+  tet_infoline(" utcDaliTextEditorShadowPropertyStringP Setting Shadow propeties by string");
 
   TextEditor editor = TextEditor::New();
 
-  std::string shadowSettings( "{\"color\":\"green\",\"offset\":\"2 2\",\"blurRadius\":\"0\"}" );
+  std::string shadowSettings("{\"color\":\"green\",\"offset\":\"2 2\",\"blurRadius\":\"0\"}");
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::SHADOW, "{\"color\":\"green\",\"offset\":\"2 2\",\"blurRadius\":\"0\"}" );
+  editor.SetProperty(TextEditor::Property::SHADOW, "{\"color\":\"green\",\"offset\":\"2 2\",\"blurRadius\":\"0\"}");
 
-  Property::Value value = editor.GetProperty<std::string>( TextEditor::Property::SHADOW );
-  std::string result;
+  Property::Value value = editor.GetProperty<std::string>(TextEditor::Property::SHADOW);
+  std::string     result;
   value.Get(result);
 
-  DALI_TEST_EQUALS( result, shadowSettings, TEST_LOCATION );
+  DALI_TEST_EQUALS(result, shadowSettings, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2878,17 +3076,17 @@ int utcDaliTextEditorFontStylePropertyStringP(void)
 
   TextEditor editor = TextEditor::New();
 
-  std::string fontStyleSettings( "{\"weight\":\"bold\",\"width\":\"condensed\",\"slant\":\"italic\"}" );
+  std::string fontStyleSettings("{\"weight\":\"bold\",\"width\":\"condensed\",\"slant\":\"italic\"}");
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::FONT_STYLE, "{\"weight\":\"bold\",\"width\":\"condensed\",\"slant\":\"italic\"}" );
+  editor.SetProperty(TextEditor::Property::FONT_STYLE, "{\"weight\":\"bold\",\"width\":\"condensed\",\"slant\":\"italic\"}");
 
-  Property::Value value = editor.GetProperty<std::string>( TextEditor::Property::FONT_STYLE );
-  std::string result;
+  Property::Value value = editor.GetProperty<std::string>(TextEditor::Property::FONT_STYLE);
+  std::string     result;
   value.Get(result);
 
-  DALI_TEST_EQUALS( result, fontStyleSettings, TEST_LOCATION );
+  DALI_TEST_EQUALS(result, fontStyleSettings, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2899,63 +3097,62 @@ int utcDaliTextEditorGetPropertyLinecountP(void)
 
   tet_infoline(" utcDaliTextEditorGetPropertyLinecount getting line count property");
 
-  int lineCount =;
+  int lineCount = 0;
 
   TextEditor editor = TextEditor::New();
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10) ;
-  editor.SetProperty( TextEditor::Property::TEXT,
-                       "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST ");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  editor.SetProperty(TextEditor::Property::TEXT,
+                     "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST ");
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) );
-  lineCount =  editor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 14, TEST_LOCATION );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 100.f));
+  lineCount = editor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 14, TEST_LOCATION);
 
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 50.f, 100.f ) );
-  lineCount =  editor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 28, TEST_LOCATION );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(50.f, 100.f));
+  lineCount = editor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 28, TEST_LOCATION);
 
   END_TEST;
 }
 
 int utcDaliTextEditorScrollStateChangedSignalTest(void)
 {
-
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliTextEditorScrollStateChangedSignalTest");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 50.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  editor.SetProperty( TextEditor::Property::ENABLE_SCROLL_BAR, true );
-  editor.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true);
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(50.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::ENABLE_SCROLL_BAR, true);
+  editor.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
 
-  bool startedCalled = false;
+  bool startedCalled  = false;
   bool finishedCalled = false;
 
-  ScrollStateChangeCallback callback( startedCalled, finishedCalled );
-  editor.ScrollStateChangedSignal().Connect( &callback, &ScrollStateChangeCallback::Callback );
+  ScrollStateChangeCallback callback(startedCalled, finishedCalled);
+  editor.ScrollStateChangedSignal().Connect(&callback, &ScrollStateChangeCallback::Callback);
 
-  KeyboardFocusManager::Get().SetCurrentFocusActor( editor );
+  KeyboardFocusManager::Get().SetCurrentFocusActor(editor);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Long enough message for TextEditor!");
+  editor.SetProperty(TextEditor::Property::TEXT, "Long enough message for TextEditor!");
   application.SendNotification();
   application.Render(6000);
 
   application.SendNotification();
-  DALI_TEST_EQUALS( startedCalled, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( finishedCalled, true, TEST_LOCATION );
+  DALI_TEST_EQUALS(startedCalled, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(finishedCalled, true, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2965,49 +3162,49 @@ int UtcDaliToolkitTextEditorTextWrapMode(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorTextWarpMode");
 
-  int lineCount =;
+  int lineCount = 0;
 
   TextEditor editor = TextEditor::New();
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 150.0f, 300.f ) );
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello world Hello world" );
+  editor.SetProperty(Actor::Property::SIZE, Vector2(150.0f, 300.f));
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello world Hello world");
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  editor.SetProperty( TextEditor::Property::LINE_WRAP_MODE, "WORD" );
-  DALI_TEST_EQUALS( editor.GetProperty< int >( TextEditor::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::WORD ), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, "WORD");
+  DALI_TEST_EQUALS(editor.GetProperty<int>(TextEditor::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::WORD), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  editor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 4, TEST_LOCATION );
+  lineCount = editor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 4, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::LINE_WRAP_MODE, "CHARACTER" );
-  DALI_TEST_EQUALS( editor.GetProperty< int >( TextEditor::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::CHARACTER ), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, "CHARACTER");
+  DALI_TEST_EQUALS(editor.GetProperty<int>(TextEditor::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::CHARACTER), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  editor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 3, TEST_LOCATION );
+  lineCount = editor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 3, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::LINE_WRAP_MODE, Text::LineWrap::WORD );
-  DALI_TEST_EQUALS( editor.GetProperty< int >( TextEditor::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::WORD ), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, Text::LineWrap::WORD);
+  DALI_TEST_EQUALS(editor.GetProperty<int>(TextEditor::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::WORD), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  editor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 4, TEST_LOCATION );
+  lineCount = editor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 4, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::LINE_WRAP_MODE, Text::LineWrap::CHARACTER );
-  DALI_TEST_EQUALS( editor.GetProperty< int >( TextEditor::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::CHARACTER ), TEST_LOCATION );
+  editor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, Text::LineWrap::CHARACTER);
+  DALI_TEST_EQUALS(editor.GetProperty<int>(TextEditor::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::CHARACTER), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  editor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 3, TEST_LOCATION );
+  lineCount = editor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 3, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3018,29 +3215,29 @@ int UtcDaliTextEditorSetPaddingProperty(void)
   tet_infoline("UtcDaliTextEditorSetPaddingProperty\n");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( editor );
+  DALI_TEST_CHECK(editor);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(editor);
 
   application.SendNotification();
   application.Render();
 
   Vector3 originalSize = editor.GetNaturalSize();
 
-  editor.SetProperty( Toolkit::Control::Property::PADDING, Extents( 10, 10, 10, 10 ) );
+  editor.SetProperty(Toolkit::Control::Property::PADDING, Extents(10, 10, 10, 10));
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( editor.GetProperty<Extents>( Toolkit::Control::Property::PADDING ), Extents( 10, 10, 10, 10 ), TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<Extents>(Toolkit::Control::Property::PADDING), Extents(10, 10, 10, 10), TEST_LOCATION);
 
   Vector3 paddingAddedSize = editor.GetNaturalSize();
 
-  DALI_TEST_EQUALS( originalSize.width + 10 + 10 , paddingAddedSize.width, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(originalSize.width + 10 + 10, paddingAddedSize.width, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( originalSize.height + 10 + 10 , paddingAddedSize.height, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(originalSize.height + 10 + 10, paddingAddedSize.height, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3051,21 +3248,21 @@ int UtcDaliTextEditorEnableShiftSelectionProperty(void)
   tet_infoline("UtcDaliTextEditorEnableShiftSelectionProperty");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( editor );
+  DALI_TEST_CHECK(editor);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(editor);
 
   application.SendNotification();
   application.Render();
 
   // The default value of ENABLE_SHIFT_SELECTION is 'true'.
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::ENABLE_SHIFT_SELECTION ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::ENABLE_SHIFT_SELECTION), true, TEST_LOCATION);
 
   // Check the enable shift selection property
-  editor.SetProperty( DevelTextEditor::Property::ENABLE_SHIFT_SELECTION, false );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::ENABLE_SHIFT_SELECTION ), false, TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_SHIFT_SELECTION, false);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::ENABLE_SHIFT_SELECTION), false, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -3079,21 +3276,21 @@ int UtcDaliTextEditorEnableGrabHandleProperty(void)
   tet_infoline("UtcDaliTextEditorEnableGrabHandleProperty");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( editor );
+  DALI_TEST_CHECK(editor);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(editor);
 
   application.SendNotification();
   application.Render();
 
   // The default value of ENABLE_GRAB_HANDLE is 'true'.
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::ENABLE_GRAB_HANDLE ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::ENABLE_GRAB_HANDLE), true, TEST_LOCATION);
 
   // Check the enable grab handle property
-  editor.SetProperty( DevelTextEditor::Property::ENABLE_GRAB_HANDLE, false );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::ENABLE_GRAB_HANDLE ), false, TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_GRAB_HANDLE, false);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::ENABLE_GRAB_HANDLE), false, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -3107,21 +3304,21 @@ int UtcDaliTextEditorMatchSystemLanguageDirectionProperty(void)
   tet_infoline("UtcDaliTextEditorMatchSystemLanguageDirectionProperty");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( editor );
+  DALI_TEST_CHECK(editor);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(editor);
 
   application.SendNotification();
   application.Render();
 
   // The default value of MATCH_SYSTEM_LANGUAGE_DIRECTION is 'true'.
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION), true, TEST_LOCATION);
 
   // Check the disable match system language direction property
-  editor.SetProperty( DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, false );
-  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION ), false, TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, false);
+  DALI_TEST_EQUALS(editor.GetProperty<bool>(DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION), false, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -3135,7 +3332,7 @@ int UtcDaliTextEditorGetInputMethodContext(void)
   tet_infoline("UtcDaliTextEditorGetInputMethodContext");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( DevelTextEditor::GetInputMethodContext( editor ) );
+  DALI_TEST_CHECK(DevelTextEditor::GetInputMethodContext(editor));
 
   END_TEST;
 }
@@ -3146,29 +3343,29 @@ int utcDaliTextEditorMaxCharactersReached(void)
   tet_infoline("utcDaliTextEditorMaxCharactersReached");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   const int maxNumberOfCharacters = 1;
-  editor.SetProperty( DevelTextEditor::Property::MAX_LENGTH, maxNumberOfCharacters );
-  DALI_TEST_EQUALS( editor.GetProperty<int>( DevelTextEditor::Property::MAX_LENGTH ), maxNumberOfCharacters, TEST_LOCATION );
+  editor.SetProperty(DevelTextEditor::Property::MAX_LENGTH, maxNumberOfCharacters);
+  DALI_TEST_EQUALS(editor.GetProperty<int>(DevelTextEditor::Property::MAX_LENGTH), maxNumberOfCharacters, TEST_LOCATION);
 
   editor.SetKeyInputFocus();
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
-  DevelTextEditor::MaxLengthReachedSignal( editor ).Connect(&TestMaxLengthReachedCallback);
+  DevelTextEditor::MaxLengthReachedSignal(editor).Connect(&TestMaxLengthReachedCallback);
   bool maxLengthReachedSignal = false;
-  editor.ConnectSignal( testTracker, "maxLengthReached", CallbackFunctor(&maxLengthReachedSignal) );
+  editor.ConnectSignal(testTracker, "maxLengthReached", CallbackFunctor(&maxLengthReachedSignal));
 
   gMaxCharactersCallBackCalled = false;
 
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
-  DALI_TEST_CHECK( gMaxCharactersCallBackCalled );
-  DALI_TEST_CHECK( maxLengthReachedSignal );
+  DALI_TEST_CHECK(gMaxCharactersCallBackCalled);
+  DALI_TEST_CHECK(maxLengthReachedSignal);
 
   END_TEST;
 }
@@ -3200,7 +3397,7 @@ int utcDaliTextEditorInputFiltered(void)
 
   gInputFilteredAcceptedCallbackCalled = false;
 
-  application.ProcessEvent(GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ));
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   DALI_TEST_CHECK(gInputFilteredAcceptedCallbackCalled);
   DALI_TEST_CHECK(inputFilteredSignal);
@@ -3214,10 +3411,10 @@ int utcDaliTextEditorInputFiltered(void)
 
   editor.SetKeyInputFocus();
 
-  inputFilteredSignal = false;
+  inputFilteredSignal                  = false;
   gInputFilteredRejectedCallbackCalled = false;
 
-  application.ProcessEvent(GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   DALI_TEST_CHECK(gInputFilteredAcceptedCallbackCalled);
   DALI_TEST_CHECK(inputFilteredSignal);
@@ -3232,47 +3429,47 @@ int UtcDaliTextEditorSelectWholeText(void)
 
   TextEditor textEditor = TextEditor::New();
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( 1u, textEditor.GetChildCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS(1u, textEditor.GetChildCount(), TEST_LOCATION);
 
-  DevelTextEditor::SelectWholeText( textEditor );
+  DevelTextEditor::SelectWholeText(textEditor);
 
   application.SendNotification();
   application.Render();
 
   // Nothing should have been selected. The number of children is still 1
-  DALI_TEST_EQUALS( 1u, textEditor.GetChildCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS(1u, textEditor.GetChildCount(), TEST_LOCATION);
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hello world" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
-  DevelTextEditor::SelectWholeText( textEditor );
+  DevelTextEditor::SelectWholeText(textEditor);
 
   application.SendNotification();
   application.Render();
 
   // Should be 2 children, the stencil and the layer
-  DALI_TEST_EQUALS( 2u, textEditor.GetChildCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS(2u, textEditor.GetChildCount(), TEST_LOCATION);
 
   // The offscreen root actor should have two actors: the renderer and the highlight actor.
-  Actor stencil = textEditor.GetChildAt( 0u );
+  Actor stencil = textEditor.GetChildAt(0u);
 
   // The highlight actor is drawn first, so is the first actor in the list
-  Renderer highlight = stencil.GetChildAt( 0u ).GetRendererAt( 0u );
-  DALI_TEST_CHECK( highlight );
+  Renderer highlight = stencil.GetChildAt(0u).GetRendererAt(0u);
+  DALI_TEST_CHECK(highlight);
 
   END_TEST;
 }
@@ -3284,54 +3481,54 @@ int UtcDaliTextEditorSelectText(void)
 
   TextEditor textEditor = TextEditor::New();
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   application.SendNotification();
   application.Render();
 
-  DevelTextEditor::SelectText( textEditor ,0, 5 );
+  DevelTextEditor::SelectText(textEditor, 0, 5);
 
   application.SendNotification();
   application.Render();
 
   // Nothing is selected
-  std::string selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "", selectedText, TEST_LOCATION );
+  std::string selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("", selectedText, TEST_LOCATION);
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hello world" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
-  DevelTextEditor::SelectText( textEditor, 0, 5 );
+  DevelTextEditor::SelectText(textEditor, 0, 5);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
   // world is selected
-  DevelTextEditor::SelectText( textEditor, 6, 11 );
+  DevelTextEditor::SelectText(textEditor, 6, 11);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "world", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("world", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 6, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 11, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 6, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 11, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3343,44 +3540,44 @@ int UtcDaliTextEditorSelectNone(void)
 
   TextEditor textEditor = TextEditor::New();
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   application.SendNotification();
   application.Render();
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hello world" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
   // Nothing is selected
-  std::string selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "", selectedText, TEST_LOCATION );
+  std::string selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("", selectedText, TEST_LOCATION);
 
-  DevelTextEditor::SelectWholeText( textEditor );
+  DevelTextEditor::SelectWholeText(textEditor);
 
   application.SendNotification();
   application.Render();
 
   // whole text is selected
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello world", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello world", selectedText, TEST_LOCATION);
 
-  DevelTextEditor::SelectNone( textEditor );
+  DevelTextEditor::SelectNone(textEditor);
 
   application.SendNotification();
   application.Render();
 
   // Nothing is selected
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("", selectedText, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3391,27 +3588,27 @@ int UtcDaliTextEditorSelectRange(void)
   tet_infoline("utcDaliTextEditorSelectRange");
 
   TextEditor textEditor = TextEditor::New();
-  DALI_TEST_CHECK( textEditor );
+  DALI_TEST_CHECK(textEditor);
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   application.SendNotification();
   application.Render();
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hello world" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hello world");
 
-  textEditor.SetProperty( DevelTextEditor::Property::SELECTED_TEXT_START, 0 );
-  textEditor.SetProperty( DevelTextEditor::Property::SELECTED_TEXT_END, 5 );
+  textEditor.SetProperty(DevelTextEditor::Property::SELECTED_TEXT_START, 0);
+  textEditor.SetProperty(DevelTextEditor::Property::SELECTED_TEXT_END, 5);
 
   // Hello is selected
-  std::string selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  std::string selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3423,39 +3620,60 @@ int UtcDaliTextEditorEnableEditing(void)
 
   TextEditor textEditor = TextEditor::New();
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  application.SendNotification();
+  application.Render();
+
+  textEditor.SetProperty(DevelActor::Property::USER_INTERACTION_ENABLED, true);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelActor::Property::USER_INTERACTION_ENABLED).Get<bool>(), true, TEST_LOCATION);
+
+  textEditor.SetKeyInputFocus();
+  textEditor.SetProperty(DevelTextEditor::Property::ENABLE_EDITING, false);
+  application.ProcessEvent(GenerateKey("D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
+  // Render and notify
   application.SendNotification();
   application.Render();
 
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "", TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::ENABLE_EDITING).Get<bool>(), false, TEST_LOCATION);
+
   textEditor.SetKeyInputFocus();
-  textEditor.SetProperty( DevelTextEditor::Property::ENABLE_EDITING, false );
-  application.ProcessEvent( GenerateKey( "D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  textEditor.SetProperty(DevelTextEditor::Property::ENABLE_EDITING, true);
+  application.ProcessEvent(GenerateKey("D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( TextEditor::Property::TEXT ).Get<std::string>(), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::ENABLE_EDITING ).Get<bool>(), false, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "D", TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::ENABLE_EDITING).Get<bool>(), true, TEST_LOCATION);
+
+  // Check the user interaction enabled and for coverage
+  DevelTextEditor::SelectWholeText(textEditor);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
 
   textEditor.SetKeyInputFocus();
-  textEditor.SetProperty( DevelTextEditor::Property::ENABLE_EDITING, true );
-  application.ProcessEvent( GenerateKey( "D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  textEditor.SetProperty(DevelActor::Property::USER_INTERACTION_ENABLED, false);
+  application.ProcessEvent(GenerateKey("D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( TextEditor::Property::TEXT ).Get<std::string>(), "D", TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::ENABLE_EDITING ).Get<bool>(), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "D", TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelActor::Property::USER_INTERACTION_ENABLED).Get<bool>(), false, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3466,12 +3684,12 @@ int UtcDaliTextEditorScrolling(void)
   tet_infoline(" UtcDaliTextEditorScrolling ");
 
   TextEditor textEditor = TextEditor::New();
-  DALI_TEST_CHECK( textEditor );
+  DALI_TEST_CHECK(textEditor);
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   application.SendNotification();
   application.Render();
@@ -3484,25 +3702,24 @@ int UtcDaliTextEditorScrolling(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::VERTICAL_SCROLL_POSITION ).Get<float>(), 0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION ).Get<float>(), 0.0f, TEST_LOCATION );
-
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::VERTICAL_SCROLL_POSITION).Get<float>(), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION).Get<float>(), 0.0f, TEST_LOCATION);
 
   DevelTextEditor::ScrollBy(textEditor, Vector2(1.0f, 1.0f));
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::VERTICAL_SCROLL_POSITION ).Get<float>(), 1.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION ).Get<float>(), 0.0f, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::VERTICAL_SCROLL_POSITION).Get<float>(), 1.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION).Get<float>(), 0.0f, TEST_LOCATION);
 
   DevelTextEditor::ScrollBy(textEditor, Vector2(0.0f, 1000.0f));
 
-  DALI_TEST_NOT_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::VERTICAL_SCROLL_POSITION ).Get<float>(), 1.0f, 0.1f, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION ).Get<float>(), 0.0f, TEST_LOCATION );
+  DALI_TEST_NOT_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::VERTICAL_SCROLL_POSITION).Get<float>(), 1.0f, 0.1f, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION).Get<float>(), 0.0f, TEST_LOCATION);
 
-  textEditor.SetProperty(DevelTextEditor::Property::VERTICAL_SCROLL_POSITION , 0.0f);
-  textEditor.SetProperty(DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION , 0.0f);
+  textEditor.SetProperty(DevelTextEditor::Property::VERTICAL_SCROLL_POSITION, 0.0f);
+  textEditor.SetProperty(DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION, 0.0f);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::VERTICAL_SCROLL_POSITION ).Get<float>(), 0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION ).Get<float>(), 0.0f, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::VERTICAL_SCROLL_POSITION).Get<float>(), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::HORIZONTAL_SCROLL_POSITION).Get<float>(), 0.0f, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3513,28 +3730,28 @@ int UtcDaliToolkitTextEditorFontSizeScale(void)
   tet_infoline(" UtcDaliToolkitTextEditorFontSizeScale");
 
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( TextEditor::Property::POINT_SIZE, 30.f );
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Test" );
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 30.f);
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
   Vector3 nonScaledSize = textEditor.GetNaturalSize();
 
   TextEditor textEditorScaled = TextEditor::New();
-  textEditorScaled.SetProperty( TextEditor::Property::POINT_SIZE, 15.f );
-  textEditorScaled.SetProperty( Toolkit::DevelTextEditor::Property::FONT_SIZE_SCALE, 2.f );
-  textEditorScaled.SetProperty( TextEditor::Property::TEXT, "Test" );
+  textEditorScaled.SetProperty(TextEditor::Property::POINT_SIZE, 15.f);
+  textEditorScaled.SetProperty(Toolkit::DevelTextEditor::Property::FONT_SIZE_SCALE, 2.f);
+  textEditorScaled.SetProperty(TextEditor::Property::TEXT, "Test");
   Vector3 scaledSize = textEditorScaled.GetNaturalSize();
 
-  DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION );
+  DALI_TEST_EQUALS(nonScaledSize, scaledSize, TEST_LOCATION);
 
-  textEditor.SetProperty( TextEditor::Property::PIXEL_SIZE, 30.f );
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Test" );
+  textEditor.SetProperty(TextEditor::Property::PIXEL_SIZE, 30.f);
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
   nonScaledSize = textEditor.GetNaturalSize();
 
-  textEditorScaled.SetProperty( TextEditor::Property::PIXEL_SIZE, 15.f );
-  textEditorScaled.SetProperty( Toolkit::DevelTextEditor::Property::FONT_SIZE_SCALE, 2.f );
-  textEditorScaled.SetProperty( TextEditor::Property::TEXT, "Test" );
+  textEditorScaled.SetProperty(TextEditor::Property::PIXEL_SIZE, 15.f);
+  textEditorScaled.SetProperty(Toolkit::DevelTextEditor::Property::FONT_SIZE_SCALE, 2.f);
+  textEditorScaled.SetProperty(TextEditor::Property::TEXT, "Test");
   scaledSize = textEditorScaled.GetNaturalSize();
 
-  DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION );
+  DALI_TEST_EQUALS(nonScaledSize, scaledSize, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3546,29 +3763,29 @@ int UtcDaliTextEditorPrimaryCursorPosition(void)
 
   TextEditor textEditor = TextEditor::New();
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "ABCEF");
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "ABCEF");
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
-  textEditor.SetProperty( DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
+  textEditor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
   application.SendNotification();
   application.Render();
   textEditor.SetKeyInputFocus();
 
-  application.ProcessEvent( GenerateKey( "D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( TextEditor::Property::TEXT ).Get<std::string>(), "ABCDEF", TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::PRIMARY_CURSOR_POSITION ).Get<int>(), 4, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "ABCDEF", TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 4, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3580,74 +3797,73 @@ int UtcDaliTextEditorLineCountAfterGetNaturalSize(void)
 
   TextEditor textEditor = TextEditor::New();
   textEditor.SetProperty(TextEditor::Property::TEXT, "A\nB\nC\nD\nE\nF\n");
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( textEditor );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
   int lineCount = 0;
-  lineCount =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 7, TEST_LOCATION );
+  lineCount     = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 7, TEST_LOCATION);
 
   textEditor.GetNaturalSize();
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 18.0f, 25.0f );
+  TestGenerateTap(application, 18.0f, 25.0f);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 7, TEST_LOCATION );
+  lineCount = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 7, TEST_LOCATION);
 
   END_TEST;
 }
 
-
 int utcDaliTextEditorGetHeightForWidthDoesNotChangeLineCountScrollingCase(void)
 {
   ToolkitTestApplication application;
 
   tet_infoline(" utcDaliTextEditorGetHeightForWidthDoesNotChangeLineCountScrollingCase ");
 
-  int lineCountBefore =;
-  int lineCountAfter =0 ;
+  int lineCountBefore = 0;
+  int lineCountAfter  = 0;
 
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
   //Set very large font-size using point-size
-  textEditor.SetProperty( TextEditor::Property::POINT_SIZE, 10) ;
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
   //Specify font-family
-  textEditor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
   //Specify size
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 100.f));
   //Set text longer than width of textEditor
-  textEditor.SetProperty( TextEditor::Property::TEXT, "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST ");
+  textEditor.SetProperty(TextEditor::Property::TEXT, "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST ");
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
   //Failed case is the GetHeightForWidth change LineCount then the scrollor will not arrive to latest line
   //GetHeightForWidth is a retrieval method which should not modify object
-  lineCountBefore =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCountBefore = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
   textEditor.GetHeightForWidth(200.f);
 
   //This is to simulate focus into text editor after calling GetHeightForWidth
   //Create a tap event to touch the text editor.
-  TestGenerateTap( application, 18.0f, 25.0f );
+  TestGenerateTap(application, 18.0f, 25.0f);
 
   application.SendNotification();
   application.Render();
 
-  lineCountAfter =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCountAfter = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
 
   //The LineCount must not be changed when calling GetHeightForWidth.
-  DALI_TEST_EQUALS( lineCountAfter , lineCountBefore, TEST_LOCATION );
+  DALI_TEST_EQUALS(lineCountAfter, lineCountBefore, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3658,43 +3874,43 @@ int utcDaliTextEditorGetHeightForWidthDoesNotChangeLineCountLineWrapCharCase(voi
 
   tet_infoline(" utcDaliTextEditorGetHeightForWidthDoesNotChangeLineCountLineWrapCharCase ");
 
-  int lineCountBefore =;
-  int lineCountAfter =0 ;
+  int lineCountBefore = 0;
+  int lineCountAfter  = 0;
 
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
   //Set very large font-size using point-size
-  textEditor.SetProperty( TextEditor::Property::POINT_SIZE, 10) ;
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
   //Specify font-family
-  textEditor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
   //Specify size
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 50.f, 100.f ) );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(50.f, 100.f));
   //Set text longer than width of textEditor
-  textEditor.SetProperty( TextEditor::Property::TEXT, "qwertyuiopasdfghjklzxcvbnm\n");
+  textEditor.SetProperty(TextEditor::Property::TEXT, "qwertyuiopasdfghjklzxcvbnm\n");
   //Set line wrap mode Character
   textEditor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, "CHARACTER");
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
   //Failed case is the GetHeightForWidth change LineCount which make position of cursor invalid in TextEditor
   //GetHeightForWidth is a retrieval method which should not modify object
-  lineCountBefore =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCountBefore = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
   textEditor.GetHeightForWidth(200.f);
 
   //This is to simulate focus into text editor after calling GetHeightForWidth
   //Create a tap event to touch the text editor.
-  TestGenerateTap( application, 18.0f, 25.0f );
+  TestGenerateTap(application, 18.0f, 25.0f);
 
   application.SendNotification();
   application.Render();
 
-  lineCountAfter =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCountAfter = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
 
   //The LineCount must not be changed when calling GetHeightForWidth.
-  DALI_TEST_EQUALS( lineCountAfter , lineCountBefore, TEST_LOCATION );
+  DALI_TEST_EQUALS(lineCountAfter, lineCountBefore, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3705,84 +3921,81 @@ int utcDaliTextEditorGetHeightForWidthChangeLineCountWhenTextChanged(void)
 
   tet_infoline(" utcDaliTextEditorGetHeightForWidthChangeLineCountWhenTextChanged ");
 
-  int lineCountBefore =;
-  int lineCountAfter =0 ;
+  int lineCountBefore = 0;
+  int lineCountAfter  = 0;
 
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
   //Set very large font-size using point-size
-  textEditor.SetProperty( TextEditor::Property::POINT_SIZE, 10) ;
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
   //Specify font-family
-  textEditor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
   //Specify size
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 200.f, 100.f ) );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(200.f, 100.f));
   //Set text longer than width of textEditor
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Short text");
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Short text");
   //Set line wrap mode Character
   textEditor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, "CHARACTER");
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
+  lineCountBefore = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
 
-  lineCountBefore =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-
-  textEditor.SetProperty( TextEditor::Property::TEXT, "This is very loooooooooooooooooooooooooooooooooooong text for test");
-  lineCountAfter =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "This is very loooooooooooooooooooooooooooooooooooong text for test");
+  lineCountAfter = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
 
   // When the text changed, the Line-count should be updated according to new text.
   // Because the GetHeightForWidth is called in Controller::GetLineCount(float width)
-  DALI_TEST_EQUALS( lineCountBefore ,1, TEST_LOCATION );
-  DALI_TEST_GREATER( lineCountAfter,1, TEST_LOCATION );
-
+  DALI_TEST_EQUALS(lineCountBefore, 1, TEST_LOCATION);
+  DALI_TEST_GREATER(lineCountAfter, 1, TEST_LOCATION);
 
   END_TEST;
 }
 
-
 int utcDaliTextEditorGetNaturalSizeDoesNotChangeLineCountScrollingCase(void)
 {
   ToolkitTestApplication application;
 
   tet_infoline(" utcDaliTextEditorGetNaturalSizeDoesNotChangeLineCountScrollingCase ");
 
-  int lineCountBefore =;
-  int lineCountAfter =0 ;
+  int lineCountBefore = 0;
+  int lineCountAfter  = 0;
 
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
   //Set very large font-size using point-size
-  textEditor.SetProperty( TextEditor::Property::POINT_SIZE, 10) ;
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
   //Specify font-family
-  textEditor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
   //Specify size
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 100.f));
   //Set text longer than width of textEditor
-  textEditor.SetProperty( TextEditor::Property::TEXT, "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST ");
+  textEditor.SetProperty(TextEditor::Property::TEXT, "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST ");
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
   //Failed case is the GetNaturalSize change LineCount then the scrollor will not arrive to latest line
   //GetNaturalSize is a retrieval method which should not modify object
-  lineCountBefore =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCountBefore = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
   textEditor.GetNaturalSize();
 
   //This is to simulate focus into text editor after calling GetNaturalSize
   //Create a tap event to touch the text editor.
-  TestGenerateTap( application, 18.0f, 25.0f );
+  TestGenerateTap(application, 18.0f, 25.0f);
 
   application.SendNotification();
   application.Render();
 
-  lineCountAfter =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCountAfter = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
 
   //The LineCount must not be changed when calling GetNaturalSize.
-  DALI_TEST_EQUALS( lineCountAfter , lineCountBefore, TEST_LOCATION );
+  DALI_TEST_EQUALS(lineCountAfter, lineCountBefore, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3793,43 +4006,43 @@ int utcDaliTextEditorGetNaturalSizeDoesNotChangeLineCountLineWrapCharCase(void)
 
   tet_infoline(" utcDaliTextEditorGetNaturalSizeDoesNotChangeLineCountLineWrapCharCase ");
 
-  int lineCountBefore =;
-  int lineCountAfter =0 ;
+  int lineCountBefore = 0;
+  int lineCountAfter  = 0;
 
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
   //Set very large font-size using point-size
-  textEditor.SetProperty( TextEditor::Property::POINT_SIZE, 10) ;
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
   //Specify font-family
-  textEditor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
   //Specify size
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 50.f, 100.f ) );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(50.f, 100.f));
   //Set text longer than width of textEditor
-  textEditor.SetProperty( TextEditor::Property::TEXT, "qwertyuiopasdfghjklzxcvbnm\n");
+  textEditor.SetProperty(TextEditor::Property::TEXT, "qwertyuiopasdfghjklzxcvbnm\n");
   //Set line wrap mode Character
   textEditor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, "CHARACTER");
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
   //Failed case is the GetNaturalSize change LineCount which make position of cursor invalid in TextEditor
   //GetNaturalSize is a retrieval method which should not modify object
-  lineCountBefore =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
-  textEditor.GetNaturalSize( );
+  lineCountBefore = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
+  textEditor.GetNaturalSize();
 
   //This is to simulate focus into text editor after calling GetNaturalSize
   //Create a tap event to touch the text editor.
-  TestGenerateTap( application, 18.0f, 25.0f );
+  TestGenerateTap(application, 18.0f, 25.0f);
 
   application.SendNotification();
   application.Render();
 
-  lineCountAfter =  textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCountAfter = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
 
   //The LineCount must not be changed when calling GetNaturalSize.
-  DALI_TEST_EQUALS( lineCountAfter , lineCountBefore, TEST_LOCATION );
+  DALI_TEST_EQUALS(lineCountAfter, lineCountBefore, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3840,30 +4053,30 @@ int UtcDaliTextEditorAtlasLimitationIsEnabledForLargeFontPointSize(void)
   tet_infoline(" UtcDaliTextEditorAtlasLimitationIsEnabledForLargeFontPointSize ");
 
   // +2: First one to handle the equal case. Second one to handle odd to even case of GetNaturalSize
-  const uint32_t lessThanWidth = TextAbstraction::FontClient::MAX_TEXT_ATLAS_WIDTH - TextAbstraction::FontClient::PADDING_TEXT_ATLAS_BLOCK + 2;
+  const uint32_t lessThanWidth  = TextAbstraction::FontClient::MAX_TEXT_ATLAS_WIDTH - TextAbstraction::FontClient::PADDING_TEXT_ATLAS_BLOCK + 2;
   const uint32_t lessThanHeight = TextAbstraction::FontClient::MAX_TEXT_ATLAS_HEIGHT - TextAbstraction::FontClient::PADDING_TEXT_ATLAS_BLOCK + 2;
 
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
 
   //Set size to avoid automatic eliding
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2(1025, 1025));
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(1025, 1025));
   //Set very large font-size using point-size
-  textEditor.SetProperty( TextEditor::Property::POINT_SIZE, 1000) ;
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 1000);
   //Specify font-family
-  textEditor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
   //Set text to check if appear or not
-  textEditor.SetProperty( TextEditor::Property::TEXT, "A");
+  textEditor.SetProperty(TextEditor::Property::TEXT, "A");
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
   //Use GetNaturalSize to verify that size of block does not exceed Atlas size
   Vector3 naturalSize = textEditor.GetNaturalSize();
 
-  DALI_TEST_GREATER( lessThanWidth, static_cast<uint32_t>(naturalSize.width), TEST_LOCATION );
-  DALI_TEST_GREATER( lessThanHeight, static_cast<uint32_t>(naturalSize.height), TEST_LOCATION );
+  DALI_TEST_GREATER(lessThanWidth, static_cast<uint32_t>(naturalSize.width), TEST_LOCATION);
+  DALI_TEST_GREATER(lessThanHeight, static_cast<uint32_t>(naturalSize.height), TEST_LOCATION);
 
   END_TEST;
 }
@@ -3874,31 +4087,30 @@ int UtcDaliTextEditorAtlasLimitationIsEnabledPerformanceCases(void)
   tet_infoline(" UtcDaliTextEditorAtlasLimitationIsEnabledPerformanceCases ");
 
   // +2: First one to handle the equal case. Second one to handle odd to even case of GetNaturalSize
-  const uint32_t lessThanWidth = TextAbstraction::FontClient::MAX_TEXT_ATLAS_WIDTH - TextAbstraction::FontClient::PADDING_TEXT_ATLAS_BLOCK + 2;
+  const uint32_t lessThanWidth  = TextAbstraction::FontClient::MAX_TEXT_ATLAS_WIDTH - TextAbstraction::FontClient::PADDING_TEXT_ATLAS_BLOCK + 2;
   const uint32_t lessThanHeight = TextAbstraction::FontClient::MAX_TEXT_ATLAS_HEIGHT - TextAbstraction::FontClient::PADDING_TEXT_ATLAS_BLOCK + 2;
 
   Vector3 naturalSize; //Use GetNaturalSize to verify that size of block does not exceed Atlas size
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
   //Set size to avoid automatic eliding
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2(1025, 1025));
-  textEditor.SetProperty( TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
-  textEditor.SetProperty( TextEditor::Property::TEXT, "A");
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(1025, 1025));
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+  textEditor.SetProperty(TextEditor::Property::TEXT, "A");
 
-  const int numberOfCases = 6;
-  int arrayCases[numberOfCases] = {323, 326, 330, 600, 1630, 2500};
+  const int numberOfCases             = 6;
+  int       arrayCases[numberOfCases] = {323, 326, 330, 600, 1630, 2500};
 
-  for (int index=0; index < numberOfCases; index++)
+  for(int index = 0; index < numberOfCases; index++)
   {
     tet_printf(" UtcDaliTextEditorAtlasLimitationIsEnabledPerformanceCases point-size= %d \n", arrayCases[index]);
-    textEditor.SetProperty( TextEditor::Property::POINT_SIZE, arrayCases[index]) ;
-    application.GetScene().Add( textEditor );
+    textEditor.SetProperty(TextEditor::Property::POINT_SIZE, arrayCases[index]);
+    application.GetScene().Add(textEditor);
     application.SendNotification();
     application.Render();
     naturalSize = textEditor.GetNaturalSize();
-    DALI_TEST_GREATER( lessThanWidth, static_cast<uint32_t>(naturalSize.width), TEST_LOCATION );
-    DALI_TEST_GREATER( lessThanHeight, static_cast<uint32_t>(naturalSize.height), TEST_LOCATION );
-
+    DALI_TEST_GREATER(lessThanWidth, static_cast<uint32_t>(naturalSize.width), TEST_LOCATION);
+    DALI_TEST_GREATER(lessThanHeight, static_cast<uint32_t>(naturalSize.height), TEST_LOCATION);
   }
 
   END_TEST;
@@ -3909,45 +4121,45 @@ int UtcDaliTextEditorHyphenWrapMode(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliTextEditorHyphenWrapMode ");
 
-  int lineCount =0;
+  int        lineCount  = 0;
   TextEditor textEditor = TextEditor::New();
 
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 150.0f, 300.f ) );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(150.0f, 300.f));
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
   application.SendNotification();
   application.Render();
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hi Experimen" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hi Experimen");
   textEditor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, DevelText::LineWrap::HYPHENATION);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( TextEditor::Property::LINE_WRAP_MODE ), static_cast< int >( DevelText::LineWrap::HYPHENATION ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(TextEditor::Property::LINE_WRAP_MODE), static_cast<int>(DevelText::LineWrap::HYPHENATION), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount = textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCount = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
   /*
     text will be :
     Hi Exp-
     erimen
   */
-  DALI_TEST_EQUALS( lineCount, 2, TEST_LOCATION );
+  DALI_TEST_EQUALS(lineCount, 2, TEST_LOCATION);
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hi Experimen" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hi Experimen");
   textEditor.SetProperty(TextEditor::Property::LINE_WRAP_MODE, DevelText::LineWrap::MIXED);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( TextEditor::Property::LINE_WRAP_MODE ), static_cast< int >( DevelText::LineWrap::MIXED ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(TextEditor::Property::LINE_WRAP_MODE), static_cast<int>(DevelText::LineWrap::MIXED), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount = textEditor.GetProperty<int>( TextEditor::Property::LINE_COUNT );
+  lineCount = textEditor.GetProperty<int>(TextEditor::Property::LINE_COUNT);
   /*
     text will be :
     Hi
     Experi-
     men
   */
-  DALI_TEST_EQUALS( lineCount, 3, TEST_LOCATION );
+  DALI_TEST_EQUALS(lineCount, 3, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3959,55 +4171,55 @@ int UtcDaliToolkitTextEditorEllipsisPositionProperty(void)
   TextEditor textEditor = TextEditor::New();
 
   tet_infoline(" UtcDaliToolkitTextEditorEllipsisPositionProperty - Default is END");
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextEditorEllipsisPositionProperty - Change to START");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::START);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextEditorEllipsisPositionProperty - Change to MIDDLE");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::MIDDLE);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextEditorEllipsisPositionProperty - Change to END");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::END);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextEditorEllipsisPositionProperty - Change to START using integer");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, 1);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextEditorEllipsisPositionProperty - Change to MIDDLE using integer");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, 2);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextEditorEllipsisPositionProperty - Change to END using integer");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, 0);
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START using string - uppercase");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, "START");
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE using string - uppercase");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, "MIDDLE");
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END using string - uppercase");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, "END");
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START using string - lowercase");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, "start");
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE using string - lowercase");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, "middle");
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END using string - lowercase");
   textEditor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, "end");
-  DALI_TEST_EQUALS( textEditor.GetProperty< int >( DevelTextEditor::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty<int>(DevelTextEditor::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   END_TEST;
 }
@@ -4020,72 +4232,72 @@ int UtcDaliTextEditorCopyText(void)
   TextEditor textEditor = TextEditor::New();
 
   std::string selectedText = "";
-  std::string copiedText = "";
+  std::string copiedText   = "";
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   application.SendNotification();
   application.Render();
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hello world" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
   // Hello is selected
-  DevelTextEditor::SelectText( textEditor, 0, 5 );
+  DevelTextEditor::SelectText(textEditor, 0, 5);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
   // Hello is copied
-  copiedText = DevelTextEditor::CopyText( textEditor );
-  DALI_TEST_EQUALS( "Hello", copiedText, TEST_LOCATION );
+  copiedText = DevelTextEditor::CopyText(textEditor);
+  DALI_TEST_EQUALS("Hello", copiedText, TEST_LOCATION);
 
   // world is selected
-  DevelTextEditor::SelectText( textEditor, 6, 11 );
+  DevelTextEditor::SelectText(textEditor, 6, 11);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "world", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("world", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 6, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 11, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 6, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 11, TEST_LOCATION);
 
   // world is copied
-  copiedText = DevelTextEditor::CopyText( textEditor );
-  DALI_TEST_EQUALS( "world", copiedText, TEST_LOCATION );
+  copiedText = DevelTextEditor::CopyText(textEditor);
+  DALI_TEST_EQUALS("world", copiedText, TEST_LOCATION);
 
   // "lo wo" is selected
-  DevelTextEditor::SelectText( textEditor, 3, 8 );
+  DevelTextEditor::SelectText(textEditor, 3, 8);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "lo wo", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("lo wo", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 3, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 8, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 3, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 8, TEST_LOCATION);
 
   // "lo wo" is copied
-  copiedText = DevelTextEditor::CopyText( textEditor );
-  DALI_TEST_EQUALS( "lo wo", copiedText, TEST_LOCATION );
+  copiedText = DevelTextEditor::CopyText(textEditor);
+  DALI_TEST_EQUALS("lo wo", copiedText, TEST_LOCATION);
 
   END_TEST;
 }
@@ -4099,106 +4311,106 @@ int UtcDaliTextEditorCutText(void)
 
   std::string selectedText = "";
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textEditor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textEditor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textEditor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textEditor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   application.SendNotification();
   application.Render();
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hello world" );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
   // Hello is selected
-  DevelTextEditor::SelectText( textEditor, 0, 5 );
+  DevelTextEditor::SelectText(textEditor, 0, 5);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
   // Hello is cut
-  DALI_TEST_EQUALS( "Hello", DevelTextEditor::CutText( textEditor ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello", DevelTextEditor::CutText(textEditor), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( TextEditor::Property::TEXT ).Get<std::string>(), " world", TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), " world", TEST_LOCATION);
 
   // " w" is selected
-  DevelTextEditor::SelectText( textEditor, 0, 2 );
+  DevelTextEditor::SelectText(textEditor, 0, 2);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( " w", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS(" w", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 2, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 2, TEST_LOCATION);
 
   // " w" is cut
-  DALI_TEST_EQUALS( " w", DevelTextEditor::CutText( textEditor ), TEST_LOCATION );
+  DALI_TEST_EQUALS(" w", DevelTextEditor::CutText(textEditor), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( TextEditor::Property::TEXT ).Get<std::string>(), "orld", TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "orld", TEST_LOCATION);
 
   // Test Cut from the middle
 
   // "rl" is selected
-  DevelTextEditor::SelectText( textEditor, 1, 3 );
+  DevelTextEditor::SelectText(textEditor, 1, 3);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "rl", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("rl", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 3, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 3, TEST_LOCATION);
 
   // "rl" is cut
-  DALI_TEST_EQUALS( "rl", DevelTextEditor::CutText( textEditor ), TEST_LOCATION );
+  DALI_TEST_EQUALS("rl", DevelTextEditor::CutText(textEditor), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( TextEditor::Property::TEXT ).Get<std::string>(), "od", TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "od", TEST_LOCATION);
 
   // Test Cut from the end
 
   // "d" is selected
-  DevelTextEditor::SelectText( textEditor, 1, 2 );
+  DevelTextEditor::SelectText(textEditor, 1, 2);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "d", selectedText, TEST_LOCATION );
+  selectedText = textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("d", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_START ).Get<int>(), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( textEditor.GetProperty( DevelTextEditor::Property::SELECTED_TEXT_END ).Get<int>(), 2, TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_START).Get<int>(), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT_END).Get<int>(), 2, TEST_LOCATION);
 
   // "d" is cut
-  DALI_TEST_EQUALS( "d", DevelTextEditor::CutText( textEditor ), TEST_LOCATION );
+  DALI_TEST_EQUALS("d", DevelTextEditor::CutText(textEditor), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textEditor.GetProperty( TextEditor::Property::TEXT ).Get<std::string>(), "o", TEST_LOCATION );
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "o", TEST_LOCATION);
 
   END_TEST;
 }
@@ -4209,45 +4421,45 @@ int UtcDaliTextEditorPasteText(void)
   tet_infoline(" UtcDaliTextEditorPasteText ");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  std::string cutText = "";
+  std::string cutText    = "";
   std::string copiedText = "";
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworld\nHello world" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworld\nHello world");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move to second line of the text.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Select some text in the right of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4260,14 +4472,14 @@ int UtcDaliTextEditorPasteText(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "wor", cutText, TEST_LOCATION );
-  DALI_TEST_EQUALS( "Hello\nld\nHello world", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("wor", cutText, TEST_LOCATION);
+  DALI_TEST_EQUALS("Hello\nld\nHello world", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Select some text in the left of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN,  "",DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4280,13 +4492,12 @@ int UtcDaliTextEditorPasteText(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "lo\n", copiedText, TEST_LOCATION );
-  DALI_TEST_EQUALS( "Hello\nld\nHello world", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
-
+  DALI_TEST_EQUALS("lo\n", copiedText, TEST_LOCATION);
+  DALI_TEST_EQUALS("Hello\nld\nHello world", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   // Move the cursor to the third line
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4299,27 +4510,28 @@ int UtcDaliTextEditorPasteText(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>( TextEditor::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello\nld\nHello lo\nworld", editor.GetProperty<std::string>(TextEditor::Property::TEXT), TEST_LOCATION);
 
   END_TEST;
 }
+
 int UtcDaliTextEditorLineSpacing(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliTextEditorLineSpacing ");
 
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.f ) );
-  application.GetScene().Add( textEditor );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.f));
+  application.GetScene().Add(textEditor);
   application.SendNotification();
   application.Render();
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Line #1\nLine #2\nLine #3" );
-  textEditor.SetProperty( DevelTextEditor::Property::LINE_SPACING, 0 );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Line #1\nLine #2\nLine #3");
+  textEditor.SetProperty(DevelTextEditor::Property::LINE_SPACING, 0);
 
   Vector3 sizeBefore = textEditor.GetNaturalSize();
 
-  textEditor.SetProperty( DevelTextEditor::Property::LINE_SPACING, 20 );
+  textEditor.SetProperty(DevelTextEditor::Property::LINE_SPACING, 20);
 
   //add 20 for each line  20 * 3
   DALI_TEST_EQUALS(sizeBefore.height + 60.0f, textEditor.GetNaturalSize().height, TEST_LOCATION);
@@ -4327,25 +4539,64 @@ int UtcDaliTextEditorLineSpacing(void)
   END_TEST;
 }
 
+int UtcDaliTextEditorSelectionWithLineSpacing(void)
+{
+  //Only for test coverage
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliTextEditorSelectionWithLineSpacing ");
+
+  TextEditor textEditor = TextEditor::New();
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.f));
+  application.GetScene().Add(textEditor);
+  application.SendNotification();
+  application.Render();
+
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Line #1\nLine #2\nLine #3");
+  textEditor.SetProperty(DevelTextEditor::Property::LINE_SPACING, -20);
+
+  application.SendNotification();
+  application.Render();
+
+  DevelTextEditor::SelectWholeText(textEditor);
+
+  application.SendNotification();
+  application.Render();
+
+  DevelTextEditor::SelectNone(textEditor);
+  textEditor.SetProperty(DevelTextEditor::Property::LINE_SPACING, 20);
+
+  application.SendNotification();
+  application.Render();
+
+  DevelTextEditor::SelectWholeText(textEditor);
+
+  application.SendNotification();
+  application.Render();
+
+  DALI_TEST_EQUALS(textEditor.GetProperty<float>(DevelTextEditor::Property::LINE_SPACING), 20.0f, TEST_LOCATION);
+
+  END_TEST;
+}
+
 int UtcDaliTextEditorMinLineSize(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliTextEditorMinLineSize ");
 
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.f ) );
-  application.GetScene().Add( textEditor );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.f));
+  application.GetScene().Add(textEditor);
   application.SendNotification();
   application.Render();
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Line #1\nLine #2\nLine #3" );
-  textEditor.SetProperty( DevelTextEditor::Property::MIN_LINE_SIZE, 0 );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Line #1\nLine #2\nLine #3");
+  textEditor.SetProperty(DevelTextEditor::Property::MIN_LINE_SIZE, 0);
 
   Vector3 sizeBefore = textEditor.GetNaturalSize();
 
-  textEditor.SetProperty( DevelTextEditor::Property::MIN_LINE_SIZE, 60 );
+  textEditor.SetProperty(DevelTextEditor::Property::MIN_LINE_SIZE, 60);
 
-  DALI_TEST_NOT_EQUALS( sizeBefore, textEditor.GetNaturalSize(), 0.0f, TEST_LOCATION);
+  DALI_TEST_NOT_EQUALS(sizeBefore, textEditor.GetNaturalSize(), 0.0f, TEST_LOCATION);
 
   //60 * 3 lines
   DALI_TEST_EQUALS(180.0f, textEditor.GetNaturalSize().height, TEST_LOCATION);
@@ -4359,24 +4610,24 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
   tet_infoline(" utcDaliTextEditorCursorPositionChangedSignal");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // connect to the selection changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   DevelTextEditor::CursorPositionChangedSignal(editor).Connect(&TestCursorPositionChangedCallback);
   bool cursorPositionChangedSignal = false;
-  editor.ConnectSignal( testTracker, "cursorPositionChanged",   CallbackFunctor(&cursorPositionChangedSignal) );
+  editor.ConnectSignal(testTracker, "cursorPositionChanged", CallbackFunctor(&cursorPositionChangedSignal));
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworld\nHello world" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworld\nHello world");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
@@ -4385,7 +4636,7 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
   editor.SetKeyInputFocus();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -4397,7 +4648,7 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
   gCursorPositionChangedCallbackCalled = false;
 
   // Move to left.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4409,7 +4660,7 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
   gCursorPositionChangedCallbackCalled = false;
 
   // Insert C
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4421,7 +4672,7 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
   gCursorPositionChangedCallbackCalled = false;
 
   //delete one character
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4432,7 +4683,7 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
 
   gCursorPositionChangedCallbackCalled = false;
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello" );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello");
 
   // Render and notify
   application.SendNotification();
@@ -4443,7 +4694,7 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
 
   gCursorPositionChangedCallbackCalled = false;
 
-  editor.SetProperty( DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
+  editor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4455,48 +4706,300 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
   END_TEST;
 }
 
-int utcDaliTextEditorSelectionClearedSignal(void)
+int utcDaliTextEditorGeometryEllipsisStart(void)
 {
   ToolkitTestApplication application;
-  tet_infoline(" utcDaliTextEditorSelectionClearedSignal");
+  tet_infoline(" utcDaliTextEditorGeometryEllipsisStart");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
-  // connect to the selection changed signal.
-  ConnectionTracker* testTracker = new ConnectionTracker();
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 7.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_SCROLL_BAR, false);
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS, true);
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::START);
+  editor.SetProperty(TextEditor::Property::TEXT, "line1 \nline2\nline 3\nline4");
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  unsigned int expectedCount = 2;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 24;
+
+  Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextEditor::GetTextSize(editor, startIndex, endIndex);
+
+  DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
+  DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
+
+  Vector<Vector2> expectedSizes;
+  Vector<Vector2> expectedPositions;
+
+  expectedPositions.PushBack(Vector2(37, 0));
+  expectedSizes.PushBack(Vector2(20, 25));
+
+  expectedPositions.PushBack(Vector2(-1, 25));
+  expectedSizes.PushBack(Vector2(52, 25));
+
+  TestTextGeometryUtils::CheckGeometryResult(positionsList, sizeList, expectedPositions, expectedSizes);
+
+  END_TEST;
+}
+
+int utcDaliTextEditorGeometryEllipsisMiddle(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorGeometryEllipsisMiddle");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 7.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_SCROLL_BAR, false);
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS, true);
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::MIDDLE);
+  editor.SetProperty(TextEditor::Property::TEXT, "line1 \nline2\nline 3\nline4");
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  unsigned int expectedCount = 2;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 24;
+
+  Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextEditor::GetTextSize(editor, startIndex, endIndex);
+
+  DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
+  DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
+
+  Vector<Vector2> expectedSizes;
+  Vector<Vector2> expectedPositions;
+
+  expectedPositions.PushBack(Vector2(-1, 0));
+  expectedSizes.PushBack(Vector2(25, 25));
+
+  expectedPositions.PushBack(Vector2(-1, 25));
+  expectedSizes.PushBack(Vector2(52, 25));
+
+  TestTextGeometryUtils::CheckGeometryResult(positionsList, sizeList, expectedPositions, expectedSizes);
+
+  END_TEST;
+}
+
+int utcDaliTextEditorGeometryEllipsisEnd(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorGeometryEllipsisEnd");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 7.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(DevelTextEditor::Property::ENABLE_SCROLL_BAR, false);
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS, true);
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::END);
+  editor.SetProperty(TextEditor::Property::TEXT, "line1 \nline2\nline 3\nline4");
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  unsigned int expectedCount = 2;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 24;
+
+  Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextEditor::GetTextSize(editor, startIndex, endIndex);
+
+  DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
+  DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
+
+  Vector<Vector2> expectedSizes;
+  Vector<Vector2> expectedPositions;
+
+  expectedPositions.PushBack(Vector2(-1, 0));
+  expectedSizes.PushBack(Vector2(59, 25));
+
+  expectedPositions.PushBack(Vector2(-1, 25));
+  expectedSizes.PushBack(Vector2(25, 25));
+
+  TestTextGeometryUtils::CheckGeometryResult(positionsList, sizeList, expectedPositions, expectedSizes);
+
+  END_TEST;
+}
+
+int utcDaliTextEditorGeometryRTL(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorGeometryRTL");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 7.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::TEXT, "line1 \nline2\nline 3\nالاخيرالسطر");
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  unsigned int expectedCount = 4;
+  unsigned int startIndex    = 3;
+  unsigned int endIndex      = 24;
+
+  Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextEditor::GetTextSize(editor, startIndex, endIndex);
+
+  DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
+  DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
+
+  Vector<Vector2> expectedSizes;
+  Vector<Vector2> expectedPositions;
+
+  expectedPositions.PushBack(Vector2(24, 0));
+  expectedSizes.PushBack(Vector2(33, 25));
+
+  expectedPositions.PushBack(Vector2(-1, 25));
+  expectedSizes.PushBack(Vector2(52, 25));
+
+  expectedPositions.PushBack(Vector2(-1, 50));
+  expectedSizes.PushBack(Vector2(59, 25));
+
+  expectedPositions.PushBack(Vector2(61, 75));
+  expectedSizes.PushBack(Vector2(37, 25));
+
+  TestTextGeometryUtils::CheckGeometryResult(positionsList, sizeList, expectedPositions, expectedSizes);
+
+  END_TEST;
+}
+
+int utcDaliTextEditorGeometryGlyphMiddle(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorGeometryGlyphMiddle");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 7.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(150.f, 200.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::TEXT, "لا تحتوي على لا");
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  unsigned int expectedCount = 1;
+  unsigned int startIndex    = 1;
+  unsigned int endIndex      = 13;
+
+  Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextEditor::GetTextSize(editor, startIndex, endIndex);
+
+  DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
+  DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
+
+  Vector<Vector2> expectedSizes;
+  Vector<Vector2> expectedPositions;
+
+  expectedPositions.PushBack(Vector2(6, 0));
+  expectedSizes.PushBack(Vector2(124, 25));
+
+  TestTextGeometryUtils::CheckGeometryResult(positionsList, sizeList, expectedPositions, expectedSizes);
+
+  END_TEST;
+}
+
+int utcDaliTextEditorSelectionClearedSignal(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorSelectionClearedSignal");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  // connect to the selection changed signal.
+  ConnectionTracker* testTracker = new ConnectionTracker();
   DevelTextEditor::SelectionClearedSignal(editor).Connect(&TestSelectionClearedCallback);
   bool selectionClearedSignal = false;
-  editor.ConnectSignal( testTracker, "selectionCleared",   CallbackFunctor(&selectionClearedSignal) );
+  editor.ConnectSignal(testTracker, "selectionCleared", CallbackFunctor(&selectionClearedSignal));
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworld\nHello world" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworld\nHello world");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move to second line of the text & Select some text in the right of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) ); 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // remove selection
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::UP, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::UP, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4509,7 +5012,7 @@ int utcDaliTextEditorSelectionClearedSignal(void)
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -4518,11 +5021,11 @@ int utcDaliTextEditorSelectionClearedSignal(void)
   gSelectionClearedCallbackCalled = false;
 
   // Move to second line of the text & select.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   //remove selection
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4537,11 +5040,11 @@ int utcDaliTextEditorSelectionClearedSignal(void)
   application.Render();
 
   // Move to second line of the text & select.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // replace C with selected text
-  application.ProcessEvent( GenerateKey( "c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("c", "", "c", KEY_C_CODE, 0, 0, Integration::KeyEvent::DOWN, "c", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4555,13 +5058,13 @@ int utcDaliTextEditorSelectionClearedSignal(void)
   application.SendNotification();
   application.Render();
 
-  DevelTextEditor::SelectText( editor ,1, 3 );
+  DevelTextEditor::SelectText(editor, 1, 3);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  editor.SetProperty( DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
+  editor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4571,7 +5074,7 @@ int utcDaliTextEditorSelectionClearedSignal(void)
 
   gSelectionClearedCallbackCalled = false;
 
-  DevelTextEditor::SelectText( editor ,1, 3 );
+  DevelTextEditor::SelectText(editor, 1, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4589,52 +5092,165 @@ int utcDaliTextEditorSelectionClearedSignal(void)
   END_TEST;
 }
 
+int utcDaliTextEditorSelectionStartedSignal(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorSelectionStartedSignal");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  // connect to the selection changed signal.
+  ConnectionTracker* testTracker = new ConnectionTracker();
+  DevelTextEditor::SelectionStartedSignal(editor).Connect(&TestSelectionStartedCallback);
+  bool selectionStartedSignal = false;
+  editor.ConnectSignal(testTracker, "selectionStarted", CallbackFunctor(&selectionStartedSignal));
+
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworld\nHello world");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Tap on the text editor
+  TestGenerateTap(application, 3.0f, 25.0f);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Move to second line of the text & Select some text in the right of the current cursor position
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  DALI_TEST_CHECK(gSelectionStartedCallbackCalled);
+
+  // remove selection
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::UP, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  gSelectionStartedCallbackCalled = false;
+
+  DevelTextEditor::SelectText(editor, 1, 3);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  DALI_TEST_CHECK(gSelectionStartedCallbackCalled);
+
+  END_TEST;
+}
+
+int utcDaliTextEditorSelectionWithSecondaryCursor(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorSelectionWithSecondaryCursor");
+
+  // Checks if the actor is created.
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::TEXT, "اللغة العربية\nمرحبا بالجميع\nالسلام عليكم <span font-size='12' font-family='DejaVu Sans' >Hello world</span>");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 12.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(DevelTextEditor::Property::MIN_LINE_SIZE, 50.f);
+  editor.SetProperty(DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, false);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Tap on the text editor
+  TestGenerateTap(application, 3.0f, 25.0f);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  //Select the last Arabic word (RTL) & some the space before the English (LTR) letters.
+  DevelTextEditor::SelectText(editor, 35, 41); // This will activate the alternative cursor position and thus 'cursorInfo.isSecondaryCursor' will be true.
+
+  application.SendNotification();
+  application.Render();
+
+  std::string selectedText = editor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("عليكم ", selectedText, TEST_LOCATION);
+
+  END_TEST;
+}
+
 int utcDaliTextEditorSelectionChangedSignal(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextEditorSelectionChangedSignal");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // connect to the selection changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   DevelTextEditor::SelectionChangedSignal(editor).Connect(&TestSelectionChangedCallback);
   bool selectionChangedSignal = false;
-  editor.ConnectSignal( testTracker, "selectionChanged",   CallbackFunctor(&selectionChangedSignal) );
+  editor.ConnectSignal(testTracker, "selectionChanged", CallbackFunctor(&selectionChangedSignal));
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworld\nHello world" );
-  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
-  editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nworld\nHello world");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap on the text editor
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Move to second line of the text.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Select some text in the right of the current cursor position
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_SHIFT_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4645,7 +5261,7 @@ int utcDaliTextEditorSelectionChangedSignal(void)
 
   gSelectionChangedCallbackCalled = false;
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_RIGHT, KEY_SHIFT_MODIFIER, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4657,7 +5273,7 @@ int utcDaliTextEditorSelectionChangedSignal(void)
 
   gSelectionChangedCallbackCalled = false;
 
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::UP, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::UP, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -4674,7 +5290,7 @@ int utcDaliTextEditorSelectionChangedSignal(void)
   application.SendNotification();
   application.Render();
 
-  DevelTextEditor::SelectText( editor ,0, 5 );
+  DevelTextEditor::SelectText(editor, 0, 5);
 
   application.SendNotification();
   application.Render();
@@ -4684,7 +5300,7 @@ int utcDaliTextEditorSelectionChangedSignal(void)
 
   gSelectionChangedCallbackCalled = false;
 
-  editor.SetProperty( DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
+  editor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4720,4 +5336,787 @@ int utcDaliTextEditorSelectionChangedSignal(void)
   DALI_TEST_EQUALS(oldSelectionEnd, 23, TEST_LOCATION);
 
   END_TEST;
+}
+
+int UtcDaliToolkitTextEditorStrikethroughGeneration(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextEditorStrikethroughGeneration");
+
+  TextEditor textEditor = TextEditor::New();
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+
+  application.GetScene().Add(textEditor);
+  application.SendNotification();
+  application.Render();
+
+  Property::Map strikethroughMapSet;
+  Property::Map strikethroughMapGet;
+
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::RED);
+  strikethroughMapSet.Insert("height", 2.0f);
+
+  // Check the strikethrough property
+  textEditor.SetProperty(DevelTextEditor::Property::STRIKETHROUGH, strikethroughMapSet);
+  strikethroughMapGet = textEditor.GetProperty<Property::Map>(DevelTextEditor::Property::STRIKETHROUGH);
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test1");
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapGet, strikethroughMapSet), true, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  strikethroughMapSet.Clear();
+  strikethroughMapGet.Clear();
+
+  END_TEST;
+}
+
+int utcDaliTextEditorInsertCharacterAfterInitWithResizePolicyNaturalSize(void)
+{
+  //This is to test a crash when used Resize Policy equals USE_NATURAL_SIZE
+  //DaliException on vector: "Iterator not inside vector"
+
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorInsertCharacterAfterInitWithResizePolicyNaturalSize");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  //Set multilines text
+  editor.SetProperty(Dali::Toolkit::TextEditor::Property::TEXT, "Hello \n World");
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+
+  //Set ResizePolicy to NaturalSize
+  editor.SetProperty(Dali::Actor::Property::WIDTH_RESIZE_POLICY, ResizePolicy::USE_NATURAL_SIZE);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Create a tap event to touch the text editor.
+  TestGenerateTap(application, 5.0f, 5.0f);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Set currsor and add character (in first line)
+  editor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 5);
+  application.ProcessEvent(GenerateKey("d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::UP, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  //Check the changed text and cursor position
+  DALI_TEST_EQUALS(editor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "Hellod \n World", TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 6, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int utcDaliTextEditorRemoveCharacterAfterInitWithResizePolicyNaturalSize(void)
+{
+  //This is to test a crash when used Resize Policy equals USE_NATURAL_SIZE
+  //DaliException on vector: "Iterator not inside vector"
+
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorRemoveCharacterAfterInitWithResizePolicyNaturalSize");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  //Set multilines text
+  editor.SetProperty(Dali::Toolkit::TextEditor::Property::TEXT, "Hello \n World");
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+
+  //Set ResizePolicy to NaturalSize
+  editor.SetProperty(Dali::Actor::Property::WIDTH_RESIZE_POLICY, ResizePolicy::USE_NATURAL_SIZE);
+
+  // Set currsor
+  editor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 5);
+  application.SendNotification();
+  application.Render();
+
+  // Set focus and remove character
+  editor.SetKeyInputFocus();
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  //Check the changed text and cursor position
+  DALI_TEST_EQUALS(editor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "Hell \n World", TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 4, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int utcDaliTextEditorCutSelectedTextAfterInitWithResizePolicyNaturalSize(void)
+{
+  //This is to test a crash when used Resize Policy equals USE_NATURAL_SIZE
+  //DaliException on vector: "Iterator not inside vector"
+
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorCutSelectedTextAfterInitWithResizePolicyNaturalSize");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  //Set multilines text
+  editor.SetProperty(Dali::Toolkit::TextEditor::Property::TEXT, "Hello \n World");
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+
+  //Set ResizePolicy to NaturalSize
+  editor.SetProperty(Dali::Actor::Property::WIDTH_RESIZE_POLICY, ResizePolicy::USE_NATURAL_SIZE);
+
+  //Select text at initialization (before the first render)
+  DevelTextEditor::SelectText(editor, 3, 5);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  //Cut text
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_CONTROL_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("x", "x", "x", KEY_X_CODE, KEY_CONTROL_MODIFIER, 0, Integration::KeyEvent::DOWN, "x", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  //Check the changed text and cursor position
+  DALI_TEST_EQUALS(editor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "Hel \n World", TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 3, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int utcDaliTextEditorDoubleEnterAfterInitWithResizePolicyNaturalSize(void)
+{
+  //This is to test a crash when used Resize Policy equals USE_NATURAL_SIZE
+  //DaliException on vector: "Iterator not inside vector"
+
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorDoubleEnterAfterInitWithResizePolicyNaturalSize");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  //Set multilines text
+  editor.SetProperty(Dali::Toolkit::TextEditor::Property::TEXT, "Hello \n World");
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+
+  //Set ResizePolicy to NaturalSize
+  editor.SetProperty(Dali::Actor::Property::WIDTH_RESIZE_POLICY, ResizePolicy::USE_NATURAL_SIZE);
+
+  // Set currsor
+  editor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 5);
+  application.SendNotification();
+  application.Render();
+
+  // Set focus and double enter (new line)
+  editor.SetKeyInputFocus();
+  application.ProcessEvent(GenerateKey("Enter", "", "\n", 13, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("Enter", "", "\n", 13, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  //Check the changed text and cursor position
+  DALI_TEST_EQUALS(editor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "Hello\n\n \n World", TEST_LOCATION);
+  DALI_TEST_EQUALS(editor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 7, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextEditorUnderlineTypesGeneration1(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextEditorUnderlineTypesGeneration1");
+  TextEditor textEditor = TextEditor::New();
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Test");
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+
+  application.GetScene().Add(textEditor);
+  application.SendNotification();
+  application.Render();
+
+  Property::Map underlineMapSet;
+  Property::Map underlineMapGet;
+
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::RED);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::SOLID);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+
+  // Check the underline property
+  textEditor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = textEditor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DASHED);
+  underlineMapSet.Insert("dashWidth", 4);
+  underlineMapSet.Insert("dashGap", 2);
+
+  // Check the dashed underline property
+  textEditor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = textEditor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 4);
+  underlineMapSet.Insert("dashGap", 2);
+
+  // Check the dashed underline property
+  textEditor.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = textEditor.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextEditorUnderlineTypesGeneration2(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextEditorUnderlineTypesGeneration2");
+
+  TextEditor textEditor1 = TextEditor::New();
+  textEditor1.SetProperty(TextEditor::Property::TEXT, "Test");
+  textEditor1.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textEditor1.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  textEditor1.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+
+  Property::Map underlineMapSet1;
+  Property::Map underlineMapGet1;
+
+  underlineMapSet1.Insert("enable", true);
+  underlineMapSet1.Insert("color", Color::RED);
+  underlineMapSet1.Insert("height", 1);
+  underlineMapSet1.Insert("type", Text::Underline::SOLID);
+  underlineMapSet1.Insert("dashWidth", 2);
+  underlineMapSet1.Insert("dashGap", 1);
+
+  // Check the underline property
+  textEditor1.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet1);
+
+  underlineMapGet1 = textEditor1.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet1.Count(), underlineMapSet1.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet1, underlineMapSet1), true, TEST_LOCATION);
+
+  application.GetScene().Add(textEditor1);
+  application.SendNotification();
+  application.Render();
+
+  TextEditor textEditor2 = TextEditor::New();
+  textEditor2.SetProperty(TextEditor::Property::TEXT, "Test");
+  textEditor2.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textEditor2.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  textEditor2.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+
+  Property::Map underlineMapSet2;
+  Property::Map underlineMapGet2;
+
+  underlineMapSet2.Insert("enable", true);
+  underlineMapSet2.Insert("color", Color::BLUE);
+  underlineMapSet2.Insert("height", 1);
+  underlineMapSet2.Insert("type", Text::Underline::DASHED);
+  underlineMapSet2.Insert("dashWidth", 4);
+  underlineMapSet2.Insert("dashGap", 2);
+
+  // Check the dashed underline property
+  textEditor2.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet2);
+
+  underlineMapGet2 = textEditor2.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet2.Count(), underlineMapSet2.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet2, underlineMapSet2), true, TEST_LOCATION);
+
+  application.GetScene().Add(textEditor2);
+  application.SendNotification();
+  application.Render();
+
+  TextEditor textEditor3 = TextEditor::New();
+  textEditor3.SetProperty(TextEditor::Property::TEXT, "Test");
+  textEditor3.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textEditor3.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  textEditor3.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+
+  Property::Map underlineMapSet3;
+  Property::Map underlineMapGet3;
+
+  underlineMapSet3.Insert("enable", true);
+  underlineMapSet3.Insert("color", Color::BLUE);
+  underlineMapSet3.Insert("height", 1);
+  underlineMapSet3.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet3.Insert("dashWidth", 4);
+  underlineMapSet3.Insert("dashGap", 2);
+
+  // Check the dashed underline property
+  textEditor3.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet3);
+
+  underlineMapGet3 = textEditor3.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet3.Count(), underlineMapSet3.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet3, underlineMapSet3), true, TEST_LOCATION);
+
+  application.GetScene().Add(textEditor3);
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextEditorUnderlineTypesGeneration3(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextEditorUnderlineTypesGeneration3");
+
+  TextEditor textEditor1 = TextEditor::New();
+  textEditor1.SetProperty(TextEditor::Property::TEXT, "Test1");
+  textEditor1.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textEditor1.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  textEditor1.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans");
+
+  Property::Map underlineMapSet1;
+  Property::Map underlineMapGet1;
+
+  underlineMapSet1.Insert("enable", true);
+  underlineMapSet1.Insert("color", Color::RED);
+  underlineMapSet1.Insert("height", 1);
+  underlineMapSet1.Insert("type", Text::Underline::SOLID);
+  underlineMapSet1.Insert("dashWidth", 2);
+  underlineMapSet1.Insert("dashGap", 1);
+
+  // Check the underline property
+  textEditor1.SetProperty(TextEditor::Property::UNDERLINE, underlineMapSet1);
+  //textEditor1.SetProperty( TextEditor::Property::TEXT, "Test2" );
+
+  underlineMapGet1 = textEditor1.GetProperty<Property::Map>(TextEditor::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet1.Count(), underlineMapSet1.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet1, underlineMapSet1), true, TEST_LOCATION);
+
+  application.GetScene().Add(textEditor1);
+
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextEditorMarkupRelativeLineHeight(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextEditorMarkupRelativeLineHeight");
+
+  TextEditor editor = TextEditor::New();
+  editor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 300.f));
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  editor.SetProperty(TextEditor::Property::TEXT, "line 1\nline 2\nline 3\nline 4\nline 5");
+  editor.SetProperty(DevelTextEditor::Property::RELATIVE_LINE_SIZE, 1.0f);
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS, false);
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+
+  TextEditor editorSingleLineParagraph = TextEditor::New();
+  editorSingleLineParagraph.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 300.f));
+  editorSingleLineParagraph.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  editorSingleLineParagraph.SetProperty(TextEditor::Property::TEXT, "<p>line 1</p><p rel-line-height=0.5>line 2</p>line 3<p rel-line-height=3>line 4</p>line 5");
+  editorSingleLineParagraph.SetProperty(DevelTextEditor::Property::RELATIVE_LINE_SIZE, 1.0f);
+  editorSingleLineParagraph.SetProperty(DevelTextEditor::Property::ELLIPSIS, false);
+  editorSingleLineParagraph.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+
+  TextEditor editorMultiLineParagraph = TextEditor::New();
+  editorMultiLineParagraph.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 300.f));
+  editorMultiLineParagraph.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  editorMultiLineParagraph.SetProperty(TextEditor::Property::TEXT, "<p>line 1</p><p rel-line-height=0.5>line\n2</p>line 3<p rel-line-height=3>line\n4</p>line 5");
+  editorMultiLineParagraph.SetProperty(DevelTextEditor::Property::RELATIVE_LINE_SIZE, 1.0f);
+  editorMultiLineParagraph.SetProperty(DevelTextEditor::Property::ELLIPSIS, false);
+  editorMultiLineParagraph.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+
+  application.GetScene().Add(editor);
+  application.GetScene().Add(editorSingleLineParagraph);
+  application.GetScene().Add(editorMultiLineParagraph);
+  application.SendNotification();
+  application.Render();
+
+  Vector3 naturalSize               = editor.GetNaturalSize();
+  Vector3 relativeSingleNaturalSize = editorSingleLineParagraph.GetNaturalSize();
+  Vector3 relativeMultiNaturalSize  = editorMultiLineParagraph.GetNaturalSize();
+
+  float lineSize = naturalSize.y / 5.0f; //total size/number of lines
+
+  //no effect of relative line size for paragraph with single line
+  DALI_TEST_EQUALS(naturalSize.y, relativeSingleNaturalSize.y, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+  DALI_TEST_EQUALS(lineSize*8.5f, relativeMultiNaturalSize.y, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextEditorRelativeLineHeight(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextEditorRelativeLineHeight");
+
+  TextEditor editor = TextEditor::New();
+  editor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 300.f));
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10);
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello\nWorld");
+
+  application.GetScene().Add(editor);
+  application.SendNotification();
+  application.Render();
+
+  Vector3 naturalSize = editor.GetNaturalSize();
+
+  editor.SetProperty(DevelTextEditor::Property::RELATIVE_LINE_SIZE, 0.5f);
+
+  application.SendNotification();
+  application.Render();
+
+  Vector3 relativeNaturalSize = editor.GetNaturalSize();
+
+  DALI_TEST_EQUALS(naturalSize.y, relativeNaturalSize.y, TEST_LOCATION);
+
+  editor.SetProperty(DevelTextEditor::Property::RELATIVE_LINE_SIZE, 2.0f);
+
+  application.SendNotification();
+  application.Render();
+
+  relativeNaturalSize = editor.GetNaturalSize();
+
+  DALI_TEST_EQUALS(naturalSize.y * 2, relativeNaturalSize.y, TEST_LOCATION);
+  END_TEST;
+}
+
+int UtcDaliTextEditorCharacterSpacing(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliTextEditorCharacterSpacing ");
+
+  TextEditor textEditor = TextEditor::New();
+
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(150.0f, 300.f));
+
+  application.GetScene().Add(textEditor);
+  application.SendNotification();
+  application.Render();
+
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hi Experiment");
+  textEditor.SetProperty(DevelTextEditor::Property::CHARACTER_SPACING, 10.f);
+  DALI_TEST_EQUALS(textEditor.GetProperty<float>(DevelTextEditor::Property::CHARACTER_SPACING), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliTextEditorTextSizeNegativeLineSpacing(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline("UtcDaliTextEditorTextSizeNegativeLineSpacing");
+
+  TextEditor editor = TextEditor::New();
+
+  float lineSpacing = -20.f;
+
+  editor.SetProperty(Actor::Property::SIZE, Vector2(450.0f, 300.f));
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(DevelTextEditor::Property::LINE_SPACING, lineSpacing);
+  editor.SetProperty(TextEditor::Property::TEXT, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
+
+  application.GetScene().Add(editor);
+  application.SendNotification();
+  application.Render();
+
+  Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, 0, 123);
+  Vector<Vector2> sizeList      = DevelTextEditor::GetTextSize(editor, 0, 123);
+
+  Vector2 lastLinePos  = positionsList[positionsList.Size() - 1];
+  Vector2 lastLineSize = sizeList[sizeList.Size() - 1];
+
+  DALI_TEST_EQUALS(sizeList[0].y * (sizeList.Size() - 1), lastLinePos.y, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  DALI_TEST_EQUALS(sizeList[0].y - lineSpacing, lastLineSize.y, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliTextEditorLineSpacingKeyArrowDown(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline("UtcDaliTextEditorLineSpacingKeyArrowDown");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  application.GetScene().Add(editor);
+
+  std::string cutText    = "";
+  std::string copiedText = "";
+
+  editor.SetProperty(TextEditor::Property::TEXT, "l1\nl2\nl3\n4");
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.f);
+  editor.SetProperty(Actor::Property::SIZE, Vector2(300.f, 200.f));
+  editor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editor.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::LINE_SPACING, -15);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Tap on the text editor
+  TestGenerateTap(application, 1.0f, 1.0f);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Move to second line of the text.
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  DALI_TEST_EQUALS(editor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 3, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliTextEditorNegativeLineSpacingWithEllipsis(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline("UtcDaliTextEditorNegativeLineSpacingWithEllipsis");
+
+  TextEditor editor = TextEditor::New();
+
+  float lineSpacing = -20.f;
+
+  editor.SetProperty(Actor::Property::SIZE, Vector2(480.0f, 100.f));
+  editor.SetProperty(TextEditor::Property::POINT_SIZE, 11.0f);
+  editor.SetProperty(DevelTextEditor::Property::LINE_SPACING, lineSpacing);
+  editor.SetProperty(TextEditor::Property::TEXT, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
+  editor.SetProperty(DevelTextEditor::Property::ELLIPSIS, true);
+
+  application.GetScene().Add(editor);
+  application.SendNotification();
+  application.Render();
+
+  Vector<Vector2> sizeList = DevelTextEditor::GetTextSize(editor, 0, 123);
+
+  int lineCount = sizeList.Size();
+  DALI_TEST_EQUALS(4, lineCount, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTexteditorParagraphTag(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTexteditorParagraphTag");
+  TextEditor editorNewlineSeparator = TextEditor::New();
+  TextEditor editorParagraphTag     = TextEditor::New();
+  DALI_TEST_CHECK(editorNewlineSeparator);
+  DALI_TEST_CHECK(editorParagraphTag);
+
+  application.GetScene().Add(editorNewlineSeparator);
+  application.GetScene().Add(editorParagraphTag);
+
+  //Same utterance uses new-line to split paragraphs should give similar results for paragraph tag.
+  editorNewlineSeparator.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editorNewlineSeparator.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editorNewlineSeparator.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editorNewlineSeparator.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editorNewlineSeparator.SetProperty(TextEditor::Property::TEXT, "test paragraph tag \ntest paragraph tag \ntest paragraph tag ");
+
+  editorParagraphTag.SetProperty(TextEditor::Property::ENABLE_MARKUP, true);
+  editorParagraphTag.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  editorParagraphTag.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  editorParagraphTag.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  editorParagraphTag.SetProperty(TextEditor::Property::TEXT, "test paragraph tag <p>test paragraph tag </p>test paragraph tag ");
+
+  application.SendNotification();
+  application.Render();
+
+  Vector3 textNaturalSizeNewlineSeparator = editorNewlineSeparator.GetNaturalSize();
+  Vector3 textNaturalSizeParagraphTag     = editorParagraphTag.GetNaturalSize();
+
+  DALI_TEST_EQUALS(textNaturalSizeNewlineSeparator, textNaturalSizeParagraphTag, TEST_LOCATION);
+
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+//Handle Emoji clustering for cursor handling
+int utcDaliTextEditorClusteredEmojiDeletionBackSpaceKey(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorClusteredEmojiDeletionBackSpaceKey ");
+  TextEditor textEditor = TextEditor::New();
+  DALI_TEST_CHECK(textEditor);
+
+  application.GetScene().Add(textEditor);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  textEditor.SetProperty(TextEditor::Property::TEXT, "ABC&#x1F468;&#x200D;&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;XY");
+  textEditor.SetProperty(Dali::Toolkit::TextEditor::Property::ENABLE_MARKUP, true);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Set currsor
+  textEditor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 10);
+  application.SendNotification();
+  application.Render();
+
+  // Set focus and remove Emoji
+  textEditor.SetKeyInputFocus();
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  //Check the changed text and cursor position
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "ABCXY", TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 3, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int utcDaliTextEditorClusteredEmojiDeletionDeleteKey(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorClusteredEmojiDeletionDeleteKey ");
+  TextEditor textEditor = TextEditor::New();
+  DALI_TEST_CHECK(textEditor);
+
+  application.GetScene().Add(textEditor);
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+  textEditor.SetProperty(TextEditor::Property::TEXT, "ABC&#x1F468;&#x200D;&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;XY");
+  textEditor.SetProperty(Dali::Toolkit::TextEditor::Property::ENABLE_MARKUP, true);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Set currsor
+  textEditor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 3);
+  application.SendNotification();
+  application.Render();
+
+  // Set focus and remove Emoji
+  textEditor.SetKeyInputFocus();
+  application.ProcessEvent(GenerateKey("", "", "", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+
+  //Check the changed text and cursor position
+  DALI_TEST_EQUALS(textEditor.GetProperty(TextEditor::Property::TEXT).Get<std::string>(), "ABCXY", TEST_LOCATION);
+  DALI_TEST_EQUALS(textEditor.GetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 3, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
 }
\ No newline at end of file