[dali_2.1.5] Merge branch 'devel/master' 72/269472/1
authorDavid Steele <david.steele@samsung.com>
Fri, 14 Jan 2022 15:41:00 +0000 (15:41 +0000)
committerDavid Steele <david.steele@samsung.com>
Fri, 14 Jan 2022 15:41:00 +0000 (15:41 +0000)
Change-Id: I18c31565b9194da11cdaa32bd2a4bb861a58e906

65 files changed:
automated-tests/src/dali-toolkit-internal/utc-Dali-DebugRendering.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-TextEditor-internal.cpp [changed mode: 0755->0644]
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp
automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp
automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp
dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h
dali-toolkit/devel-api/controls/text-controls/text-field-devel.h
dali-toolkit/devel-api/controls/text-controls/text-label-devel.h
dali-toolkit/devel-api/controls/text-controls/text-style-properties-devel.h
dali-toolkit/devel-api/controls/web-view/web-view.cpp
dali-toolkit/devel-api/controls/web-view/web-view.h
dali-toolkit/devel-api/visuals/text-visual-properties-devel.h
dali-toolkit/internal/controls/image-view/image-view-impl.cpp
dali-toolkit/internal/controls/image-view/image-view-impl.h
dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
dali-toolkit/internal/controls/text-controls/text-editor-property-handler.cpp
dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
dali-toolkit/internal/controls/text-controls/text-field-property-handler.cpp
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/controls/web-view/web-view-impl.cpp
dali-toolkit/internal/controls/web-view/web-view-impl.h
dali-toolkit/internal/graphics/shaders/text-visual-multi-color-text-with-style-shader.frag
dali-toolkit/internal/graphics/shaders/text-visual-single-color-text-with-style-and-emoji-shader.frag
dali-toolkit/internal/graphics/shaders/text-visual-single-color-text-with-style-shader.frag
dali-toolkit/internal/text/input-style.h
dali-toolkit/internal/text/markup-processor-helper-functions.cpp
dali-toolkit/internal/text/markup-processor-helper-functions.h
dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
dali-toolkit/internal/text/rendering/text-typesetter.cpp
dali-toolkit/internal/text/rendering/text-typesetter.h
dali-toolkit/internal/text/rendering/view-model.cpp
dali-toolkit/internal/text/rendering/view-model.h
dali-toolkit/internal/text/text-controller-impl-model-updater.cpp
dali-toolkit/internal/text/text-controller-impl.cpp
dali-toolkit/internal/text/text-controller-impl.h
dali-toolkit/internal/text/text-controller-input-font-handler.cpp
dali-toolkit/internal/text/text-controller-text-updater.cpp
dali-toolkit/internal/text/text-controller.cpp
dali-toolkit/internal/text/text-controller.h
dali-toolkit/internal/text/text-effects-style.cpp
dali-toolkit/internal/text/text-effects-style.h
dali-toolkit/internal/text/text-enumerations-impl.cpp
dali-toolkit/internal/text/text-enumerations-impl.h
dali-toolkit/internal/text/text-model-interface.h
dali-toolkit/internal/text/text-model.cpp
dali-toolkit/internal/text/text-model.h
dali-toolkit/internal/text/text-view-interface.h
dali-toolkit/internal/text/text-view.cpp
dali-toolkit/internal/text/text-view.h
dali-toolkit/internal/text/visual-model-impl.cpp
dali-toolkit/internal/text/visual-model-impl.h
dali-toolkit/internal/visuals/text/text-visual.cpp
dali-toolkit/internal/visuals/text/text-visual.h
dali-toolkit/internal/visuals/visual-string-constants.cpp
dali-toolkit/internal/visuals/visual-string-constants.h
dali-toolkit/public-api/controls/text-controls/text-editor.h
dali-toolkit/public-api/controls/text-controls/text-field.h
dali-toolkit/public-api/controls/text-controls/text-label.h
dali-toolkit/public-api/dali-toolkit-version.cpp
dali-toolkit/public-api/text/text-enumerations.h
dali-toolkit/public-api/visuals/text-visual-properties.h
packaging/dali-toolkit.spec

index 2887613..9b733f2 100755 (executable)
@@ -292,16 +292,32 @@ int UtcDaliDebugRenderingGetVisual3(void)
 
   // Test that image view with empty property map don't make visual even DebugRendering is enabled.
   map.Clear();
-  ImageView imageView = ImageView::New();
-  imageView.SetProperty(Control::Property::BACKGROUND, map);
-  imageView.SetProperty(ImageView::Property::IMAGE, map);
-
-  application.GetScene().Add(imageView);
+  ImageView imageView1 = ImageView::New();
+  imageView1.SetProperty(Control::Property::BACKGROUND, map);
+  imageView1.SetProperty(ImageView::Property::IMAGE, map);
+
+  // Test that image view with empty property value don't make visual even DebugRendering is enabled.
+  Property::Value emptyValue;
+  ImageView imageView2 = ImageView::New();
+  imageView2.SetProperty(Control::Property::BACKGROUND, emptyValue);
+  imageView2.SetProperty(ImageView::Property::IMAGE, emptyValue);
+
+  // Test that image view with invalid property value don't make visual even DebugRendering is enabled.
+  Property::Value invalidValue(static_cast<int>(3));
+  ImageView imageView3 = ImageView::New();
+  imageView3.SetProperty(Control::Property::BACKGROUND, invalidValue);
+  imageView3.SetProperty(ImageView::Property::IMAGE, invalidValue);
+
+  application.GetScene().Add(imageView1);
+  application.GetScene().Add(imageView2);
+  application.GetScene().Add(imageView3);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( imageView.GetRendererCount(), 0u, TEST_LOCATION );
+  DALI_TEST_EQUALS( imageView1.GetRendererCount(), 0u, TEST_LOCATION );
+  DALI_TEST_EQUALS( imageView2.GetRendererCount(), 0u, TEST_LOCATION );
+  DALI_TEST_EQUALS( imageView3.GetRendererCount(), 0u, TEST_LOCATION );
 
   EnvironmentVariable::SetTestingEnvironmentVariable(false);
   END_TEST;
@@ -404,4 +420,4 @@ int UtcDaliDebugRenderingRenderText(void)
   }
 
   END_TEST;
-}
\ No newline at end of file
+}
old mode 100755 (executable)
new mode 100644 (file)
index 0b18d11..e588998
@@ -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 <iostream>
 
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
 
-#include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h>
 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
-#include <dali-toolkit/internal/text/text-controller.h>
+#include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h>
 #include <dali-toolkit/internal/text/text-controller-impl.h>
+#include <dali-toolkit/internal/text/text-controller.h>
 
 using namespace Dali;
 using namespace Toolkit;
@@ -33,20 +33,20 @@ using namespace Text;
 int UtcDaliTextEditorSelectText(void)
 {
   ToolkitTestApplication application;
-  tet_infoline( "UtcDaliTextEditorSelectText" );
+  tet_infoline("UtcDaliTextEditorSelectText");
 
   // Create a text editor
   TextEditor textEditor = TextEditor::New();
-  textEditor.SetProperty( Actor::Property::SIZE, Vector2( 400.f, 60.f ) );
-  textEditor.SetProperty( TextEditor::Property::TEXT, "Hello World" );
+  textEditor.SetProperty(Actor::Property::SIZE, Vector2(400.f, 60.f));
+  textEditor.SetProperty(TextEditor::Property::TEXT, "Hello World");
 
   // Add the text editor to the stage
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
-  Toolkit::Internal::TextEditor& textEditorImpl = GetImpl( textEditor );
+  Toolkit::Internal::TextEditor& textEditorImpl = GetImpl(textEditor);
 
   application.SendNotification();
   application.Render();
@@ -58,7 +58,7 @@ int UtcDaliTextEditorSelectText(void)
   application.Render();
 
   std::string selectedText = textEditorImpl.GetSelectedText();
-  DALI_TEST_CHECK( selectedText == "Hello World" );
+  DALI_TEST_CHECK(selectedText == "Hello World");
 
   // Select None
   textEditorImpl.SelectNone();
@@ -67,7 +67,7 @@ int UtcDaliTextEditorSelectText(void)
   application.Render();
 
   selectedText = textEditorImpl.GetSelectedText();
-  DALI_TEST_CHECK( selectedText == "" );
+  DALI_TEST_CHECK(selectedText == "");
 
   END_TEST;
 }
@@ -79,33 +79,33 @@ int UtcDaliTextEditorMarkupUnderline(void)
 
   TextEditor textEditor = TextEditor::New();
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
-  textEditor.SetProperty( TextEditor::Property::TEXT, "<u>ABC</u>EF<u>GH</u>" );
-  textEditor.SetProperty( TextEditor ::Property::ENABLE_MARKUP,  true );
+  textEditor.SetProperty(TextEditor::Property::TEXT, "<u>ABC</u>EF<u>GH</u>");
+  textEditor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true);
 
   application.SendNotification();
   application.Render();
 
   uint32_t expectedNumberOfUnderlinedGlyphs = 5u;
 
-  Toolkit::Internal::TextEditor& textEditorImpl = GetImpl( textEditor );
-  const Text::Length numberOfUnderlineRuns = textEditorImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns();
+  Toolkit::Internal::TextEditor& textEditorImpl        = GetImpl(textEditor);
+  const Text::Length             numberOfUnderlineRuns = textEditorImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns();
 
-  DALI_TEST_EQUALS( numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION );
+  DALI_TEST_EQUALS(numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION);
 
   Vector<GlyphRun> underlineRuns;
   underlineRuns.Resize(numberOfUnderlineRuns);
   textEditorImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
 
   //ABC are underlined
-  DALI_TEST_EQUALS( underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION);
-  DALI_TEST_EQUALS( underlineRuns[1u].glyphIndex, 1u, TEST_LOCATION);
-  DALI_TEST_EQUALS( underlineRuns[2u].glyphIndex, 2u, TEST_LOCATION);
+  DALI_TEST_EQUALS(underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION);
+  DALI_TEST_EQUALS(underlineRuns[1u].glyphIndex, 1u, TEST_LOCATION);
+  DALI_TEST_EQUALS(underlineRuns[2u].glyphIndex, 2u, TEST_LOCATION);
 
   //GH are underlined
-  DALI_TEST_EQUALS( underlineRuns[3u].glyphIndex, 5u, TEST_LOCATION);
-  DALI_TEST_EQUALS( underlineRuns[4u].glyphIndex, 6u, TEST_LOCATION);
+  DALI_TEST_EQUALS(underlineRuns[3u].glyphIndex, 5u, TEST_LOCATION);
+  DALI_TEST_EQUALS(underlineRuns[4u].glyphIndex, 6u, TEST_LOCATION);
 
   END_TEST;
 }
@@ -118,27 +118,26 @@ int UtcDaliTextEditorFontPointSizeLargerThanAtlas(void)
   // 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");
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
   //Check if Glyph is added to AtlasGlyphManger or not
   int countAtlas = AtlasGlyphManager::Get().GetMetrics().mAtlasMetrics.mAtlasCount;
-  DALI_TEST_EQUALS( countAtlas, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS(countAtlas, 1, TEST_LOCATION);
 
   END_TEST;
 }
 
-
 int UtcDaliTextEditorFontPointSizeLargerThanAtlasPlaceholderCase(void)
 {
   ToolkitTestApplication application;
@@ -146,25 +145,25 @@ int UtcDaliTextEditorFontPointSizeLargerThanAtlasPlaceholderCase(void)
 
   //Set Map of placeholder: text, font-family and point-size
   Property::Map placeholderMapSet;
-  placeholderMapSet["text"] = "A";
+  placeholderMapSet["text"]       = "A";
   placeholderMapSet["fontFamily"] = "DejaVu Sans";
-  placeholderMapSet["pixelSize"] = 1000.0f;
+  placeholderMapSet["pixelSize"]  = 1000.0f;
 
   // 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 placeholder
-  textEditor.SetProperty( TextEditor::Property::PLACEHOLDER, placeholderMapSet) ;
+  textEditor.SetProperty(TextEditor::Property::PLACEHOLDER, placeholderMapSet);
 
-  application.GetScene().Add( textEditor );
+  application.GetScene().Add(textEditor);
 
   application.SendNotification();
   application.Render();
 
   //Check if Glyph is added to AtlasGlyphManger or not
   int countAtlas = AtlasGlyphManager::Get().GetMetrics().mAtlasMetrics.mAtlasCount;
-  DALI_TEST_EQUALS( countAtlas, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS(countAtlas, 1, TEST_LOCATION);
 
   END_TEST;
 }
@@ -175,27 +174,27 @@ int UtcDaliTextEditorBackgroundTag(void)
   tet_infoline("UtcDaliTextEditorBackgroundTag\n");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  editor.SetProperty( TextEditor ::Property::ENABLE_MARKUP,  true );
-  editor.SetProperty( TextEditor::Property::TEXT, "H<background color='red'>e</background> Worl<background color='yellow'>d</background>" );
-  application.GetScene().Add( editor );
+  editor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::TEXT, "H<background color='red'>e</background> Worl<background color='yellow'>d</background>");
+  application.GetScene().Add(editor);
   application.SendNotification();
   application.Render();
 
-  Toolkit::Internal::TextEditor& editorImpl = GetImpl( editor );
-  const ColorIndex* const backgroundColorIndicesBuffer = editorImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices();
+  Toolkit::Internal::TextEditor& editorImpl                   = GetImpl(editor);
+  const ColorIndex* const        backgroundColorIndicesBuffer = editorImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices();
 
-  DALI_TEST_CHECK( backgroundColorIndicesBuffer );
+  DALI_TEST_CHECK(backgroundColorIndicesBuffer);
 
   //default color
-  DALI_TEST_EQUALS( backgroundColorIndicesBuffer[0], 0u, TEST_LOCATION);
+  DALI_TEST_EQUALS(backgroundColorIndicesBuffer[0], 0u, TEST_LOCATION);
 
   //red color
-  DALI_TEST_EQUALS( backgroundColorIndicesBuffer[1], 1u, TEST_LOCATION);
+  DALI_TEST_EQUALS(backgroundColorIndicesBuffer[1], 1u, TEST_LOCATION);
 
   //yellow color
-  DALI_TEST_EQUALS( backgroundColorIndicesBuffer[7], 2u, TEST_LOCATION);
+  DALI_TEST_EQUALS(backgroundColorIndicesBuffer[7], 2u, TEST_LOCATION);
 
   END_TEST;
 }
@@ -206,17 +205,17 @@ int UtcDaliTextEditorTextWithSpan(void)
   tet_infoline("UtcDaliTextEditorTextWithSpan\n");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  editor.SetProperty( TextEditor ::Property::ENABLE_MARKUP,  true );
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello Span" );
-  application.GetScene().Add( editor );
+  editor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true);
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello Span");
+  application.GetScene().Add(editor);
 
   application.SendNotification();
   application.Render();
 
   Vector3 originalSize = editor.GetNaturalSize();
-  editor.SetProperty( TextEditor::Property::TEXT, "H<span font-size='45' font-family='DejaVu Sans' font-width='condensed' font-slant='italic' text-color='red'>ello</span> Span" );
+  editor.SetProperty(TextEditor::Property::TEXT, "H<span font-size='45' font-family='DejaVu Sans' font-width='condensed' font-slant='italic' text-color='red'>ello</span> Span");
 
   application.SendNotification();
   application.Render();
@@ -225,41 +224,40 @@ int UtcDaliTextEditorTextWithSpan(void)
 
   DALI_TEST_GREATER(spanSize.width, originalSize.width, TEST_LOCATION);
 
-  Toolkit::Internal::TextEditor& editorImpl = GetImpl( editor );
-  const ColorIndex* const colorIndicesBuffer1 = editorImpl.GetTextController()->GetTextModel()->GetColorIndices();
+  Toolkit::Internal::TextEditor& editorImpl          = GetImpl(editor);
+  const ColorIndex* const        colorIndicesBuffer1 = editorImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
-  DALI_TEST_CHECK( colorIndicesBuffer1 );
+  DALI_TEST_CHECK(colorIndicesBuffer1);
 
   //default color
-  DALI_TEST_EQUALS( colorIndicesBuffer1[0], 0u, TEST_LOCATION);
+  DALI_TEST_EQUALS(colorIndicesBuffer1[0], 0u, TEST_LOCATION);
 
   //span color
-  DALI_TEST_EQUALS( colorIndicesBuffer1[1], 1u, TEST_LOCATION);
+  DALI_TEST_EQUALS(colorIndicesBuffer1[1], 1u, TEST_LOCATION);
 
   //default color
-  DALI_TEST_EQUALS( colorIndicesBuffer1[6], 0u, TEST_LOCATION);
-
+  DALI_TEST_EQUALS(colorIndicesBuffer1[6], 0u, TEST_LOCATION);
 
-  editor.SetProperty( TextEditor::Property::TEXT, "<span font-size='45'>H</span>ello <span text-color='red'>S</span>pan" );
+  editor.SetProperty(TextEditor::Property::TEXT, "<span font-size='45'>H</span>ello <span text-color='red'>S</span>pan");
 
   application.SendNotification();
   application.Render();
 
   const ColorIndex* const colorIndicesBuffer2 = editorImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
-  DALI_TEST_CHECK( colorIndicesBuffer2 );
+  DALI_TEST_CHECK(colorIndicesBuffer2);
 
   //default color
-  DALI_TEST_EQUALS( colorIndicesBuffer2[0], 0u, TEST_LOCATION);
+  DALI_TEST_EQUALS(colorIndicesBuffer2[0], 0u, TEST_LOCATION);
 
   //default color
-  DALI_TEST_EQUALS( colorIndicesBuffer2[1], 0u, TEST_LOCATION);
+  DALI_TEST_EQUALS(colorIndicesBuffer2[1], 0u, TEST_LOCATION);
 
   //span color
-  DALI_TEST_EQUALS( colorIndicesBuffer2[6], 1u, TEST_LOCATION);
+  DALI_TEST_EQUALS(colorIndicesBuffer2[6], 1u, TEST_LOCATION);
 
   //default color
-  DALI_TEST_EQUALS( colorIndicesBuffer2[7], 0u, TEST_LOCATION);
+  DALI_TEST_EQUALS(colorIndicesBuffer2[7], 0u, TEST_LOCATION);
 
   END_TEST;
 }
@@ -279,9 +277,9 @@ int UtcDaliTextEditorControlBackgroundColor(void)
   application.SendNotification();
   application.Render();
 
-  Toolkit::Internal::TextEditor& editorImpl = GetImpl(editor);
-  ControllerPtr controller = editorImpl.GetTextController();
-  Controller::Impl& controllerImpl = Controller::Impl::GetImplementation(*controller.Get());
+  Toolkit::Internal::TextEditor& editorImpl     = GetImpl(editor);
+  ControllerPtr                  controller     = editorImpl.GetTextController();
+  Controller::Impl&              controllerImpl = Controller::Impl::GetImplementation(*controller.Get());
 
   // Default color is transparent
   controllerImpl.mEditableControlInterface->GetControlBackgroundColor(backgroundColor);
@@ -298,3 +296,44 @@ int UtcDaliTextEditorControlBackgroundColor(void)
 
   END_TEST;
 }
+
+int UtcDaliTextEditorTextPositionWithMinLineAndBigFont(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliTextEditorTextPositionWithMinLine ");
+
+  TextEditor textEditor = TextEditor::New();
+
+  textEditor.SetProperty(TextEditor::Property::TEXT, "<span font-size='45'>H</span>\ni");
+  textEditor.SetProperty(DevelTextEditor::Property::MIN_LINE_SIZE, 50);
+  textEditor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true);
+
+  application.GetScene().Add(textEditor);
+
+  application.SendNotification();
+  application.Render();
+
+  Toolkit::Internal::TextEditor& textEditorImpl = GetImpl(textEditor);
+  Text::ViewInterface&           view           = textEditorImpl.GetTextController()->GetView();
+
+  Length numberOfGlyphs = view.GetNumberOfGlyphs();
+
+  DALI_TEST_EQUALS(numberOfGlyphs, 3u, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+  Vector<GlyphInfo> glyphs;
+  glyphs.Resize(numberOfGlyphs);
+
+  Vector<Vector2> positions;
+  positions.Resize(numberOfGlyphs);
+
+  float alignmentOffset = 0u;
+  numberOfGlyphs        = view.GetGlyphs(glyphs.Begin(),
+                                  positions.Begin(),
+                                  alignmentOffset,
+                                  0u,
+                                  numberOfGlyphs);
+
+  DALI_TEST_EQUALS(positions[2].y, 165.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+  END_TEST;
+}
\ No newline at end of file
index cd863b9..b291020 100755 (executable)
@@ -1544,6 +1544,11 @@ public:
     mResponsePolicyDecisionCallback = callback;
   }
 
+  void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback)
+  {
+    mNavigationPolicyDecisionCallback = callback;
+  }
+
   void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
   {
     mCertificateConfirmCallback = callback;
@@ -1600,29 +1605,30 @@ public:
 
   std::vector<Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback> mResultCallbacks;
 
-  Dali::WebEnginePlugin::WebEnginePageLoadCallback               mPageLoadStartedCallback;
-  Dali::WebEnginePlugin::WebEnginePageLoadCallback               mPageLoadInProgressCallback;
-  Dali::WebEnginePlugin::WebEnginePageLoadCallback               mPageLoadFinishedCallback;
-  Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback          mPageLoadErrorCallback;
-  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback      mScrollEdgeReachedCallback;
-  Dali::WebEnginePlugin::WebEngineUrlChangedCallback             mUrlChangedCallback;
-  Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback      mFormRepostDecidedCallback;
-  Dali::WebEnginePlugin::WebEngineFrameRenderedCallback          mFrameRenderedCallback;
-  Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback mConsoleMessageCallback;
-  Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback  mResponsePolicyDecisionCallback;
-  Dali::WebEnginePlugin::WebEngineCertificateCallback            mCertificateConfirmCallback;
-  Dali::WebEnginePlugin::WebEngineCertificateCallback            mSslCertificateChangedCallback;
-  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback        mHttpAuthHandlerCallback;
-  Dali::WebEnginePlugin::WebEngineContextMenuShownCallback       mContextMenuShownCallback;
-  Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback      mContextMenuHiddenCallback;
-  Dali::WebEnginePlugin::JavaScriptAlertCallback                 mJavaScriptAlertCallback;
-  Dali::WebEnginePlugin::JavaScriptConfirmCallback               mJavaScriptConfirmCallback;
-  Dali::WebEnginePlugin::JavaScriptPromptCallback                mJavaScriptPromptCallback;
-  Dali::WebEnginePlugin::ScreenshotCapturedCallback              mScreenshotCapturedCallback;
-  Dali::WebEnginePlugin::VideoPlayingCallback                    mVideoPlayingCallback;
-  Dali::WebEnginePlugin::GeolocationPermissionCallback           mGeolocationPermissionCallback;
-  Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback         mHitTestCreatedCallback;
-  Dali::WebEnginePlugin::PlainTextReceivedCallback               mPlainTextReceivedCallback;
+  Dali::WebEnginePlugin::WebEnginePageLoadCallback                mPageLoadStartedCallback;
+  Dali::WebEnginePlugin::WebEnginePageLoadCallback                mPageLoadInProgressCallback;
+  Dali::WebEnginePlugin::WebEnginePageLoadCallback                mPageLoadFinishedCallback;
+  Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback           mPageLoadErrorCallback;
+  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback       mScrollEdgeReachedCallback;
+  Dali::WebEnginePlugin::WebEngineUrlChangedCallback              mUrlChangedCallback;
+  Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback       mFormRepostDecidedCallback;
+  Dali::WebEnginePlugin::WebEngineFrameRenderedCallback           mFrameRenderedCallback;
+  Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback  mConsoleMessageCallback;
+  Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback   mResponsePolicyDecisionCallback;
+  Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback mNavigationPolicyDecisionCallback;
+  Dali::WebEnginePlugin::WebEngineCertificateCallback             mCertificateConfirmCallback;
+  Dali::WebEnginePlugin::WebEngineCertificateCallback             mSslCertificateChangedCallback;
+  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback         mHttpAuthHandlerCallback;
+  Dali::WebEnginePlugin::WebEngineContextMenuShownCallback        mContextMenuShownCallback;
+  Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback       mContextMenuHiddenCallback;
+  Dali::WebEnginePlugin::JavaScriptAlertCallback                  mJavaScriptAlertCallback;
+  Dali::WebEnginePlugin::JavaScriptConfirmCallback                mJavaScriptConfirmCallback;
+  Dali::WebEnginePlugin::JavaScriptPromptCallback                 mJavaScriptPromptCallback;
+  Dali::WebEnginePlugin::ScreenshotCapturedCallback               mScreenshotCapturedCallback;
+  Dali::WebEnginePlugin::VideoPlayingCallback                     mVideoPlayingCallback;
+  Dali::WebEnginePlugin::GeolocationPermissionCallback            mGeolocationPermissionCallback;
+  Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback          mHitTestCreatedCallback;
+  Dali::WebEnginePlugin::PlainTextReceivedCallback                mPlainTextReceivedCallback;
 };
 
 
@@ -1704,6 +1710,11 @@ bool OnLoadUrl()
       std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
       gInstance->mResponsePolicyDecisionCallback(std::move(policyDecision));
     }
+    if (gInstance->mNavigationPolicyDecisionCallback)
+    {
+      std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
+      gInstance->mNavigationPolicyDecisionCallback(std::move(policyDecision));
+    }
     if (gInstance->mCertificateConfirmCallback)
     {
       std::unique_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
@@ -2424,6 +2435,11 @@ void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::Web
   Internal::Adaptor::GetImplementation( *this ).RegisterResponsePolicyDecidedCallback(callback);
 }
 
+void WebEngine::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback)
+{
+  Internal::Adaptor::GetImplementation(*this).RegisterNavigationPolicyDecidedCallback(callback);
+}
+
 void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
 {
   Internal::Adaptor::GetImplementation( *this ).RegisterCertificateConfirmedCallback(callback);
index 4e9890c..e38ca01 100644 (file)
  *
  */
 
-#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/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;
@@ -46,7 +46,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";
@@ -78,81 +77,84 @@ 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                                        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)
   {
   }
 
@@ -175,8 +177,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)
@@ -185,36 +187,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");
 
@@ -236,112 +238,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;
       }
@@ -355,18 +357,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;
     }
@@ -383,7 +385,7 @@ int UtcDaliToolkitTextEditorConstructorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorConstructorP");
   TextEditor textEditor;
-  DALI_TEST_CHECK( !textEditor );
+  DALI_TEST_CHECK(!textEditor);
   END_TEST;
 }
 
@@ -392,7 +394,7 @@ int UtcDaliToolkitTextEditorNewP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorNewP");
   TextEditor textEditor = TextEditor::New();
-  DALI_TEST_CHECK( textEditor );
+  DALI_TEST_CHECK(textEditor);
   END_TEST;
 }
 
@@ -401,13 +403,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;
 }
 
@@ -416,11 +418,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;
 }
 
@@ -429,11 +431,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;
 }
 
@@ -442,14 +444,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;
 }
@@ -459,11 +461,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;
 }
 
@@ -472,15 +474,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;
 }
@@ -490,7 +492,7 @@ int UtcDaliTextEditorNewP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextEditorNewP");
   TextEditor textEditor = TextEditor::New();
-  DALI_TEST_CHECK( textEditor );
+  DALI_TEST_CHECK(textEditor);
   END_TEST;
 }
 
@@ -500,85 +502,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;
   }
@@ -592,250 +599,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);
+
+  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 );
+  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;
@@ -844,179 +909,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;
@@ -1033,13 +1098,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;
 }
@@ -1052,22 +1147,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);
   }
@@ -1126,40 +1221,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;
 }
@@ -1169,73 +1264,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
@@ -1248,34 +1340,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();
@@ -1285,11 +1376,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();
@@ -1298,25 +1389,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();
@@ -1325,15 +1416,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();
@@ -1342,22 +1433,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();
@@ -1366,31 +1457,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();
@@ -1399,15 +1490,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();
@@ -1416,26 +1507,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();
@@ -1444,8 +1535,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;
 }
@@ -1462,34 +1553,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();
@@ -1499,12 +1589,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();
@@ -1513,31 +1603,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();
@@ -1546,23 +1636,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();
@@ -1571,14 +1661,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();
@@ -1587,39 +1677,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();
@@ -1628,11 +1719,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();
@@ -1641,40 +1732,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();
@@ -1683,19 +1774,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;
 }
@@ -1709,78 +1800,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;
 }
@@ -1793,127 +1884,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(1u);
+  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(), 1u, TEST_LOCATION); // The renderer
 
-  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 );
+  DALI_TEST_EQUALS(stencil.GetChildCount(), 0u, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1926,18 +2017,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();
@@ -1946,7 +2037,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
@@ -1954,51 +2045,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
@@ -2026,42 +2117,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();
@@ -2069,26 +2160,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();
@@ -2096,13 +2187,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;
 }
@@ -2115,76 +2206,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;
 }
@@ -2197,82 +2288,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();
 
@@ -2287,155 +2377,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);
@@ -2445,8 +2534,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();
@@ -2460,30 +2549,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;
 }
@@ -2496,25 +2585,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();
@@ -2522,164 +2611,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;
 }
@@ -2690,62 +2779,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(1u);
+  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();
@@ -2753,42 +2842,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();
@@ -2796,8 +2884,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();
@@ -2811,41 +2899,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();
 
-  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 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();
+
+  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 , underlineSettings1, TEST_LOCATION  );
+  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, strikethroughSettings1, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2853,21 +3040,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;
 }
@@ -2879,17 +3066,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;
 }
@@ -2900,63 +3087,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;
 }
@@ -2966,49 +3152,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;
 }
@@ -3019,29 +3205,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;
 }
@@ -3052,21 +3238,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();
@@ -3080,21 +3266,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();
@@ -3108,21 +3294,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();
@@ -3136,7 +3322,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;
 }
@@ -3147,29 +3333,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;
 }
@@ -3201,7 +3387,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);
@@ -3215,10 +3401,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);
@@ -3233,47 +3419,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;
 }
@@ -3285,54 +3471,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;
 }
@@ -3344,44 +3530,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;
 }
@@ -3392,27 +3578,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;
 }
@@ -3424,39 +3610,39 @@ 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.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, 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 );
+  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, 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(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>(), "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(DevelTextEditor::Property::ENABLE_EDITING).Get<bool>(), true, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3467,12 +3653,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();
@@ -3485,25 +3671,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;
 }
@@ -3514,28 +3699,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;
 }
@@ -3547,29 +3732,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;
 }
@@ -3581,74 +3766,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;
 }
@@ -3659,43 +3843,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;
 }
@@ -3706,84 +3890,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;
 }
@@ -3794,43 +3975,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;
 }
@@ -3841,30 +4022,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;
 }
@@ -3875,31 +4056,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;
@@ -3910,45 +4090,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;
 }
@@ -3960,55 +4140,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;
 }
@@ -4021,72 +4201,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;
 }
@@ -4100,106 +4280,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;
 }
@@ -4210,45 +4390,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();
@@ -4261,14 +4441,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();
@@ -4281,13 +4461,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();
@@ -4300,27 +4479,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);
@@ -4334,19 +4514,19 @@ int UtcDaliTextEditorMinLineSize(void)
   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);
@@ -4360,24 +4540,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();
@@ -4386,7 +4566,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();
@@ -4398,7 +4578,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();
@@ -4410,7 +4590,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();
@@ -4422,7 +4602,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();
@@ -4433,7 +4613,7 @@ int utcDaliTextEditorCursorPositionChangedSignal(void)
 
   gCursorPositionChangedCallbackCalled = false;
 
-  editor.SetProperty( TextEditor::Property::TEXT, "Hello" );
+  editor.SetProperty(TextEditor::Property::TEXT, "Hello");
 
   // Render and notify
   application.SendNotification();
@@ -4444,7 +4624,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();
@@ -4462,33 +4642,33 @@ int utcDaliTextEditorGeometryEllipsisStart(void)
   tet_infoline(" utcDaliTextEditorGeometryEllipsisStart");
 
   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, 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" );
+  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 );
+  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;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 24;
 
   Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextEditor::GetTextSize(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);
@@ -4513,33 +4693,33 @@ int utcDaliTextEditorGeometryEllipsisMiddle(void)
   tet_infoline(" utcDaliTextEditorGeometryEllipsisMiddle");
 
   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, 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" );
+  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 );
+  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;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 24;
 
   Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextEditor::GetTextSize(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);
@@ -4564,33 +4744,33 @@ int utcDaliTextEditorGeometryEllipsisEnd(void)
   tet_infoline(" utcDaliTextEditorGeometryEllipsisEnd");
 
   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, 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" );
+  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 );
+  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;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 24;
 
   Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextEditor::GetTextSize(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);
@@ -4615,30 +4795,30 @@ int utcDaliTextEditorGeometryRTL(void)
   tet_infoline(" utcDaliTextEditorGeometryRTL");
 
   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, 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الاخيرالسطر" );
+  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 );
+  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;
+  unsigned int startIndex    = 3;
+  unsigned int endIndex      = 24;
 
   Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextEditor::GetTextSize(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);
@@ -4669,30 +4849,30 @@ int utcDaliTextEditorGeometryGlyphMiddle(void)
   tet_infoline(" utcDaliTextEditorGeometryGlyphMiddle");
 
   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, 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, "لا تحتوي على لا" );
+  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 );
+  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;
+  unsigned int startIndex    = 1;
+  unsigned int endIndex      = 13;
 
   Vector<Vector2> positionsList = DevelTextEditor::GetTextPosition(editor, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextEditor::GetTextSize(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);
@@ -4714,42 +4894,42 @@ int utcDaliTextEditorSelectionClearedSignal(void)
   tet_infoline(" utcDaliTextEditorSelectionClearedSignal");
 
   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::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();
@@ -4762,7 +4942,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();
@@ -4771,11 +4951,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();
@@ -4790,11 +4970,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();
@@ -4808,13 +4988,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();
@@ -4824,7 +5004,7 @@ int utcDaliTextEditorSelectionClearedSignal(void)
 
   gSelectionClearedCallbackCalled = false;
 
-  DevelTextEditor::SelectText( editor ,1, 3 );
+  DevelTextEditor::SelectText(editor, 1, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4850,41 +5030,41 @@ int utcDaliTextEditorSelectionWithSecondaryCursor(void)
   // Checks if the 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::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 );
+  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 );
+  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();
 
   //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.
+  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 );
+  std::string selectedText = editor.GetProperty(DevelTextEditor::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("عليكم ", selectedText, TEST_LOCATION);
 
   END_TEST;
 }
@@ -4895,46 +5075,46 @@ int utcDaliTextEditorSelectionChangedSignal(void)
   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();
@@ -4945,7 +5125,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();
@@ -4957,7 +5137,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();
@@ -4974,7 +5154,7 @@ int utcDaliTextEditorSelectionChangedSignal(void)
   application.SendNotification();
   application.Render();
 
-  DevelTextEditor::SelectText( editor ,0, 5 );
+  DevelTextEditor::SelectText(editor, 0, 5);
 
   application.SendNotification();
   application.Render();
@@ -4984,7 +5164,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();
@@ -5022,10 +5202,47 @@ int utcDaliTextEditorSelectionChangedSignal(void)
   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"
 
@@ -5033,17 +5250,17 @@ int utcDaliTextEditorInsertCharacterAfterInitWithResizePolicyNaturalSize(void)
   tet_infoline(" utcDaliTextEditorInsertCharacterAfterInitWithResizePolicyNaturalSize");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  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 );
+  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);
@@ -5053,24 +5270,24 @@ int utcDaliTextEditorInsertCharacterAfterInitWithResizePolicyNaturalSize(void)
   application.Render();
 
   // Create a tap event to touch the text editor.
-  TestGenerateTap( application, 5.0f, 5.0f );
+  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 ) );
+  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 );
+  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();
@@ -5081,7 +5298,6 @@ int utcDaliTextEditorInsertCharacterAfterInitWithResizePolicyNaturalSize(void)
 
 int utcDaliTextEditorRemoveCharacterAfterInitWithResizePolicyNaturalSize(void)
 {
-
   //This is to test a crash when used Resize Policy equals USE_NATURAL_SIZE
   //DaliException on vector: "Iterator not inside vector"
 
@@ -5089,37 +5305,37 @@ int utcDaliTextEditorRemoveCharacterAfterInitWithResizePolicyNaturalSize(void)
   tet_infoline(" utcDaliTextEditorRemoveCharacterAfterInitWithResizePolicyNaturalSize");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  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 );
+  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);
+  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 ) );
+  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 );
+  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();
@@ -5130,7 +5346,6 @@ int utcDaliTextEditorRemoveCharacterAfterInitWithResizePolicyNaturalSize(void)
 
 int utcDaliTextEditorCutSelectedTextAfterInitWithResizePolicyNaturalSize(void)
 {
-
   //This is to test a crash when used Resize Policy equals USE_NATURAL_SIZE
   //DaliException on vector: "Iterator not inside vector"
 
@@ -5138,39 +5353,39 @@ int utcDaliTextEditorCutSelectedTextAfterInitWithResizePolicyNaturalSize(void)
   tet_infoline(" utcDaliTextEditorCutSelectedTextAfterInitWithResizePolicyNaturalSize");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  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 );
+  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 );
+  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 ) );
+  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 );
+  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();
@@ -5179,10 +5394,8 @@ int utcDaliTextEditorCutSelectedTextAfterInitWithResizePolicyNaturalSize(void)
   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"
 
@@ -5190,23 +5403,23 @@ int utcDaliTextEditorDoubleEnterAfterInitWithResizePolicyNaturalSize(void)
   tet_infoline(" utcDaliTextEditorDoubleEnterAfterInitWithResizePolicyNaturalSize");
 
   TextEditor editor = TextEditor::New();
-  DALI_TEST_CHECK( editor );
+  DALI_TEST_CHECK(editor);
 
-  application.GetScene().Add( editor );
+  application.GetScene().Add(editor);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  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 );
+  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);
+  editor.SetProperty(DevelTextEditor::Property::PRIMARY_CURSOR_POSITION, 5);
   application.SendNotification();
   application.Render();
 
@@ -5220,12 +5433,220 @@ int utcDaliTextEditorDoubleEnterAfterInitWithResizePolicyNaturalSize(void)
   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 );
+  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;
-}
\ No newline at end of file
+}
+
+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;
+}
index a6e2668..aca0054 100644 (file)
  *
  */
 
-#include <iostream>
 #include <stdlib.h>
 #include <unistd.h>
+#include <iostream>
 
-#include <dali/public-api/rendering/renderer.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 <dali/devel-api/adaptor-framework/key-devel.h>
-#include <dali/devel-api/text-abstraction/font-client.h>
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/devel-api/controls/text-controls/text-field-devel.h>
 #include <dali-toolkit/devel-api/text/rendering-backend.h>
-#include "toolkit-clipboard.h"
 #include <dali-toolkit/devel-api/text/text-enumerations-devel.h>
+#include <dali/devel-api/adaptor-framework/key-devel.h>
+#include <dali/devel-api/text-abstraction/font-client.h>
 #include "test-text-geometry-utils.h"
+#include "toolkit-clipboard.h"
 
 using namespace Dali;
 using namespace Toolkit;
@@ -48,7 +48,6 @@ void dali_textfield_cleanup(void)
 
 namespace
 {
-
 const char* const PROPERTY_NAME_RENDERING_BACKEND                    = "renderingBackend";
 const char* const PROPERTY_NAME_TEXT                                 = "text";
 const char* const PROPERTY_NAME_PLACEHOLDER_TEXT                     = "placeholderText";
@@ -87,62 +86,65 @@ 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_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_HIDDEN_INPUT_SETTINGS                = "hiddenInputSettings";
-const char* const PROPERTY_NAME_PIXEL_SIZE                           = "pixelSize";
-const char* const PROPERTY_NAME_ENABLE_SELECTION                     = "enableSelection";
-const char* const PROPERTY_NAME_PLACEHOLDER                          = "placeholder";
-const char* const PROPERTY_NAME_ELLIPSIS                             = "ellipsis";
-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_ENABLE_GRAB_HANDLE_POPUP             = "enableGrabHandlePopup";
-const char* const PROPERTY_NAME_BACKGROUND                           = "textBackground";
-const char* const PROPERTY_NAME_FONT_SIZE_SCALE                      = "fontSizeScale";
-const char* const PROPERTY_NAME_GRAB_HANDLE_COLOR                    = "grabHandleColor";
-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_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_HIDDEN_INPUT_SETTINGS           = "hiddenInputSettings";
+const char* const PROPERTY_NAME_PIXEL_SIZE                      = "pixelSize";
+const char* const PROPERTY_NAME_ENABLE_SELECTION                = "enableSelection";
+const char* const PROPERTY_NAME_PLACEHOLDER                     = "placeholder";
+const char* const PROPERTY_NAME_ELLIPSIS                        = "ellipsis";
+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_ENABLE_GRAB_HANDLE_POPUP        = "enableGrabHandlePopup";
+const char* const PROPERTY_NAME_BACKGROUND                      = "textBackground";
+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_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_RETURN_CODE = 36;
-const int KEY_A_CODE = 38;
-const int KEY_D_CODE = 40;
+const int KEY_RETURN_CODE    = 36;
+const int KEY_A_CODE         = 38;
+const int KEY_D_CODE         = 40;
 const int KEY_SHIFT_MODIFIER = 257;
 
 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 gMaxCharactersCallBackCalled;
-static bool gInputFilteredAcceptedCallbackCalled;
-static bool gInputFilteredRejectedCallbackCalled;
-static bool gInputStyleChangedCallbackCalled;
-static bool gCursorPositionChangedCallbackCalled;
-static uint32_t oldCursorPos;
+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                                       gMaxCharactersCallBackCalled;
+static bool                                       gInputFilteredAcceptedCallbackCalled;
+static bool                                       gInputFilteredRejectedCallbackCalled;
+static bool                                       gInputStyleChangedCallbackCalled;
+static bool                                       gCursorPositionChangedCallbackCalled;
+static uint32_t                                   oldCursorPos;
 static Dali::Toolkit::TextField::InputStyle::Mask gInputStyleMask;
 
 static void LoadBitmapResource(TestPlatformAbstraction& platform, int width, int height)
 {
-  Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD );
+  Integration::Bitmap*         bitmap = Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD);
   Integration::ResourcePointer resource(bitmap);
   bitmap->GetPackedPixelsProfile()->ReserveBuffer(Pixel::RGBA8888, width, height, width, height);
 }
@@ -151,20 +153,20 @@ static void LoadMarkerImages(ToolkitTestApplication& app, TextField textField)
 {
   int width(40);
   int height(40);
-  LoadBitmapResource( app.GetPlatform(), width, height );
+  LoadBitmapResource(app.GetPlatform(), width, height);
 
   Property::Map propertyMap;
   propertyMap["filename"] = "image.png";
-  propertyMap["width"] = width;
-  propertyMap["height"] = height;
-  textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, propertyMap );
-  textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT, propertyMap );
-  textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, propertyMap );
-  textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, propertyMap );
-  textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, propertyMap );
-  textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, propertyMap );
-  textField.SetProperty( Toolkit::TextField::Property::GRAB_HANDLE_IMAGE, propertyMap );
-  textField.SetProperty( Toolkit::TextField::Property::GRAB_HANDLE_PRESSED_IMAGE, propertyMap );
+  propertyMap["width"]    = width;
+  propertyMap["height"]   = height;
+  textField.SetProperty(Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, propertyMap);
+  textField.SetProperty(Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT, propertyMap);
+  textField.SetProperty(Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, propertyMap);
+  textField.SetProperty(Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, propertyMap);
+  textField.SetProperty(Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, propertyMap);
+  textField.SetProperty(Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, propertyMap);
+  textField.SetProperty(Toolkit::TextField::Property::GRAB_HANDLE_IMAGE, propertyMap);
+  textField.SetProperty(Toolkit::TextField::Property::GRAB_HANDLE_PRESSED_IMAGE, propertyMap);
 }
 
 /*
@@ -180,7 +182,7 @@ static int Wait(ToolkitTestApplication& application, int duration = 0)
 {
   int time = 0;
 
-  for(int i = 0; i <= ( duration / RENDER_FRAME_INTERVAL); i++)
+  for(int i = 0; i <= (duration / RENDER_FRAME_INTERVAL); i++)
   {
     application.SendNotification();
     application.Render(RENDER_FRAME_INTERVAL);
@@ -190,26 +192,26 @@ static int Wait(ToolkitTestApplication& application, int duration = 0)
   return time;
 }
 
-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;
 }
 
 struct CallbackFunctor
 {
   CallbackFunctor(bool* callbackFlag)
-  : mCallbackFlag( callbackFlag )
+  : mCallbackFlag(callbackFlag)
   {
   }
 
@@ -232,8 +234,8 @@ static void TestSelectionChangedCallback(TextField control, uint32_t oldStart, u
   tet_infoline(" TestSelectionChangedCallback");
 
   gSelectionChangedCallbackCalled = true;
-  oldSelectionStart = oldStart;
-  oldSelectionEnd   = oldEnd;
+  oldSelectionStart               = oldStart;
+  oldSelectionEnd                 = oldEnd;
 }
 
 static void TestAnchorClickedCallback(TextField control, const char* href, unsigned int hrefLength)
@@ -242,28 +244,28 @@ static void TestAnchorClickedCallback(TextField control, const char* href, unsig
 
   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( TextField control, unsigned int oldPos )
+static void TestCursorPositionChangedCallback(TextField control, unsigned int oldPos)
 {
   tet_infoline(" TestCursorPositionChangedCallback");
 
   gCursorPositionChangedCallbackCalled = true;
-  oldCursorPos = oldPos;
+  oldCursorPos                         = oldPos;
 }
 
-static void TestTextChangedCallback( TextField control )
+static void TestTextChangedCallback(TextField control)
 {
   tet_infoline(" TestTextChangedCallback");
 
   gTextChangedCallBackCalled = true;
 }
 
-static void TestMaxLengthReachedCallback( TextField control )
+static void TestMaxLengthReachedCallback(TextField control)
 {
   tet_infoline(" TestMaxLengthReachedCallback");
 
@@ -284,105 +286,105 @@ static void TestInputFilteredCallback(TextField control, Toolkit::InputFilter::P
   }
 }
 
-static void TestInputStyleChangedCallback( TextField control, TextField::InputStyle::Mask mask )
+static void TestInputStyleChangedCallback(TextField control, TextField::InputStyle::Mask mask)
 {
   tet_infoline(" TestInputStyleChangedCallback");
 
   gInputStyleChangedCallbackCalled = true;
-  gInputStyleMask = mask;
+  gInputStyleMask                  = mask;
 }
 
 // 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);
 }
 
-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;
       }
@@ -399,7 +401,7 @@ int UtcDaliToolkitTextFieldConstructorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldConstructorP");
   TextField textField;
-  DALI_TEST_CHECK( !textField );
+  DALI_TEST_CHECK(!textField);
   END_TEST;
 }
 
@@ -408,7 +410,7 @@ int UtcDaliToolkitTextFieldNewP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldNewP");
   TextField textField = TextField::New();
-  DALI_TEST_CHECK( textField );
+  DALI_TEST_CHECK(textField);
   END_TEST;
 }
 
@@ -416,14 +418,14 @@ int UtcDaliToolkitTextFieldDownCastP(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldDownCastP");
-  TextField textField1 = TextField::New();
-  BaseHandle object( textField1 );
+  TextField  textField1 = TextField::New();
+  BaseHandle object(textField1);
 
-  TextField textField2 = TextField::DownCast( object );
-  DALI_TEST_CHECK( textField2 );
+  TextField textField2 = TextField::DownCast(object);
+  DALI_TEST_CHECK(textField2);
 
-  TextField textField3 = DownCast< TextField >( object );
-  DALI_TEST_CHECK( textField3 );
+  TextField textField3 = DownCast<TextField>(object);
+  DALI_TEST_CHECK(textField3);
   END_TEST;
 }
 
@@ -432,11 +434,11 @@ int UtcDaliToolkitTextFieldDownCastN(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldDownCastN");
   BaseHandle uninitializedObject;
-  TextField textField1 = TextField::DownCast( uninitializedObject );
-  DALI_TEST_CHECK( !textField1 );
+  TextField  textField1 = TextField::DownCast(uninitializedObject);
+  DALI_TEST_CHECK(!textField1);
 
-  TextField textField2 = DownCast< TextField >( uninitializedObject );
-  DALI_TEST_CHECK( !textField2 );
+  TextField textField2 = DownCast<TextField>(uninitializedObject);
+  DALI_TEST_CHECK(!textField2);
   END_TEST;
 }
 
@@ -445,11 +447,11 @@ int UtcDaliToolkitTextFieldCopyConstructorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldCopyConstructorP");
   TextField textField = TextField::New();
-  textField.SetProperty( TextField::Property::TEXT, "Test" );
+  textField.SetProperty(TextField::Property::TEXT, "Test");
 
-  TextField copy( textField );
-  DALI_TEST_CHECK( copy );
-  DALI_TEST_CHECK( copy.GetProperty<std::string>( TextLabel::Property::TEXT ) == textField.GetProperty<std::string>( TextLabel::Property::TEXT ) );
+  TextField copy(textField);
+  DALI_TEST_CHECK(copy);
+  DALI_TEST_CHECK(copy.GetProperty<std::string>(TextLabel::Property::TEXT) == textField.GetProperty<std::string>(TextLabel::Property::TEXT));
   END_TEST;
 }
 
@@ -458,14 +460,14 @@ int UtcDaliTextFieldMoveConstructor(void)
   ToolkitTestApplication application;
 
   TextField textField = TextField::New();
-  textField.SetProperty( TextEditor::Property::TEXT, "Test" );
-  DALI_TEST_CHECK( textField.GetProperty<std::string>( TextField::Property::TEXT ) == "Test" );
+  textField.SetProperty(TextEditor::Property::TEXT, "Test");
+  DALI_TEST_CHECK(textField.GetProperty<std::string>(TextField::Property::TEXT) == "Test");
 
-  TextField moved = std::move( textField );
-  DALI_TEST_CHECK( moved );
-  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
-  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextField::Property::TEXT ) == "Test" );
-  DALI_TEST_CHECK( !textField );
+  TextField moved = std::move(textField);
+  DALI_TEST_CHECK(moved);
+  DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_CHECK(moved.GetProperty<std::string>(TextField::Property::TEXT) == "Test");
+  DALI_TEST_CHECK(!textField);
 
   END_TEST;
 }
@@ -475,11 +477,11 @@ int UtcDaliToolkitTextFieldAssignmentOperatorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldAssignmentOperatorP");
   TextField textField = TextField::New();
-  textField.SetProperty( TextField::Property::TEXT, "Test" );
+  textField.SetProperty(TextField::Property::TEXT, "Test");
 
   TextField copy = textField;
-  DALI_TEST_CHECK( copy );
-  DALI_TEST_CHECK( copy.GetProperty<std::string>( TextField::Property::TEXT ) == textField.GetProperty<std::string>( TextField::Property::TEXT ) );
+  DALI_TEST_CHECK(copy);
+  DALI_TEST_CHECK(copy.GetProperty<std::string>(TextField::Property::TEXT) == textField.GetProperty<std::string>(TextField::Property::TEXT));
   END_TEST;
 }
 
@@ -488,15 +490,15 @@ int UtcDaliTextFieldMoveAssignment(void)
   ToolkitTestApplication application;
 
   TextField textField = TextField::New();
-  textField.SetProperty( TextEditor::Property::TEXT, "Test" );
-  DALI_TEST_CHECK( textField.GetProperty<std::string>( TextField::Property::TEXT ) == "Test" );
+  textField.SetProperty(TextEditor::Property::TEXT, "Test");
+  DALI_TEST_CHECK(textField.GetProperty<std::string>(TextField::Property::TEXT) == "Test");
 
   TextField moved;
-  moved = std::move( textField );
-  DALI_TEST_CHECK( moved );
-  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
-  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextField::Property::TEXT ) == "Test" );
-  DALI_TEST_CHECK( !textField );
+  moved = std::move(textField);
+  DALI_TEST_CHECK(moved);
+  DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_CHECK(moved.GetProperty<std::string>(TextField::Property::TEXT) == "Test");
+  DALI_TEST_CHECK(!textField);
 
   END_TEST;
 }
@@ -506,7 +508,7 @@ int UtcDaliTextFieldNewP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldNewP");
   TextField textField = TextField::New();
-  DALI_TEST_CHECK( textField );
+  DALI_TEST_CHECK(textField);
   END_TEST;
 }
 
@@ -516,82 +518,85 @@ int UtcDaliTextFieldGetPropertyP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldGetPropertyP");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
   // Check Property Indices are correct
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_RENDERING_BACKEND ) == DevelTextField::Property::RENDERING_BACKEND );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_TEXT ) == TextField::Property::TEXT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT ) == TextField::Property::PLACEHOLDER_TEXT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT_FOCUSED ) == TextField::Property::PLACEHOLDER_TEXT_FOCUSED );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_FONT_FAMILY ) == TextField::Property::FONT_FAMILY );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_FONT_STYLE ) == TextField::Property::FONT_STYLE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_POINT_SIZE ) == TextField::Property::POINT_SIZE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_MAX_LENGTH ) == TextField::Property::MAX_LENGTH );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_EXCEED_POLICY ) == TextField::Property::EXCEED_POLICY );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_HORIZONTAL_ALIGNMENT ) == TextField::Property::HORIZONTAL_ALIGNMENT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_VERTICAL_ALIGNMENT ) == TextField::Property::VERTICAL_ALIGNMENT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_TEXT_COLOR ) == TextField::Property::TEXT_COLOR );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR ) == TextField::Property::PLACEHOLDER_TEXT_COLOR );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_PRIMARY_CURSOR_COLOR ) == TextField::Property::PRIMARY_CURSOR_COLOR );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SECONDARY_CURSOR_COLOR ) == TextField::Property::SECONDARY_CURSOR_COLOR );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_ENABLE_CURSOR_BLINK ) == TextField::Property::ENABLE_CURSOR_BLINK );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_CURSOR_BLINK_INTERVAL ) == TextField::Property::CURSOR_BLINK_INTERVAL );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_CURSOR_BLINK_DURATION ) == TextField::Property::CURSOR_BLINK_DURATION );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_CURSOR_WIDTH ) == TextField::Property::CURSOR_WIDTH );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_GRAB_HANDLE_IMAGE ) == TextField::Property::GRAB_HANDLE_IMAGE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_GRAB_HANDLE_PRESSED_IMAGE ) == TextField::Property::GRAB_HANDLE_PRESSED_IMAGE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SCROLL_THRESHOLD ) == TextField::Property::SCROLL_THRESHOLD );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SCROLL_SPEED ) == TextField::Property::SCROLL_SPEED );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_IMAGE_LEFT ) == TextField::Property::SELECTION_HANDLE_IMAGE_LEFT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_IMAGE_RIGHT ) == TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_LEFT ) == TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_RIGHT ) == TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_LEFT ) == TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_RIGHT ) == TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SELECTION_HIGHLIGHT_COLOR ) == TextField::Property::SELECTION_HIGHLIGHT_COLOR );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_DECORATION_BOUNDING_BOX ) == TextField::Property::DECORATION_BOUNDING_BOX );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_METHOD_SETTINGS ) == TextField::Property::INPUT_METHOD_SETTINGS );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_COLOR ) == TextField::Property::INPUT_COLOR );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_ENABLE_MARKUP ) == TextField::Property::ENABLE_MARKUP );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_FONT_FAMILY ) == TextField::Property::INPUT_FONT_FAMILY );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_FONT_STYLE ) == TextField::Property::INPUT_FONT_STYLE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_POINT_SIZE ) == TextField::Property::INPUT_POINT_SIZE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_UNDERLINE ) == TextField::Property::UNDERLINE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_UNDERLINE ) == TextField::Property::INPUT_UNDERLINE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_SHADOW ) == TextField::Property::SHADOW );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_SHADOW ) == TextField::Property::INPUT_SHADOW );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_EMBOSS ) == TextField::Property::EMBOSS );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_EMBOSS ) == TextField::Property::INPUT_EMBOSS );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_OUTLINE ) == TextField::Property::OUTLINE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_OUTLINE ) == TextField::Property::INPUT_OUTLINE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_HIDDEN_INPUT_SETTINGS ) == TextField::Property::HIDDEN_INPUT_SETTINGS );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_PIXEL_SIZE ) == TextField::Property::PIXEL_SIZE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_ENABLE_SELECTION ) == TextField::Property::ENABLE_SELECTION );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER ) == TextField::Property::PLACEHOLDER );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_ELLIPSIS ) == TextField::Property::ELLIPSIS );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_FONT_SIZE_SCALE ) == DevelTextField::Property::FONT_SIZE_SCALE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_ENABLE_SHIFT_SELECTION ) == DevelTextField::Property::ENABLE_SHIFT_SELECTION );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_ENABLE_GRAB_HANDLE ) == DevelTextField::Property::ENABLE_GRAB_HANDLE );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION ) == DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_ENABLE_GRAB_HANDLE_POPUP ) == DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_BACKGROUND ) == DevelTextField::Property::BACKGROUND );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_GRAB_HANDLE_COLOR ) == DevelTextField::Property::GRAB_HANDLE_COLOR );
-  DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_INPUT_FILTER ) == DevelTextField::Property::INPUT_FILTER );
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_RENDERING_BACKEND) == DevelTextField::Property::RENDERING_BACKEND);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_TEXT) == TextField::Property::TEXT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_PLACEHOLDER_TEXT) == TextField::Property::PLACEHOLDER_TEXT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_PLACEHOLDER_TEXT_FOCUSED) == TextField::Property::PLACEHOLDER_TEXT_FOCUSED);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_FONT_FAMILY) == TextField::Property::FONT_FAMILY);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_FONT_STYLE) == TextField::Property::FONT_STYLE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_POINT_SIZE) == TextField::Property::POINT_SIZE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_MAX_LENGTH) == TextField::Property::MAX_LENGTH);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_EXCEED_POLICY) == TextField::Property::EXCEED_POLICY);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_HORIZONTAL_ALIGNMENT) == TextField::Property::HORIZONTAL_ALIGNMENT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_VERTICAL_ALIGNMENT) == TextField::Property::VERTICAL_ALIGNMENT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_TEXT_COLOR) == TextField::Property::TEXT_COLOR);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR) == TextField::Property::PLACEHOLDER_TEXT_COLOR);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_PRIMARY_CURSOR_COLOR) == TextField::Property::PRIMARY_CURSOR_COLOR);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SECONDARY_CURSOR_COLOR) == TextField::Property::SECONDARY_CURSOR_COLOR);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ENABLE_CURSOR_BLINK) == TextField::Property::ENABLE_CURSOR_BLINK);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_CURSOR_BLINK_INTERVAL) == TextField::Property::CURSOR_BLINK_INTERVAL);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_CURSOR_BLINK_DURATION) == TextField::Property::CURSOR_BLINK_DURATION);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_CURSOR_WIDTH) == TextField::Property::CURSOR_WIDTH);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_GRAB_HANDLE_IMAGE) == TextField::Property::GRAB_HANDLE_IMAGE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_GRAB_HANDLE_PRESSED_IMAGE) == TextField::Property::GRAB_HANDLE_PRESSED_IMAGE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SCROLL_THRESHOLD) == TextField::Property::SCROLL_THRESHOLD);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SCROLL_SPEED) == TextField::Property::SCROLL_SPEED);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_IMAGE_LEFT) == TextField::Property::SELECTION_HANDLE_IMAGE_LEFT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_IMAGE_RIGHT) == TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_LEFT) == TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_PRESSED_IMAGE_RIGHT) == TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_LEFT) == TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SELECTION_HANDLE_MARKER_IMAGE_RIGHT) == TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SELECTION_HIGHLIGHT_COLOR) == TextField::Property::SELECTION_HIGHLIGHT_COLOR);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_DECORATION_BOUNDING_BOX) == TextField::Property::DECORATION_BOUNDING_BOX);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_METHOD_SETTINGS) == TextField::Property::INPUT_METHOD_SETTINGS);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_COLOR) == TextField::Property::INPUT_COLOR);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ENABLE_MARKUP) == TextField::Property::ENABLE_MARKUP);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_FONT_FAMILY) == TextField::Property::INPUT_FONT_FAMILY);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_FONT_STYLE) == TextField::Property::INPUT_FONT_STYLE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_POINT_SIZE) == TextField::Property::INPUT_POINT_SIZE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_UNDERLINE) == TextField::Property::UNDERLINE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_UNDERLINE) == TextField::Property::INPUT_UNDERLINE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_SHADOW) == TextField::Property::SHADOW);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_SHADOW) == TextField::Property::INPUT_SHADOW);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_EMBOSS) == TextField::Property::EMBOSS);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_EMBOSS) == TextField::Property::INPUT_EMBOSS);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_OUTLINE) == TextField::Property::OUTLINE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_OUTLINE) == TextField::Property::INPUT_OUTLINE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_HIDDEN_INPUT_SETTINGS) == TextField::Property::HIDDEN_INPUT_SETTINGS);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_PIXEL_SIZE) == TextField::Property::PIXEL_SIZE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ENABLE_SELECTION) == TextField::Property::ENABLE_SELECTION);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_PLACEHOLDER) == TextField::Property::PLACEHOLDER);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ELLIPSIS) == TextField::Property::ELLIPSIS);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_FONT_SIZE_SCALE) == DevelTextField::Property::FONT_SIZE_SCALE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ENABLE_FONT_SIZE_SCALE) == DevelTextField::Property::ENABLE_FONT_SIZE_SCALE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ENABLE_SHIFT_SELECTION) == DevelTextField::Property::ENABLE_SHIFT_SELECTION);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ENABLE_GRAB_HANDLE) == DevelTextField::Property::ENABLE_GRAB_HANDLE);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION) == DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_ENABLE_GRAB_HANDLE_POPUP) == DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_BACKGROUND) == DevelTextField::Property::BACKGROUND);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_GRAB_HANDLE_COLOR) == DevelTextField::Property::GRAB_HANDLE_COLOR);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_FILTER) == DevelTextField::Property::INPUT_FILTER);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_STRIKETHROUGH) == DevelTextField::Property::STRIKETHROUGH);
+  DALI_TEST_CHECK(field.GetPropertyIndex(PROPERTY_NAME_INPUT_STRIKETHROUGH) == DevelTextField::Property::INPUT_STRIKETHROUGH);
 
   END_TEST;
 }
 
-bool SetPropertyMapRetrieved( TextField& field, const Property::Index property, const std::string mapKey, const std::string mapValue )
+bool SetPropertyMapRetrieved(TextField& field, 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;
 
-  field.SetProperty( property , imageMap );
-  Property::Value propValue = field.GetProperty( property );
-  Property::Map* resultMap = propValue.GetMap();
+  field.SetProperty(property, imageMap);
+  Property::Value propValue = field.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;
   }
@@ -605,299 +610,373 @@ int UtcDaliTextFieldSetPropertyP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextFieldSetPropertyP");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
 
   // Note - we can't check the defaults since the stylesheets are platform-specific
 
   // Check the render backend property.
-  field.SetProperty( DevelTextField::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS );
-  DALI_TEST_EQUALS( (DevelText::RenderingType)field.GetProperty<int>( DevelTextField::Property::RENDERING_BACKEND ), DevelText::RENDERING_SHARED_ATLAS, TEST_LOCATION );
+  field.SetProperty(DevelTextField::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS);
+  DALI_TEST_EQUALS((DevelText::RenderingType)field.GetProperty<int>(DevelTextField::Property::RENDERING_BACKEND), DevelText::RENDERING_SHARED_ATLAS, TEST_LOCATION);
 
-  field.SetProperty( DevelTextField::Property::RENDERING_BACKEND, DevelText::RENDERING_VECTOR_BASED );
-  DALI_TEST_EQUALS( (DevelText::RenderingType)field.GetProperty<int>( DevelTextField::Property::RENDERING_BACKEND ), DevelText::RENDERING_VECTOR_BASED, TEST_LOCATION );
+  field.SetProperty(DevelTextField::Property::RENDERING_BACKEND, DevelText::RENDERING_VECTOR_BASED);
+  DALI_TEST_EQUALS((DevelText::RenderingType)field.GetProperty<int>(DevelTextField::Property::RENDERING_BACKEND), DevelText::RENDERING_VECTOR_BASED, TEST_LOCATION);
 
   // Check text property.
-  field.SetProperty( TextField::Property::TEXT, "Setting Text" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("Setting Text"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::TEXT, "Setting Text");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), std::string("Setting Text"), TEST_LOCATION);
 
   // Check placeholder text properties.
-  field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Setting Placeholder Text" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::PLACEHOLDER_TEXT ), std::string("Setting Placeholder Text"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::PLACEHOLDER_TEXT, "Setting Placeholder Text");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::PLACEHOLDER_TEXT), std::string("Setting Placeholder Text"), TEST_LOCATION);
 
-  field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Setting Placeholder Text Focused" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::PLACEHOLDER_TEXT_FOCUSED ), std::string("Setting Placeholder Text Focused"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Setting Placeholder Text Focused");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::PLACEHOLDER_TEXT_FOCUSED), std::string("Setting Placeholder Text Focused"), TEST_LOCATION);
 
   // Check font properties.
-  field.SetProperty( TextField::Property::FONT_FAMILY, "Setting font family" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::FONT_FAMILY ), std::string("Setting font family"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::FONT_FAMILY, "Setting font family");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::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" );
-  field.SetProperty( TextField::Property::FONT_STYLE, fontStyleMapSet );
+  fontStyleMapSet.Insert("weight", "bold");
+  fontStyleMapSet.Insert("width", "condensed");
+  fontStyleMapSet.Insert("slant", "italic");
+  field.SetProperty(TextField::Property::FONT_STYLE, fontStyleMapSet);
 
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::POINT_SIZE ), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::Property::POINT_SIZE), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
-  field.SetProperty( DevelTextField::Property::FONT_SIZE_SCALE, 2.5f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( DevelTextField::Property::FONT_SIZE_SCALE ), 2.5f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  field.SetProperty( DevelTextField::Property::FONT_SIZE_SCALE, 1.0f );
+  field.SetProperty(DevelTextField::Property::FONT_SIZE_SCALE, 2.5f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(DevelTextField::Property::FONT_SIZE_SCALE), 2.5f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  field.SetProperty(DevelTextField::Property::FONT_SIZE_SCALE, 1.0f);
+
+  field.SetProperty(DevelTextField::Property::ENABLE_FONT_SIZE_SCALE, false);
+  DALI_TEST_EQUALS(field.GetProperty<bool>(DevelTextField::Property::ENABLE_FONT_SIZE_SCALE), false, TEST_LOCATION);
+  field.SetProperty(DevelTextField::Property::ENABLE_FONT_SIZE_SCALE, true);
 
   // Reset font style.
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "normal" );
-  fontStyleMapSet.Insert( "slant", "oblique" );
-  field.SetProperty( TextField::Property::FONT_STYLE, fontStyleMapSet );
+  fontStyleMapSet.Insert("weight", "normal");
+  fontStyleMapSet.Insert("slant", "oblique");
+  field.SetProperty(TextField::Property::FONT_STYLE, fontStyleMapSet);
 
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::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" );
-  field.SetProperty( TextField::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::FONT_STYLE );
+  fontStyleMapSet.Insert("slant", "roman");
+  field.SetProperty(TextField::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::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();
 
-  field.SetProperty( TextField::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  field.SetProperty(TextField::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   // Check that the MAX_LENGTH property can be correctly set
   const int maxNumberOfCharacters = 20;
-  field.SetProperty( TextField::Property::MAX_LENGTH, maxNumberOfCharacters );
-  DALI_TEST_EQUALS( field.GetProperty<int>( TextField::Property::MAX_LENGTH ), maxNumberOfCharacters, TEST_LOCATION );
+  field.SetProperty(TextField::Property::MAX_LENGTH, maxNumberOfCharacters);
+  DALI_TEST_EQUALS(field.GetProperty<int>(TextField::Property::MAX_LENGTH), maxNumberOfCharacters, TEST_LOCATION);
 
   // Check exceed policy
-  field.SetProperty( TextField::Property::EXCEED_POLICY, Dali::Toolkit::TextField::EXCEED_POLICY_CLIP );
-  DALI_TEST_EQUALS( field.GetProperty<int>( TextField::Property::EXCEED_POLICY ), static_cast<int>( Dali::Toolkit::TextField::EXCEED_POLICY_CLIP ), TEST_LOCATION );
-  field.SetProperty( TextField::Property::EXCEED_POLICY, Dali::Toolkit::TextField::EXCEED_POLICY_ORIGINAL );
-  DALI_TEST_EQUALS( field.GetProperty<int>( TextField::Property::EXCEED_POLICY ), static_cast<int>( Dali::Toolkit::TextField::EXCEED_POLICY_ORIGINAL ), TEST_LOCATION );
+  field.SetProperty(TextField::Property::EXCEED_POLICY, Dali::Toolkit::TextField::EXCEED_POLICY_CLIP);
+  DALI_TEST_EQUALS(field.GetProperty<int>(TextField::Property::EXCEED_POLICY), static_cast<int>(Dali::Toolkit::TextField::EXCEED_POLICY_CLIP), TEST_LOCATION);
+  field.SetProperty(TextField::Property::EXCEED_POLICY, Dali::Toolkit::TextField::EXCEED_POLICY_ORIGINAL);
+  DALI_TEST_EQUALS(field.GetProperty<int>(TextField::Property::EXCEED_POLICY), static_cast<int>(Dali::Toolkit::TextField::EXCEED_POLICY_ORIGINAL), TEST_LOCATION);
 
   // Check that the Alignment properties can be correctly set
-  field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "END" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::HORIZONTAL_ALIGNMENT ), "END", TEST_LOCATION );
-  field.SetProperty( TextField::Property::VERTICAL_ALIGNMENT, "CENTER" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::VERTICAL_ALIGNMENT ), "CENTER", TEST_LOCATION );
+  field.SetProperty(TextField::Property::HORIZONTAL_ALIGNMENT, "END");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::HORIZONTAL_ALIGNMENT), "END", TEST_LOCATION);
+  field.SetProperty(TextField::Property::VERTICAL_ALIGNMENT, "CENTER");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::VERTICAL_ALIGNMENT), "CENTER", TEST_LOCATION);
 
   // Check text's color property
-  field.SetProperty( TextField::Property::TEXT_COLOR, Color::WHITE );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( TextField::Property::TEXT_COLOR ), Color::WHITE, TEST_LOCATION );
+  field.SetProperty(TextField::Property::TEXT_COLOR, Color::WHITE);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(TextField::Property::TEXT_COLOR), Color::WHITE, TEST_LOCATION);
 
   // Check placeholder text's color property.
-  field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_COLOR, Color::RED );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( TextField::Property::PLACEHOLDER_TEXT_COLOR ), Color::RED, TEST_LOCATION );
+  field.SetProperty(TextField::Property::PLACEHOLDER_TEXT_COLOR, Color::RED);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(TextField::Property::PLACEHOLDER_TEXT_COLOR), Color::RED, TEST_LOCATION);
 
   // Check cursor properties
-  field.SetProperty( TextField::Property::PRIMARY_CURSOR_COLOR, Color::RED );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( TextField::Property::PRIMARY_CURSOR_COLOR ), Color::RED, TEST_LOCATION );
-  field.SetProperty( TextField::Property::SECONDARY_CURSOR_COLOR, Color::BLUE );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( TextField::Property::SECONDARY_CURSOR_COLOR ), Color::BLUE, TEST_LOCATION );
-
-  field.SetProperty( TextField::Property::ENABLE_CURSOR_BLINK, false );
-  DALI_TEST_EQUALS( field.GetProperty<bool>( TextField::Property::ENABLE_CURSOR_BLINK ), false, TEST_LOCATION );
-  field.SetProperty( TextField::Property::CURSOR_BLINK_INTERVAL, 1.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::CURSOR_BLINK_INTERVAL ), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  field.SetProperty( TextField::Property::CURSOR_BLINK_DURATION, 10.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::CURSOR_BLINK_DURATION ), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  field.SetProperty( TextField::Property::CURSOR_WIDTH, 1 );
-  DALI_TEST_EQUALS( field.GetProperty<int>( TextField::Property::CURSOR_WIDTH ), 1, TEST_LOCATION );
+  field.SetProperty(TextField::Property::PRIMARY_CURSOR_COLOR, Color::RED);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(TextField::Property::PRIMARY_CURSOR_COLOR), Color::RED, TEST_LOCATION);
+  field.SetProperty(TextField::Property::SECONDARY_CURSOR_COLOR, Color::BLUE);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(TextField::Property::SECONDARY_CURSOR_COLOR), Color::BLUE, TEST_LOCATION);
+
+  field.SetProperty(TextField::Property::ENABLE_CURSOR_BLINK, false);
+  DALI_TEST_EQUALS(field.GetProperty<bool>(TextField::Property::ENABLE_CURSOR_BLINK), false, TEST_LOCATION);
+  field.SetProperty(TextField::Property::CURSOR_BLINK_INTERVAL, 1.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::Property::CURSOR_BLINK_INTERVAL), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  field.SetProperty(TextField::Property::CURSOR_BLINK_DURATION, 10.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::Property::CURSOR_BLINK_DURATION), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  field.SetProperty(TextField::Property::CURSOR_WIDTH, 1);
+  DALI_TEST_EQUALS(field.GetProperty<int>(TextField::Property::CURSOR_WIDTH), 1, TEST_LOCATION);
 
   // Check scroll properties.
-  field.SetProperty( TextField::Property::SCROLL_THRESHOLD, 1.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::SCROLL_THRESHOLD ), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  field.SetProperty( TextField::Property::SCROLL_SPEED, 100.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::SCROLL_SPEED ), 100.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  field.SetProperty(TextField::Property::SCROLL_THRESHOLD, 1.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::Property::SCROLL_THRESHOLD), 1.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  field.SetProperty(TextField::Property::SCROLL_SPEED, 100.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::Property::SCROLL_SPEED), 100.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check handle images
-  field.SetProperty( TextField::Property::GRAB_HANDLE_IMAGE, "image1" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::GRAB_HANDLE_IMAGE ), "image1", TEST_LOCATION );
-  field.SetProperty( TextField::Property::GRAB_HANDLE_PRESSED_IMAGE, "image2" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::GRAB_HANDLE_PRESSED_IMAGE ), "image2", TEST_LOCATION );
-  field.SetProperty( TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, "image3" );
+  field.SetProperty(TextField::Property::GRAB_HANDLE_IMAGE, "image1");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::GRAB_HANDLE_IMAGE), "image1", TEST_LOCATION);
+  field.SetProperty(TextField::Property::GRAB_HANDLE_PRESSED_IMAGE, "image2");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::GRAB_HANDLE_PRESSED_IMAGE), "image2", TEST_LOCATION);
+  field.SetProperty(TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, "image3");
 
   // Check handle images
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( field, TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, "filename", "leftHandleImage" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( field, TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT, "filename", "rightHandleImage" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( field, TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, "filename", "leftHandleImagePressed" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( field, TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, "filename", "rightHandleImagePressed" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( field, TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, "filename", "leftHandleMarkerImage" )  );
-  DALI_TEST_CHECK( SetPropertyMapRetrieved( field, TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, "filename", "rightHandleMarkerImage" )  );
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(field, TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, "filename", "leftHandleImage"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(field, TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT, "filename", "rightHandleImage"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(field, TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, "filename", "leftHandleImagePressed"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(field, TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, "filename", "rightHandleImagePressed"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(field, TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, "filename", "leftHandleMarkerImage"));
+  DALI_TEST_CHECK(SetPropertyMapRetrieved(field, TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, "filename", "rightHandleMarkerImage"));
 
   // Check the highlight color
-  field.SetProperty( TextField::Property::SELECTION_HIGHLIGHT_COLOR, Color::GREEN );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( TextField::Property::SELECTION_HIGHLIGHT_COLOR ), Color::GREEN, TEST_LOCATION );
+  field.SetProperty(TextField::Property::SELECTION_HIGHLIGHT_COLOR, Color::GREEN);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(TextField::Property::SELECTION_HIGHLIGHT_COLOR), Color::GREEN, TEST_LOCATION);
 
   // Decoration bounding box
-  field.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect<int>( 0, 0, 1, 1 ) );
-  DALI_TEST_EQUALS( field.GetProperty<Rect <int > >( TextField::Property::DECORATION_BOUNDING_BOX ), Rect<int>( 0, 0, 1, 1 ), TEST_LOCATION );
+  field.SetProperty(TextField::Property::DECORATION_BOUNDING_BOX, Rect<int>(0, 0, 1, 1));
+  DALI_TEST_EQUALS(field.GetProperty<Rect<int> >(TextField::Property::DECORATION_BOUNDING_BOX), Rect<int>(0, 0, 1, 1), 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;
-  field.SetProperty( TextField::Property::INPUT_METHOD_SETTINGS, propertyMap );
-
-  Property::Value value = field.GetProperty( TextField::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;
+  field.SetProperty(TextField::Property::INPUT_METHOD_SETTINGS, propertyMap);
+
+  Property::Value value = field.GetProperty(TextField::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 input color property.
-  field.SetProperty( TextField::Property::INPUT_COLOR, Color::YELLOW );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( TextField::Property::INPUT_COLOR ), Color::YELLOW, TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_COLOR, Color::YELLOW);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(TextField::Property::INPUT_COLOR), Color::YELLOW, TEST_LOCATION);
 
   // Check the enable markup property.
-  DALI_TEST_CHECK( !field.GetProperty<bool>( TextField::Property::ENABLE_MARKUP ) );
-  field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-  DALI_TEST_CHECK( field.GetProperty<bool>( TextField::Property::ENABLE_MARKUP ) );
+  DALI_TEST_CHECK(!field.GetProperty<bool>(TextField::Property::ENABLE_MARKUP));
+  field.SetProperty(TextField::Property::ENABLE_MARKUP, true);
+  DALI_TEST_CHECK(field.GetProperty<bool>(TextField::Property::ENABLE_MARKUP));
 
   // Check input font properties.
-  field.SetProperty( TextField::Property::INPUT_FONT_FAMILY, "Setting input font family" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::INPUT_FONT_FAMILY ), "Setting input font family", TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_FONT_FAMILY, "Setting input font family");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::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");
 
-  field.SetProperty( TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::Property::INPUT_FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
-  field.SetProperty( TextField::Property::INPUT_POINT_SIZE, 12.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::INPUT_POINT_SIZE ), 12.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_POINT_SIZE, 12.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::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");
 
-  field.SetProperty( TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::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");
 
-  field.SetProperty( TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::INPUT_FONT_STYLE );
+  field.SetProperty(TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::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();
 
-  field.SetProperty( TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::Property::INPUT_FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
+
+  Property::Map strikethroughMapSet;
+  Property::Map strikethroughMapGet;
+
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::RED);
+  strikethroughMapSet.Insert("height", 2.0f);
+
+  // Check the strikethrough property
+  field.SetProperty(DevelTextField::Property::STRIKETHROUGH, strikethroughMapSet);
+
+  strikethroughMapGet = field.GetProperty<Property::Map>(DevelTextField::Property::STRIKETHROUGH);
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapGet, strikethroughMapSet), true, TEST_LOCATION);
+
+  // Check the input strikethrough property
+  field.SetProperty(DevelTextField::Property::INPUT_STRIKETHROUGH, "Strikethrough input properties");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(DevelTextField::Property::INPUT_STRIKETHROUGH), std::string("Strikethrough input properties"), TEST_LOCATION);
 
   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", 2);
+  underlineMapSet.Insert("dashGap", 1);
 
   // Check the underline property
-  field.SetProperty( TextField::Property::UNDERLINE, underlineMapSet );
+  field.SetProperty(TextField::Property::UNDERLINE, underlineMapSet);
 
-  underlineMapGet = field.GetProperty<Property::Map>( TextField::Property::UNDERLINE );
-  DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
+  underlineMapGet = field.GetProperty<Property::Map>(TextField::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
+  field.SetProperty(TextField::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = field.GetProperty<Property::Map>(TextField::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", 4);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 4);
+  underlineMapSet.Insert("dashGap", 2);
+
+  // Check the dashed underline property
+  field.SetProperty(TextField::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = field.GetProperty<Property::Map>(TextField::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();
 
   // Check the input underline property
-  field.SetProperty( TextField::Property::INPUT_UNDERLINE, "Underline input properties" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::INPUT_UNDERLINE ), std::string("Underline input properties"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_UNDERLINE, "Underline input properties");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::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);
 
-  field.SetProperty( TextField::Property::SHADOW, shadowMapSet );
+  field.SetProperty(TextField::Property::SHADOW, shadowMapSet);
 
-  shadowMapGet = field.GetProperty<Property::Map>( TextField::Property::SHADOW );
-  DALI_TEST_EQUALS( shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowMapSet ), true, TEST_LOCATION );
+  shadowMapGet = field.GetProperty<Property::Map>(TextField::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
-  field.SetProperty( TextField::Property::INPUT_SHADOW, "Shadow input properties" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::INPUT_SHADOW ), std::string("Shadow input properties"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_SHADOW, "Shadow input properties");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::INPUT_SHADOW), std::string("Shadow input properties"), TEST_LOCATION);
 
   // Check the emboss property
-  field.SetProperty( TextField::Property::EMBOSS, "Emboss properties" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::EMBOSS ), std::string("Emboss properties"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::EMBOSS, "Emboss properties");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::EMBOSS), std::string("Emboss properties"), TEST_LOCATION);
 
   // Check the input emboss property
-  field.SetProperty( TextField::Property::INPUT_EMBOSS, "Emboss input properties" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::INPUT_EMBOSS ), std::string("Emboss input properties"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_EMBOSS, "Emboss input properties");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::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.
-  field.SetProperty( TextField::Property::OUTLINE, "Outline properties" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::OUTLINE ), std::string("Outline properties"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::OUTLINE, "Outline properties");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::OUTLINE), std::string("Outline properties"), TEST_LOCATION);
 
   // Then test the property map type
   Property::Map outlineMapSet;
@@ -906,150 +985,150 @@ int UtcDaliTextFieldSetPropertyP(void)
   outlineMapSet["color"] = Color::RED;
   outlineMapSet["width"] = 2.0f;
 
-  field.SetProperty( TextField::Property::OUTLINE, outlineMapSet );
+  field.SetProperty(TextField::Property::OUTLINE, outlineMapSet);
 
-  outlineMapGet = field.GetProperty<Property::Map>( TextField::Property::OUTLINE );
-  DALI_TEST_EQUALS( outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( outlineMapGet, outlineMapSet ), true, TEST_LOCATION );
+  outlineMapGet = field.GetProperty<Property::Map>(TextField::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
-  field.SetProperty( TextField::Property::INPUT_OUTLINE, "Outline input properties" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::INPUT_OUTLINE ), std::string("Outline input properties"), TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_OUTLINE, "Outline input properties");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::INPUT_OUTLINE), std::string("Outline input properties"), TEST_LOCATION);
 
   // Check the hidden input settings property
   Property::Map hiddenMapSet;
   Property::Map hiddenMapGet;
-  hiddenMapSet[ HiddenInput::Property::MODE ] = HiddenInput::Mode::HIDE_ALL;
-  hiddenMapSet[ HiddenInput::Property::SHOW_LAST_CHARACTER_DURATION ] = 2;
-  hiddenMapSet[ HiddenInput::Property::SUBSTITUTE_COUNT ] = 4;
-  hiddenMapSet[ HiddenInput::Property::SUBSTITUTE_CHARACTER ] = 0x23;
-  field.SetProperty( TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenMapSet );
+  hiddenMapSet[HiddenInput::Property::MODE]                         = HiddenInput::Mode::HIDE_ALL;
+  hiddenMapSet[HiddenInput::Property::SHOW_LAST_CHARACTER_DURATION] = 2;
+  hiddenMapSet[HiddenInput::Property::SUBSTITUTE_COUNT]             = 4;
+  hiddenMapSet[HiddenInput::Property::SUBSTITUTE_CHARACTER]         = 0x23;
+  field.SetProperty(TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenMapSet);
 
-  hiddenMapGet = field.GetProperty<Property::Map>( TextField::Property::HIDDEN_INPUT_SETTINGS );
-  DALI_TEST_EQUALS( hiddenMapSet.Count(), hiddenMapGet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( hiddenMapSet, hiddenMapGet ), true, TEST_LOCATION );
+  hiddenMapGet = field.GetProperty<Property::Map>(TextField::Property::HIDDEN_INPUT_SETTINGS);
+  DALI_TEST_EQUALS(hiddenMapSet.Count(), hiddenMapGet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(hiddenMapSet, hiddenMapGet), true, TEST_LOCATION);
 
   // Check the pixel size of font
-  field.SetProperty( TextField::Property::PIXEL_SIZE, 20.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::PIXEL_SIZE ), 20.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  field.SetProperty(TextField::Property::PIXEL_SIZE, 20.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::Property::PIXEL_SIZE), 20.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check the enable selection property
-  field.SetProperty( TextField::Property::ENABLE_SELECTION, false );
-  DALI_TEST_EQUALS( field.GetProperty<bool>( TextField::Property::ENABLE_SELECTION ), false, TEST_LOCATION );
+  field.SetProperty(TextField::Property::ENABLE_SELECTION, false);
+  DALI_TEST_EQUALS(field.GetProperty<bool>(TextField::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["ellipsis"] = true;
+  placeholderPixelSizeMapSet["color"]       = Color::BLUE;
+  placeholderPixelSizeMapSet["fontFamily"]  = "Arial";
+  placeholderPixelSizeMapSet["pixelSize"]   = 15.0f;
+  placeholderPixelSizeMapSet["ellipsis"]    = true;
 
-  placeholderFontstyleMap.Insert( "weight", "bold" );
+  placeholderFontstyleMap.Insert("weight", "bold");
   placeholderPixelSizeMapSet["placeholderFontStyle"] = placeholderFontstyleMap;
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderPixelSizeMapSet );
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderPixelSizeMapSet);
 
-  placeholderPixelSizeMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderPixelSizeMapGet.Count(), placeholderPixelSizeMapSet.Count(), TEST_LOCATION );
+  placeholderPixelSizeMapGet = field.GetProperty<Property::Map>(TextField::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["ellipsis"] = false;
+  placeholderMapSet["color"]       = Color::RED;
+  placeholderMapSet["fontFamily"]  = "Arial";
+  placeholderMapSet["pointSize"]   = 12.0f;
+  placeholderMapSet["ellipsis"]    = false;
 
   // 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;
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
 
   placeholderConversionMap.Clear();
-  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::POINT_SIZE ] = placeholderPixelSizeMapSet["pointSize"];
+  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::POINT_SIZE]   = placeholderPixelSizeMapSet["pointSize"];
 
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderConversionMap ), true, TEST_LOCATION );
+  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;
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
 
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderPixelSizeMapSet["fontStyle"];
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderConversionMap ), true, TEST_LOCATION );
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_STYLE] = placeholderPixelSizeMapSet["fontStyle"];
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderConversionMap), true, TEST_LOCATION);
 
   placeholderFontstyleMap.Clear();
-  placeholderFontstyleMap.Insert( "slant", "roman" );
-  placeholderMapSet["fontStyle"] = placeholderFontstyleMap;
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderPixelSizeMapSet["fontStyle"];
+  placeholderFontstyleMap.Insert("slant", "roman");
+  placeholderMapSet["fontStyle"]                                    = placeholderFontstyleMap;
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_STYLE] = placeholderPixelSizeMapSet["fontStyle"];
 
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
 
   placeholderFontstyleMap.Clear();
-  placeholderMapSet["fontStyle"] = placeholderFontstyleMap;
-  placeholderConversionMap[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderPixelSizeMapSet["fontStyle"];
+  placeholderMapSet["fontStyle"]                                    = placeholderFontstyleMap;
+  placeholderConversionMap[Text::PlaceHolder::Property::FONT_STYLE] = placeholderPixelSizeMapSet["fontStyle"];
 
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
 
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderConversionMap ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderConversionMap), true, TEST_LOCATION);
 
   // Check the ellipsis property
-  DALI_TEST_CHECK( !field.GetProperty<bool>( TextField::Property::ELLIPSIS ) );
-  field.SetProperty( TextField::Property::ELLIPSIS, true );
-  DALI_TEST_CHECK( field.GetProperty<bool>( TextField::Property::ELLIPSIS ) );
+  DALI_TEST_CHECK(!field.GetProperty<bool>(TextField::Property::ELLIPSIS));
+  field.SetProperty(TextField::Property::ELLIPSIS, true);
+  DALI_TEST_CHECK(field.GetProperty<bool>(TextField::Property::ELLIPSIS));
 
-  field.SetProperty( Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT );
-  DALI_TEST_EQUALS( field.GetProperty<int>( Actor::Property::LAYOUT_DIRECTION ), static_cast<int>( LayoutDirection::RIGHT_TO_LEFT ), TEST_LOCATION );
+  field.SetProperty(Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT);
+  DALI_TEST_EQUALS(field.GetProperty<int>(Actor::Property::LAYOUT_DIRECTION), static_cast<int>(LayoutDirection::RIGHT_TO_LEFT), TEST_LOCATION);
 
   // Test the ENABLE_GRAB_HANDLE_POPUP property
-  DALI_TEST_CHECK( field.GetProperty<bool>( DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP ) );
-  field.SetProperty( DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP, false );
-  DALI_TEST_CHECK( !field.GetProperty<bool>( DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP ) );
+  DALI_TEST_CHECK(field.GetProperty<bool>(DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP));
+  field.SetProperty(DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP, false);
+  DALI_TEST_CHECK(!field.GetProperty<bool>(DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP));
 
   // Check the background property
-  field.SetProperty( DevelTextField::Property::BACKGROUND, Color::RED );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( DevelTextField::Property::BACKGROUND ), Color::RED, TEST_LOCATION );
+  field.SetProperty(DevelTextField::Property::BACKGROUND, Color::RED);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(DevelTextField::Property::BACKGROUND), Color::RED, TEST_LOCATION);
 
   //Check handle color
-  field.SetProperty( DevelTextField::Property::GRAB_HANDLE_COLOR, Color::GREEN );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( DevelTextField::Property::GRAB_HANDLE_COLOR ), Color::GREEN, TEST_LOCATION );
+  field.SetProperty(DevelTextField::Property::GRAB_HANDLE_COLOR, Color::GREEN);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(DevelTextField::Property::GRAB_HANDLE_COLOR), Color::GREEN, TEST_LOCATION);
 
   // Check the input filter property
   Property::Map inputFilterMapSet;
@@ -1080,22 +1159,22 @@ int utcDaliTextFieldAtlasRenderP(void)
   StyleManager styleManager = StyleManager::Get();
   styleManager.ApplyDefaultTheme();
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+  field.SetProperty(TextField::Property::HORIZONTAL_ALIGNMENT, "CENTER");
 
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   try
   {
     // Render some text with the shared atlas backend
-    field.SetProperty( DevelTextField::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS );
+    field.SetProperty(DevelTextField::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS);
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1186,7 +1265,6 @@ int utcDaliTextFieldAnchorClicked02(void)
   DALI_TEST_CHECK(gAnchorClickedCallBackCalled);
   DALI_TEST_CHECK(anchorClickedSignal);
 
-
   // For coverage InsertTextAnchor, RemoveTextAnchor
   // first index insert
   field.SetProperty(TextField::Property::TEXT, "<a href='https://www.tizen.org'>TIZEN</a>");
@@ -1194,7 +1272,7 @@ int utcDaliTextFieldAnchorClicked02(void)
   application.SendNotification();
   application.Render();
 
-  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));
   application.SendNotification();
   application.Render();
 
@@ -1212,7 +1290,7 @@ int utcDaliTextFieldAnchorClicked02(void)
   application.SendNotification();
   application.Render();
 
-  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));
   application.SendNotification();
   application.Render();
 
@@ -1230,7 +1308,7 @@ int utcDaliTextFieldAnchorClicked02(void)
   application.SendNotification();
   application.Render();
 
-  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));
   application.SendNotification();
   application.Render();
 
@@ -1301,8 +1379,8 @@ int utcDaliTextFieldAnchorClicked02(void)
 
   // 0 ~ 1 index remove
   field.SetProperty(TextField::Property::TEXT, "<a href='https://www.tizen.org'>TIZEN</a>");
-  field.SetProperty( DevelTextField::Property::SELECTED_TEXT_START, 0);
-  field.SetProperty( DevelTextField::Property::SELECTED_TEXT_END, 1);
+  field.SetProperty(DevelTextField::Property::SELECTED_TEXT_START, 0);
+  field.SetProperty(DevelTextField::Property::SELECTED_TEXT_END, 1);
   application.SendNotification();
   application.Render();
 
@@ -1320,8 +1398,8 @@ int utcDaliTextFieldAnchorClicked02(void)
 
   // 1 ~ 3 index remove
   field.SetProperty(TextField::Property::TEXT, "<a href='https://www.tizen.org'>TIZEN</a>");
-  field.SetProperty( DevelTextField::Property::SELECTED_TEXT_START, 1);
-  field.SetProperty( DevelTextField::Property::SELECTED_TEXT_END, 3);
+  field.SetProperty(DevelTextField::Property::SELECTED_TEXT_START, 1);
+  field.SetProperty(DevelTextField::Property::SELECTED_TEXT_END, 3);
   application.SendNotification();
   application.Render();
 
@@ -1339,8 +1417,8 @@ int utcDaliTextFieldAnchorClicked02(void)
 
   // 3 ~ 4 index remove
   field.SetProperty(TextField::Property::TEXT, "<a href='https://www.tizen.org'>TIZEN</a>");
-  field.SetProperty( DevelTextField::Property::SELECTED_TEXT_START, 3);
-  field.SetProperty( DevelTextField::Property::SELECTED_TEXT_END, 4);
+  field.SetProperty(DevelTextField::Property::SELECTED_TEXT_START, 3);
+  field.SetProperty(DevelTextField::Property::SELECTED_TEXT_END, 4);
   application.SendNotification();
   application.Render();
 
@@ -1405,40 +1483,40 @@ int utcDaliTextFieldTextChangedP(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextFieldTextChangedP");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   field.TextChangedSignal().Connect(&TestTextChangedCallback);
   bool textChangedSignal = false;
-  field.ConnectSignal( testTracker, "textChanged",   CallbackFunctor(&textChangedSignal) );
+  field.ConnectSignal(testTracker, "textChanged", CallbackFunctor(&textChangedSignal));
 
   gTextChangedCallBackCalled = false;
-  field.SetProperty( TextField::Property::TEXT, "ABC" );
-  DALI_TEST_CHECK( gTextChangedCallBackCalled );
-  DALI_TEST_CHECK( textChangedSignal );
+  field.SetProperty(TextField::Property::TEXT, "ABC");
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_CHECK(textChangedSignal);
 
   application.SendNotification();
   field.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
-  field.SetProperty( TextField::Property::TEXT, "" );
+  field.SetProperty(TextField::Property::TEXT, "");
 
   // Pressing backspace key: TextChangedCallback should not be called when there is no text in textfield.
   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 textfield.
   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;
 }
@@ -1448,95 +1526,92 @@ int utcDaliTextFieldTextChangedWithInputMethodContext(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextFieldTextChangedWithInputMethodContext");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   field.TextChangedSignal().Connect(&TestTextChangedCallback);
   bool textChangedSignal = false;
-  field.ConnectSignal( testTracker, "textChanged",   CallbackFunctor(&textChangedSignal) );
-
+  field.ConnectSignal(testTracker, "textChanged", CallbackFunctor(&textChangedSignal));
 
   // get InputMethodContext
-  std::string text;
+  std::string                   text;
   InputMethodContext::EventData imfEvent;
-  InputMethodContext inputMethodContext = DevelTextField::GetInputMethodContext( field );
+  InputMethodContext            inputMethodContext = DevelTextField::GetInputMethodContext(field);
 
   field.SetKeyInputFocus();
-  field.SetProperty( DevelTextField::Property::ENABLE_EDITING, true );
+  field.SetProperty(DevelTextField::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( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("ㅎ"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::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( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("호"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::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( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("혿"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::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( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("호두"), TEST_LOCATION );
+  DALI_TEST_CHECK(gTextChangedCallBackCalled);
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), std::string("호두"), TEST_LOCATION);
 
   END_TEST;
 }
 
-
 // Negative test for the textChanged signal.
 int utcDaliTextFieldTextChangedN(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextFieldTextChangedN");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // connect to the text changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   field.TextChangedSignal().Connect(&TestTextChangedCallback);
   bool textChangedSignal = false;
-  field.ConnectSignal( testTracker, "textChanged",   CallbackFunctor(&textChangedSignal) );
+  field.ConnectSignal(testTracker, "textChanged", CallbackFunctor(&textChangedSignal));
 
   gTextChangedCallBackCalled = false;
-  field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "ABC" ); // Setting placeholder, not TEXT
+  field.SetProperty(TextField::Property::PLACEHOLDER_TEXT, "ABC"); // Setting placeholder, not TEXT
   application.SendNotification();
   application.Render();
-  DALI_TEST_CHECK( !gTextChangedCallBackCalled );
-  DALI_TEST_CHECK( !textChangedSignal );
+  DALI_TEST_CHECK(!gTextChangedCallBackCalled);
+  DALI_TEST_CHECK(!textChangedSignal);
 
   END_TEST;
 }
@@ -1547,12 +1622,12 @@ int utcDaliTextFieldMaxCharactersReachedP(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextFieldMaxCharactersReachedP");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   const int maxNumberOfCharacters = 1;
-  field.SetProperty( TextField::Property::MAX_LENGTH, maxNumberOfCharacters );
+  field.SetProperty(TextField::Property::MAX_LENGTH, maxNumberOfCharacters);
 
   field.SetKeyInputFocus();
 
@@ -1560,15 +1635,15 @@ int utcDaliTextFieldMaxCharactersReachedP(void)
   ConnectionTracker* testTracker = new ConnectionTracker();
   field.MaxLengthReachedSignal().Connect(&TestMaxLengthReachedCallback);
   bool maxLengthReachedSignal = false;
-  field.ConnectSignal( testTracker, "maxLengthReached",   CallbackFunctor(&maxLengthReachedSignal) );
+  field.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;
 }
@@ -1579,12 +1654,12 @@ int utcDaliTextFieldMaxCharactersReachedN(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextFieldMaxCharactersReachedN");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   const int maxNumberOfCharacters = 3;
-  field.SetProperty( TextField::Property::MAX_LENGTH, maxNumberOfCharacters );
+  field.SetProperty(TextField::Property::MAX_LENGTH, maxNumberOfCharacters);
 
   field.SetKeyInputFocus();
 
@@ -1592,20 +1667,20 @@ int utcDaliTextFieldMaxCharactersReachedN(void)
   ConnectionTracker* testTracker = new ConnectionTracker();
   field.MaxLengthReachedSignal().Connect(&TestMaxLengthReachedCallback);
   bool maxLengthReachedSignal = false;
-  field.ConnectSignal( testTracker, "maxLengthReached",   CallbackFunctor(&maxLengthReachedSignal) );
+  field.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);
 
-  application.ProcessEvent( GenerateKey( "Return", "", "\r", KEY_RETURN_CODE, 0, 0, Integration::KeyEvent::DOWN, "\r", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("Return", "", "\r", KEY_RETURN_CODE, 0, 0, Integration::KeyEvent::DOWN, "\r", 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;
 }
@@ -1638,7 +1713,7 @@ int utcDaliTextFieldInputFilteredP(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);
@@ -1652,10 +1727,10 @@ int utcDaliTextFieldInputFilteredP(void)
 
   field.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);
@@ -1698,8 +1773,8 @@ int utcDaliTextFieldInputFilteredN(void)
   application.ProcessEvent(GenerateKey("d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::UP, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Backspace, Delete should not be filtered.
-  application.ProcessEvent(GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
-  application.ProcessEvent(GenerateKey( "Delete", "", "Delete", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", 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("Delete", "", "Delete", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -1716,7 +1791,7 @@ int utcDaliTextFieldInputFilteredN(void)
 
   field.SetKeyInputFocus();
 
-  inputFilteredSignal = false;
+  inputFilteredSignal                  = false;
   gInputFilteredRejectedCallbackCalled = false;
 
   // Key a, d should not be filtered.
@@ -1726,8 +1801,8 @@ int utcDaliTextFieldInputFilteredN(void)
   application.ProcessEvent(GenerateKey("d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::UP, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Backspace, Delete should not be filtered.
-  application.ProcessEvent(GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
-  application.ProcessEvent(GenerateKey( "Delete", "", "Delete", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", 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("Delete", "", "Delete", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
@@ -1751,34 +1826,33 @@ int utcDaliTextFieldInputStyleChanged01(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);
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-
+  DALI_TEST_CHECK(field);
 
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
-  field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-  field.SetProperty( TextField::Property::TEXT, "<font family='DejaVuSerif' size='18'>He<color value='green'>llo</color> <font weight='bold'>world</font> demo</font>" );
+  field.SetProperty(TextField::Property::ENABLE_MARKUP, true);
+  field.SetProperty(TextField::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();
-  field.InputStyleChangedSignal().Connect( &TestInputStyleChangedCallback );
+  field.InputStyleChangedSignal().Connect(&TestInputStyleChangedCallback);
   bool inputStyleChangedSignal = false;
-  field.ConnectSignal( testTracker, "inputStyleChanged",   CallbackFunctor(&inputStyleChangedSignal) );
+  field.ConnectSignal(testTracker, "inputStyleChanged", CallbackFunctor(&inputStyleChangedSignal));
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // Render and notify
   application.SendNotification();
@@ -1788,11 +1862,11 @@ int utcDaliTextFieldInputStyleChanged01(void)
   application.RunIdles();
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 18.0f, 25.0f );
+  TestGenerateTap(application, 18.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1801,25 +1875,25 @@ int utcDaliTextFieldInputStyleChanged01(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>( TextField::InputStyle::FONT_FAMILY | TextField::InputStyle::POINT_SIZE ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextField::InputStyle::FONT_FAMILY | TextField::InputStyle::POINT_SIZE), TEST_LOCATION);
 
-    const std::string fontFamily = field.GetProperty( TextField::Property::INPUT_FONT_FAMILY ).Get<std::string>();
-    DALI_TEST_EQUALS( fontFamily, "DejaVuSerif", TEST_LOCATION );
+    const std::string fontFamily = field.GetProperty(TextField::Property::INPUT_FONT_FAMILY).Get<std::string>();
+    DALI_TEST_EQUALS(fontFamily, "DejaVuSerif", TEST_LOCATION);
 
-    const float pointSize = field.GetProperty( TextField::Property::INPUT_POINT_SIZE ).Get<float>();
-    DALI_TEST_EQUALS( pointSize, 18.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+    const float pointSize = field.GetProperty(TextField::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 = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 30.0f, 25.0f );
+  TestGenerateTap(application, 30.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1828,15 +1902,15 @@ int utcDaliTextFieldInputStyleChanged01(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 = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 43.0f, 25.0f );
+  TestGenerateTap(application, 43.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1845,22 +1919,22 @@ int utcDaliTextFieldInputStyleChanged01(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>( TextField::InputStyle::COLOR ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextField::InputStyle::COLOR), TEST_LOCATION);
 
-    const Vector4 color = field.GetProperty( TextField::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::GREEN, TEST_LOCATION );
+    const Vector4 color = field.GetProperty(TextField::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::GREEN, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 88.0f, 25.0f );
+  TestGenerateTap(application, 88.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1869,30 +1943,30 @@ int utcDaliTextFieldInputStyleChanged01(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>( TextField::InputStyle::COLOR | TextField::InputStyle::FONT_STYLE ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextField::InputStyle::COLOR | TextField::InputStyle::FONT_STYLE), TEST_LOCATION);
 
-    const Vector4 color = field.GetProperty( TextField::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::BLACK, TEST_LOCATION );
+    const Vector4 color = field.GetProperty(TextField::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLACK, TEST_LOCATION);
 
-    const Property::Map fontStyleMapGet = field.GetProperty( TextField::Property::INPUT_FONT_STYLE ).Get<Property::Map>();
+    const Property::Map fontStyleMapGet = field.GetProperty(TextField::Property::INPUT_FONT_STYLE).Get<Property::Map>();
 
     Property::Map fontStyleMapSet;
-    fontStyleMapSet.Insert( "weight", "bold" );
+    fontStyleMapSet.Insert("weight", "bold");
 
-    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);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 115.0f, 25.0f );
+  TestGenerateTap(application, 115.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1901,15 +1975,15 @@ int utcDaliTextFieldInputStyleChanged01(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 = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 164.0f, 25.0f );
+  TestGenerateTap(application, 164.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1918,22 +1992,22 @@ int utcDaliTextFieldInputStyleChanged01(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>( TextField::InputStyle::FONT_STYLE ), TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask), static_cast<unsigned int>(TextField::InputStyle::FONT_STYLE), TEST_LOCATION);
 
-    const std::string style = field.GetProperty( TextField::Property::INPUT_FONT_STYLE ).Get<std::string>();
-    DALI_TEST_CHECK( style.empty() );
+    const std::string style = field.GetProperty(TextField::Property::INPUT_FONT_STYLE).Get<std::string>();
+    DALI_TEST_CHECK(style.empty());
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 191.0f, 25.0f );
+  TestGenerateTap(application, 191.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -1942,8 +2016,8 @@ int utcDaliTextFieldInputStyleChanged01(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;
 }
@@ -1960,33 +2034,33 @@ int utcDaliTextFieldInputStyleChanged02(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);
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
-  field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-  field.SetProperty( TextField::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>" );
+  field.SetProperty(TextField::Property::ENABLE_MARKUP, true);
+  field.SetProperty(TextField::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();
-  field.InputStyleChangedSignal().Connect( &TestInputStyleChangedCallback );
+  field.InputStyleChangedSignal().Connect(&TestInputStyleChangedCallback);
   bool inputStyleChangedSignal = false;
-  field.ConnectSignal( testTracker, "inputStyleChanged",   CallbackFunctor(&inputStyleChangedSignal) );
+  field.ConnectSignal(testTracker, "inputStyleChanged", CallbackFunctor(&inputStyleChangedSignal));
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // Render and notify
   application.SendNotification();
@@ -1996,12 +2070,12 @@ int utcDaliTextFieldInputStyleChanged02(void)
   application.RunIdles();
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
   // Create a tap event to touch the text field.
-  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();
@@ -2010,31 +2084,31 @@ int utcDaliTextFieldInputStyleChanged02(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>( TextField::InputStyle::FONT_FAMILY |
-                                                 TextField::InputStyle::POINT_SIZE  |
-                                                 TextField::InputStyle::COLOR ),
-                      TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextField::InputStyle::FONT_FAMILY |
+                                               TextField::InputStyle::POINT_SIZE |
+                                               TextField::InputStyle::COLOR),
+                     TEST_LOCATION);
 
-    const Vector4 color = field.GetProperty( TextField::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::GREEN, TEST_LOCATION );
+    const Vector4 color = field.GetProperty(TextField::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::GREEN, TEST_LOCATION);
 
-    const std::string fontFamily = field.GetProperty( TextField::Property::INPUT_FONT_FAMILY ).Get<std::string>();
-    DALI_TEST_EQUALS( fontFamily, "DejaVuSerif", TEST_LOCATION );
+    const std::string fontFamily = field.GetProperty(TextField::Property::INPUT_FONT_FAMILY).Get<std::string>();
+    DALI_TEST_EQUALS(fontFamily, "DejaVuSerif", TEST_LOCATION);
 
-    const float pointSize = field.GetProperty( TextField::Property::INPUT_POINT_SIZE ).Get<float>();
-    DALI_TEST_EQUALS( pointSize, 18.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+    const float pointSize = field.GetProperty(TextField::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 = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::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();
@@ -2043,23 +2117,23 @@ int utcDaliTextFieldInputStyleChanged02(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>( TextField::InputStyle::COLOR ),
-                      TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextField::InputStyle::COLOR),
+                     TEST_LOCATION);
 
-    const Vector4 color = field.GetProperty( TextField::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::BLUE, TEST_LOCATION );
+    const Vector4 color = field.GetProperty(TextField::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLUE, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::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();
@@ -2068,14 +2142,14 @@ int utcDaliTextFieldInputStyleChanged02(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 = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::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();
@@ -2084,36 +2158,37 @@ int utcDaliTextFieldInputStyleChanged02(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>( TextField::InputStyle::COLOR ),
-                      TEST_LOCATION );
+    DALI_TEST_EQUALS(static_cast<unsigned int>(gInputStyleMask),
+                     static_cast<unsigned int>(TextField::InputStyle::COLOR),
+                     TEST_LOCATION);
 
-    const Vector4 color = field.GetProperty( TextField::Property::INPUT_COLOR ).Get<Vector4>();
-    DALI_TEST_EQUALS( color, Color::BLACK, TEST_LOCATION );
+    const Vector4 color = field.GetProperty(TextField::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLACK, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   gInputStyleChangedCallbackCalled = false;
-  gInputStyleMask = TextField::InputStyle::NONE;
-  inputStyleChangedSignal = false;
+  gInputStyleMask                  = TextField::InputStyle::NONE;
+  inputStyleChangedSignal          = false;
 
-  field.SetProperty( TextField::Property::INPUT_COLOR, Color::YELLOW );
+  field.SetProperty(TextField::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");
 
-  field.SetProperty( TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet );
-  field.SetProperty( TextField::Property::INPUT_POINT_SIZE, 20.f );
+  field.SetProperty(TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet);
+  field.SetProperty(TextField::Property::INPUT_POINT_SIZE, 20.f);
 
-  field.SetProperty( TextField::Property::INPUT_UNDERLINE, "underline" );
-  field.SetProperty( TextField::Property::INPUT_SHADOW, "shadow" );
-  field.SetProperty( TextField::Property::INPUT_EMBOSS, "emboss" );
-  field.SetProperty( TextField::Property::INPUT_OUTLINE, "outline" );
+  field.SetProperty(TextField::Property::INPUT_UNDERLINE, "underline");
+  field.SetProperty(TextField::Property::INPUT_SHADOW, "shadow");
+  field.SetProperty(TextField::Property::INPUT_EMBOSS, "emboss");
+  field.SetProperty(TextField::Property::INPUT_OUTLINE, "outline");
+  field.SetProperty(DevelTextField::Property::INPUT_STRIKETHROUGH, "strikethrough");
 
   // Render and notify
   application.SendNotification();
@@ -2122,11 +2197,11 @@ int utcDaliTextFieldInputStyleChanged02(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 field.
-  TestGenerateTap( application, 63.0f, 25.0f, 700 );
+  TestGenerateTap(application, 63.0f, 25.0f, 700);
 
   // Render and notify
   application.SendNotification();
@@ -2135,23 +2210,23 @@ int utcDaliTextFieldInputStyleChanged02(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>( TextField::InputStyle::COLOR |
-                                                 TextField::InputStyle::POINT_SIZE |
-                                                 TextField::InputStyle::FONT_STYLE |
-                                                 TextField::InputStyle::UNDERLINE |
-                                                 TextField::InputStyle::SHADOW |
-                                                 TextField::InputStyle::EMBOSS |
-                                                 TextField::InputStyle::OUTLINE ),
-                      TEST_LOCATION );
-
-    const Vector4 color = field.GetProperty( TextField::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>(TextField::InputStyle::COLOR |
+                                               TextField::InputStyle::POINT_SIZE |
+                                               TextField::InputStyle::FONT_STYLE |
+                                               TextField::InputStyle::UNDERLINE |
+                                               TextField::InputStyle::SHADOW |
+                                               TextField::InputStyle::EMBOSS |
+                                               TextField::InputStyle::OUTLINE),
+                     TEST_LOCATION);
+
+    const Vector4 color = field.GetProperty(TextField::Property::INPUT_COLOR).Get<Vector4>();
+    DALI_TEST_EQUALS(color, Color::BLACK, TEST_LOCATION);
   }
-  DALI_TEST_CHECK( inputStyleChangedSignal );
+  DALI_TEST_CHECK(inputStyleChangedSignal);
 
   END_TEST;
 }
@@ -2165,88 +2240,88 @@ int utcDaliTextFieldEvent01(void)
   // have the focus and add text with key events should be possible.
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // 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 field 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( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string(""), TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), std::string(""), TEST_LOCATION);
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Pressing delete key should be fine even if there is no text in TextField.
-  application.ProcessEvent( GenerateKey( "Delete", "", "Delete", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("Delete", "", "Delete", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Now the text field 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( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("aa"), TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), std::string("aa"), TEST_LOCATION);
 
   // Create a second text field and send key events to it.
   TextField field2 = TextField::New();
 
-  field2.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field2.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  field2.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) );
-  field2.SetProperty( Actor::Property::POSITION, Vector2( 100.0f, 100.0f ));
+  field2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  field2.SetProperty(Actor::Property::SIZE, Vector2(100.f, 100.f));
+  field2.SetProperty(Actor::Property::POSITION, Vector2(100.0f, 100.0f));
 
-  application.GetScene().Add( field2 );
+  application.GetScene().Add(field2);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Create a tap event on the second text field.
-  TestGenerateTap( application, 150.0f, 125.0f );
+  TestGenerateTap(application, 150.0f, 125.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The second text field 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 field.
-  DALI_TEST_EQUALS( field2.GetProperty<std::string>( TextField::Property::TEXT ), std::string("aa"), TEST_LOCATION );
+  DALI_TEST_EQUALS(field2.GetProperty<std::string>(TextField::Property::TEXT), std::string("aa"), TEST_LOCATION);
 
   END_TEST;
 }
@@ -2259,145 +2334,144 @@ int utcDaliTextFieldEvent02(void)
   // Checks if the right number of actors are created.
 
   TextField field = TextField::New();
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  DALI_TEST_CHECK( field );
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  DALI_TEST_CHECK(field);
   LoadMarkerImages(application, field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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 ( stencil ).
-  DALI_TEST_EQUALS( field.GetChildCount(), 1u, TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetChildCount(), 1u, TEST_LOCATION);
 
-  Actor stencil = field.GetChildAt( 0u );
-  DALI_TEST_EQUALS( stencil.GetChildCount(), 0u, TEST_LOCATION );
+  Actor stencil = field.GetChildAt(0u);
+  DALI_TEST_EQUALS(stencil.GetChildCount(), 0u, TEST_LOCATION);
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f, 300 );
+  TestGenerateTap(application, 150.0f, 25.0f, 300);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Actor layer = field.GetChildAt( 1u );
-  DALI_TEST_EQUALS( layer.GetChildCount(), 1u, TEST_LOCATION ); // The cursor.
-  DALI_TEST_EQUALS( stencil.GetChildCount(), 0u, TEST_LOCATION );
+  Actor layer = field.GetChildAt(1u);
+  DALI_TEST_EQUALS(layer.GetChildCount(), 1u, TEST_LOCATION); // The cursor.
+  DALI_TEST_EQUALS(stencil.GetChildCount(), 0u, TEST_LOCATION);
 
   // Now the text field 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(), 1u, TEST_LOCATION); // The renderer
 
-  Control cursor = Control::DownCast( layer.GetChildAt( 0u ) );
-  DALI_TEST_CHECK( cursor );
+  Control cursor = Control::DownCast(layer.GetChildAt(0u));
+  DALI_TEST_CHECK(cursor);
 
   // The offscreen root 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 );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  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));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Vector3 position2 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
-  DALI_TEST_CHECK( position2.x < position1.x );
+  Vector3 position2 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
+  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));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Vector3 position3 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
-  DALI_TEST_EQUALS( position1, position3, TEST_LOCATION ); // Should be in the same position1.
-
+  Vector3 position3 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
+  DALI_TEST_EQUALS(position1, position3, TEST_LOCATION); // Should be in the same position1.
 
   // Move the cursor to the first 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 position4 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position4 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
   // Send some taps and check the cursor positions.
 
   // Try to tap at the beginning.
-  TestGenerateTap( application, 1.0f, 25.0f, 900 );
+  TestGenerateTap(application, 1.0f, 25.0f, 900);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Cursor position should be the same than position1.
-  Vector3 position5 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position5 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_EQUALS( position4, position5, TEST_LOCATION ); // Should be in the same position2.
+  DALI_TEST_EQUALS(position4, position5, TEST_LOCATION); // Should be in the same position2.
 
   // Tap away from the start position.
-  TestGenerateTap( application, 16.0f, 25.0f, 1500 );
+  TestGenerateTap(application, 16.0f, 25.0f, 1500);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Vector3 position6 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position6 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_CHECK( position6.x > position5.x );
+  DALI_TEST_CHECK(position6.x > position5.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 ) );
-  field.SetProperty( TextField::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));
+  field.SetProperty(TextField::Property::TEXT, "");
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Cursor position should be the same than position2.
-  Vector3 position7 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION );
+  Vector3 position7 = cursor.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
 
-  DALI_TEST_EQUALS( position4, position7, TEST_LOCATION );// Should be in the same position2.
+  DALI_TEST_EQUALS(position4, position7, TEST_LOCATION); // Should be in the same position2.
 
   // Should not be a renderer.
-  DALI_TEST_EQUALS( stencil.GetChildCount(), 0u, TEST_LOCATION );
+  DALI_TEST_EQUALS(stencil.GetChildCount(), 0u, TEST_LOCATION);
 
   // Chanege exceed policy (EXCEED_POLICY_ORIGINAL doesn't use stencil )
-  field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
-  field.SetProperty( TextField::Property::EXCEED_POLICY, Dali::Toolkit::TextField::EXCEED_POLICY_ORIGINAL );
+  field.SetProperty(TextField::Property::TEXT, "This is a long text for the size of the text-field.");
+  field.SetProperty(TextField::Property::EXCEED_POLICY, Dali::Toolkit::TextField::EXCEED_POLICY_ORIGINAL);
 
   application.SendNotification();
   application.Render();
 
   // There are renderer and decorator layer
-  DALI_TEST_EQUALS( field.GetChildCount(), 2u, TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetChildCount(), 2u, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2410,18 +2484,18 @@ int utcDaliTextFieldEvent03(void)
   // Checks if the highlight actor is created.
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 30.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "This is a long text for the size of the text-field.");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(30.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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);
   LoadMarkerImages(application, field);
 
   // Render and notify
@@ -2429,32 +2503,32 @@ int utcDaliTextFieldEvent03(void)
   application.Render();
 
   // Tap first to get the focus.
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Double tap to select a word.
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The offscreen root actor should have two actors: the renderer and the highlight actor.
-  Actor stencil = field.GetChildAt( 0u );
+  Actor stencil = field.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);
 
   // The offscreen root 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);
   }
 
   END_TEST;
@@ -2468,48 +2542,47 @@ int utcDaliTextFieldEvent04(void)
   // Checks if the highlight actor is created.
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "This is a long text for the size of the text-field.");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-
   // Tap first to get the focus.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Double tap to select a word.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap grab handle
-  TestGenerateTap( application, 0.0f, 40.0f );
+  TestGenerateTap(application, 0.0f, 40.0f);
   END_TEST;
 }
 
@@ -2521,46 +2594,46 @@ int utcDaliTextFieldEvent05(void)
   // Checks dragging of cursor/grab handle
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "This is a long text for the size of the text-field.");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap first to get the focus.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Double tap to select a word.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  Actor stencil = field.GetChildAt( 1u );
+  Actor stencil = field.GetChildAt(1u);
   END_TEST;
 }
 
@@ -2572,34 +2645,33 @@ int utcDaliTextFieldEvent06(void)
   // Checks Longpress when in edit mode
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::TEXT, "Thisisalongtextforthesizeofthetextfield." );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "Thisisalongtextforthesizeofthetextfield.");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-
   // Tap first to get the focus.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -2623,24 +2695,24 @@ int utcDaliTextFieldEvent07(void)
   // Checks Longpress to start edit mode
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::TEXT, "Thisisalongtextforthesizeofthetextfield." );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "Thisisalongtextforthesizeofthetextfield.");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
   Property::Map propertyMap;
   propertyMap["PANEL_LAYOUT"] = InputMethod::PanelLayout::PASSWORD;
-  field.SetProperty( TextField::Property::INPUT_METHOD_SETTINGS, propertyMap );
+  field.SetProperty(TextField::Property::INPUT_METHOD_SETTINGS, propertyMap);
 
   // 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();
@@ -2666,27 +2738,27 @@ int utcDaliTextFieldEvent08(void)
   // Checks Longpress when only place holder text
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Setting Placeholder Text" );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::PLACEHOLDER_TEXT, "Setting Placeholder Text");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
 
   // Long Press
-  TestGenerateLongPress( application, 1.0f, 25.0f, 20 );
+  TestGenerateLongPress(application, 1.0f, 25.0f, 20);
 
   // Render and notify
   application.SendNotification();
@@ -2694,10 +2766,10 @@ int utcDaliTextFieldEvent08(void)
 
   Wait(application, 500);
 
-  TestEndLongPress( application, 1.0f, 25.0f, 520 );
+  TestEndLongPress(application, 1.0f, 25.0f, 520);
 
   // Long Press
-  TestGenerateLongPress( application, 1.0f, 25.0f, 600 );
+  TestGenerateLongPress(application, 1.0f, 25.0f, 600);
 
   // Render and notify
   application.Render();
@@ -2705,25 +2777,25 @@ int utcDaliTextFieldEvent08(void)
   Wait(application, 500);
 
   Integration::Scene stage = application.GetScene();
-  Layer layer = stage.GetRootLayer();
-  Actor actor = layer.FindChildByName("optionPaste");
+  Layer              layer = stage.GetRootLayer();
+  Actor              actor = layer.FindChildByName("optionPaste");
 
-  if (actor)
+  if(actor)
   {
-    Vector3 worldPosition = actor.GetCurrentProperty< Vector3 >( Actor::Property::WORLD_POSITION );
+    Vector3 worldPosition = actor.GetCurrentProperty<Vector3>(Actor::Property::WORLD_POSITION);
     Vector2 halfStageSize = stage.GetSize() / 2.0f;
     Vector2 position(worldPosition.x + halfStageSize.width, worldPosition.y + halfStageSize.height);
 
     Dali::Integration::TouchEvent event;
     event = Dali::Integration::TouchEvent();
-    event.AddPoint( GetPointDownInside( position ) );
-    application.ProcessEvent( event );
+    event.AddPoint(GetPointDownInside(position));
+    application.ProcessEvent(event);
 
     event = Dali::Integration::TouchEvent();
-    event.AddPoint( GetPointUpInside( position ) );
-    application.ProcessEvent( event );
+    event.AddPoint(GetPointUpInside(position));
+    application.ProcessEvent(event);
   }
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextEditor::Property::TEXT ), std::string("testTextFieldEvent"), TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextEditor::Property::TEXT), std::string("testTextFieldEvent"), TEST_LOCATION);
 
   END_TEST;
 }
@@ -2734,85 +2806,84 @@ int utcDaliTextFieldEvent09(void)
   tet_infoline(" utcDaliTextFieldEvent09");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::TEXT, "Hello" );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "Hello");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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);
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
   application.SendNotification();
   application.Render();
 
   Property::Map map;
-  map[ HiddenInput::Property::MODE ] = HiddenInput::Mode::HIDE_NONE;
-  field.SetProperty( TextField::Property::HIDDEN_INPUT_SETTINGS, map );
-  application.ProcessEvent( GenerateKey( "d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  map[HiddenInput::Property::MODE] = HiddenInput::Mode::HIDE_NONE;
+  field.SetProperty(TextField::Property::HIDDEN_INPUT_SETTINGS, map);
+  application.ProcessEvent(GenerateKey("d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  map[ HiddenInput::Property::MODE ] = HiddenInput::Mode::HIDE_ALL;
-  map[ HiddenInput::Property::SUBSTITUTE_CHARACTER ] = 0x23;
-  field.SetProperty( TextField::Property::HIDDEN_INPUT_SETTINGS, map );
-  application.ProcessEvent( GenerateKey( "d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  map[HiddenInput::Property::MODE]                 = HiddenInput::Mode::HIDE_ALL;
+  map[HiddenInput::Property::SUBSTITUTE_CHARACTER] = 0x23;
+  field.SetProperty(TextField::Property::HIDDEN_INPUT_SETTINGS, map);
+  application.ProcessEvent(GenerateKey("d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  map[ HiddenInput::Property::MODE ] = HiddenInput::Mode::HIDE_COUNT;
-  map[ HiddenInput::Property::SUBSTITUTE_COUNT ] = 2;
-  field.SetProperty( TextField::Property::HIDDEN_INPUT_SETTINGS, map );
-  for( unsigned int index = 0u; index < 5u; ++index )
+  map[HiddenInput::Property::MODE]             = HiddenInput::Mode::HIDE_COUNT;
+  map[HiddenInput::Property::SUBSTITUTE_COUNT] = 2;
+  field.SetProperty(TextField::Property::HIDDEN_INPUT_SETTINGS, map);
+  for(unsigned int index = 0u; index < 5u; ++index)
   {
-    application.ProcessEvent( GenerateKey( "d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+    application.ProcessEvent(GenerateKey("d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
     application.SendNotification();
     application.Render();
   }
 
-  map[ HiddenInput::Property::MODE ] = HiddenInput::Mode::SHOW_COUNT;
-  map[ HiddenInput::Property::SUBSTITUTE_COUNT ] = 2;
-  field.SetProperty( TextField::Property::HIDDEN_INPUT_SETTINGS, map );
-  for( unsigned int index = 0u; index < 5u; ++index )
+  map[HiddenInput::Property::MODE]             = HiddenInput::Mode::SHOW_COUNT;
+  map[HiddenInput::Property::SUBSTITUTE_COUNT] = 2;
+  field.SetProperty(TextField::Property::HIDDEN_INPUT_SETTINGS, map);
+  for(unsigned int index = 0u; index < 5u; ++index)
   {
-    application.ProcessEvent( GenerateKey( "d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+    application.ProcessEvent(GenerateKey("d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
     application.SendNotification();
     application.Render();
   }
 
-  map[ HiddenInput::Property::MODE ] = HiddenInput::Mode::SHOW_LAST_CHARACTER;
-  map[ HiddenInput::Property::SHOW_LAST_CHARACTER_DURATION ] = 0;
-  field.SetProperty( TextField::Property::HIDDEN_INPUT_SETTINGS, map );
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  map[HiddenInput::Property::MODE]                         = HiddenInput::Mode::SHOW_LAST_CHARACTER;
+  map[HiddenInput::Property::SHOW_LAST_CHARACTER_DURATION] = 0;
+  field.SetProperty(TextField::Property::HIDDEN_INPUT_SETTINGS, map);
+  application.ProcessEvent(GenerateKey("", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
-  application.ProcessEvent( GenerateKey( "d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
-  map[ HiddenInput::Property::SHOW_LAST_CHARACTER_DURATION ] = 100;
-  field.SetProperty( TextField::Property::HIDDEN_INPUT_SETTINGS, map );
-  application.ProcessEvent( GenerateKey( "d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  map[HiddenInput::Property::SHOW_LAST_CHARACTER_DURATION] = 100;
+  field.SetProperty(TextField::Property::HIDDEN_INPUT_SETTINGS, map);
+  application.ProcessEvent(GenerateKey("d", "", "d", 0, 0, 0, Integration::KeyEvent::DOWN, "d", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
   application.SendNotification();
   application.Render();
 
   Property::Map mapGet;
-  mapGet = field.GetProperty<Property::Map>( TextField::Property::HIDDEN_INPUT_SETTINGS );
-  DALI_TEST_EQUALS( map.Count(), mapGet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( map, mapGet ), true, TEST_LOCATION );
+  mapGet = field.GetProperty<Property::Map>(TextField::Property::HIDDEN_INPUT_SETTINGS);
+  DALI_TEST_EQUALS(map.Count(), mapGet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(map, mapGet), true, TEST_LOCATION);
   END_TEST;
 }
 
-
 int utcDaliTextFieldStyleWhilstSelected(void)
 {
   ToolkitTestApplication application;
@@ -2821,100 +2892,99 @@ int utcDaliTextFieldStyleWhilstSelected(void)
   // Change font and styles whilst text is selected whilst word selected
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "This is a long text for the size of the text-field.");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-
   // Tap first to get the focus.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Double tap to select a word.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( TextField::Property::INPUT_FONT_FAMILY, "Setting input font family" );
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::INPUT_FONT_FAMILY ), "Setting input font family", TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_FONT_FAMILY, "Setting input font family");
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::INPUT_FONT_FAMILY), "Setting input font family", TEST_LOCATION);
 
   Property::Map fontStyleMapSet;
   Property::Map fontStyleMapGet;
 
-  fontStyleMapSet.Insert( "weight", "bold" );
-  fontStyleMapSet.Insert( "slant", "italic" );
-  field.SetProperty( TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet );
+  fontStyleMapSet.Insert("weight", "bold");
+  fontStyleMapSet.Insert("slant", "italic");
+  field.SetProperty(TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet);
 
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::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( "width", "expanded" );
-  fontStyleMapSet.Insert( "slant", "italic" );
-  field.SetProperty( TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet );
+  fontStyleMapSet.Insert("width", "expanded");
+  fontStyleMapSet.Insert("slant", "italic");
+  field.SetProperty(TextField::Property::INPUT_FONT_STYLE, fontStyleMapSet);
 
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::INPUT_FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::Property::INPUT_FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
-  field.SetProperty( TextField::Property::INPUT_POINT_SIZE, 12.f );
-  DALI_TEST_EQUALS( field.GetProperty<float>( TextField::Property::INPUT_POINT_SIZE ), 12.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  field.SetProperty(TextField::Property::INPUT_POINT_SIZE, 12.f);
+  DALI_TEST_EQUALS(field.GetProperty<float>(TextField::Property::INPUT_POINT_SIZE), 12.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
-  field.SetProperty( TextField::Property::TEXT_COLOR, Color::RED );
-  DALI_TEST_EQUALS( field.GetProperty<Vector4>( TextField::Property::TEXT_COLOR ), Color::RED, TEST_LOCATION );
+  field.SetProperty(TextField::Property::TEXT_COLOR, Color::RED);
+  DALI_TEST_EQUALS(field.GetProperty<Vector4>(TextField::Property::TEXT_COLOR), Color::RED, TEST_LOCATION);
 
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "bold" );
-  fontStyleMapSet.Insert( "slant", "italic" );
+  fontStyleMapSet.Insert("weight", "bold");
+  fontStyleMapSet.Insert("slant", "italic");
 
-  field.SetProperty( TextField::Property::FONT_STYLE, fontStyleMapSet );
+  field.SetProperty(TextField::Property::FONT_STYLE, fontStyleMapSet);
 
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::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( "width", "expanded" );
+  fontStyleMapSet.Insert("width", "expanded");
 
-  field.SetProperty( TextField::Property::FONT_STYLE, fontStyleMapSet );
+  field.SetProperty(TextField::Property::FONT_STYLE, fontStyleMapSet);
 
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, 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( !field.HasKeyInputFocus() );
+  DALI_TEST_CHECK(!field.HasKeyInputFocus());
 
   END_TEST;
 }
@@ -2928,69 +2998,69 @@ int utcDaliTextFieldEscKeyLoseFocus(void)
   // have the focus and add text with key events should be possible.
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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 field 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::UP, "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::UP, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string(""), TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), std::string(""), TEST_LOCATION);
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Now the text field 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::UP, "a", 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 ) );
-  application.ProcessEvent( GenerateKey( "d", "", "d", KEY_D_CODE, 0, 0, Integration::KeyEvent::UP, "d", 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::UP, "a", 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));
+  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();
 
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("ad"), TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), std::string("ad"), TEST_LOCATION);
 
   // Generate a Esc key event. The text field should lose the focus.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", 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.ProcessEvent(GenerateKey("", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", 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();
   application.Render();
 
-  DALI_TEST_EQUALS( false, field.HasKeyInputFocus(), TEST_LOCATION );
+  DALI_TEST_EQUALS(false, field.HasKeyInputFocus(), TEST_LOCATION);
 
   // No more text should be introduced
-  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::UP, "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::UP, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("ad"), TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), std::string("ad"), TEST_LOCATION);
 
   END_TEST;
 }
@@ -3003,74 +3073,74 @@ int utcDaliTextFieldSomeSpecialKeys(void)
   // Checks some special keys when the text is selected.
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
   LoadMarkerImages(application, field);
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  const std::string longText( "This is a long text for the size of the text-field." );
+  const std::string longText("This is a long text for the size of the text-field.");
 
-  field.SetProperty( TextField::Property::TEXT, longText );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, longText);
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Tap first to get the focus.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Double tap to select a word.
-  TestGenerateTap( application, 1.0f, 25.0f );
+  TestGenerateTap(application, 1.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Generate a Esc key event. The text field should lose the focus.
-  application.ProcessEvent( GenerateKey( "XF86PowerOff", "", "XF86PowerOff", DALI_KEY_POWER, 0, 0, Integration::KeyEvent::DOWN, "XF86PowerOff", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "XF86PowerOff", "", "XF86PowerOff", DALI_KEY_POWER, 0, 0, Integration::KeyEvent::UP, "XF86PowerOff", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("XF86PowerOff", "", "XF86PowerOff", DALI_KEY_POWER, 0, 0, Integration::KeyEvent::DOWN, "XF86PowerOff", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("XF86PowerOff", "", "XF86PowerOff", DALI_KEY_POWER, 0, 0, Integration::KeyEvent::UP, "XF86PowerOff", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Generate a Esc key event. The text field should lose the focus.
-  application.ProcessEvent( GenerateKey( "XF86Menu", "", "XF86Menu", DALI_KEY_MENU, 0, 0, Integration::KeyEvent::DOWN, "XF86Menu", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "XF86Menu", "", "XF86Menu", DALI_KEY_MENU, 0, 0, Integration::KeyEvent::UP, "XF86Menu", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("XF86Menu", "", "XF86Menu", DALI_KEY_MENU, 0, 0, Integration::KeyEvent::DOWN, "XF86Menu", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("XF86Menu", "", "XF86Menu", DALI_KEY_MENU, 0, 0, Integration::KeyEvent::UP, "XF86Menu", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Generate a Esc key event. The text field should lose the focus.
-  application.ProcessEvent( GenerateKey( "XF86Home", "", "XF86Home", DALI_KEY_HOME, 0, 0, Integration::KeyEvent::DOWN, "XF86Home", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "XF86Home", "", "XF86Home", DALI_KEY_HOME, 0, 0, Integration::KeyEvent::UP, "XF86Home", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("XF86Home", "", "XF86Home", DALI_KEY_HOME, 0, 0, Integration::KeyEvent::DOWN, "XF86Home", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("XF86Home", "", "XF86Home", DALI_KEY_HOME, 0, 0, Integration::KeyEvent::UP, "XF86Home", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // The text shouldn't be deleted.
-  DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::TEXT ), longText, TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<std::string>(TextField::Property::TEXT), longText, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3082,42 +3152,41 @@ int utcDaliTextFieldSizeUpdate(void)
 
   // Checks some special keys when the text is selected.
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
-
-  float previousHeight = 0.0f;
-  float currentHeight = 0.0f;
-  const float fieldWidth = 1920.0f;
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
 
+  float       previousHeight = 0.0f;
+  float       currentHeight  = 0.0f;
+  const float fieldWidth     = 1920.0f;
 
   // "ㅁ" is bigger then "ኢ"
-  field.SetProperty( Actor::Property::SIZE, Vector2( fieldWidth ,10.0f ) );
-  field.SetResizePolicy( ResizePolicy::FIXED , Dimension::WIDTH );
-  field.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY , Dimension::HEIGHT );
+  field.SetProperty(Actor::Property::SIZE, Vector2(fieldWidth, 10.0f));
+  field.SetResizePolicy(ResizePolicy::FIXED, Dimension::WIDTH);
+  field.SetResizePolicy(ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT);
 
-  field.SetProperty( TextField::Property::TEXT, "ኢ");
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "ኢ");
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
 
-  field.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true);
-  KeyboardFocusManager::Get().SetCurrentFocusActor( field );
+  field.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
+  KeyboardFocusManager::Get().SetCurrentFocusActor(field);
 
   application.SendNotification();
   application.Render();
 
-  previousHeight = field.GetHeightForWidth( fieldWidth );
-  DALI_TEST_EQUALS( previousHeight, field.GetProperty<float>( Actor::Property::SIZE_HEIGHT ) , TEST_LOCATION );
+  previousHeight = field.GetHeightForWidth(fieldWidth);
+  DALI_TEST_EQUALS(previousHeight, field.GetProperty<float>(Actor::Property::SIZE_HEIGHT), TEST_LOCATION);
 
   // Add  another script characters ( glyph height is defferent )
-  application.ProcessEvent( GenerateKey( "ㅁ", "", "ㅁ", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "ㅁ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
-  application.ProcessEvent( GenerateKey( "ㅁ", "", "ㅁ", KEY_A_CODE, 0, 0, Integration::KeyEvent::UP, "ㅁ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent(GenerateKey("ㅁ", "", "ㅁ", KEY_A_CODE, 0, 0, Integration::KeyEvent::DOWN, "ㅁ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
+  application.ProcessEvent(GenerateKey("ㅁ", "", "ㅁ", KEY_A_CODE, 0, 0, Integration::KeyEvent::UP, "ㅁ", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE));
 
   application.SendNotification();
   application.Render();
 
-  currentHeight = field.GetHeightForWidth( fieldWidth );
-  DALI_TEST_EQUALS( currentHeight, field.GetProperty<float>( Actor::Property::SIZE_HEIGHT ), TEST_LOCATION );
-  DALI_TEST_EQUALS( (previousHeight < currentHeight), true , TEST_LOCATION );
+  currentHeight = field.GetHeightForWidth(fieldWidth);
+  DALI_TEST_EQUALS(currentHeight, field.GetProperty<float>(Actor::Property::SIZE_HEIGHT), TEST_LOCATION);
+  DALI_TEST_EQUALS((previousHeight < currentHeight), true, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3129,19 +3198,19 @@ int utcDaliTextFieldExtremlyLargePointSize(void)
 
   TextField field = TextField::New();
 
-  field.SetProperty( TextField::Property::TEXT, "Text" );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( field );
+  field.SetProperty(TextField::Property::TEXT, "Text");
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(field);
 
   try
   {
-    field.SetProperty( TextField::Property::POINT_SIZE, 160.0f );
+    field.SetProperty(TextField::Property::POINT_SIZE, 160.0f);
     application.SendNotification();
-    DALI_TEST_CHECK( field );
+    DALI_TEST_CHECK(field);
   }
-  catch (...)
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -3153,22 +3222,22 @@ int UtcDaliTextFieldDefaultFontStylePropertyCoverage(void)
   ToolkitTestApplication application;
   tet_infoline("UtcDaliTextFieldFontStylePorpertyCoverage");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
 
   Property::Map fontStyleMapGet;
 
-  fontStyleMapGet = field.GetProperty<Property::Map>( TextField::Property::FONT_STYLE );
+  fontStyleMapGet = field.GetProperty<Property::Map>(TextField::Property::FONT_STYLE);
 
   Property::Value* weightValue = NULL;
-  Property::Value* widthValue = NULL;
-  Property::Value* slantValue = NULL;
-  weightValue = fontStyleMapGet.Find( "weight" );
-  widthValue = fontStyleMapGet.Find( "width" );
-  slantValue = fontStyleMapGet.Find( "slant" );
-  DALI_TEST_CHECK( !weightValue );
-  DALI_TEST_CHECK( !widthValue );
-  DALI_TEST_CHECK( !slantValue );
+  Property::Value* widthValue  = NULL;
+  Property::Value* slantValue  = NULL;
+  weightValue                  = fontStyleMapGet.Find("weight");
+  widthValue                   = fontStyleMapGet.Find("width");
+  slantValue                   = fontStyleMapGet.Find("slant");
+  DALI_TEST_CHECK(!weightValue);
+  DALI_TEST_CHECK(!widthValue);
+  DALI_TEST_CHECK(!slantValue);
 
   END_TEST;
 }
@@ -3179,76 +3248,76 @@ int UtcDaliTextFieldSettingPlaceholder(void)
   tet_infoline("UtcDaliTextFieldSettingPlaceholder");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  application.GetScene().Add(field);
 
   // Check the placeholder property with pixel size
   Property::Map placeholderPixelSizeMapSet;
   Property::Map placeholderPixelSizeMapGet;
   Property::Map placeholderFontstyleMap;
-  placeholderPixelSizeMapSet[ Text::PlaceHolder::Property::TEXT ] = "Setting Placeholder Text";
-  placeholderPixelSizeMapSet[ Text::PlaceHolder::Property::TEXT_FOCUSED ] = "Setting Placeholder Text Focused";
-  placeholderPixelSizeMapSet[ Text::PlaceHolder::Property::COLOR ] = Color::BLUE;
-  placeholderPixelSizeMapSet[ Text::PlaceHolder::Property::FONT_FAMILY ] = "Arial";
-  placeholderPixelSizeMapSet[ Text::PlaceHolder::Property::PIXEL_SIZE ] = 15.0f;
-  placeholderPixelSizeMapSet[ Text::PlaceHolder::Property::ELLIPSIS ] = true;
+  placeholderPixelSizeMapSet[Text::PlaceHolder::Property::TEXT]         = "Setting Placeholder Text";
+  placeholderPixelSizeMapSet[Text::PlaceHolder::Property::TEXT_FOCUSED] = "Setting Placeholder Text Focused";
+  placeholderPixelSizeMapSet[Text::PlaceHolder::Property::COLOR]        = Color::BLUE;
+  placeholderPixelSizeMapSet[Text::PlaceHolder::Property::FONT_FAMILY]  = "Arial";
+  placeholderPixelSizeMapSet[Text::PlaceHolder::Property::PIXEL_SIZE]   = 15.0f;
+  placeholderPixelSizeMapSet[Text::PlaceHolder::Property::ELLIPSIS]     = true;
 
-  placeholderFontstyleMap.Insert( "weight", "bold" );
-  placeholderPixelSizeMapSet[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderFontstyleMap;
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderPixelSizeMapSet );
+  placeholderFontstyleMap.Insert("weight", "bold");
+  placeholderPixelSizeMapSet[Text::PlaceHolder::Property::FONT_STYLE] = placeholderFontstyleMap;
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderPixelSizeMapSet);
 
-  placeholderPixelSizeMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderPixelSizeMapGet.Count(), placeholderPixelSizeMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderPixelSizeMapGet, placeholderPixelSizeMapSet ), true, TEST_LOCATION );
+  placeholderPixelSizeMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderPixelSizeMapGet.Count(), placeholderPixelSizeMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderPixelSizeMapGet, placeholderPixelSizeMapSet), true, TEST_LOCATION);
 
   // Check the placeholder property with point size
   Property::Map placeholderMapSet;
   Property::Map placeholderMapGet;
-  placeholderMapSet[ Text::PlaceHolder::Property::TEXT ] = "Setting Placeholder Text";
-  placeholderMapSet[ Text::PlaceHolder::Property::TEXT_FOCUSED ] = "Setting Placeholder Text Focused";
-  placeholderMapSet[ Text::PlaceHolder::Property::COLOR ] = Color::RED;
-  placeholderMapSet[ Text::PlaceHolder::Property::FONT_FAMILY ] = "Arial";
-  placeholderMapSet[ Text::PlaceHolder::Property::POINT_SIZE ] = 12.0f;
-  placeholderMapSet[ Text::PlaceHolder::Property::ELLIPSIS ] = false;
+  placeholderMapSet[Text::PlaceHolder::Property::TEXT]         = "Setting Placeholder Text";
+  placeholderMapSet[Text::PlaceHolder::Property::TEXT_FOCUSED] = "Setting Placeholder Text Focused";
+  placeholderMapSet[Text::PlaceHolder::Property::COLOR]        = Color::RED;
+  placeholderMapSet[Text::PlaceHolder::Property::FONT_FAMILY]  = "Arial";
+  placeholderMapSet[Text::PlaceHolder::Property::POINT_SIZE]   = 12.0f;
+  placeholderMapSet[Text::PlaceHolder::Property::ELLIPSIS]     = false;
 
   // Check the placeholder font style property
   placeholderFontstyleMap.Clear();
 
-  placeholderFontstyleMap.Insert( "weight", "bold" );
-  placeholderFontstyleMap.Insert( "width", "condensed" );
-  placeholderFontstyleMap.Insert( "slant", "italic" );
-  placeholderMapSet[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderFontstyleMap;
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
+  placeholderFontstyleMap.Insert("weight", "bold");
+  placeholderFontstyleMap.Insert("width", "condensed");
+  placeholderFontstyleMap.Insert("slant", "italic");
+  placeholderMapSet[Text::PlaceHolder::Property::FONT_STYLE] = placeholderFontstyleMap;
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderMapSet ), true, TEST_LOCATION );
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderMapSet), true, TEST_LOCATION);
 
   // Reset font style.
   placeholderFontstyleMap.Clear();
-  placeholderFontstyleMap.Insert( "weight", "normal" );
-  placeholderFontstyleMap.Insert( "slant", "oblique" );
-  placeholderMapSet[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderFontstyleMap;
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
+  placeholderFontstyleMap.Insert("weight", "normal");
+  placeholderFontstyleMap.Insert("slant", "oblique");
+  placeholderMapSet[Text::PlaceHolder::Property::FONT_STYLE] = placeholderFontstyleMap;
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderMapSet ), true, TEST_LOCATION );
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderMapSet), true, TEST_LOCATION);
 
   placeholderFontstyleMap.Clear();
-  placeholderFontstyleMap.Insert( "slant", "roman" );
-  placeholderMapSet[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderFontstyleMap;
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
+  placeholderFontstyleMap.Insert("slant", "roman");
+  placeholderMapSet[Text::PlaceHolder::Property::FONT_STYLE] = placeholderFontstyleMap;
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
 
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
 
   placeholderFontstyleMap.Clear();
-  placeholderMapSet[ Text::PlaceHolder::Property::FONT_STYLE ] = placeholderFontstyleMap;
+  placeholderMapSet[Text::PlaceHolder::Property::FONT_STYLE] = placeholderFontstyleMap;
 
-  field.SetProperty( TextField::Property::PLACEHOLDER, placeholderMapSet );
-  placeholderMapGet = field.GetProperty<Property::Map>( TextField::Property::PLACEHOLDER );
-  DALI_TEST_EQUALS( placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( placeholderMapGet, placeholderMapSet ), true, TEST_LOCATION );
+  field.SetProperty(TextField::Property::PLACEHOLDER, placeholderMapSet);
+  placeholderMapGet = field.GetProperty<Property::Map>(TextField::Property::PLACEHOLDER);
+  DALI_TEST_EQUALS(placeholderMapGet.Count(), placeholderMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(placeholderMapGet, placeholderMapSet), true, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3323,29 +3392,29 @@ int UtcDaliTextFieldSetPaddingProperty(void)
   tet_infoline("UtcDaliTextFieldSetPaddingProperty\n");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(field);
 
   application.SendNotification();
   application.Render();
 
   Vector3 originalSize = field.GetNaturalSize();
 
-  field.SetProperty( Toolkit::Control::Property::PADDING, Extents( 10, 10, 10, 10 ) );
+  field.SetProperty(Toolkit::Control::Property::PADDING, Extents(10, 10, 10, 10));
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( field.GetProperty<Extents>( Toolkit::Control::Property::PADDING ), Extents( 10, 10, 10, 10 ), TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<Extents>(Toolkit::Control::Property::PADDING), Extents(10, 10, 10, 10), TEST_LOCATION);
 
   Vector3 paddingAddedSize = field.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;
 }
@@ -3356,21 +3425,21 @@ int UtcDaliTextFieldEnableShiftSelectionProperty(void)
   tet_infoline("UtcDaliTextFieldEnableShiftSelectionProperty");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(field);
 
   application.SendNotification();
   application.Render();
 
   // The default value of ENABLE_SHIFT_SELECTION is 'true'.
-  DALI_TEST_EQUALS( field.GetProperty<bool>( DevelTextField::Property::ENABLE_SHIFT_SELECTION ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<bool>(DevelTextField::Property::ENABLE_SHIFT_SELECTION), true, TEST_LOCATION);
 
   // Check the enable shift selection property
-  field.SetProperty( DevelTextField::Property::ENABLE_SHIFT_SELECTION, false );
-  DALI_TEST_EQUALS( field.GetProperty<bool>( DevelTextField::Property::ENABLE_SHIFT_SELECTION ), false, TEST_LOCATION );
+  field.SetProperty(DevelTextField::Property::ENABLE_SHIFT_SELECTION, false);
+  DALI_TEST_EQUALS(field.GetProperty<bool>(DevelTextField::Property::ENABLE_SHIFT_SELECTION), false, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -3384,21 +3453,21 @@ int UtcDaliTextFieldEnableGrabHandleProperty(void)
   tet_infoline("UtcDaliTextFieldEnableGrabHandleProperty");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(field);
 
   application.SendNotification();
   application.Render();
 
   // The default value of ENABLE_GRAB_HANDLE is 'true'.
-  DALI_TEST_EQUALS( field.GetProperty<bool>( DevelTextField::Property::ENABLE_GRAB_HANDLE ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<bool>(DevelTextField::Property::ENABLE_GRAB_HANDLE), true, TEST_LOCATION);
 
   // Check the enable grab handle property
-  field.SetProperty( DevelTextField::Property::ENABLE_GRAB_HANDLE, false );
-  DALI_TEST_EQUALS( field.GetProperty<bool>( DevelTextField::Property::ENABLE_GRAB_HANDLE ), false, TEST_LOCATION );
+  field.SetProperty(DevelTextField::Property::ENABLE_GRAB_HANDLE, false);
+  DALI_TEST_EQUALS(field.GetProperty<bool>(DevelTextField::Property::ENABLE_GRAB_HANDLE), false, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -3412,21 +3481,21 @@ int UtcDaliTextFieldMatchSystemLanguageDirectionProperty(void)
   tet_infoline("UtcDaliTextFieldMatchSystemLanguageDirectionProperty");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  application.GetScene().Add( field );
+  DALI_TEST_CHECK(field);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  application.GetScene().Add(field);
 
   application.SendNotification();
   application.Render();
 
   // The default value of MATCH_SYSTEM_LANGUAGE_DIRECTION is 'true'.
-  DALI_TEST_EQUALS( field.GetProperty<bool>( DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty<bool>(DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION), true, TEST_LOCATION);
 
   // Check the match system language direction property
-  field.SetProperty( DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, false );
-  DALI_TEST_EQUALS( field.GetProperty<bool>( DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION ), false, TEST_LOCATION );
+  field.SetProperty(DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, false);
+  DALI_TEST_EQUALS(field.GetProperty<bool>(DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION), false, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -3442,16 +3511,16 @@ int utcDaliTextFieldLayoutDirectionCoverage(void)
   // Creates a tap event. After creating a tap event the text field should
   // have the focus and add text with key events should be possible.
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
@@ -3459,58 +3528,58 @@ int utcDaliTextFieldLayoutDirectionCoverage(void)
 
   // init direction for coverage
   // Set horizontal alignment END
-  field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "END");
+  field.SetProperty(TextField::Property::HORIZONTAL_ALIGNMENT, "END");
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Set MATCH_SYSTEM_LANGUAGE_DIRECTION to true to use the layout direction.
-  field.SetProperty( DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, true );
-  field.SetProperty( Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT );
+  field.SetProperty(DevelTextField::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, true);
+  field.SetProperty(Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT);
 
   // Set horizontal alignment BEGIN
-  field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "BEGIN");
+  field.SetProperty(TextField::Property::HORIZONTAL_ALIGNMENT, "BEGIN");
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Set horizontal alignment CENTER
-  field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+  field.SetProperty(TextField::Property::HORIZONTAL_ALIGNMENT, "CENTER");
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Set horizontal alignment END
-  field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "END");
+  field.SetProperty(TextField::Property::HORIZONTAL_ALIGNMENT, "END");
 
   // Create a tap event to touch the text field.
-  TestGenerateTap( application, 150.0f, 25.0f );
+  TestGenerateTap(application, 150.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
   // Generate a Esc key event. The text field should lose the focus.
-  application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", 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.ProcessEvent(GenerateKey("", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", 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();
   application.Render();
 
-  DALI_TEST_EQUALS( false, field.HasKeyInputFocus(), TEST_LOCATION );
+  DALI_TEST_EQUALS(false, field.HasKeyInputFocus(), TEST_LOCATION);
 
   END_TEST;
 }
@@ -3521,7 +3590,7 @@ int UtcDaliTextFieldGetInputMethodContext(void)
   tet_infoline("UtcDaliTextFieldGetInputMethodContext");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( DevelTextField::GetInputMethodContext( field ) );
+  DALI_TEST_CHECK(DevelTextField::GetInputMethodContext(field));
 
   END_TEST;
 }
@@ -3533,53 +3602,53 @@ int UtcDaliTextFieldSelectWholeText(void)
 
   TextField textField = TextField::New();
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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, textField.GetChildCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS(1u, textField.GetChildCount(), TEST_LOCATION);
 
-  DevelTextField::SelectWholeText( textField );
+  DevelTextField::SelectWholeText(textField);
 
   application.SendNotification();
   application.Render();
 
   // Nothing should have been selected. The number of children is still 1
-  DALI_TEST_EQUALS( 1u, textField.GetChildCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS(1u, textField.GetChildCount(), TEST_LOCATION);
 
-  textField.SetProperty( TextField::Property::TEXT, "Hello world" );
+  textField.SetProperty(TextField::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
-  DevelTextField::SelectWholeText( textField );
+  DevelTextField::SelectWholeText(textField);
 
   application.SendNotification();
   application.Render();
 
   // Even if resize, selection should remain.
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 150.f, 50.f ) );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(150.f, 50.f));
 
   application.SendNotification();
   application.Render();
 
   // Should be 2 children, the stencil and the layer
-  DALI_TEST_EQUALS( 2u, textField.GetChildCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS(2u, textField.GetChildCount(), TEST_LOCATION);
 
   // The offscreen root actor should have two actors: the renderer and the highlight actor.
-  Actor stencil = textField.GetChildAt( 0u );
+  Actor stencil = textField.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;
 }
@@ -3591,55 +3660,55 @@ int UtcDaliTextFieldSelectText(void)
 
   TextField textField = TextField::New();
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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();
 
-  DevelTextField::SelectText( textField, 0, 5 );
+  DevelTextField::SelectText(textField, 0, 5);
 
   application.SendNotification();
   application.Render();
 
   // Nothing is selected
-  std::string selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "", selectedText, TEST_LOCATION );
+  std::string selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("", selectedText, TEST_LOCATION);
 
-  textField.SetProperty( TextField::Property::TEXT, "Hello world" );
+  textField.SetProperty(TextField::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
   // Hello is selected
-  DevelTextField::SelectText( textField, 0, 5 );
+  DevelTextField::SelectText(textField, 0, 5);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
   // world is selected
-  DevelTextField::SelectText( textField, 6, 11 );
+  DevelTextField::SelectText(textField, 6, 11);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "world", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("world", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 6, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 11, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 6, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 11, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3651,44 +3720,44 @@ int UtcDaliTextFieldSelectNone(void)
 
   TextField textField = TextField::New();
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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();
 
-  textField.SetProperty( TextField::Property::TEXT, "Hello world" );
+  textField.SetProperty(TextField::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
   // Nothing is selected
-  std::string selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "", selectedText, TEST_LOCATION );
+  std::string selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("", selectedText, TEST_LOCATION);
 
-  DevelTextField::SelectWholeText( textField );
+  DevelTextField::SelectWholeText(textField);
 
   application.SendNotification();
   application.Render();
 
   // whole text is selected
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello world", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello world", selectedText, TEST_LOCATION);
 
-  DevelTextField::SelectNone( textField );
+  DevelTextField::SelectNone(textField);
 
   application.SendNotification();
   application.Render();
 
   // Nothing is selected
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("", selectedText, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3700,42 +3769,42 @@ int UtcDaliTextFieldSelectRange(void)
 
   TextField textField = TextField::New();
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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();
 
-  textField.SetProperty( TextField::Property::TEXT, "Hello world" );
+  textField.SetProperty(TextField::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
-  textField.SetProperty( DevelTextField::Property::SELECTED_TEXT_START , 0);
-  textField.SetProperty( DevelTextField::Property::SELECTED_TEXT_END , 5);
+  textField.SetProperty(DevelTextField::Property::SELECTED_TEXT_START, 0);
+  textField.SetProperty(DevelTextField::Property::SELECTED_TEXT_END, 5);
 
   // Hello is selected
-  std::string selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  std::string selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
-  textField.SetProperty( DevelTextField::Property::SELECTED_TEXT_START , 6);
-  textField.SetProperty( DevelTextField::Property::SELECTED_TEXT_END , 11);
+  textField.SetProperty(DevelTextField::Property::SELECTED_TEXT_START, 6);
+  textField.SetProperty(DevelTextField::Property::SELECTED_TEXT_END, 11);
 
   // world is selected
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "world", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("world", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 6, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 11, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 6, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 11, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3747,40 +3816,39 @@ int UtcDaliTextFieldEnableEditing(void)
 
   TextField textField = TextField::New();
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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();
 
   textField.SetKeyInputFocus();
-  textField.SetProperty( DevelTextField::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 ) );
+  textField.SetProperty(DevelTextField::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( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::ENABLE_EDITING ).Get<bool>(), false, TEST_LOCATION );
-
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "", TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::ENABLE_EDITING).Get<bool>(), false, TEST_LOCATION);
 
   textField.SetKeyInputFocus();
-  textField.SetProperty( DevelTextField::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 ) );
+  textField.SetProperty(DevelTextField::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( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "D", TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::ENABLE_EDITING ).Get<bool>(), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "D", TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::ENABLE_EDITING).Get<bool>(), true, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3791,28 +3859,28 @@ int UtcDaliToolkitTextFieldFontSizeScale(void)
   tet_infoline(" UtcDaliToolkitTextFieldFontSizeScale");
 
   TextField textField = TextField::New();
-  textField.SetProperty( TextField::Property::POINT_SIZE, 30.f );
-  textField.SetProperty( TextField::Property::TEXT, "Test" );
+  textField.SetProperty(TextField::Property::POINT_SIZE, 30.f);
+  textField.SetProperty(TextField::Property::TEXT, "Test");
   Vector3 nonScaledSize = textField.GetNaturalSize();
 
   TextField textFieldScaled = TextField::New();
-  textFieldScaled.SetProperty( TextField::Property::POINT_SIZE, 15.f );
-  textFieldScaled.SetProperty( Toolkit::DevelTextField::Property::FONT_SIZE_SCALE, 2.f );
-  textFieldScaled.SetProperty( TextField::Property::TEXT, "Test" );
+  textFieldScaled.SetProperty(TextField::Property::POINT_SIZE, 15.f);
+  textFieldScaled.SetProperty(Toolkit::DevelTextField::Property::FONT_SIZE_SCALE, 2.f);
+  textFieldScaled.SetProperty(TextField::Property::TEXT, "Test");
   Vector3 scaledSize = textFieldScaled.GetNaturalSize();
 
-  DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION );
+  DALI_TEST_EQUALS(nonScaledSize, scaledSize, TEST_LOCATION);
 
-  textField.SetProperty( TextField::Property::PIXEL_SIZE, 30.f );
-  textField.SetProperty( TextField::Property::TEXT, "Test" );
+  textField.SetProperty(TextField::Property::PIXEL_SIZE, 30.f);
+  textField.SetProperty(TextField::Property::TEXT, "Test");
   nonScaledSize = textField.GetNaturalSize();
 
-  textFieldScaled.SetProperty( TextField::Property::PIXEL_SIZE, 15.f );
-  textFieldScaled.SetProperty( Toolkit::DevelTextField::Property::FONT_SIZE_SCALE, 2.f );
-  textFieldScaled.SetProperty( TextField::Property::TEXT, "Test" );
+  textFieldScaled.SetProperty(TextField::Property::PIXEL_SIZE, 15.f);
+  textFieldScaled.SetProperty(Toolkit::DevelTextField::Property::FONT_SIZE_SCALE, 2.f);
+  textFieldScaled.SetProperty(TextField::Property::TEXT, "Test");
   scaledSize = textFieldScaled.GetNaturalSize();
 
-  DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION );
+  DALI_TEST_EQUALS(nonScaledSize, scaledSize, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3824,29 +3892,29 @@ int UtcDaliTextFieldPrimaryCursorPosition(void)
 
   TextField textField = TextField::New();
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( TextField::Property::TEXT, "ABCEF");
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(TextField::Property::TEXT, "ABCEF");
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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);
 
-  textField.SetProperty( DevelTextField::Property::PRIMARY_CURSOR_POSITION, 3);
+  textField.SetProperty(DevelTextField::Property::PRIMARY_CURSOR_POSITION, 3);
   application.SendNotification();
   application.Render();
   textField.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( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "ABCDEF", TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::PRIMARY_CURSOR_POSITION ).Get<int>(), 4, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "ABCDEF", TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::PRIMARY_CURSOR_POSITION).Get<int>(), 4, TEST_LOCATION);
 
   END_TEST;
 }
@@ -3857,64 +3925,62 @@ int utcDaliTextFieldMaxCharactersReachedAfterSetText(void)
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextFieldMaxCharactersReachedAfterSetText");
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   field.SetProperty(TextField::Property::TEXT, "123456789");
 
   const int maxNumberOfCharacters = 3;
-  field.SetProperty( TextField::Property::MAX_LENGTH, maxNumberOfCharacters );
+  field.SetProperty(TextField::Property::MAX_LENGTH, maxNumberOfCharacters);
 
   field.SetKeyInputFocus();
 
   // connect to the text max lengh reached signal.
-  ConnectionTracker* testTracker = new ConnectionTracker();
-  bool maxLengthReachedSignal = false;
-  field.ConnectSignal( testTracker, "maxLengthReached",   CallbackFunctor(&maxLengthReachedSignal) );
+  ConnectionTracker* testTracker            = new ConnectionTracker();
+  bool               maxLengthReachedSignal = false;
+  field.ConnectSignal(testTracker, "maxLengthReached", CallbackFunctor(&maxLengthReachedSignal));
 
-  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( maxLengthReachedSignal );
+  DALI_TEST_CHECK(maxLengthReachedSignal);
 
-  DALI_TEST_EQUALS( field.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "123456789", TEST_LOCATION );
+  DALI_TEST_EQUALS(field.GetProperty(TextField::Property::TEXT).Get<std::string>(), "123456789", TEST_LOCATION);
 
   END_TEST;
 }
 
-
-
 int UtcDaliTextFieldAtlasLimitationIsEnabledForLargeFontPointSize(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliTextFieldAtlasLimitationIsEnabledForLargeFontPointSize ");
 
   // +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 field
   TextField textField = TextField::New();
 
   //Set size to avoid automatic eliding
-  textField.SetProperty( Actor::Property::SIZE, Vector2(1025, 1025));
+  textField.SetProperty(Actor::Property::SIZE, Vector2(1025, 1025));
   //Set very large font-size using point-size
-  textField.SetProperty( TextField::Property::POINT_SIZE, 1000) ;
+  textField.SetProperty(TextField::Property::POINT_SIZE, 1000);
   //Specify font-family
-  textField.SetProperty( TextField::Property::FONT_FAMILY, "DejaVu Sans");
+  textField.SetProperty(TextField::Property::FONT_FAMILY, "DejaVu Sans");
   //Set text to check if appear or not
-  textField.SetProperty( TextField::Property::TEXT, "A");
+  textField.SetProperty(TextField::Property::TEXT, "A");
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
   application.SendNotification();
   application.Render();
   //Use GetNaturalSize to verify that size of block does not exceed Atlas size
   Vector3 naturalSize = textField.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;
 }
@@ -3925,7 +3991,7 @@ int UtcDaliTextFieldAtlasLimitationIsEnabledPerformanceCases(void)
   tet_infoline(" UtcDaliTextFieldAtlasLimitationIsEnabledPerformanceCases ");
 
   // +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
@@ -3933,24 +3999,23 @@ int UtcDaliTextFieldAtlasLimitationIsEnabledPerformanceCases(void)
   TextField textField = TextField::New();
 
   //Set size to avoid automatic eliding
-  textField.SetProperty( Actor::Property::SIZE, Vector2(1025, 1025));
-  textField.SetProperty( TextField::Property::FONT_FAMILY, "DejaVu Sans");
-  textField.SetProperty( TextField::Property::TEXT, "A");
+  textField.SetProperty(Actor::Property::SIZE, Vector2(1025, 1025));
+  textField.SetProperty(TextField::Property::FONT_FAMILY, "DejaVu Sans");
+  textField.SetProperty(TextField::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(" UtcDaliTextFieldAtlasLimitationIsEnabledPerformanceCases point-size= %d \n", arrayCases[index]);
-    textField.SetProperty( TextField::Property::POINT_SIZE, arrayCases[index]) ;
-    application.GetScene().Add( textField );
+    textField.SetProperty(TextField::Property::POINT_SIZE, arrayCases[index]);
+    application.GetScene().Add(textField);
     application.SendNotification();
     application.Render();
     naturalSize = textField.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;
@@ -3963,55 +4028,55 @@ int UtcDaliToolkitTextFieldEllipsisPositionProperty(void)
   TextField textField = TextField::New();
 
   tet_infoline(" UtcDaliToolkitTextFieldEllipsisPositionProperty - Default is END");
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextFieldEllipsisPositionProperty - Change to START");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::START);
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextFieldEllipsisPositionProperty - Change to MIDDLE");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::MIDDLE);
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextFieldEllipsisPositionProperty - Change to END");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::END);
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextFieldEllipsisPositionProperty - Change to START using integer");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, 1);
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextFieldEllipsisPositionProperty - Change to MIDDLE using integer");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, 2);
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextFieldEllipsisPositionProperty - Change to END using integer");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, 0);
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START using string - uppercase");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, "START");
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE using string - uppercase");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, "MIDDLE");
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END using string - uppercase");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, "END");
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START using string - lowercase");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, "start");
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE using string - lowercase");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, "middle");
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END using string - lowercase");
   textField.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, "end");
-  DALI_TEST_EQUALS( textField.GetProperty< int >( DevelTextField::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty<int>(DevelTextField::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   END_TEST;
 }
@@ -4024,72 +4089,72 @@ int UtcDaliTextFieldCopyText(void)
   TextField textField = TextField::New();
 
   std::string selectedText = "";
-  std::string copiedText = "";
+  std::string copiedText   = "";
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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();
 
-  textField.SetProperty( TextField::Property::TEXT, "Hello world" );
+  textField.SetProperty(TextField::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
   // Hello is selected
-  DevelTextField::SelectText( textField, 0, 5 );
+  DevelTextField::SelectText(textField, 0, 5);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
   // Hello is copied
-  copiedText = DevelTextField::CopyText( textField );
-  DALI_TEST_EQUALS( "Hello", copiedText, TEST_LOCATION );
+  copiedText = DevelTextField::CopyText(textField);
+  DALI_TEST_EQUALS("Hello", copiedText, TEST_LOCATION);
 
   // world is selected
-  DevelTextField::SelectText( textField, 6, 11 );
+  DevelTextField::SelectText(textField, 6, 11);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "world", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("world", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 6, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 11, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 6, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 11, TEST_LOCATION);
 
   // world is copied
-  copiedText = DevelTextField::CopyText( textField );
-  DALI_TEST_EQUALS( "world", copiedText, TEST_LOCATION );
+  copiedText = DevelTextField::CopyText(textField);
+  DALI_TEST_EQUALS("world", copiedText, TEST_LOCATION);
 
   // "lo wo" is selected
-  DevelTextField::SelectText( textField, 3, 8 );
+  DevelTextField::SelectText(textField, 3, 8);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "lo wo", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("lo wo", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 3, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 8, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 3, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 8, TEST_LOCATION);
 
   // "lo wo" is copied
-  copiedText = DevelTextField::CopyText( textField );
-  DALI_TEST_EQUALS( "lo wo", copiedText, TEST_LOCATION );
+  copiedText = DevelTextField::CopyText(textField);
+  DALI_TEST_EQUALS("lo wo", copiedText, TEST_LOCATION);
 
   END_TEST;
 }
@@ -4103,103 +4168,103 @@ int UtcDaliTextFieldCutText(void)
 
   std::string selectedText = "";
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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();
 
-  textField.SetProperty( TextField::Property::TEXT, "Hello world" );
+  textField.SetProperty(TextField::Property::TEXT, "Hello world");
 
   application.SendNotification();
   application.Render();
 
   // Hello is selected
-  DevelTextField::SelectText( textField, 0, 5 );
+  DevelTextField::SelectText(textField, 0, 5);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "Hello", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("Hello", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 5, TEST_LOCATION);
 
   // Hello is cut
-  DALI_TEST_EQUALS( "Hello", DevelTextField::CutText( textField ), TEST_LOCATION );
+  DALI_TEST_EQUALS("Hello", DevelTextField::CutText(textField), TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), " world", TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), " world", TEST_LOCATION);
 
   // " w" is selected
-  DevelTextField::SelectText( textField, 0, 2 );
+  DevelTextField::SelectText(textField, 0, 2);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( " w", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS(" w", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 2, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 2, TEST_LOCATION);
 
   // " w" is cut
-  DALI_TEST_EQUALS( " w", DevelTextField::CutText( textField ), TEST_LOCATION );
+  DALI_TEST_EQUALS(" w", DevelTextField::CutText(textField), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "orld", TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "orld", TEST_LOCATION);
 
   // Test Cut from the middle
 
   // "rl" is selected
-  DevelTextField::SelectText( textField, 1, 3 );
+  DevelTextField::SelectText(textField, 1, 3);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "rl", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("rl", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 3, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 3, TEST_LOCATION);
 
   // "rl" is cut
-  DALI_TEST_EQUALS( "rl", DevelTextField::CutText( textField ), TEST_LOCATION );
+  DALI_TEST_EQUALS("rl", DevelTextField::CutText(textField), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "od", TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "od", TEST_LOCATION);
 
   // Test Cut from the end
 
   // "d" is selected
-  DevelTextField::SelectText( textField, 1, 2 );
+  DevelTextField::SelectText(textField, 1, 2);
 
   application.SendNotification();
   application.Render();
 
-  selectedText = textField.GetProperty( DevelTextField::Property::SELECTED_TEXT ).Get<std::string>();
-  DALI_TEST_EQUALS( "d", selectedText, TEST_LOCATION );
+  selectedText = textField.GetProperty(DevelTextField::Property::SELECTED_TEXT).Get<std::string>();
+  DALI_TEST_EQUALS("d", selectedText, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_START ).Get<int>(), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( DevelTextField::Property::SELECTED_TEXT_END ).Get<int>(), 2, TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_START).Get<int>(), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(DevelTextField::Property::SELECTED_TEXT_END).Get<int>(), 2, TEST_LOCATION);
 
   // "d" is cut
-  DALI_TEST_EQUALS( "d", DevelTextField::CutText( textField ), TEST_LOCATION );
+  DALI_TEST_EQUALS("d", DevelTextField::CutText(textField), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "o", TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "o", TEST_LOCATION);
 
   END_TEST;
 }
@@ -4211,35 +4276,35 @@ int UtcDaliTextFieldPasteText(void)
 
   TextField textField = TextField::New();
 
-  application.GetScene().Add( textField );
+  application.GetScene().Add(textField);
 
-  std::string cutText = "";
+  std::string cutText    = "";
   std::string copiedText = "";
 
-  textField.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  textField.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  textField.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  textField.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  textField.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  textField.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();
 
-  textField.SetProperty( TextField::Property::TEXT, "Hello World" );
+  textField.SetProperty(TextField::Property::TEXT, "Hello World");
 
   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();
 
   // Select some text in the right of the current cursor position
-  DevelTextField::SelectText( textField, 0, 3 );
+  DevelTextField::SelectText(textField, 0, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4252,10 +4317,10 @@ int UtcDaliTextFieldPasteText(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "Hel", cutText, TEST_LOCATION );
-  DALI_TEST_EQUALS( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "lo World", TEST_LOCATION );
+  DALI_TEST_EQUALS("Hel", cutText, TEST_LOCATION);
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "lo World", TEST_LOCATION);
 
-  DevelTextField::SelectText( textField, 0, 3 );
+  DevelTextField::SelectText(textField, 0, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4268,18 +4333,18 @@ int UtcDaliTextFieldPasteText(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( "lo ", copiedText, TEST_LOCATION );
-  DALI_TEST_EQUALS( "lo World", textField.GetProperty<std::string>( TextField::Property::TEXT ), TEST_LOCATION );
+  DALI_TEST_EQUALS("lo ", copiedText, TEST_LOCATION);
+  DALI_TEST_EQUALS("lo World", textField.GetProperty<std::string>(TextField::Property::TEXT), TEST_LOCATION);
 
   // Move the cursor to the end of the line
-  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 ) );
-  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 ) );
+  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));
+  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();
@@ -4292,34 +4357,35 @@ int UtcDaliTextFieldPasteText(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( textField.GetProperty( TextField::Property::TEXT ).Get<std::string>(), "lo Worldlo ", TEST_LOCATION );
+  DALI_TEST_EQUALS(textField.GetProperty(TextField::Property::TEXT).Get<std::string>(), "lo Worldlo ", TEST_LOCATION);
 
   END_TEST;
 }
+
 int utcDaliTextFieldCursorPositionChangedSignal(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" utcDaliTextFieldCursorPositionChangedSignal");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // connect to the selection changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   DevelTextField::CursorPositionChangedSignal(field).Connect(&TestCursorPositionChangedCallback);
   bool cursorPositionChangedSignal = false;
-  field.ConnectSignal( testTracker, "cursorPositionChanged",   CallbackFunctor(&cursorPositionChangedSignal) );
+  field.ConnectSignal(testTracker, "cursorPositionChanged", CallbackFunctor(&cursorPositionChangedSignal));
 
-  field.SetProperty( TextField::Property::TEXT, "Hello world Hello world" );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "Hello world Hello world");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
@@ -4328,7 +4394,7 @@ int utcDaliTextFieldCursorPositionChangedSignal(void)
   field.SetKeyInputFocus();
 
   // Tap on the text field
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // Render and notify
   application.SendNotification();
@@ -4340,7 +4406,7 @@ int utcDaliTextFieldCursorPositionChangedSignal(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();
@@ -4352,7 +4418,7 @@ int utcDaliTextFieldCursorPositionChangedSignal(void)
   gCursorPositionChangedCallbackCalled = false;
 
   // Insert D
-  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();
@@ -4364,7 +4430,7 @@ int utcDaliTextFieldCursorPositionChangedSignal(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();
@@ -4375,7 +4441,7 @@ int utcDaliTextFieldCursorPositionChangedSignal(void)
 
   gCursorPositionChangedCallbackCalled = false;
 
-  field.SetProperty( TextField::Property::TEXT, "Hello" );
+  field.SetProperty(TextField::Property::TEXT, "Hello");
 
   // Render and notify
   application.SendNotification();
@@ -4404,32 +4470,32 @@ int utcDaliTextFieldGeometryEllipsisStart(void)
   tet_infoline(" utcDaliTextFieldGeometryEllipsisStart");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( TextField::Property::POINT_SIZE, 7.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 250.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-  field.SetProperty( DevelTextField::Property::ELLIPSIS, true );
-  field.SetProperty( DevelTextField::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::START );
-  field.SetProperty( TextField::Property::TEXT, "Hello World" );
+  field.SetProperty(TextField::Property::POINT_SIZE, 7.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(250.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  field.SetProperty(TextField::Property::ENABLE_MARKUP, true);
+  field.SetProperty(DevelTextField::Property::ELLIPSIS, true);
+  field.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::START);
+  field.SetProperty(TextField::Property::TEXT, "Hello World");
 
   // 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();
 
   unsigned int expectedCount = 1;
-  unsigned int startIndex = 0;
-  unsigned int endIndex = 10;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 10;
 
   Vector<Vector2> positionsList = DevelTextField::GetTextPosition(field, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextField::GetTextSize(field, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextField::GetTextSize(field, startIndex, endIndex);
 
   DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
   DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
@@ -4451,32 +4517,32 @@ int utcDaliTextFieldGeometryEllipsisEnd(void)
   tet_infoline(" utcDaliTextFieldGeometryEllipsisEnd");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( TextField::Property::POINT_SIZE, 7.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 250.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-  field.SetProperty( DevelTextField::Property::ELLIPSIS, true );
-  field.SetProperty( DevelTextField::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::END );
-  field.SetProperty( TextField::Property::TEXT, "Hello World" );
+  field.SetProperty(TextField::Property::POINT_SIZE, 7.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(250.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  field.SetProperty(TextField::Property::ENABLE_MARKUP, true);
+  field.SetProperty(DevelTextField::Property::ELLIPSIS, true);
+  field.SetProperty(DevelTextField::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::END);
+  field.SetProperty(TextField::Property::TEXT, "Hello World");
 
   // 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();
 
   unsigned int expectedCount = 1;
-  unsigned int startIndex = 0;
-  unsigned int endIndex = 10;
+  unsigned int startIndex    = 0;
+  unsigned int endIndex      = 10;
 
   Vector<Vector2> positionsList = DevelTextField::GetTextPosition(field, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextField::GetTextSize(field, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextField::GetTextSize(field, startIndex, endIndex);
 
   DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
   DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
@@ -4498,30 +4564,30 @@ int utcDaliTextFieldGeometryRTL(void)
   tet_infoline(" utcDaliTextFieldGeometryRTL");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( TextField::Property::POINT_SIZE, 7.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-  field.SetProperty( TextField::Property::TEXT, "السطر الاخير" );
+  field.SetProperty(TextField::Property::POINT_SIZE, 7.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  field.SetProperty(TextField::Property::ENABLE_MARKUP, true);
+  field.SetProperty(TextField::Property::TEXT, "السطر الاخير");
 
   // 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();
 
   unsigned int expectedCount = 1;
-  unsigned int startIndex = 1;
-  unsigned int endIndex = 7;
+  unsigned int startIndex    = 1;
+  unsigned int endIndex      = 7;
 
   Vector<Vector2> positionsList = DevelTextField::GetTextPosition(field, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextField::GetTextSize(field, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextField::GetTextSize(field, startIndex, endIndex);
 
   DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
   DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
@@ -4543,30 +4609,30 @@ int utcDaliTextFieldGeometryGlyphMiddle(void)
   tet_infoline(" utcDaliTextFieldGeometryGlyphMiddle");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
-  field.SetProperty( TextField::Property::POINT_SIZE, 7.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 150.f, 200.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-  field.SetProperty( TextField::Property::TEXT, "لا تحتوي على لا" );
+  field.SetProperty(TextField::Property::POINT_SIZE, 7.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(150.f, 200.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  field.SetProperty(TextField::Property::ENABLE_MARKUP, true);
+  field.SetProperty(TextField::Property::TEXT, "لا تحتوي على لا");
 
   // 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();
 
   unsigned int expectedCount = 1;
-  unsigned int startIndex = 1;
-  unsigned int endIndex = 13;
+  unsigned int startIndex    = 1;
+  unsigned int endIndex      = 13;
 
   Vector<Vector2> positionsList = DevelTextField::GetTextPosition(field, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextField::GetTextSize(field, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextField::GetTextSize(field, startIndex, endIndex);
 
   DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
   DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
@@ -4588,42 +4654,42 @@ int utcDaliTextFieldSelectionClearedSignal(void)
   tet_infoline(" utcDaliTextFieldSelectionClearedSignal");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // connect to the selection changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   DevelTextField::SelectionClearedSignal(field).Connect(&TestSelectionClearedCallback);
   bool selectionClearedSignal = false;
-  field.ConnectSignal( testTracker, "selectionCleared",   CallbackFunctor(&selectionClearedSignal) );
+  field.ConnectSignal(testTracker, "selectionCleared", CallbackFunctor(&selectionClearedSignal));
 
-  field.SetProperty( TextField::Property::TEXT, "Hello\nworld\nHello world" );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "Hello\nworld\nHello world");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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();
@@ -4636,7 +4702,7 @@ int utcDaliTextFieldSelectionClearedSignal(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();
@@ -4645,11 +4711,11 @@ int utcDaliTextFieldSelectionClearedSignal(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();
@@ -4664,11 +4730,11 @@ int utcDaliTextFieldSelectionClearedSignal(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 D with selected text
-  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();
@@ -4682,13 +4748,13 @@ int utcDaliTextFieldSelectionClearedSignal(void)
   application.SendNotification();
   application.Render();
 
-  DevelTextField::SelectText( field ,1, 3 );
+  DevelTextField::SelectText(field, 1, 3);
 
   // Render and notify
   application.SendNotification();
   application.Render();
 
-  field.SetProperty( DevelTextField::Property::PRIMARY_CURSOR_POSITION, 3);
+  field.SetProperty(DevelTextField::Property::PRIMARY_CURSOR_POSITION, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4698,7 +4764,7 @@ int utcDaliTextFieldSelectionClearedSignal(void)
 
   gSelectionClearedCallbackCalled = false;
 
-  DevelTextField::SelectText( field ,1, 3 );
+  DevelTextField::SelectText(field, 1, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4722,39 +4788,39 @@ int utcDaliTextFieldSelectionChangedSignal(void)
   tet_infoline(" utcDaliTextFieldSelectionChangedSignal");
 
   TextField field = TextField::New();
-  DALI_TEST_CHECK( field );
+  DALI_TEST_CHECK(field);
 
-  application.GetScene().Add( field );
+  application.GetScene().Add(field);
 
   // connect to the selection changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   DevelTextField::SelectionChangedSignal(field).Connect(&TestSelectionChangedCallback);
   bool selectionChangedSignal = false;
-  field.ConnectSignal( testTracker, "selectionChanged",   CallbackFunctor(&selectionChangedSignal) );
+  field.ConnectSignal(testTracker, "selectionChanged", CallbackFunctor(&selectionChangedSignal));
 
-  field.SetProperty( TextField::Property::TEXT, "Hello world Hello world" );
-  field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
-  field.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) );
-  field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  field.SetProperty(TextField::Property::TEXT, "Hello world Hello world");
+  field.SetProperty(TextField::Property::POINT_SIZE, 10.f);
+  field.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f));
+  field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  field.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 field
-  TestGenerateTap( application, 3.0f, 25.0f );
+  TestGenerateTap(application, 3.0f, 25.0f);
 
   // 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();
@@ -4765,7 +4831,7 @@ int utcDaliTextFieldSelectionChangedSignal(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();
@@ -4777,7 +4843,7 @@ int utcDaliTextFieldSelectionChangedSignal(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();
@@ -4794,7 +4860,7 @@ int utcDaliTextFieldSelectionChangedSignal(void)
   application.SendNotification();
   application.Render();
 
-  DevelTextField::SelectText( field ,0, 5 );
+  DevelTextField::SelectText(field, 0, 5);
 
   application.SendNotification();
   application.Render();
@@ -4804,7 +4870,7 @@ int utcDaliTextFieldSelectionChangedSignal(void)
 
   gSelectionChangedCallbackCalled = false;
 
-  field.SetProperty( DevelTextField::Property::PRIMARY_CURSOR_POSITION, 3);
+  field.SetProperty(DevelTextField::Property::PRIMARY_CURSOR_POSITION, 3);
 
   // Render and notify
   application.SendNotification();
@@ -4840,4 +4906,280 @@ int utcDaliTextFieldSelectionChangedSignal(void)
   DALI_TEST_EQUALS(oldSelectionEnd, 23, TEST_LOCATION);
 
   END_TEST;
+}
+
+int UtcDaliToolkitTextFieldStrikethroughGeneration(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextFieldStrikethroughGeneration");
+
+  TextField textField = TextField::New();
+  textField.SetProperty(TextField::Property::TEXT, "Test");
+  textField.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textField.SetProperty(TextField::Property::POINT_SIZE, 10);
+  textField.SetProperty(TextField::Property::FONT_FAMILY, "DejaVu Sans");
+
+  application.GetScene().Add(textField);
+  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
+  textField.SetProperty(DevelTextField::Property::STRIKETHROUGH, strikethroughMapSet);
+  strikethroughMapGet = textField.GetProperty<Property::Map>(DevelTextField::Property::STRIKETHROUGH);
+  textField.SetProperty(TextField::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 UtcDaliToolkitTextFieldInputStrikethroughGeneration(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextFieldInputStrikethroughGeneration");
+
+  TextField textField = TextField::New();
+  textField.SetProperty(TextField::Property::TEXT, "Test");
+  textField.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textField.SetProperty(TextField::Property::POINT_SIZE, 10);
+  textField.SetProperty(TextField::Property::FONT_FAMILY, "DejaVu Sans");
+
+  application.GetScene().Add(textField);
+  application.SendNotification();
+  application.Render();
+
+  std::string strikethroughSettings1("{\"enable\":\"true\",\"color\":\"red\",\"height\":\"2\"}");
+
+  // Check the strikethrough property
+  textField.SetProperty(DevelTextField::Property::INPUT_STRIKETHROUGH, strikethroughSettings1);
+  textField.SetProperty(TextField::Property::TEXT, "Test1");
+  DALI_TEST_EQUALS(textField.GetProperty<std::string>(DevelTextField::Property::INPUT_STRIKETHROUGH), strikethroughSettings1, TEST_LOCATION);
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextFieldUnderlineTypesGeneration1(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextFieldUnderlineTypesGeneration1");
+  TextField field = TextField::New();
+  field.SetProperty(TextField::Property::TEXT, "Test");
+  field.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  field.SetProperty(TextField::Property::POINT_SIZE, 10);
+  field.SetProperty(TextField::Property::FONT_FAMILY, "DejaVu Sans");
+
+  application.GetScene().Add(field);
+  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
+  field.SetProperty(TextField::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = field.GetProperty<Property::Map>(TextField::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
+  field.SetProperty(TextField::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = field.GetProperty<Property::Map>(TextField::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
+  field.SetProperty(TextField::Property::UNDERLINE, underlineMapSet);
+
+  underlineMapGet = field.GetProperty<Property::Map>(TextField::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 UtcDaliToolkitTextFieldUnderlineTypesGeneration2(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextFieldUnderlineTypesGeneration2");
+
+  TextField field1 = TextField::New();
+  field1.SetProperty(TextField::Property::TEXT, "Test");
+  field1.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  field1.SetProperty(TextField::Property::POINT_SIZE, 10);
+  field1.SetProperty(TextField::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
+  field1.SetProperty(TextField::Property::UNDERLINE, underlineMapSet1);
+
+  underlineMapGet1 = field1.GetProperty<Property::Map>(TextField::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet1.Count(), underlineMapSet1.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet1, underlineMapSet1), true, TEST_LOCATION);
+
+  application.GetScene().Add(field1);
+  application.SendNotification();
+  application.Render();
+
+  TextField field2 = TextField::New();
+  field2.SetProperty(TextField::Property::TEXT, "Test");
+  field2.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  field2.SetProperty(TextField::Property::POINT_SIZE, 10);
+  field2.SetProperty(TextField::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
+  field2.SetProperty(TextField::Property::UNDERLINE, underlineMapSet2);
+
+  underlineMapGet2 = field2.GetProperty<Property::Map>(TextField::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet2.Count(), underlineMapSet2.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet2, underlineMapSet2), true, TEST_LOCATION);
+
+  application.GetScene().Add(field2);
+  application.SendNotification();
+  application.Render();
+
+  TextField field3 = TextField::New();
+  field3.SetProperty(TextField::Property::TEXT, "Test");
+  field3.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  field3.SetProperty(TextField::Property::POINT_SIZE, 10);
+  field3.SetProperty(TextField::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
+  field3.SetProperty(TextField::Property::UNDERLINE, underlineMapSet3);
+
+  underlineMapGet3 = field3.GetProperty<Property::Map>(TextField::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet3.Count(), underlineMapSet3.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet3, underlineMapSet3), true, TEST_LOCATION);
+
+  application.GetScene().Add(field3);
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextFieldUnderlineTypesGeneration3(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextFieldUnderlineTypesGeneration3");
+
+  TextField field1 = TextField::New();
+  field1.SetProperty(TextField::Property::TEXT, "Test1");
+  field1.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  field1.SetProperty(TextField::Property::POINT_SIZE, 10);
+  field1.SetProperty(TextField::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
+  field1.SetProperty(TextField::Property::UNDERLINE, underlineMapSet1);
+  //field1.SetProperty( TextField::Property::TEXT, "Test2" );
+
+  underlineMapGet1 = field1.GetProperty<Property::Map>(TextField::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet1.Count(), underlineMapSet1.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet1, underlineMapSet1), true, TEST_LOCATION);
+
+  application.GetScene().Add(field1);
+  application.SendNotification();
+  application.Render();
+
+  END_TEST;
 }
\ No newline at end of file
index c060743..66148f2 100644 (file)
  *
  */
 
-#include <iostream>
 #include <stdlib.h>
 #include <unistd.h>
+#include <iostream>
 
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/devel-api/controls/text-controls/text-label-devel.h>
 #include <dali-toolkit/devel-api/controls/text-controls/text-style-properties-devel.h>
-#include <dali-toolkit/devel-api/text/text-enumerations-devel.h>
-#include <dali/devel-api/text-abstraction/bitmap-font.h>
-#include <dali/devel-api/text-abstraction/font-client.h>
-#include <dali/devel-api/adaptor-framework/image-loading.h>
 #include <dali-toolkit/devel-api/text/bitmap-font.h>
 #include <dali-toolkit/devel-api/text/rendering-backend.h>
+#include <dali-toolkit/devel-api/text/text-enumerations-devel.h>
 #include <dali-toolkit/devel-api/text/text-utils-devel.h>
+#include <dali/devel-api/adaptor-framework/image-loading.h>
+#include <dali/devel-api/text-abstraction/bitmap-font.h>
+#include <dali/devel-api/text-abstraction/font-client.h>
 #include "test-text-geometry-utils.h"
 
 using namespace Dali;
@@ -47,37 +47,38 @@ void dali_textlabel_cleanup(void)
 
 namespace
 {
-
-const char* const PROPERTY_NAME_RENDERING_BACKEND = "renderingBackend";
-const char* const PROPERTY_NAME_TEXT = "text";
-const char* const PROPERTY_NAME_FONT_FAMILY = "fontFamily";
-const char* const PROPERTY_NAME_FONT_STYLE = "fontStyle";
-const char* const PROPERTY_NAME_POINT_SIZE = "pointSize";
-const char* const PROPERTY_NAME_MULTI_LINE =  "multiLine";
-const char* const PROPERTY_NAME_HORIZONTAL_ALIGNMENT = "horizontalAlignment";
-const char* const PROPERTY_NAME_VERTICAL_ALIGNMENT = "verticalAlignment";
-const char* const PROPERTY_NAME_TEXT_COLOR = "textColor";
-const char* const PROPERTY_NAME_ENABLE_MARKUP = "enableMarkup";
-const char* const PROPERTY_NAME_ENABLE_AUTO_SCROLL = "enableAutoScroll";
+const char* const PROPERTY_NAME_RENDERING_BACKEND        = "renderingBackend";
+const char* const PROPERTY_NAME_TEXT                     = "text";
+const char* const PROPERTY_NAME_FONT_FAMILY              = "fontFamily";
+const char* const PROPERTY_NAME_FONT_STYLE               = "fontStyle";
+const char* const PROPERTY_NAME_POINT_SIZE               = "pointSize";
+const char* const PROPERTY_NAME_MULTI_LINE               = "multiLine";
+const char* const PROPERTY_NAME_HORIZONTAL_ALIGNMENT     = "horizontalAlignment";
+const char* const PROPERTY_NAME_VERTICAL_ALIGNMENT       = "verticalAlignment";
+const char* const PROPERTY_NAME_TEXT_COLOR               = "textColor";
+const char* const PROPERTY_NAME_ENABLE_MARKUP            = "enableMarkup";
+const char* const PROPERTY_NAME_ENABLE_AUTO_SCROLL       = "enableAutoScroll";
 const char* const PROPERTY_NAME_ENABLE_AUTO_SCROLL_SPEED = "autoScrollSpeed";
 const char* const PROPERTY_NAME_ENABLE_AUTO_SCROLL_LOOPS = "autoScrollLoopCount";
-const char* const PROPERTY_NAME_ENABLE_AUTO_SCROLL_GAP = "autoScrollGap";
-
-const char* const PROPERTY_NAME_LINE_SPACING = "lineSpacing";
-const char* const PROPERTY_NAME_UNDERLINE = "underline";
-const char* const PROPERTY_NAME_SHADOW = "shadow";
-const char* const PROPERTY_NAME_EMBOSS = "emboss";
-const char* const PROPERTY_NAME_OUTLINE = "outline";
-const char* const PROPERTY_NAME_BACKGROUND = "textBackground";
-
-const char* const PROPERTY_NAME_PIXEL_SIZE = "pixelSize";
-const char* const PROPERTY_NAME_ELLIPSIS = "ellipsis";
+const char* const PROPERTY_NAME_ENABLE_AUTO_SCROLL_GAP   = "autoScrollGap";
+
+const char* const PROPERTY_NAME_LINE_SPACING  = "lineSpacing";
+const char* const PROPERTY_NAME_UNDERLINE     = "underline";
+const char* const PROPERTY_NAME_SHADOW        = "shadow";
+const char* const PROPERTY_NAME_EMBOSS        = "emboss";
+const char* const PROPERTY_NAME_OUTLINE       = "outline";
+const char* const PROPERTY_NAME_BACKGROUND    = "textBackground";
+const char* const PROPERTY_NAME_STRIKETHROUGH = "strikethrough";
+
+const char* const PROPERTY_NAME_PIXEL_SIZE             = "pixelSize";
+const char* const PROPERTY_NAME_ELLIPSIS               = "ellipsis";
 const char* const PROPERTY_NAME_AUTO_SCROLL_LOOP_DELAY = "autoScrollLoopDelay";
-const char* const PROPERTY_NAME_FONT_SIZE_SCALE = "fontSizeScale";
+const char* const PROPERTY_NAME_FONT_SIZE_SCALE        = "fontSizeScale";
+const char* const PROPERTY_NAME_ENABLE_FONT_SIZE_SCALE = "enableFontSizeScale";
 
 const char* const PROPERTY_NAME_ELLIPSIS_POSITION = "ellipsisPosition";
 
-const std::string DEFAULT_FONT_DIR( "/resources/fonts" );
+const std::string  DEFAULT_FONT_DIR("/resources/fonts");
 const unsigned int EMOJI_FONT_SIZE = 3840u; // 60 * 64
 
 static bool gAnchorClickedCallBackCalled;
@@ -88,7 +89,7 @@ static bool gTextFitChangedCallBackCalled;
 struct CallbackFunctor
 {
   CallbackFunctor(bool* callbackFlag)
-  : mCallbackFlag( callbackFlag )
+  : mCallbackFlag(callbackFlag)
   {
   }
 
@@ -105,7 +106,7 @@ static void TestAnchorClickedCallback(TextLabel control, const char* href, unsig
 
   gAnchorClickedCallBackNotCalled = false;
 
-  if (!strcmp(href, "https://www.tizen.org") && hrefLength == strlen(href))
+  if(!strcmp(href, "https://www.tizen.org") && hrefLength == strlen(href))
   {
     gAnchorClickedCallBackCalled = true;
   }
@@ -117,33 +118,33 @@ static void TestTextFitChangedCallback(TextLabel control)
   gTextFitChangedCallBackCalled = true;
 }
 
-bool DaliTestCheckMaps( const Property::Map& mapGet, const Property::Map& mapSet, const std::vector<std::string>& indexConversionTable = std::vector<std::string>() )
+bool DaliTestCheckMaps(const Property::Map& mapGet, const Property::Map& mapSet, const std::vector<std::string>& indexConversionTable = std::vector<std::string>())
 {
   const Property::Map::SizeType size = mapGet.Count();
 
-  if( size == mapSet.Count() )
+  if(size == mapSet.Count())
   {
-    for( unsigned int index = 0u; index < size; ++index )
+    for(unsigned int index = 0u; index < size; ++index)
     {
-      const KeyValuePair& valueGet = mapGet.GetKeyValue( index );
+      const KeyValuePair& valueGet = mapGet.GetKeyValue(index);
 
       // Find the keys of the 'get' map
-      Property::Index indexKey = valueGet.first.indexKey;
-      std::string stringKey = valueGet.first.stringKey;
+      Property::Index indexKey  = valueGet.first.indexKey;
+      std::string     stringKey = valueGet.first.stringKey;
 
-      if( !indexConversionTable.empty() )
+      if(!indexConversionTable.empty())
       {
-        if( stringKey.empty() )
+        if(stringKey.empty())
         {
-          stringKey = indexConversionTable[ indexKey ];
+          stringKey = indexConversionTable[indexKey];
         }
 
-        if( ( indexKey == Property::INVALID_INDEX ) && !stringKey.empty() )
+        if((indexKey == Property::INVALID_INDEX) && !stringKey.empty())
         {
           Property::Index index = 0u;
-          for( auto key : indexConversionTable )
+          for(auto key : indexConversionTable)
           {
-            if( key == stringKey )
+            if(key == stringKey)
             {
               indexKey = index;
               break;
@@ -153,54 +154,54 @@ bool DaliTestCheckMaps( const Property::Map& mapGet, const Property::Map& mapSet
         }
       }
 
-      const Property::Value* const valueSet = mapSet.Find( indexKey, stringKey );
+      const Property::Value* const valueSet = mapSet.Find(indexKey, stringKey);
 
-      if( nullptr != valueSet )
+      if(nullptr != 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;
       }
@@ -217,7 +218,7 @@ int UtcDaliToolkitTextLabelConstructorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelConstructorP");
   TextLabel textLabel;
-  DALI_TEST_CHECK( !textLabel );
+  DALI_TEST_CHECK(!textLabel);
   END_TEST;
 }
 
@@ -225,8 +226,8 @@ int UtcDaliToolkitTextLabelNewP(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelNewP");
-  TextLabel textLabel = TextLabel::New( "Test Text" );
-  DALI_TEST_CHECK( textLabel );
+  TextLabel textLabel = TextLabel::New("Test Text");
+  DALI_TEST_CHECK(textLabel);
   END_TEST;
 }
 
@@ -234,14 +235,14 @@ int UtcDaliToolkitTextLabelDownCastP(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelDownCastP");
-  TextLabel textLabel1 = TextLabel::New();
-  BaseHandle object( textLabel1 );
+  TextLabel  textLabel1 = TextLabel::New();
+  BaseHandle object(textLabel1);
 
-  TextLabel textLabel2 = TextLabel::DownCast( object );
-  DALI_TEST_CHECK( textLabel2 );
+  TextLabel textLabel2 = TextLabel::DownCast(object);
+  DALI_TEST_CHECK(textLabel2);
 
-  TextLabel textLabel3 = DownCast< TextLabel >( object );
-  DALI_TEST_CHECK( textLabel3 );
+  TextLabel textLabel3 = DownCast<TextLabel>(object);
+  DALI_TEST_CHECK(textLabel3);
   END_TEST;
 }
 
@@ -250,11 +251,11 @@ int UtcDaliToolkitTextLabelDownCastN(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelDownCastN");
   BaseHandle uninitializedObject;
-  TextLabel textLabel1 = TextLabel::DownCast( uninitializedObject );
-  DALI_TEST_CHECK( !textLabel1 );
+  TextLabel  textLabel1 = TextLabel::DownCast(uninitializedObject);
+  DALI_TEST_CHECK(!textLabel1);
 
-  TextLabel textLabel2 = DownCast< TextLabel >( uninitializedObject );
-  DALI_TEST_CHECK( !textLabel2 );
+  TextLabel textLabel2 = DownCast<TextLabel>(uninitializedObject);
+  DALI_TEST_CHECK(!textLabel2);
   END_TEST;
 }
 
@@ -263,11 +264,11 @@ int UtcDaliToolkitTextLabelCopyConstructorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelCopyConstructorP");
   TextLabel textLabel = TextLabel::New();
-  textLabel.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED );
+  textLabel.SetProperty(TextLabel::Property::TEXT_COLOR, Color::RED);
 
-  TextLabel copy( textLabel );
-  DALI_TEST_CHECK( copy );
-  DALI_TEST_CHECK( copy.GetProperty<Vector4>( TextLabel::Property::TEXT_COLOR ) == textLabel.GetProperty<Vector4>( TextLabel::Property::TEXT_COLOR ) );
+  TextLabel copy(textLabel);
+  DALI_TEST_CHECK(copy);
+  DALI_TEST_CHECK(copy.GetProperty<Vector4>(TextLabel::Property::TEXT_COLOR) == textLabel.GetProperty<Vector4>(TextLabel::Property::TEXT_COLOR));
   END_TEST;
 }
 
@@ -276,14 +277,14 @@ int UtcDaliTextLabelMoveConstructor(void)
   ToolkitTestApplication application;
 
   TextLabel textLabel = TextLabel::New();
-  textLabel.SetProperty( TextLabel::Property::TEXT, "Test" );
-  DALI_TEST_CHECK( textLabel.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
+  textLabel.SetProperty(TextLabel::Property::TEXT, "Test");
+  DALI_TEST_CHECK(textLabel.GetProperty<std::string>(TextLabel::Property::TEXT) == "Test");
 
-  TextLabel moved = std::move( textLabel );
-  DALI_TEST_CHECK( moved );
-  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
-  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
-  DALI_TEST_CHECK( !textLabel );
+  TextLabel moved = std::move(textLabel);
+  DALI_TEST_CHECK(moved);
+  DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_CHECK(moved.GetProperty<std::string>(TextLabel::Property::TEXT) == "Test");
+  DALI_TEST_CHECK(!textLabel);
 
   END_TEST;
 }
@@ -293,11 +294,11 @@ int UtcDaliToolkitTextLabelAssignmentOperatorP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelAssingmentOperatorP");
   TextLabel textLabel = TextLabel::New();
-  textLabel.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED );
+  textLabel.SetProperty(TextLabel::Property::TEXT_COLOR, Color::RED);
 
   TextLabel copy = textLabel;
-  DALI_TEST_CHECK( copy );
-  DALI_TEST_CHECK( copy.GetProperty<Vector4>( TextLabel::Property::TEXT_COLOR ) == textLabel.GetProperty<Vector4>( TextLabel::Property::TEXT_COLOR ) );
+  DALI_TEST_CHECK(copy);
+  DALI_TEST_CHECK(copy.GetProperty<Vector4>(TextLabel::Property::TEXT_COLOR) == textLabel.GetProperty<Vector4>(TextLabel::Property::TEXT_COLOR));
   END_TEST;
 }
 
@@ -306,15 +307,15 @@ int UtcDaliTextLabelMoveAssignment(void)
   ToolkitTestApplication application;
 
   TextLabel textLabel = TextLabel::New();
-  textLabel.SetProperty( TextLabel::Property::TEXT, "Test" );
-  DALI_TEST_CHECK( textLabel.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
+  textLabel.SetProperty(TextLabel::Property::TEXT, "Test");
+  DALI_TEST_CHECK(textLabel.GetProperty<std::string>(TextLabel::Property::TEXT) == "Test");
 
   TextLabel moved;
-  moved = std::move( textLabel );
-  DALI_TEST_CHECK( moved );
-  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
-  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
-  DALI_TEST_CHECK( !textLabel );
+  moved = std::move(textLabel);
+  DALI_TEST_CHECK(moved);
+  DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_CHECK(moved.GetProperty<std::string>(TextLabel::Property::TEXT) == "Test");
+  DALI_TEST_CHECK(!textLabel);
 
   END_TEST;
 }
@@ -325,34 +326,36 @@ int UtcDaliToolkitTextLabelGetPropertyP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelGetPropertyP");
   TextLabel label = TextLabel::New("Test Text");
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
   // Check Property Indices are correct
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_RENDERING_BACKEND ) == DevelTextLabel::Property::RENDERING_BACKEND );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_TEXT ) == TextLabel::Property::TEXT );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_FONT_FAMILY ) == TextLabel::Property::FONT_FAMILY );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_FONT_STYLE ) == TextLabel::Property::FONT_STYLE );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_POINT_SIZE ) == TextLabel::Property::POINT_SIZE );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_MULTI_LINE ) == TextLabel::Property::MULTI_LINE );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_HORIZONTAL_ALIGNMENT ) == TextLabel::Property::HORIZONTAL_ALIGNMENT );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_VERTICAL_ALIGNMENT ) == TextLabel::Property::VERTICAL_ALIGNMENT );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_TEXT_COLOR ) == TextLabel::Property::TEXT_COLOR );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ENABLE_MARKUP) == TextLabel::Property::ENABLE_MARKUP );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ENABLE_AUTO_SCROLL ) == TextLabel::Property::ENABLE_AUTO_SCROLL );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ENABLE_AUTO_SCROLL_SPEED ) == TextLabel::Property::AUTO_SCROLL_SPEED );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ENABLE_AUTO_SCROLL_LOOPS ) == TextLabel::Property::AUTO_SCROLL_LOOP_COUNT );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ENABLE_AUTO_SCROLL_GAP ) == TextLabel::Property::AUTO_SCROLL_GAP );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_LINE_SPACING ) == TextLabel::Property::LINE_SPACING );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_UNDERLINE ) == TextLabel::Property::UNDERLINE );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_SHADOW ) == TextLabel::Property::SHADOW );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_EMBOSS ) == TextLabel::Property::EMBOSS );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_OUTLINE ) == TextLabel::Property::OUTLINE );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_BACKGROUND ) == DevelTextLabel::Property::BACKGROUND );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_PIXEL_SIZE ) == TextLabel::Property::PIXEL_SIZE );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ELLIPSIS ) == TextLabel::Property::ELLIPSIS );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_AUTO_SCROLL_LOOP_DELAY ) == TextLabel::Property::AUTO_SCROLL_LOOP_DELAY );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_FONT_SIZE_SCALE ) == DevelTextLabel::Property::FONT_SIZE_SCALE );
-  DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ELLIPSIS_POSITION ) == DevelTextLabel::Property::ELLIPSIS_POSITION );
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_RENDERING_BACKEND) == DevelTextLabel::Property::RENDERING_BACKEND);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_TEXT) == TextLabel::Property::TEXT);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_FONT_FAMILY) == TextLabel::Property::FONT_FAMILY);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_FONT_STYLE) == TextLabel::Property::FONT_STYLE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_POINT_SIZE) == TextLabel::Property::POINT_SIZE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_MULTI_LINE) == TextLabel::Property::MULTI_LINE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_HORIZONTAL_ALIGNMENT) == TextLabel::Property::HORIZONTAL_ALIGNMENT);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_VERTICAL_ALIGNMENT) == TextLabel::Property::VERTICAL_ALIGNMENT);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_TEXT_COLOR) == TextLabel::Property::TEXT_COLOR);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ENABLE_MARKUP) == TextLabel::Property::ENABLE_MARKUP);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ENABLE_AUTO_SCROLL) == TextLabel::Property::ENABLE_AUTO_SCROLL);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ENABLE_AUTO_SCROLL_SPEED) == TextLabel::Property::AUTO_SCROLL_SPEED);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ENABLE_AUTO_SCROLL_LOOPS) == TextLabel::Property::AUTO_SCROLL_LOOP_COUNT);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ENABLE_AUTO_SCROLL_GAP) == TextLabel::Property::AUTO_SCROLL_GAP);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_LINE_SPACING) == TextLabel::Property::LINE_SPACING);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_UNDERLINE) == TextLabel::Property::UNDERLINE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_SHADOW) == TextLabel::Property::SHADOW);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_EMBOSS) == TextLabel::Property::EMBOSS);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_OUTLINE) == TextLabel::Property::OUTLINE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_BACKGROUND) == DevelTextLabel::Property::BACKGROUND);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_PIXEL_SIZE) == TextLabel::Property::PIXEL_SIZE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ELLIPSIS) == TextLabel::Property::ELLIPSIS);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_AUTO_SCROLL_LOOP_DELAY) == TextLabel::Property::AUTO_SCROLL_LOOP_DELAY);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_FONT_SIZE_SCALE) == DevelTextLabel::Property::FONT_SIZE_SCALE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ENABLE_FONT_SIZE_SCALE) == DevelTextLabel::Property::ENABLE_FONT_SIZE_SCALE);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ELLIPSIS_POSITION) == DevelTextLabel::Property::ELLIPSIS_POSITION);
+  DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_STRIKETHROUGH) == DevelTextLabel::Property::STRIKETHROUGH);
 
   END_TEST;
 }
@@ -362,186 +365,251 @@ int UtcDaliToolkitTextLabelSetPropertyP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelSetPropertyP");
   TextLabel label = TextLabel::New();
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   // Note - we can't check the defaults since the stylesheets are platform-specific
-  label.SetProperty( DevelTextLabel::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS );
-  DALI_TEST_EQUALS( (DevelText::RenderingType)label.GetProperty<int>( DevelTextLabel::Property::RENDERING_BACKEND ), DevelText::RENDERING_SHARED_ATLAS, TEST_LOCATION );
+  label.SetProperty(DevelTextLabel::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS);
+  DALI_TEST_EQUALS((DevelText::RenderingType)label.GetProperty<int>(DevelTextLabel::Property::RENDERING_BACKEND), DevelText::RENDERING_SHARED_ATLAS, TEST_LOCATION);
 
   // Check that text can be correctly reset
-  label.SetProperty( TextLabel::Property::TEXT, "Setting Text" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::TEXT ), std::string("Setting Text"), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "Setting Text");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::TEXT), std::string("Setting Text"), TEST_LOCATION);
 
   // Check font properties.
-  label.SetProperty( TextLabel::Property::FONT_FAMILY, "Setting font family" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::FONT_FAMILY ), std::string("Setting font family"), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::FONT_FAMILY, "Setting font family");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::FONT_FAMILY), std::string("Setting font family"), TEST_LOCATION);
 
   Property::Map fontStyleMapSet;
   Property::Map fontStyleMapGet;
 
-  fontStyleMapSet.Insert( "weight", "bold" );
-  fontStyleMapSet.Insert( "width", "condensed" );
-  fontStyleMapSet.Insert( "slant", "italic" );
-  label.SetProperty( TextLabel::Property::FONT_STYLE, fontStyleMapSet );
+  fontStyleMapSet.Insert("weight", "bold");
+  fontStyleMapSet.Insert("width", "condensed");
+  fontStyleMapSet.Insert("slant", "italic");
+  label.SetProperty(TextLabel::Property::FONT_STYLE, fontStyleMapSet);
 
-  fontStyleMapGet = label.GetProperty<Property::Map>( TextLabel::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  fontStyleMapGet = label.GetProperty<Property::Map>(TextLabel::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   // Check the old font style format.
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "thin" );
-  fontStyleMapSet.Insert( "width", "expanded" );
-  fontStyleMapSet.Insert( "slant", "oblique" );
+  fontStyleMapSet.Insert("weight", "thin");
+  fontStyleMapSet.Insert("width", "expanded");
+  fontStyleMapSet.Insert("slant", "oblique");
   const std::string strFontStyle = "{\"weight\":\"thin\",\"width\":\"expanded\",\"slant\":\"oblique\"}";
 
-  label.SetProperty( TextLabel::Property::FONT_STYLE, "{\"weight\":\"thin\",\"width\":\"expanded\",\"slant\":\"oblique\"}" );
-  std::string getFontStyle = label.GetProperty<std::string>( TextLabel::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( getFontStyle, strFontStyle, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::FONT_STYLE, "{\"weight\":\"thin\",\"width\":\"expanded\",\"slant\":\"oblique\"}");
+  std::string getFontStyle = label.GetProperty<std::string>(TextLabel::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(getFontStyle, strFontStyle, TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 10.f );
-  DALI_TEST_EQUALS( label.GetProperty<float>( TextLabel::Property::POINT_SIZE ), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 10.f);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::POINT_SIZE), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
-  label.SetProperty( DevelTextLabel::Property::FONT_SIZE_SCALE, 2.5f );
-  DALI_TEST_EQUALS( label.GetProperty<float>( DevelTextLabel::Property::FONT_SIZE_SCALE ), 2.5f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  label.SetProperty( DevelTextLabel::Property::FONT_SIZE_SCALE, 1.0f );
+  label.SetProperty(DevelTextLabel::Property::FONT_SIZE_SCALE, 2.5f);
+  DALI_TEST_EQUALS(label.GetProperty<float>(DevelTextLabel::Property::FONT_SIZE_SCALE), 2.5f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  label.SetProperty(DevelTextLabel::Property::FONT_SIZE_SCALE, 1.0f);
+
+  label.SetProperty(DevelTextLabel::Property::ENABLE_FONT_SIZE_SCALE, false);
+  DALI_TEST_EQUALS(label.GetProperty<bool>(DevelTextLabel::Property::ENABLE_FONT_SIZE_SCALE), false, TEST_LOCATION);
+  label.SetProperty(DevelTextLabel::Property::ENABLE_FONT_SIZE_SCALE, true);
 
   // Reset font style.
   fontStyleMapSet.Clear();
-  fontStyleMapSet.Insert( "weight", "normal" );
-  fontStyleMapSet.Insert( "slant", "oblique" );
+  fontStyleMapSet.Insert("weight", "normal");
+  fontStyleMapSet.Insert("slant", "oblique");
 
-  label.SetProperty( TextLabel::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = label.GetProperty<Property::Map>( TextLabel::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = label.GetProperty<Property::Map>(TextLabel::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" );
+  fontStyleMapSet.Insert("slant", "roman");
 
-  label.SetProperty( TextLabel::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = label.GetProperty<Property::Map>( TextLabel::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = label.GetProperty<Property::Map>(TextLabel::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
 
   // Replace 'roman' for 'normal'.
-  Property::Value* slantValue = fontStyleMapGet.Find( "slant" );
-  if( NULL != slantValue )
+  Property::Value* 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( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   fontStyleMapSet.Clear();
 
-  label.SetProperty( TextLabel::Property::FONT_STYLE, fontStyleMapSet );
-  fontStyleMapGet = label.GetProperty<Property::Map>( TextLabel::Property::FONT_STYLE );
-  DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::FONT_STYLE, fontStyleMapSet);
+  fontStyleMapGet = label.GetProperty<Property::Map>(TextLabel::Property::FONT_STYLE);
+  DALI_TEST_EQUALS(fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(fontStyleMapGet, fontStyleMapSet), true, TEST_LOCATION);
 
   // Toggle multi-line
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true );
-  DALI_TEST_EQUALS( label.GetProperty<bool>( TextLabel::Property::MULTI_LINE ), true, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
+  DALI_TEST_EQUALS(label.GetProperty<bool>(TextLabel::Property::MULTI_LINE), true, TEST_LOCATION);
 
   // Check that the Alignment properties can be correctly set
-  label.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::HORIZONTAL_ALIGNMENT ), "CENTER", TEST_LOCATION );
-  label.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::VERTICAL_ALIGNMENT ), "CENTER", TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::HORIZONTAL_ALIGNMENT), "CENTER", TEST_LOCATION);
+  label.SetProperty(TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::VERTICAL_ALIGNMENT), "CENTER", TEST_LOCATION);
 
   // Check that text color can be properly set
-  label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::BLUE );
-  DALI_TEST_EQUALS( label.GetProperty<Vector4>( TextLabel::Property::TEXT_COLOR ), Color::BLUE, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::BLUE);
+  DALI_TEST_EQUALS(label.GetProperty<Vector4>(TextLabel::Property::TEXT_COLOR), Color::BLUE, TEST_LOCATION);
+
+  Property::Map strikethroughMapSet;
+  Property::Map strikethroughMapGet;
+
+  strikethroughMapSet.Insert("enable", false);
+  strikethroughMapSet.Insert("color", Color::BLUE);
+  strikethroughMapSet.Insert("height", 2.0f);
+
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+
+  strikethroughMapGet = label.GetProperty<Property::Map>(DevelTextLabel::Property::STRIKETHROUGH);
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapGet, strikethroughMapSet), true, TEST_LOCATION);
 
   Property::Map underlineMapSet;
   Property::Map underlineMapGet;
 
-  underlineMapSet.Insert( "enable", false );
-  underlineMapSet.Insert( "color", Color::BLUE );
-  underlineMapSet.Insert( "height", 0 );
+  underlineMapSet.Insert("enable", false);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 0);
+  underlineMapSet.Insert("type", Text::Underline::SOLID);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  //DASHED Underline
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  underlineMapSet.Insert("enable", false);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 0);
+  underlineMapSet.Insert("type", Text::Underline::DASHED);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  //DOUBLE Underline
+  underlineMapSet.Clear();
+  underlineMapGet.Clear();
+
+  underlineMapSet.Insert("enable", false);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 0);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
 
-  underlineMapGet = label.GetProperty<Property::Map>( TextLabel::Property::UNDERLINE );
-  DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
+  application.SendNotification();
+  application.Render();
 
-  TextLabel label2 = TextLabel::New( "New text" );
-  DALI_TEST_CHECK( label2 );
-  DALI_TEST_EQUALS( label2.GetProperty<std::string>( TextLabel::Property::TEXT ), std::string("New text"), TEST_LOCATION );
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  TextLabel label2 = TextLabel::New("New text");
+  DALI_TEST_CHECK(label2);
+  DALI_TEST_EQUALS(label2.GetProperty<std::string>(TextLabel::Property::TEXT), std::string("New text"), TEST_LOCATION);
 
   // Check the enable markup property.
-  DALI_TEST_CHECK( !label.GetProperty<bool>( TextLabel::Property::ENABLE_MARKUP ) );
-  label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
-  DALI_TEST_CHECK( label.GetProperty<bool>( TextLabel::Property::ENABLE_MARKUP ) );
+  DALI_TEST_CHECK(!label.GetProperty<bool>(TextLabel::Property::ENABLE_MARKUP));
+  label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true);
+  DALI_TEST_CHECK(label.GetProperty<bool>(TextLabel::Property::ENABLE_MARKUP));
 
   // Check the text property when markup is enabled
-  label.SetProperty( TextLabel::Property::TEXT, "<color value='white'>Markup</color><color value='cyan'>Text</color>" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::TEXT ), std::string("MarkupText"), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "<color value='white'>Markup</color><color value='cyan'>Text</color>");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::TEXT), std::string("MarkupText"), TEST_LOCATION);
 
   // Check for incomplete marks.
-  label.SetProperty( TextLabel::Property::TEXT, "<color='white'><i>Markup</i><b>Text</b></color>" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::TEXT ), std::string("MarkupText"), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "<color='white'><i>Markup</i><b>Text</b></color>");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::TEXT), std::string("MarkupText"), TEST_LOCATION);
   try
   {
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
 
   // Check autoscroll properties
-  const int SCROLL_SPEED = 80;
-  const int SCROLL_LOOPS = 4;
-  const float SCROLL_GAP = 50.0f;
-  const float SCROLL_LOOP_DELAY = 0.3f;
-  const std::string STOP_IMMEDIATE = std::string( "IMMEDIATE" );
-  const std::string STOP_FINISH_LOOP = std::string( "FINISH_LOOP" );
-
-  label.SetProperty( TextLabel::Property::MULTI_LINE, false ); // Autoscroll only supported in single line
-  DALI_TEST_CHECK( !label.GetProperty<bool>( TextLabel::Property::ENABLE_AUTO_SCROLL ) );
-  label.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-  DALI_TEST_CHECK( label.GetProperty<bool>( TextLabel::Property::ENABLE_AUTO_SCROLL ) );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, SCROLL_SPEED );
-  DALI_TEST_EQUALS( SCROLL_SPEED, label.GetProperty<int>( TextLabel::Property::AUTO_SCROLL_SPEED ), TEST_LOCATION );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, SCROLL_LOOPS );
-  DALI_TEST_EQUALS( SCROLL_LOOPS, label.GetProperty<int>( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT ), TEST_LOCATION );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, SCROLL_GAP );
-  DALI_TEST_EQUALS( SCROLL_GAP, label.GetProperty<float>( TextLabel::Property::AUTO_SCROLL_GAP ), TEST_LOCATION );
-  label.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_DELAY, SCROLL_LOOP_DELAY );
-  DALI_TEST_EQUALS( SCROLL_LOOP_DELAY, label.GetProperty<float>( TextLabel::Property::AUTO_SCROLL_LOOP_DELAY ), TEST_LOCATION );
+  const int         SCROLL_SPEED      = 80;
+  const int         SCROLL_LOOPS      = 4;
+  const float       SCROLL_GAP        = 50.0f;
+  const float       SCROLL_LOOP_DELAY = 0.3f;
+  const std::string STOP_IMMEDIATE    = std::string("IMMEDIATE");
+  const std::string STOP_FINISH_LOOP  = std::string("FINISH_LOOP");
+
+  label.SetProperty(TextLabel::Property::MULTI_LINE, false); // Autoscroll only supported in single line
+  DALI_TEST_CHECK(!label.GetProperty<bool>(TextLabel::Property::ENABLE_AUTO_SCROLL));
+  label.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+  DALI_TEST_CHECK(label.GetProperty<bool>(TextLabel::Property::ENABLE_AUTO_SCROLL));
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, SCROLL_SPEED);
+  DALI_TEST_EQUALS(SCROLL_SPEED, label.GetProperty<int>(TextLabel::Property::AUTO_SCROLL_SPEED), TEST_LOCATION);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, SCROLL_LOOPS);
+  DALI_TEST_EQUALS(SCROLL_LOOPS, label.GetProperty<int>(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT), TEST_LOCATION);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, SCROLL_GAP);
+  DALI_TEST_EQUALS(SCROLL_GAP, label.GetProperty<float>(TextLabel::Property::AUTO_SCROLL_GAP), TEST_LOCATION);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_DELAY, SCROLL_LOOP_DELAY);
+  DALI_TEST_EQUALS(SCROLL_LOOP_DELAY, label.GetProperty<float>(TextLabel::Property::AUTO_SCROLL_LOOP_DELAY), TEST_LOCATION);
 
   //Check autoscroll stop type property
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
-  DALI_TEST_EQUALS( STOP_IMMEDIATE, label.GetProperty<std::string>( TextLabel::Property::AUTO_SCROLL_STOP_MODE ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE);
+  DALI_TEST_EQUALS(STOP_IMMEDIATE, label.GetProperty<std::string>(TextLabel::Property::AUTO_SCROLL_STOP_MODE), TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP );
-  DALI_TEST_EQUALS( STOP_FINISH_LOOP, label.GetProperty<std::string>( TextLabel::Property::AUTO_SCROLL_STOP_MODE ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP);
+  DALI_TEST_EQUALS(STOP_FINISH_LOOP, label.GetProperty<std::string>(TextLabel::Property::AUTO_SCROLL_STOP_MODE), TEST_LOCATION);
 
   // test natural size with multi-line and line spacing
   {
-    TextLabel label3 = TextLabel::New("Some text here\nend there\nend here");
-    Vector3 oneLineNaturalSize = label3.GetNaturalSize();
+    TextLabel label3             = TextLabel::New("Some text here\nend there\nend here");
+    Vector3   oneLineNaturalSize = label3.GetNaturalSize();
     label3.SetProperty(TextLabel::Property::MULTI_LINE, true);
     label3.SetProperty(TextLabel::Property::LINE_SPACING, 0);
     Vector3 multiLineNaturalSize = label3.GetNaturalSize();
 
     // The width of the text when multi-line is enabled will be smaller (lines separated on '\n')
     // The height of the text when multi-line is enabled will be larger
-    DALI_TEST_CHECK( oneLineNaturalSize.width > multiLineNaturalSize.width );
-    DALI_TEST_CHECK( oneLineNaturalSize.height < multiLineNaturalSize.height );
+    DALI_TEST_CHECK(oneLineNaturalSize.width > multiLineNaturalSize.width);
+    DALI_TEST_CHECK(oneLineNaturalSize.height < multiLineNaturalSize.height);
 
     // Change line spacing, meaning height will increase by 3 times the amount specified as we have three lines
     // Everything else will remain the same
     int lineSpacing = 20;
-    label3.SetProperty( TextLabel::Property::LINE_SPACING, lineSpacing );
-    Vector3 expectedAfterLineSpacingApplied( multiLineNaturalSize );
+    label3.SetProperty(TextLabel::Property::LINE_SPACING, lineSpacing);
+    Vector3 expectedAfterLineSpacingApplied(multiLineNaturalSize);
     expectedAfterLineSpacingApplied.height += 3 * lineSpacing;
-    DALI_TEST_EQUALS( expectedAfterLineSpacingApplied, label3.GetNaturalSize(), TEST_LOCATION );
+    DALI_TEST_EQUALS(expectedAfterLineSpacingApplied, label3.GetNaturalSize(), TEST_LOCATION);
   }
 
   // single line, line spacing must not affect natural size of the text, only add the spacing to the height
@@ -550,119 +618,284 @@ int UtcDaliToolkitTextLabelSetPropertyP(void)
     label3.SetProperty(TextLabel::Property::MULTI_LINE, false);
     label3.SetProperty(TextLabel::Property::LINE_SPACING, 0);
     Vector3 textNaturalSize = label3.GetNaturalSize();
-    int lineSpacing = 20;
-    label3.SetProperty( TextLabel::Property::LINE_SPACING, lineSpacing );
-    Vector3 expectedNaturalSizeWithLineSpacing( textNaturalSize );
+    int     lineSpacing     = 20;
+    label3.SetProperty(TextLabel::Property::LINE_SPACING, lineSpacing);
+    Vector3 expectedNaturalSizeWithLineSpacing(textNaturalSize);
     expectedNaturalSizeWithLineSpacing.height += lineSpacing;
-    DALI_TEST_EQUALS( expectedNaturalSizeWithLineSpacing, label3.GetNaturalSize(), TEST_LOCATION );
+    DALI_TEST_EQUALS(expectedNaturalSizeWithLineSpacing, label3.GetNaturalSize(), TEST_LOCATION);
   }
   // Check the line spacing property
-  DALI_TEST_EQUALS( label.GetProperty<float>( TextLabel::Property::LINE_SPACING ), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  label.SetProperty( TextLabel::Property::LINE_SPACING, 10.f );
-  DALI_TEST_EQUALS( label.GetProperty<float>( TextLabel::Property::LINE_SPACING ), 10.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::LINE_SPACING), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  label.SetProperty(TextLabel::Property::LINE_SPACING, 10.f);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::LINE_SPACING), 10.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+  // Check the strikethrough property
+  strikethroughMapSet.Clear();
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::RED);
+  strikethroughMapSet.Insert("height", 2.0f);
+
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  strikethroughMapGet = label.GetProperty<Property::Map>(DevelTextLabel::Property::STRIKETHROUGH);
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapGet, strikethroughMapSet), true, TEST_LOCATION);
+
+  strikethroughMapSet.Clear();
+  strikethroughMapSet.Insert(Toolkit::DevelText::Strikethrough::Property::ENABLE, true);
+  strikethroughMapSet.Insert(Toolkit::DevelText::Strikethrough::Property::COLOR, Color::RED);
+  strikethroughMapSet.Insert(Toolkit::DevelText::Strikethrough::Property::HEIGHT, 2.0f);
+
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  strikethroughMapGet = label.GetProperty<Property::Map>(DevelTextLabel::Property::STRIKETHROUGH);
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughMapSet.Count(), TEST_LOCATION);
+  std::vector<std::string> strikethroughIndicesConversionTable = {"enable", "color", "height"};
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapGet, strikethroughMapSet, strikethroughIndicesConversionTable), true, TEST_LOCATION);
+
+  strikethroughMapSet.Clear();
+
+  Property::Map strikethroughDisabledMapGet;
+  strikethroughDisabledMapGet.Insert("enable", false);
+  strikethroughDisabledMapGet.Insert("color", Color::RED);
+  strikethroughDisabledMapGet.Insert("height", 2.0f);
+
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  strikethroughMapGet = label.GetProperty<Property::Map>(DevelTextLabel::Property::STRIKETHROUGH);
+  DALI_TEST_EQUALS(strikethroughMapGet.Count(), strikethroughDisabledMapGet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(strikethroughMapGet, strikethroughDisabledMapGet), true, TEST_LOCATION);
 
   // Check the underline property
   underlineMapSet.Clear();
-  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", 2);
+  underlineMapSet.Insert("dashGap", 1);
 
-  label.SetProperty( TextLabel::Property::UNDERLINE, underlineMapSet );
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
 
   application.SendNotification();
   application.Render();
 
-  underlineMapGet = label.GetProperty<Property::Map>( TextLabel::Property::UNDERLINE );
-  DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet ), true, TEST_LOCATION );
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
 
   underlineMapSet.Clear();
-  underlineMapSet.Insert( Toolkit::DevelText::Underline::Property::ENABLE, true );
-  underlineMapSet.Insert( Toolkit::DevelText::Underline::Property::COLOR, Color::GREEN );
-  underlineMapSet.Insert( Toolkit::DevelText::Underline::Property::HEIGHT, 2 );
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::ENABLE, true);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::COLOR, Color::GREEN);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::HEIGHT, 2);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::TYPE, Text::Underline::DASHED);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::DASH_WIDTH, 2);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::DASH_GAP, 1);
 
-  label.SetProperty( TextLabel::Property::UNDERLINE, underlineMapSet );
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
 
   application.SendNotification();
   application.Render();
 
-  underlineMapGet = label.GetProperty<Property::Map>( TextLabel::Property::UNDERLINE );
-  DALI_TEST_EQUALS( underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION );
-  std::vector<std::string> underlineIndicesConversionTable = { "enable", "color", "height" };
-  DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineMapSet, underlineIndicesConversionTable ), true, TEST_LOCATION );
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  std::vector<std::string> underlineIndicesConversionTable = {"enable", "color", "height", "type", "dashWidth", "dashGap"};
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet, underlineIndicesConversionTable), true, TEST_LOCATION);
 
   underlineMapSet.Clear();
 
   Property::Map underlineDisabledMapGet;
-  underlineDisabledMapGet.Insert( "enable", false );
-  underlineDisabledMapGet.Insert( "color", Color::GREEN );
-  underlineDisabledMapGet.Insert( "height", 2 );
+  underlineDisabledMapGet.Insert("enable", false);
+  underlineDisabledMapGet.Insert("color", Color::GREEN);
+  underlineDisabledMapGet.Insert("height", 2);
+  underlineDisabledMapGet.Insert("type", Text::Underline::SOLID);
+  underlineDisabledMapGet.Insert("dashWidth", 2);
+  underlineDisabledMapGet.Insert("dashGap", 1);
 
-  label.SetProperty( TextLabel::Property::UNDERLINE, underlineMapSet );
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineDisabledMapGet);
 
   application.SendNotification();
   application.Render();
 
-  underlineMapGet = label.GetProperty<Property::Map>( TextLabel::Property::UNDERLINE );
-  DALI_TEST_EQUALS( underlineMapGet.Count(), underlineDisabledMapGet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( underlineMapGet, underlineDisabledMapGet ), true, TEST_LOCATION );
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineDisabledMapGet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineDisabledMapGet), true, TEST_LOCATION);
+
+  // Check the dashed underline property
+  underlineMapSet.Clear();
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::RED);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DASHED);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  underlineMapSet.Clear();
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::ENABLE, true);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::COLOR, Color::GREEN);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::HEIGHT, 2);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::TYPE, Text::Underline::DASHED);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::DASH_WIDTH, 2);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::DASH_GAP, 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  underlineIndicesConversionTable = {"enable", "color", "height", "type", "dashWidth", "dashGap"};
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet, underlineIndicesConversionTable), true, TEST_LOCATION);
+
+  underlineMapSet.Clear();
+
+  underlineDisabledMapGet.Clear();
+  underlineDisabledMapGet.Insert("enable", false);
+  underlineDisabledMapGet.Insert("color", Color::GREEN);
+  underlineDisabledMapGet.Insert("height", 2);
+  underlineDisabledMapGet.Insert("type", Text::Underline::DASHED);
+  underlineDisabledMapGet.Insert("dashWidth", 2);
+  underlineDisabledMapGet.Insert("dashGap", 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineDisabledMapGet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineDisabledMapGet), true, TEST_LOCATION);
+
+  // Check the double underline property
+  underlineMapSet.Clear();
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::RED);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet), true, TEST_LOCATION);
+
+  underlineMapSet.Clear();
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::ENABLE, true);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::COLOR, Color::GREEN);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::HEIGHT, 2);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::TYPE, Text::Underline::DOUBLE);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::DASH_WIDTH, 2);
+  underlineMapSet.Insert(Toolkit::DevelText::Underline::Property::DASH_GAP, 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineMapSet.Count(), TEST_LOCATION);
+  underlineIndicesConversionTable = {"enable", "color", "height", "type", "dashWidth", "dashGap"};
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineMapSet, underlineIndicesConversionTable), true, TEST_LOCATION);
+
+  underlineMapSet.Clear();
+
+  underlineDisabledMapGet.Clear();
+  underlineDisabledMapGet.Insert("enable", false);
+  underlineDisabledMapGet.Insert("color", Color::GREEN);
+  underlineDisabledMapGet.Insert("height", 2);
+  underlineDisabledMapGet.Insert("type", Text::Underline::DOUBLE);
+  underlineDisabledMapGet.Insert("dashWidth", 2);
+  underlineDisabledMapGet.Insert("dashGap", 1);
+
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineDisabledMapGet);
+
+  application.SendNotification();
+  application.Render();
+
+  underlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::UNDERLINE);
+  DALI_TEST_EQUALS(underlineMapGet.Count(), underlineDisabledMapGet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(underlineMapGet, underlineDisabledMapGet), true, 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", 5.0f );
+  shadowMapSet.Insert("color", Color::GREEN);
+  shadowMapSet.Insert("offset", Vector2(2.0f, 2.0f));
+  shadowMapSet.Insert("blurRadius", 5.0f);
 
-  label.SetProperty( TextLabel::Property::SHADOW, shadowMapSet );
+  label.SetProperty(TextLabel::Property::SHADOW, shadowMapSet);
 
-  shadowMapGet = label.GetProperty<Property::Map>( TextLabel::Property::SHADOW );
-  DALI_TEST_EQUALS( shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowMapSet ), true, TEST_LOCATION );
+  shadowMapGet = label.GetProperty<Property::Map>(TextLabel::Property::SHADOW);
+  DALI_TEST_EQUALS(shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(shadowMapGet, shadowMapSet), true, TEST_LOCATION);
 
   shadowMapSet.Clear();
 
-  shadowMapSet.Insert( Toolkit::DevelText::Shadow::Property::COLOR, Color::BLUE );
-  shadowMapSet.Insert( Toolkit::DevelText::Shadow::Property::OFFSET, "3.0 3.0" );
-  shadowMapSet.Insert( Toolkit::DevelText::Shadow::Property::BLUR_RADIUS, 3.0f );
+  shadowMapSet.Insert(Toolkit::DevelText::Shadow::Property::COLOR, Color::BLUE);
+  shadowMapSet.Insert(Toolkit::DevelText::Shadow::Property::OFFSET, "3.0 3.0");
+  shadowMapSet.Insert(Toolkit::DevelText::Shadow::Property::BLUR_RADIUS, 3.0f);
 
-  label.SetProperty( TextLabel::Property::SHADOW, shadowMapSet );
+  label.SetProperty(TextLabel::Property::SHADOW, shadowMapSet);
 
   // Replace the offset (string) by a vector2
   shadowMapSet.Clear();
-  shadowMapSet.Insert( Toolkit::DevelText::Shadow::Property::COLOR, Color::BLUE );
-  shadowMapSet.Insert( Toolkit::DevelText::Shadow::Property::OFFSET, Vector2( 3.0, 3.0 ) );
-  shadowMapSet.Insert( Toolkit::DevelText::Shadow::Property::BLUR_RADIUS, 3.0f );
+  shadowMapSet.Insert(Toolkit::DevelText::Shadow::Property::COLOR, Color::BLUE);
+  shadowMapSet.Insert(Toolkit::DevelText::Shadow::Property::OFFSET, Vector2(3.0, 3.0));
+  shadowMapSet.Insert(Toolkit::DevelText::Shadow::Property::BLUR_RADIUS, 3.0f);
 
-  shadowMapGet = label.GetProperty<Property::Map>( TextLabel::Property::SHADOW );
-  DALI_TEST_EQUALS( shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION );
-  std::vector<std::string> shadowIndicesConversionTable = { "color", "offset", "blurRadius" };
-  DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowMapSet, shadowIndicesConversionTable ), true, TEST_LOCATION );
+  shadowMapGet = label.GetProperty<Property::Map>(TextLabel::Property::SHADOW);
+  DALI_TEST_EQUALS(shadowMapGet.Count(), shadowMapSet.Count(), TEST_LOCATION);
+  std::vector<std::string> shadowIndicesConversionTable = {"color", "offset", "blurRadius"};
+  DALI_TEST_EQUALS(DaliTestCheckMaps(shadowMapGet, shadowMapSet, shadowIndicesConversionTable), true, TEST_LOCATION);
 
   shadowMapSet.Clear();
   Property::Map shadowDisabledMapGet;
-  shadowDisabledMapGet.Insert( "color", Color::BLUE );
-  shadowDisabledMapGet.Insert( "offset", Vector2(0.0f, 0.0f) );
-  shadowDisabledMapGet.Insert( "blurRadius", 3.0f );
+  shadowDisabledMapGet.Insert("color", Color::BLUE);
+  shadowDisabledMapGet.Insert("offset", Vector2(0.0f, 0.0f));
+  shadowDisabledMapGet.Insert("blurRadius", 3.0f);
 
-  label.SetProperty( TextLabel::Property::SHADOW, shadowMapSet );
+  label.SetProperty(TextLabel::Property::SHADOW, shadowMapSet);
 
-  shadowMapGet = label.GetProperty<Property::Map>( TextLabel::Property::SHADOW );
-  DALI_TEST_EQUALS( shadowMapGet.Count(), shadowDisabledMapGet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( shadowMapGet, shadowDisabledMapGet ), true, TEST_LOCATION );
+  shadowMapGet = label.GetProperty<Property::Map>(TextLabel::Property::SHADOW);
+  DALI_TEST_EQUALS(shadowMapGet.Count(), shadowDisabledMapGet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(shadowMapGet, shadowDisabledMapGet), true, TEST_LOCATION);
 
   // Check the emboss property
-  label.SetProperty( TextLabel::Property::EMBOSS, "Emboss properties" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::EMBOSS ), std::string("Emboss properties"), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::EMBOSS, "Emboss properties");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::EMBOSS), std::string("Emboss 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.
-  label.SetProperty( TextLabel::Property::OUTLINE, "Outline properties" );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::OUTLINE ), std::string("Outline properties"), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::OUTLINE, "Outline properties");
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::OUTLINE), std::string("Outline properties"), TEST_LOCATION);
 
   // Then test the property map type
   Property::Map outlineMapSet;
@@ -670,61 +903,61 @@ int UtcDaliToolkitTextLabelSetPropertyP(void)
 
   outlineMapSet["color"] = Color::RED;
   outlineMapSet["width"] = 2.0f;
-  label.SetProperty( TextLabel::Property::OUTLINE, outlineMapSet );
+  label.SetProperty(TextLabel::Property::OUTLINE, outlineMapSet);
 
-  outlineMapGet = label.GetProperty<Property::Map>( TextLabel::Property::OUTLINE );
-  DALI_TEST_EQUALS( outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( outlineMapGet, outlineMapSet ), true, TEST_LOCATION );
+  outlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::OUTLINE);
+  DALI_TEST_EQUALS(outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(outlineMapGet, outlineMapSet), true, TEST_LOCATION);
 
   outlineMapSet.Clear();
   outlineMapSet[Toolkit::DevelText::Outline::Property::COLOR] = Color::BLUE;
   outlineMapSet[Toolkit::DevelText::Outline::Property::WIDTH] = 3.0f;
-  label.SetProperty( TextLabel::Property::OUTLINE, outlineMapSet );
+  label.SetProperty(TextLabel::Property::OUTLINE, outlineMapSet);
 
-  outlineMapGet = label.GetProperty<Property::Map>( TextLabel::Property::OUTLINE );
-  DALI_TEST_EQUALS( outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION );
-  std::vector<std::string> outlineIndicesConversionTable = { "color", "width" };
-  DALI_TEST_EQUALS( DaliTestCheckMaps( outlineMapGet, outlineMapSet, outlineIndicesConversionTable ), true, TEST_LOCATION );
+  outlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::OUTLINE);
+  DALI_TEST_EQUALS(outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION);
+  std::vector<std::string> outlineIndicesConversionTable = {"color", "width"};
+  DALI_TEST_EQUALS(DaliTestCheckMaps(outlineMapGet, outlineMapSet, outlineIndicesConversionTable), true, TEST_LOCATION);
 
   // Check the background property
   Property::Map backgroundMapSet;
   Property::Map backgroundMapGet;
 
   backgroundMapSet["enable"] = true;
-  backgroundMapSet["color"] = Color::RED;
-  label.SetProperty( DevelTextLabel::Property::BACKGROUND, backgroundMapSet );
+  backgroundMapSet["color"]  = Color::RED;
+  label.SetProperty(DevelTextLabel::Property::BACKGROUND, backgroundMapSet);
 
-  backgroundMapGet = label.GetProperty<Property::Map>( DevelTextLabel::Property::BACKGROUND );
-  DALI_TEST_EQUALS( backgroundMapGet.Count(), backgroundMapSet.Count(), TEST_LOCATION );
-  DALI_TEST_EQUALS( DaliTestCheckMaps( backgroundMapGet, backgroundMapSet ), true, TEST_LOCATION );
+  backgroundMapGet = label.GetProperty<Property::Map>(DevelTextLabel::Property::BACKGROUND);
+  DALI_TEST_EQUALS(backgroundMapGet.Count(), backgroundMapSet.Count(), TEST_LOCATION);
+  DALI_TEST_EQUALS(DaliTestCheckMaps(backgroundMapGet, backgroundMapSet), true, TEST_LOCATION);
 
   backgroundMapSet.Clear();
   backgroundMapSet[Toolkit::DevelText::Background::Property::ENABLE] = true;
-  backgroundMapSet[Toolkit::DevelText::Background::Property::COLOR] = Color::GREEN;
-  label.SetProperty( DevelTextLabel::Property::BACKGROUND, backgroundMapSet );
+  backgroundMapSet[Toolkit::DevelText::Background::Property::COLOR]  = Color::GREEN;
+  label.SetProperty(DevelTextLabel::Property::BACKGROUND, backgroundMapSet);
 
-  backgroundMapGet = label.GetProperty<Property::Map>( DevelTextLabel::Property::BACKGROUND );
-  DALI_TEST_EQUALS( backgroundMapGet.Count(), backgroundMapSet.Count(), TEST_LOCATION );
-  std::vector<std::string> backgroundIndicesConversionTable = { "enable", "color" };
-  DALI_TEST_EQUALS( DaliTestCheckMaps( backgroundMapGet, backgroundMapSet, backgroundIndicesConversionTable ), true, TEST_LOCATION );
+  backgroundMapGet = label.GetProperty<Property::Map>(DevelTextLabel::Property::BACKGROUND);
+  DALI_TEST_EQUALS(backgroundMapGet.Count(), backgroundMapSet.Count(), TEST_LOCATION);
+  std::vector<std::string> backgroundIndicesConversionTable = {"enable", "color"};
+  DALI_TEST_EQUALS(DaliTestCheckMaps(backgroundMapGet, backgroundMapSet, backgroundIndicesConversionTable), true, TEST_LOCATION);
 
   // Check the pixel size of font
-  label.SetProperty( TextLabel::Property::PIXEL_SIZE, 20.f );
-  DALI_TEST_EQUALS( label.GetProperty<float>( TextLabel::Property::PIXEL_SIZE ), 20.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::PIXEL_SIZE, 20.f);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::PIXEL_SIZE), 20.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   // Check the ellipsis property
-  DALI_TEST_CHECK( label.GetProperty<bool>( TextLabel::Property::ELLIPSIS ) );
-  label.SetProperty( TextLabel::Property::ELLIPSIS, false );
-  DALI_TEST_CHECK( !label.GetProperty<bool>( TextLabel::Property::ELLIPSIS ) );
+  DALI_TEST_CHECK(label.GetProperty<bool>(TextLabel::Property::ELLIPSIS));
+  label.SetProperty(TextLabel::Property::ELLIPSIS, false);
+  DALI_TEST_CHECK(!label.GetProperty<bool>(TextLabel::Property::ELLIPSIS));
 
   // Check the layout direction property
-  label.SetProperty( Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT );
-  DALI_TEST_EQUALS( label.GetProperty< int >( Actor::Property::LAYOUT_DIRECTION ), static_cast< int >( LayoutDirection::RIGHT_TO_LEFT ), TEST_LOCATION );
+  label.SetProperty(Actor::Property::LAYOUT_DIRECTION, LayoutDirection::RIGHT_TO_LEFT);
+  DALI_TEST_EQUALS(label.GetProperty<int>(Actor::Property::LAYOUT_DIRECTION), static_cast<int>(LayoutDirection::RIGHT_TO_LEFT), TEST_LOCATION);
 
   // Check the line size property
-  DALI_TEST_EQUALS( label.GetProperty<float>( DevelTextLabel::Property::MIN_LINE_SIZE ), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
-  label.SetProperty( DevelTextLabel::Property::MIN_LINE_SIZE, 50.f );
-  DALI_TEST_EQUALS( label.GetProperty<float>( DevelTextLabel::Property::MIN_LINE_SIZE ), 50.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(label.GetProperty<float>(DevelTextLabel::Property::MIN_LINE_SIZE), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+  label.SetProperty(DevelTextLabel::Property::MIN_LINE_SIZE, 50.f);
+  DALI_TEST_EQUALS(label.GetProperty<float>(DevelTextLabel::Property::MIN_LINE_SIZE), 50.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -737,35 +970,41 @@ int UtcDaliToolkitTextlabelAtlasRenderP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelAtlasRenderP");
   TextLabel label = TextLabel::New("Test Text");
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   // Turn on all the effects
-  label.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true );
+  label.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
 
   Property::Map underlineMap;
-  underlineMap.Insert( "enable", true );
-  underlineMap.Insert( "color", Color::RED );
-  label.SetProperty( TextLabel::Property::UNDERLINE, underlineMap );
+  underlineMap.Insert("enable", true);
+  underlineMap.Insert("color", Color::RED);
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMap);
 
   Property::Map shadowMap;
-  shadowMap.Insert( "color", Color::BLUE );
-  shadowMap.Insert( "offset", Vector2( 1.0f, 1.0f ) );
-  label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
+  shadowMap.Insert("color", Color::BLUE);
+  shadowMap.Insert("offset", Vector2(1.0f, 1.0f));
+  label.SetProperty(TextLabel::Property::SHADOW, shadowMap);
+
+  Property::Map strikethroughMap;
+  strikethroughMap.Insert("enable", true);
+  strikethroughMap.Insert("color", Color::GREEN);
+  strikethroughMap.Insert("height", 2.0f);
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMap);
 
   try
   {
     // Render some text with the shared atlas backend
-    label.SetProperty( DevelTextLabel::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS );
+    label.SetProperty(DevelTextLabel::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS);
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -773,11 +1012,11 @@ int UtcDaliToolkitTextlabelAtlasRenderP(void)
   try
   {
     // Render some text with the shared atlas backend
-    label.SetProperty( DevelTextLabel::Property::RENDERING_BACKEND, DevelText::RENDERING_VECTOR_BASED );
+    label.SetProperty(DevelTextLabel::Property::RENDERING_BACKEND, DevelText::RENDERING_VECTOR_BASED);
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -789,19 +1028,20 @@ int UtcDaliToolkitTextLabelLanguagesP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelLanguagesP");
   TextLabel label = TextLabel::New();
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
-  const std::string scripts( " привет мир, γειά σου Κόσμε, Hello world, مرحبا بالعالم, שלום עולם, "
-                             "բարեւ աշխարհը, მსოფლიოში, 안녕하세요, 你好世界, ひらがな, カタカナ, "
-                             "ওহে বিশ্ব, မင်္ဂလာပါကမ္ဘာလောက, हैलो वर्ल्ड, હેલો વર્લ્ડ, ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆ, ಹಲೋ ವರ್ಲ್ಡ್, "
-                             "ഹലോ വേൾഡ്, ଓଡ଼ିଆ, හෙලෝ වර්ල්ඩ්, ஹலோ உலகம், హలో వరల్డ్, "
-                             "ສະບາຍດີໂລກ, สวัสดีโลก, ជំរាបសួរពិភពលោក, "
-                             "\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84." ); // these characters on the last line are emojis.
+  const std::string scripts(
+    " привет мир, γειά σου Κόσμε, Hello world, مرحبا بالعالم, שלום עולם, "
+    "բարեւ աշխարհը, მსოფლიოში, 안녕하세요, 你好世界, ひらがな, カタカナ, "
+    "ওহে বিশ্ব, မင်္ဂလာပါကမ္ဘာလောက, हैलो वर्ल्ड, હેલો વર્લ્ડ, ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆ, ಹಲೋ ವರ್ಲ್ಡ್, "
+    "ഹലോ വേൾഡ്, ଓଡ଼ିଆ, හෙලෝ වර්ල්ඩ්, ஹலோ உலகம், హలో వరల్డ్, "
+    "ສະບາຍດີໂລກ, สวัสดีโลก, ជំរាបសួរពិភពលោក, "
+    "\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84."); // these characters on the last line are emojis.
 
-  label.SetProperty( TextLabel::Property::TEXT, scripts );
-  DALI_TEST_EQUALS( label.GetProperty<std::string>( TextLabel::Property::TEXT ), scripts, TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, scripts);
+  DALI_TEST_EQUALS(label.GetProperty<std::string>(TextLabel::Property::TEXT), scripts, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
@@ -814,72 +1054,72 @@ int UtcDaliToolkitTextLabelEmojisP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelLanguagesP");
   TextLabel label = TextLabel::New();
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
 
-  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::FontDescription fontDescription;
-  fontDescription.path = pathName + DEFAULT_FONT_DIR + "/tizen/BreezeColorEmoji.ttf";
+  fontDescription.path   = pathName + DEFAULT_FONT_DIR + "/tizen/BreezeColorEmoji.ttf";
   fontDescription.family = "BreezeColorEmoji";
-  fontDescription.width = TextAbstraction::FontWidth::NONE;
+  fontDescription.width  = TextAbstraction::FontWidth::NONE;
   fontDescription.weight = TextAbstraction::FontWeight::NORMAL;
-  fontDescription.slant = TextAbstraction::FontSlant::NONE;
+  fontDescription.slant  = TextAbstraction::FontSlant::NONE;
 
-  fontClient.GetFontId( fontDescription, EMOJI_FONT_SIZE );
+  fontClient.GetFontId(fontDescription, EMOJI_FONT_SIZE);
 
   const std::string emojis = "<font family='BreezeColorEmoji' size='60'>\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84</font>";
-  label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
-  label.SetProperty( TextLabel::Property::TEXT, emojis );
+  label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true);
+  label.SetProperty(TextLabel::Property::TEXT, emojis);
 
   Property::Map shadowMap;
-  shadowMap.Insert( "color", "green" );
-  shadowMap.Insert( "offset", "2 2" );
-  label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
+  shadowMap.Insert("color", "green");
+  shadowMap.Insert("offset", "2 2");
+  label.SetProperty(TextLabel::Property::SHADOW, shadowMap);
 
   application.SendNotification();
   application.Render();
 
   // EMOJI + ZWJ + EMOJI case for coverage.
   const std::string emojiWithZWJ = "&#x1f469;&#x200d;&#x1f52c;";
-  label.SetProperty( TextLabel::Property::TEXT, emojiWithZWJ );
+  label.SetProperty(TextLabel::Property::TEXT, emojiWithZWJ);
 
   application.SendNotification();
   application.Render();
 
   // EMOJI Sequences case for coverage.
   std::string emojiSequences =
-       "Text VS15 &#x262a;&#xfe0e;\n"                                                         //text presentation sequence and selector
-      "Color VS16 &#x262a;&#xfe0f;\n"                                                        //emoji presentation sequence and selector
-      "Default &#x262a; \n"                                                                  //default presentation
-      "FamilyManWomanGirlBoy &#x1F468;&#x200D;&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;\n" // emoji multi zwj sequence
-      "WomanScientist &#x1f469;&#x200d;&#x1f52c;\n"                                          // emoji zwj sequence
-      "WomanScientistLightSkinTone&#x1F469;&#x1F3FB;&#x200D;&#x1F52C; \n"                    //emoji modifier sequence: skin tone & JWZ
-      "LeftRightArrowText&#x2194;&#xfe0e;\n"                                                 //text presentation sequence and selector
-      "LeftRightArrowEmoji&#x2194;&#xfe0f;\n"                                                //emoji presentation sequence and selector
-      "SouthKoreaFlag&#x1f1f0;&#x1f1f7;\n"                                                   //emoji flag sequence
-      "JordanFlag&#x1f1ef;&#x1f1f4;\n"                                                       // emoji flag sequence
-      "EnglandFlag&#x1F3F4;&#xE0067;&#xE0062;&#xE0065;&#xE006E;&#xE0067;&#xE007F;\n"         //emoji tag sequence like England flag
-      "Runner &#x1f3c3;&#x200d;&#x27a1;&#xfe0f; \n"
-      "VictoryHandMediumLightSkinTone:&#x270C;&#xFE0F;&#x1F3FC;\n"               //emoji modifier sequence: skin tone
-      "RainbowFlag:&#x1F3F3;&#xFE0F;&#x200D;&#x1F308; \n"                        //emoji zwj sequence: Rainbow Flag
-      "keycap# &#x0023;&#xFE0F;&#x20E3; \n"                                      // fully-qualified  emoji keycap sequence
-      "keycap#_text &#x0023;&#x20E3; \n"                                         // unqualified emoji keycap sequence
-      "keycap3 &#x0033;&#xfe0f;&#x20e3; \n"                                      // fully-qualified  emoji keycap sequence
-      "keycap3_text &#x0033;&#x20e3; \n"                                         // unqualified emoji keycap sequence
-      "two adjacent glyphs &#x262a;&#xfe0f;&#xfe0f;&#xfe0f;&#x262a;&#xfe0f;\n"   //This line should be rendered as two adjacent glyphs
-      "Digit 8&#xfe0f; 8&#xfe0e; 8\n"                                            // should be rendered according to selector
-      "Surfing Medium Skin Female:  &#x1f3c4;&#x1f3fc;&#x200d;&#x2640;&#xfe0f;"; // Person Surfing + Medium Skin Tone +? Zero Width Joiner + Female Sign
-
-  label.SetProperty( TextLabel::Property::TEXT, emojiSequences );
-  label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true);
-  label.SetProperty( TextLabel::Property::ELLIPSIS, false);
+    "Text VS15 &#x262a;&#xfe0e;\n"                                                         //text presentation sequence and selector
+    "Color VS16 &#x262a;&#xfe0f;\n"                                                        //emoji presentation sequence and selector
+    "Default &#x262a; \n"                                                                  //default presentation
+    "FamilyManWomanGirlBoy &#x1F468;&#x200D;&#x1F469;&#x200D;&#x1F467;&#x200D;&#x1F466;\n" // emoji multi zwj sequence
+    "WomanScientist &#x1f469;&#x200d;&#x1f52c;\n"                                          // emoji zwj sequence
+    "WomanScientistLightSkinTone&#x1F469;&#x1F3FB;&#x200D;&#x1F52C; \n"                    //emoji modifier sequence: skin tone & JWZ
+    "LeftRightArrowText&#x2194;&#xfe0e;\n"                                                 //text presentation sequence and selector
+    "LeftRightArrowEmoji&#x2194;&#xfe0f;\n"                                                //emoji presentation sequence and selector
+    "SouthKoreaFlag&#x1f1f0;&#x1f1f7;\n"                                                   //emoji flag sequence
+    "JordanFlag&#x1f1ef;&#x1f1f4;\n"                                                       // emoji flag sequence
+    "EnglandFlag&#x1F3F4;&#xE0067;&#xE0062;&#xE0065;&#xE006E;&#xE0067;&#xE007F;\n"         //emoji tag sequence like England flag
+    "Runner &#x1f3c3;&#x200d;&#x27a1;&#xfe0f; \n"
+    "VictoryHandMediumLightSkinTone:&#x270C;&#xFE0F;&#x1F3FC;\n"               //emoji modifier sequence: skin tone
+    "RainbowFlag:&#x1F3F3;&#xFE0F;&#x200D;&#x1F308; \n"                        //emoji zwj sequence: Rainbow Flag
+    "keycap# &#x0023;&#xFE0F;&#x20E3; \n"                                      // fully-qualified  emoji keycap sequence
+    "keycap#_text &#x0023;&#x20E3; \n"                                         // unqualified emoji keycap sequence
+    "keycap3 &#x0033;&#xfe0f;&#x20e3; \n"                                      // fully-qualified  emoji keycap sequence
+    "keycap3_text &#x0033;&#x20e3; \n"                                         // unqualified emoji keycap sequence
+    "two adjacent glyphs &#x262a;&#xfe0f;&#xfe0f;&#xfe0f;&#x262a;&#xfe0f;\n"   //This line should be rendered as two adjacent glyphs
+    "Digit 8&#xfe0f; 8&#xfe0e; 8\n"                                            // should be rendered according to selector
+    "Surfing Medium Skin Female:  &#x1f3c4;&#x1f3fc;&#x200d;&#x2640;&#xfe0f;"; // Person Surfing + Medium Skin Tone +? Zero Width Joiner + Female Sign
+
+  label.SetProperty(TextLabel::Property::TEXT, emojiSequences);
+  label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true);
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
+  label.SetProperty(TextLabel::Property::ELLIPSIS, false);
 
   application.SendNotification();
   application.Render();
@@ -891,51 +1131,48 @@ int UtcDaliToolkitTextlabelScrollingP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextLabelScrollingP");
   TextLabel labelImmediate = TextLabel::New("Some text to scroll");
-  TextLabel labelFinished = TextLabel::New("مرحبا بالعالم");
+  TextLabel labelFinished  = TextLabel::New("مرحبا بالعالم");
 
-  DALI_TEST_CHECK( labelImmediate );
-  DALI_TEST_CHECK( labelFinished );
+  DALI_TEST_CHECK(labelImmediate);
+  DALI_TEST_CHECK(labelFinished);
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
-  application.GetScene().Add( labelImmediate );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+  application.GetScene().Add(labelImmediate);
   // Turn on all the effects
-  labelImmediate.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
+  labelImmediate.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelImmediate.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelImmediate.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelImmediate.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelImmediate.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE);
 
-  application.GetScene().Add( labelFinished );
+  application.GetScene().Add(labelFinished);
   // Turn on all the effects
-  labelFinished.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP );
-
-
+  labelFinished.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelFinished.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelFinished.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelFinished.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelFinished.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP);
 
   try
   {
     // Render some text with the shared atlas backend
-    labelImmediate.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-    labelFinished.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+    labelImmediate.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+    labelFinished.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
 
-    labelImmediate.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
-    labelFinished.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
+    labelImmediate.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
+    labelFinished.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
 
-    labelImmediate.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-    labelFinished.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+    labelImmediate.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+    labelFinished.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
     application.SendNotification();
     application.Render();
 
-    labelImmediate.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
-    labelFinished.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
+    labelImmediate.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
+    labelFinished.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
     application.SendNotification();
     application.Render();
-
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -946,46 +1183,45 @@ int UtcDaliToolkitTextlabelScrollingP(void)
 int UtcDaliToolkitTextlabelScrollingCenterAlignP(void)
 {
   ToolkitTestApplication application;
-  TextLabel labelShort = TextLabel::New("Some text to scroll");
-  TextLabel labelLong = TextLabel::New("Some text to scroll that is greater than the width of the text. The quick brown fox jumps over the lazy dog. Hello World, we meet again!");
+  TextLabel              labelShort = TextLabel::New("Some text to scroll");
+  TextLabel              labelLong  = TextLabel::New("Some text to scroll that is greater than the width of the text. The quick brown fox jumps over the lazy dog. Hello World, we meet again!");
 
-  DALI_TEST_CHECK( labelShort );
-  DALI_TEST_CHECK( labelLong );
+  DALI_TEST_CHECK(labelShort);
+  DALI_TEST_CHECK(labelLong);
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
-  application.GetScene().Add( labelShort );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+  application.GetScene().Add(labelShort);
   // Turn on all the effects
-  labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
-
-  application.GetScene().Add( labelLong );
+  labelShort.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelShort.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE);
+
+  application.GetScene().Add(labelLong);
   // Turn on all the effects
-  labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP );
+  labelLong.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelLong.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP);
 
   try
   {
     // Render some text with the shared atlas backend
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
     application.SendNotification();
     application.Render();
 
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
     application.SendNotification();
     application.Render();
-
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -996,46 +1232,45 @@ int UtcDaliToolkitTextlabelScrollingCenterAlignP(void)
 int UtcDaliToolkitTextlabelScrollingCenterAlignRTLP(void)
 {
   ToolkitTestApplication application;
-  TextLabel labelShort = TextLabel::New("مرحبا بالعالم");
-  TextLabel labelLong = TextLabel::New("لكن لا بد أن أوضح لك أن كل هذه الأفكار المغلوطة حول استنكار  النشوة وتمجيد الألم نشأت بالفعل، وسأعرض لك التفاصيل لتكتشف حقيقة وأساس تلك السعادة البشرية، فلا أحد يرفض أو يكره أو يتجنب الشعور بالسعادة، ولكن بفضل هؤلاء الأشخاص الذين لا يدركون بأن السعادة لا بد أن نستشعرها بصورة أكثر عقلانية ومنطقية فيعرضهم هذا لمواجهة الظروف الأليمة، وأكرر بأنه لا يوجد من يرغب في الحب ونيل المنال ويتلذذ بالآلام، الألم هو الألم ولكن نتيجة لظروف ما قد تكمن السعاده فيما نتحمله من كد وأسي");
+  TextLabel              labelShort = TextLabel::New("مرحبا بالعالم");
+  TextLabel              labelLong  = TextLabel::New("لكن لا بد أن أوضح لك أن كل هذه الأفكار المغلوطة حول استنكار  النشوة وتمجيد الألم نشأت بالفعل، وسأعرض لك التفاصيل لتكتشف حقيقة وأساس تلك السعادة البشرية، فلا أحد يرفض أو يكره أو يتجنب الشعور بالسعادة، ولكن بفضل هؤلاء الأشخاص الذين لا يدركون بأن السعادة لا بد أن نستشعرها بصورة أكثر عقلانية ومنطقية فيعرضهم هذا لمواجهة الظروف الأليمة، وأكرر بأنه لا يوجد من يرغب في الحب ونيل المنال ويتلذذ بالآلام، الألم هو الألم ولكن نتيجة لظروف ما قد تكمن السعاده فيما نتحمله من كد وأسي");
 
-  DALI_TEST_CHECK( labelShort );
-  DALI_TEST_CHECK( labelLong );
+  DALI_TEST_CHECK(labelShort);
+  DALI_TEST_CHECK(labelLong);
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
-  application.GetScene().Add( labelShort );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+  application.GetScene().Add(labelShort);
   // Turn on all the effects
-  labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
-
-  application.GetScene().Add( labelLong );
+  labelShort.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelShort.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE);
+
+  application.GetScene().Add(labelLong);
   // Turn on all the effects
-  labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP );
+  labelLong.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelLong.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP);
 
   try
   {
     // Render some text with the shared atlas backend
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
     application.SendNotification();
     application.Render();
 
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
     application.SendNotification();
     application.Render();
-
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1046,46 +1281,45 @@ int UtcDaliToolkitTextlabelScrollingCenterAlignRTLP(void)
 int UtcDaliToolkitTextlabelScrollingEndAlignP(void)
 {
   ToolkitTestApplication application;
-  TextLabel labelShort = TextLabel::New("Some text to scroll");
-  TextLabel labelLong = TextLabel::New("Some text to scroll that is greater than the width of the text. The quick brown fox jumps over the lazy dog. Hello World, we meet again!");
+  TextLabel              labelShort = TextLabel::New("Some text to scroll");
+  TextLabel              labelLong  = TextLabel::New("Some text to scroll that is greater than the width of the text. The quick brown fox jumps over the lazy dog. Hello World, we meet again!");
 
-  DALI_TEST_CHECK( labelShort );
-  DALI_TEST_CHECK( labelLong );
+  DALI_TEST_CHECK(labelShort);
+  DALI_TEST_CHECK(labelLong);
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
-  application.GetScene().Add( labelShort );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+  application.GetScene().Add(labelShort);
   // Turn on all the effects
-  labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
-
-  application.GetScene().Add( labelLong );
+  labelShort.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelShort.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "END");
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE);
+
+  application.GetScene().Add(labelLong);
   // Turn on all the effects
-  labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP );
+  labelLong.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelLong.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "END");
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP);
 
   try
   {
     // Render some text with the shared atlas backend
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
     application.SendNotification();
     application.Render();
 
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
     application.SendNotification();
     application.Render();
-
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1096,46 +1330,45 @@ int UtcDaliToolkitTextlabelScrollingEndAlignP(void)
 int UtcDaliToolkitTextlabelScrollingEndAlignRTLP(void)
 {
   ToolkitTestApplication application;
-  TextLabel labelShort = TextLabel::New("مرحبا بالعالم");
-  TextLabel labelLong = TextLabel::New("لكن لا بد أن أوضح لك أن كل هذه الأفكار المغلوطة حول استنكار  النشوة وتمجيد الألم نشأت بالفعل، وسأعرض لك التفاصيل لتكتشف حقيقة وأساس تلك السعادة البشرية، فلا أحد يرفض أو يكره أو يتجنب الشعور بالسعادة، ولكن بفضل هؤلاء الأشخاص الذين لا يدركون بأن السعادة لا بد أن نستشعرها بصورة أكثر عقلانية ومنطقية فيعرضهم هذا لمواجهة الظروف الأليمة، وأكرر بأنه لا يوجد من يرغب في الحب ونيل المنال ويتلذذ بالآلام، الألم هو الألم ولكن نتيجة لظروف ما قد تكمن السعاده فيما نتحمله من كد وأسي");
+  TextLabel              labelShort = TextLabel::New("مرحبا بالعالم");
+  TextLabel              labelLong  = TextLabel::New("لكن لا بد أن أوضح لك أن كل هذه الأفكار المغلوطة حول استنكار  النشوة وتمجيد الألم نشأت بالفعل، وسأعرض لك التفاصيل لتكتشف حقيقة وأساس تلك السعادة البشرية، فلا أحد يرفض أو يكره أو يتجنب الشعور بالسعادة، ولكن بفضل هؤلاء الأشخاص الذين لا يدركون بأن السعادة لا بد أن نستشعرها بصورة أكثر عقلانية ومنطقية فيعرضهم هذا لمواجهة الظروف الأليمة، وأكرر بأنه لا يوجد من يرغب في الحب ونيل المنال ويتلذذ بالآلام، الألم هو الألم ولكن نتيجة لظروف ما قد تكمن السعاده فيما نتحمله من كد وأسي");
 
-  DALI_TEST_CHECK( labelShort );
-  DALI_TEST_CHECK( labelLong );
+  DALI_TEST_CHECK(labelShort);
+  DALI_TEST_CHECK(labelLong);
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
-  application.GetScene().Add( labelShort );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+  application.GetScene().Add(labelShort);
   // Turn on all the effects
-  labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
-
-  application.GetScene().Add( labelLong );
+  labelShort.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelShort.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "END");
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelShort.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE);
+
+  application.GetScene().Add(labelLong);
   // Turn on all the effects
-  labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
-  labelLong.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP );
+  labelLong.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  labelLong.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "END");
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
+  labelLong.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP);
 
   try
   {
     // Render some text with the shared atlas backend
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
     application.SendNotification();
     application.Render();
 
-    labelShort.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
-    labelLong.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
+    labelShort.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
+    labelLong.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
     application.SendNotification();
     application.Render();
-
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1148,47 +1381,46 @@ int UtcDaliToolkitTextlabelScrollingInterruptedP(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextlabelScrollingInterruptedP");
   TextLabel label = TextLabel::New("Some text to scroll");
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
-  application.GetScene().Add( label );
-  label.SetProperty( Actor::Property::SIZE, Vector2( 360.0f, 20.f ) );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+  application.GetScene().Add(label);
+  label.SetProperty(Actor::Property::SIZE, Vector2(360.0f, 20.f));
   // Turn on all the effects
-  label.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
+  label.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
 
   // Render the text.
   application.SendNotification();
   application.Render();
 
   unsigned int actorCount1 = label.GetChildCount();
-  tet_printf("Initial actor count is(%d)\n", actorCount1 );
+  tet_printf("Initial actor count is(%d)\n", actorCount1);
 
   try
   {
     // Render some text with the shared atlas backend
-    label.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+    label.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
     application.SendNotification();
     application.Render(2000);
 
     unsigned int actorCount1 = label.GetChildCount();
-    tet_printf("Actor count after scrolling is(%d)\n", actorCount1 );
+    tet_printf("Actor count after scrolling is(%d)\n", actorCount1);
 
-    label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED );
+    label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::RED);
 
     // Render the text.
     application.SendNotification();
     application.Render();
 
     unsigned int actorCount2 = label.GetChildCount();
-    tet_printf("After changing color the actor count is(%d)\n", actorCount2 );
-
-    DALI_TEST_EQUALS( actorCount1, actorCount2, TEST_LOCATION );
+    tet_printf("After changing color the actor count is(%d)\n", actorCount2);
 
+    DALI_TEST_EQUALS(actorCount1, actorCount2, TEST_LOCATION);
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1202,27 +1434,27 @@ int UtcDaliToolkitTextlabelScrollingN(void)
   tet_infoline(" UtcDaliToolkitTextlabelScrollingN");
 
   TextLabel label = TextLabel::New("Some text to scroll");
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // The text scrolling works only on single line text.
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true );
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
 
   // Turn on all the effects.
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
 
   // Enable the auto scrolling effect.
-  label.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
+  label.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
 
   // The auto scrolling shouldn't be enabled.
-  const bool enabled = label.GetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL ).Get<bool>();
-  DALI_TEST_CHECK( !enabled );
+  const bool enabled = label.GetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL).Get<bool>();
+  DALI_TEST_CHECK(!enabled);
 
   END_TEST;
 }
@@ -1233,38 +1465,38 @@ int UtcDaliToolkitTextlabelScrollingWithEllipsis(void)
   tet_infoline(" UtcDaliToolkitTextlabelScrollingWithEllipsis");
 
   TextLabel label = TextLabel::New("Some text to scroll");
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
   // Turn on all the effects.
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 );
-  label.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f );
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 50.0f);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
+  label.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f);
 
   try
   {
     // Enable the auto scrolling effect.
-    label.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true );
-    label.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
+    label.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, true);
+    label.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE);
 
     // Disable the ellipsis
-    label.SetProperty( TextLabel::Property::ELLIPSIS, false );
+    label.SetProperty(TextLabel::Property::ELLIPSIS, false);
 
     // Render the text.
     application.SendNotification();
     application.Render();
 
     // Stop auto scrolling
-    label.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false );
+    label.SetProperty(TextLabel::Property::ENABLE_AUTO_SCROLL, false);
 
     // Check the ellipsis property
-    DALI_TEST_CHECK( !label.GetProperty<bool>( TextLabel::Property::ELLIPSIS ) );
+    DALI_TEST_CHECK(!label.GetProperty<bool>(TextLabel::Property::ELLIPSIS));
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1278,17 +1510,17 @@ int UtcDaliToolkitTextlabelEllipsis(void)
   tet_infoline(" UtcDaliToolkitTextlabelEllipsis");
 
   TextLabel label = TextLabel::New("Hello world");
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
   // Avoid a crash when core load gl resources.
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   // Turn on all the effects
-  label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
-  label.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
-  label.SetProperty( Actor::Property::SIZE, Vector2( 360.0f, 10.f ) );
+  label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
+  label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+  label.SetProperty(Actor::Property::SIZE, Vector2(360.0f, 10.f));
 
   try
   {
@@ -1296,14 +1528,14 @@ int UtcDaliToolkitTextlabelEllipsis(void)
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
 
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world                                        " );
-  label.SetProperty( DevelTextLabel::Property::IGNORE_SPACES_AFTER_TEXT, false );
-  label.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 10.f ) );
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world                                        ");
+  label.SetProperty(DevelTextLabel::Property::IGNORE_SPACES_AFTER_TEXT, false);
+  label.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 10.f));
 
   try
   {
@@ -1311,15 +1543,14 @@ int UtcDaliToolkitTextlabelEllipsis(void)
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
 
-
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world" );
-  label.SetProperty( DevelTextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, true );
-  label.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 10.f ) );
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world");
+  label.SetProperty(DevelTextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, true);
+  label.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 10.f));
 
   try
   {
@@ -1327,7 +1558,7 @@ int UtcDaliToolkitTextlabelEllipsis(void)
     application.SendNotification();
     application.Render();
   }
-  catch( ... )
+  catch(...)
   {
     tet_result(TET_FAIL);
   }
@@ -1340,54 +1571,52 @@ int UtcDaliToolkitTextlabelTextWrapMode(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextlabelTextWarpMode");
 
-  int lineCount =;
+  int lineCount = 0;
 
   TextLabel label = TextLabel::New();
-  label.SetProperty( Actor::Property::SIZE, Vector2( 300.0f, 300.f ) );
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world Hello world" );
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true );
-
-
+  label.SetProperty(Actor::Property::SIZE, Vector2(300.0f, 300.f));
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world Hello world");
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
 
   //label.SetProperty( TextLabel::Property::POINT_SIZE, 18 );
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
-  label.SetProperty( TextLabel::Property::LINE_WRAP_MODE, "WORD" );
-  DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::WORD ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE, "WORD");
+  DALI_TEST_EQUALS(label.GetProperty<int>(TextLabel::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::WORD), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  label.GetProperty<int>( TextLabel::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 2, TEST_LOCATION );
+  lineCount = label.GetProperty<int>(TextLabel::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 2, TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::LINE_WRAP_MODE, "CHARACTER" );
-  DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::CHARACTER ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE, "CHARACTER");
+  DALI_TEST_EQUALS(label.GetProperty<int>(TextLabel::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::CHARACTER), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  label.SetProperty( TextLabel::Property::LINE_WRAP_MODE, Text::LineWrap::WORD );
-  DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::WORD ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE, Text::LineWrap::WORD);
+  DALI_TEST_EQUALS(label.GetProperty<int>(TextLabel::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::WORD), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  label.GetProperty<int>( TextLabel::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 2, TEST_LOCATION );
+  lineCount = label.GetProperty<int>(TextLabel::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 2, TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::LINE_WRAP_MODE, Text::LineWrap::CHARACTER );
-  DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::CHARACTER ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE, Text::LineWrap::CHARACTER);
+  DALI_TEST_EQUALS(label.GetProperty<int>(TextLabel::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::CHARACTER), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  label.GetProperty<int>( TextLabel::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 2, TEST_LOCATION );
+  lineCount = label.GetProperty<int>(TextLabel::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 2, TEST_LOCATION);
 
-  tet_infoline( "Ensure invalid string does not change wrapping mode" );
-  label.SetProperty( TextLabel::Property::LINE_WRAP_MODE, "InvalidWrapMode" );
-  DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::CHARACTER ), TEST_LOCATION );
+  tet_infoline("Ensure invalid string does not change wrapping mode");
+  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE, "InvalidWrapMode");
+  DALI_TEST_EQUALS(label.GetProperty<int>(TextLabel::Property::LINE_WRAP_MODE), static_cast<int>(Text::LineWrap::CHARACTER), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1397,59 +1626,59 @@ int UtcDaliToolkitTextLabelColorComponents(void)
   ToolkitTestApplication application;
 
   TextLabel label = TextLabel::New();
-  label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_RED ),   1.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_GREEN ), 0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_BLUE ),  0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_ALPHA ), 1.0f, TEST_LOCATION );
-
-  label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::GREEN );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_RED ),   0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_GREEN ), 1.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_BLUE ),  0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_ALPHA ), 1.0f, TEST_LOCATION );
-
-  label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::BLUE );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_RED ),   0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_GREEN ), 0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_BLUE ),  1.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_ALPHA ), 1.0f, TEST_LOCATION );
-
-  label.SetProperty( TextLabel::Property::TEXT_COLOR_ALPHA, 0.6f );
-  DALI_TEST_EQUALS( label.GetProperty< float >( TextLabel::Property::TEXT_COLOR_ALPHA ), 0.6f, TEST_LOCATION );
-  DALI_TEST_EQUALS( label.GetProperty< Vector4 >( TextLabel::Property::TEXT_COLOR ), Vector4( 0.0f, 0.0f, 1.0f, 0.6f ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::RED);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_RED), 1.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_GREEN), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_BLUE), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_ALPHA), 1.0f, TEST_LOCATION);
+
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::GREEN);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_RED), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_GREEN), 1.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_BLUE), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_ALPHA), 1.0f, TEST_LOCATION);
+
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::BLUE);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_RED), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_GREEN), 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_BLUE), 1.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_ALPHA), 1.0f, TEST_LOCATION);
+
+  label.SetProperty(TextLabel::Property::TEXT_COLOR_ALPHA, 0.6f);
+  DALI_TEST_EQUALS(label.GetProperty<float>(TextLabel::Property::TEXT_COLOR_ALPHA), 0.6f, TEST_LOCATION);
+  DALI_TEST_EQUALS(label.GetProperty<Vector4>(TextLabel::Property::TEXT_COLOR), Vector4(0.0f, 0.0f, 1.0f, 0.6f), TEST_LOCATION);
 
   // Test a transparent text - Rendering should be skipped.
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world Hello world" );
-  label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::BLUE );
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world Hello world");
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::BLUE);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   TraceCallStack& drawTrace = application.GetGlAbstraction().GetDrawTrace();
-  drawTrace.Enable( true );
+  drawTrace.Enable(true);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( drawTrace.FindMethod( "DrawArrays" ), true, TEST_LOCATION );  // Should be rendered
+  DALI_TEST_EQUALS(drawTrace.FindMethod("DrawArrays"), true, TEST_LOCATION); // Should be rendered
 
-  label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::TRANSPARENT );
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::TRANSPARENT);
 
   drawTrace.Reset();
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( drawTrace.FindMethod( "DrawArrays" ), false, TEST_LOCATION ); // Rendering should be skipped
+  DALI_TEST_EQUALS(drawTrace.FindMethod("DrawArrays"), false, TEST_LOCATION); // Rendering should be skipped
 
-  label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED );
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::RED);
 
   drawTrace.Reset();
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( drawTrace.FindMethod( "DrawArrays" ), true, TEST_LOCATION ); // Should be rendered again
+  DALI_TEST_EQUALS(drawTrace.FindMethod("DrawArrays"), true, TEST_LOCATION); // Should be rendered again
 
   END_TEST;
 }
@@ -1460,65 +1689,65 @@ int UtcDaliToolkitTextlabelTextStyle01(void)
   tet_infoline(" UtcDaliToolkitTextlabelTextStyle Setting Outline after Shadow");
 
   TextLabel label = TextLabel::New();
-  label.SetProperty( Actor::Property::SIZE, Vector2( 300.0f, 300.f ) );
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world Hello world" );
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 12 );
-  application.GetScene().Add( label );
+  label.SetProperty(Actor::Property::SIZE, Vector2(300.0f, 300.f));
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world Hello world");
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 12);
+  application.GetScene().Add(label);
 
   Property::Map outlineMapSet;
   Property::Map outlineMapGet;
 
   outlineMapSet["color"] = Color::BLUE;
   outlineMapSet["width"] = 2.0f;
-  label.SetProperty( TextLabel::Property::OUTLINE, outlineMapSet );
+  label.SetProperty(TextLabel::Property::OUTLINE, outlineMapSet);
 
   application.SendNotification();
   application.Render();
 
   Property::Map shadowMapSet;
-  shadowMapSet.Insert( "color", "green" );
-  shadowMapSet.Insert( "offset", "2 2" );
-  shadowMapSet.Insert( "blurRadius", "3" );
-  label.SetProperty( TextLabel::Property::SHADOW, shadowMapSet );
+  shadowMapSet.Insert("color", "green");
+  shadowMapSet.Insert("offset", "2 2");
+  shadowMapSet.Insert("blurRadius", "3");
+  label.SetProperty(TextLabel::Property::SHADOW, shadowMapSet);
 
   outlineMapSet["color"] = Color::RED;
   outlineMapSet["width"] = 0.0f;
-  label.SetProperty( TextLabel::Property::OUTLINE, outlineMapSet );
+  label.SetProperty(TextLabel::Property::OUTLINE, outlineMapSet);
 
   application.SendNotification();
   application.Render();
 
-  outlineMapGet = label.GetProperty<Property::Map>( TextLabel::Property::OUTLINE );
+  outlineMapGet = label.GetProperty<Property::Map>(TextLabel::Property::OUTLINE);
 
   Property::Value* colorValue = outlineMapGet.Find("color");
 
-  bool colorMatched( false );
+  bool colorMatched(false);
 
-  if ( colorValue )
+  if(colorValue)
   {
-     Property::Type valueType = colorValue->GetType();
-
-     if ( Property::STRING == valueType )
-     {
-       std::string stringValue;
-       colorValue->Get( stringValue );
-       if (  stringValue == "red" )
-       {
-         colorMatched = true;
-       }
-     }
-     else if ( Property::VECTOR4 == valueType )
-     {
-       Vector4 colorVector4;
-       colorValue->Get( colorVector4 );
-       if (  colorVector4 == Color::RED )
-       {
-         colorMatched = true;
-       }
-     }
+    Property::Type valueType = colorValue->GetType();
+
+    if(Property::STRING == valueType)
+    {
+      std::string stringValue;
+      colorValue->Get(stringValue);
+      if(stringValue == "red")
+      {
+        colorMatched = true;
+      }
+    }
+    else if(Property::VECTOR4 == valueType)
+    {
+      Vector4 colorVector4;
+      colorValue->Get(colorVector4);
+      if(colorVector4 == Color::RED)
+      {
+        colorMatched = true;
+      }
+    }
   }
 
-  DALI_TEST_EQUALS( colorMatched, true, TEST_LOCATION );
+  DALI_TEST_EQUALS(colorMatched, true, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1529,25 +1758,24 @@ int UtcDaliToolkitTextlabelMultiline(void)
   tet_infoline(" UtcDaliToolkitTextlabelMultiline");
 
   TextLabel label = TextLabel::New();
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world Hello world Hello world Hello world Hello world Hello world" );
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 20 );
-  label.SetProperty( TextLabel::Property::MULTI_LINE, false );
-  application.GetScene().Add( label );
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world Hello world Hello world Hello world Hello world Hello world");
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 20);
+  label.SetProperty(TextLabel::Property::MULTI_LINE, false);
+  application.GetScene().Add(label);
 
   application.SendNotification();
   application.Render();
 
-  int lineCount =  label.GetProperty<int>( TextLabel::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( lineCount, 1, TEST_LOCATION );
+  int lineCount = label.GetProperty<int>(TextLabel::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(lineCount, 1, TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true );
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
 
   application.SendNotification();
   application.Render();
 
-  lineCount =  label.GetProperty<int>( TextLabel::Property::LINE_COUNT );
-  DALI_TEST_EQUALS( true, (lineCount > 1) , TEST_LOCATION );
-
+  lineCount = label.GetProperty<int>(TextLabel::Property::LINE_COUNT);
+  DALI_TEST_EQUALS(true, (lineCount > 1), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1558,27 +1786,27 @@ int UtcDaliToolkitTextlabelTextDirection(void)
   tet_infoline(" UtcDaliToolkitTextlabelTextDirection");
 
   TextLabel label = TextLabel::New();
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::TEXT_DIRECTION ), static_cast< int >( Toolkit::DevelText::TextDirection::LEFT_TO_RIGHT ), TEST_LOCATION );
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::TEXT_DIRECTION), static_cast<int>(Toolkit::DevelText::TextDirection::LEFT_TO_RIGHT), TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world" );
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 20 );
-  label.SetProperty( DevelTextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, false );
-  application.GetScene().Add( label );
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world");
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 20);
+  label.SetProperty(DevelTextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, false);
+  application.GetScene().Add(label);
 
   // Test LTR text
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::TEXT_DIRECTION ), static_cast< int >( Toolkit::DevelText::TextDirection::LEFT_TO_RIGHT ), TEST_LOCATION );
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::TEXT_DIRECTION), static_cast<int>(Toolkit::DevelText::TextDirection::LEFT_TO_RIGHT), TEST_LOCATION);
 
   // Test RTL text
-  label.SetProperty( TextLabel::Property::TEXT, "ﻡﺮﺤﺑﺍ ﺏﺎﻠﻋﺎﻠﻣ ﻡﺮﺤﺑﺍ" );
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::TEXT_DIRECTION ), static_cast< int >( Toolkit::DevelText::TextDirection::RIGHT_TO_LEFT ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "ﻡﺮﺤﺑﺍ ﺏﺎﻠﻋﺎﻠﻣ ﻡﺮﺤﺑﺍ");
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::TEXT_DIRECTION), static_cast<int>(Toolkit::DevelText::TextDirection::RIGHT_TO_LEFT), TEST_LOCATION);
 
   // Test RTL text starting with weak character
-  label.SetProperty( TextLabel::Property::TEXT, "()ﻡﺮﺤﺑﺍ ﺏﺎﻠﻋﺎﻠﻣ ﻡﺮﺤﺑﺍ" );
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::TEXT_DIRECTION ), static_cast< int >( Toolkit::DevelText::TextDirection::RIGHT_TO_LEFT ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "()ﻡﺮﺤﺑﺍ ﺏﺎﻠﻋﺎﻠﻣ ﻡﺮﺤﺑﺍ");
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::TEXT_DIRECTION), static_cast<int>(Toolkit::DevelText::TextDirection::RIGHT_TO_LEFT), TEST_LOCATION);
 
   // Test RTL text string with emoji and weak character
-  label.SetProperty( TextLabel::Property::TEXT, "\xF0\x9F\x98\x81 () ﻡﺮﺤﺑﺍ ﺏﺎﻠﻋﺎﻠﻣ ﻡﺮﺤﺑﺍ" );
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::TEXT_DIRECTION ), static_cast< int >( Toolkit::DevelText::TextDirection::RIGHT_TO_LEFT ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "\xF0\x9F\x98\x81 () ﻡﺮﺤﺑﺍ ﺏﺎﻠﻋﺎﻠﻣ ﻡﺮﺤﺑﺍ");
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::TEXT_DIRECTION), static_cast<int>(Toolkit::DevelText::TextDirection::RIGHT_TO_LEFT), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1590,18 +1818,18 @@ int UtcDaliToolkitTextlabelVerticalLineAlignment(void)
 
   TextLabel label = TextLabel::New();
 
-  label.SetProperty( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT, DevelText::VerticalLineAlignment::TOP  );
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world" );
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 15 );
-  label.SetProperty( TextLabel::Property::LINE_SPACING, 12 );
-  application.GetScene().Add( label );
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT ), static_cast< int >( Toolkit::DevelText::VerticalLineAlignment::TOP ), TEST_LOCATION );
+  label.SetProperty(DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT, DevelText::VerticalLineAlignment::TOP);
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world");
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 15);
+  label.SetProperty(TextLabel::Property::LINE_SPACING, 12);
+  application.GetScene().Add(label);
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT), static_cast<int>(Toolkit::DevelText::VerticalLineAlignment::TOP), TEST_LOCATION);
 
-  label.SetProperty( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT, DevelText::VerticalLineAlignment::MIDDLE  );
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT ), static_cast< int >( Toolkit::DevelText::VerticalLineAlignment::MIDDLE ), TEST_LOCATION );
+  label.SetProperty(DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT, DevelText::VerticalLineAlignment::MIDDLE);
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT), static_cast<int>(Toolkit::DevelText::VerticalLineAlignment::MIDDLE), TEST_LOCATION);
 
-  label.SetProperty( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT, DevelText::VerticalLineAlignment::BOTTOM  );
-  DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT ), static_cast< int >( Toolkit::DevelText::VerticalLineAlignment::BOTTOM ), TEST_LOCATION );
+  label.SetProperty(DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT, DevelText::VerticalLineAlignment::BOTTOM);
+  DALI_TEST_EQUALS(label.GetProperty<int>(DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT), static_cast<int>(Toolkit::DevelText::VerticalLineAlignment::BOTTOM), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1612,55 +1840,55 @@ int UtcDaliToolkitTextLabelBitmapFont(void)
   tet_infoline(" UtcDaliToolkitTextLabelBitmapFont");
 
   DevelText::BitmapFontDescription fontDescription;
-  fontDescription.name = "Digits";
-  fontDescription.underlinePosition = 0.f;
+  fontDescription.name               = "Digits";
+  fontDescription.underlinePosition  = 0.f;
   fontDescription.underlineThickness = 0.f;
 
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0030.png", ":", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0031.png", "0", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0032.png", "1", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0033.png", "2", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0034.png", "3", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0035.png", "4", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0036.png", "5", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0037.png", "6", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0038.png", "7", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0039.png", "8", 34.f, 0.f } );
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u003a.png", "9", 34.f, 0.f } );
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0030.png", ":", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0031.png", "0", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0032.png", "1", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0033.png", "2", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0034.png", "3", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0035.png", "4", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0036.png", "5", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0037.png", "6", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0038.png", "7", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0039.png", "8", 34.f, 0.f});
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u003a.png", "9", 34.f, 0.f});
 
   TextAbstraction::BitmapFont bitmapFont;
-  DevelText::CreateBitmapFont( fontDescription, bitmapFont );
+  DevelText::CreateBitmapFont(fontDescription, bitmapFont);
 
   TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
-  fontClient.GetFontId( bitmapFont );
+  fontClient.GetFontId(bitmapFont);
 
   TextLabel label = TextLabel::New();
 
-  label.SetProperty( TextLabel::Property::TEXT, "0123456789:" );
-  label.SetProperty( TextLabel::Property::FONT_FAMILY, "Digits" );
+  label.SetProperty(TextLabel::Property::TEXT, "0123456789:");
+  label.SetProperty(TextLabel::Property::FONT_FAMILY, "Digits");
 
   // The text has been laid out with the bitmap font if the natural size is the sum of all the width (322) and 34 height.
-  DALI_TEST_EQUALS( label.GetNaturalSize(), Vector3(322.f, 34.f, 0.f), Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(label.GetNaturalSize(), Vector3(322.f, 34.f, 0.f), Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   application.SendNotification();
   application.Render();
 
   // The text has been rendered if the height of the text-label is the height of the line.
-  DALI_TEST_EQUALS( label.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ).height, 34.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS(label.GetCurrentProperty<Vector3>(Actor::Property::SIZE).height, 34.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION);
 
   END_TEST;
 }
 
-int ConvertPointToPixel( float point )
+int ConvertPointToPixel(float point)
 {
-  unsigned int horizontalDpi = 0u;
-  unsigned int verticalDpi = 0u;
-  TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
-  fontClient.GetDpi( horizontalDpi, verticalDpi );
+  unsigned int                horizontalDpi = 0u;
+  unsigned int                verticalDpi   = 0u;
+  TextAbstraction::FontClient fontClient    = TextAbstraction::FontClient::Get();
+  fontClient.GetDpi(horizontalDpi, verticalDpi);
 
-  return ( point * 72.f ) / static_cast< float >( horizontalDpi );
+  return (point * 72.f) / static_cast<float>(horizontalDpi);
 }
 
 int UtcDaliToolkitTextlabelTextFit(void)
@@ -1668,11 +1896,11 @@ int UtcDaliToolkitTextlabelTextFit(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextlabelTextFit");
   TextLabel label = TextLabel::New();
-  Vector2 size( 460.0f, 100.0f );
-  label.SetProperty( Actor::Property::SIZE, size );
-  label.SetProperty( TextLabel::Property::TEXT, "Hello world" );
+  Vector2   size(460.0f, 100.0f);
+  label.SetProperty(Actor::Property::SIZE, size);
+  label.SetProperty(TextLabel::Property::TEXT, "Hello world");
 
-   // connect to the text git changed signal.
+  // connect to the text git changed signal.
   ConnectionTracker* testTracker = new ConnectionTracker();
   DevelTextLabel::TextFitChangedSignal(label).Connect(&TestTextFitChangedCallback);
   bool textFitChangedSignal = false;
@@ -1681,40 +1909,40 @@ int UtcDaliToolkitTextlabelTextFit(void)
 
   // check point size
   Property::Map textFitMapSet;
-  textFitMapSet["enable"] = true;
-  textFitMapSet["minSize"] = 10.f;
-  textFitMapSet["maxSize"] = 100.f;
-  textFitMapSet["stepSize"] = -1.f;
+  textFitMapSet["enable"]       = true;
+  textFitMapSet["minSize"]      = 10.f;
+  textFitMapSet["maxSize"]      = 100.f;
+  textFitMapSet["stepSize"]     = -1.f;
   textFitMapSet["fontSizeType"] = "pointSize";
 
-  label.SetProperty( Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMapSet );
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 120.f);
+  label.SetProperty(Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMapSet);
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 120.f);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   application.SendNotification();
   application.Render();
 
-  const Vector3 EXPECTED_NATURAL_SIZE( 450.0f, 96.0f, 0.0f );
-  DALI_TEST_EQUALS( EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION );
+  const Vector3 EXPECTED_NATURAL_SIZE(450.0f, 96.0f, 0.0f);
+  DALI_TEST_EQUALS(EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION);
 
   DALI_TEST_CHECK(gTextFitChangedCallBackCalled);
   DALI_TEST_CHECK(textFitChangedSignal);
 
   // check pixel size
   textFitMapSet.Clear();
-  textFitMapSet["enable"] = true;
-  textFitMapSet["minSize"] = ConvertPointToPixel( 10.f );
-  textFitMapSet["maxSize"] = ConvertPointToPixel( 100.f );
-  textFitMapSet["stepSize"] = ConvertPointToPixel ( 1.f );
+  textFitMapSet["enable"]       = true;
+  textFitMapSet["minSize"]      = ConvertPointToPixel(10.f);
+  textFitMapSet["maxSize"]      = ConvertPointToPixel(100.f);
+  textFitMapSet["stepSize"]     = ConvertPointToPixel(1.f);
   textFitMapSet["fontSizeType"] = "pixelSize";
 
-  label.SetProperty( Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMapSet );
+  label.SetProperty(Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMapSet);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION );
+  DALI_TEST_EQUALS(EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1726,40 +1954,231 @@ int UtcDaliToolkitTextlabelMaxTextureSet(void)
 
   DevelText::BitmapFontDescription fontDescription;
   fontDescription.name = "Digits";
-  fontDescription.glyphs.push_back( { TEST_RESOURCE_DIR "/fonts/bitmap/u0030.png", ":", 200.f, 0.f } );
+  fontDescription.glyphs.push_back({TEST_RESOURCE_DIR "/fonts/bitmap/u0030.png", ":", 200.f, 0.f});
 
   TextAbstraction::BitmapFont bitmapFont;
-  DevelText::CreateBitmapFont( fontDescription, bitmapFont );
+  DevelText::CreateBitmapFont(fontDescription, bitmapFont);
 
   TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
-  fontClient.GetFontId( bitmapFont );
+  fontClient.GetFontId(bitmapFont);
 
   TextLabel label = TextLabel::New();
-  label.SetProperty( TextLabel::Property::FONT_FAMILY, "Digits" );
-  label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
-  label.SetProperty( TextLabel::Property::TEXT, ":This is a long sample text made to allow max texture size to be exceeded." );
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 200.f );
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true );
+  label.SetProperty(TextLabel::Property::FONT_FAMILY, "Digits");
+  label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true);
+  label.SetProperty(TextLabel::Property::TEXT, ":This is a long sample text made to allow max texture size to be exceeded.");
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 200.f);
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
 
   Property::Map underlineMapSet;
   underlineMapSet.Clear();
-  underlineMapSet.Insert( "enable", true );
-  underlineMapSet.Insert( "color", Color::RED );
-  underlineMapSet.Insert( "height", 1 );
-  label.SetProperty( TextLabel::Property::UNDERLINE, underlineMapSet );
-  label.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE );
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::RED);
+  underlineMapSet.Insert("height", 1);
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+
+  Property::Map strikethroughMapSet;
+  strikethroughMapSet.Clear();
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::RED);
+  strikethroughMapSet.Insert("height", 2.0f);
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
   application.SendNotification();
   application.Render();
 
   const int maxTextureSize = Dali::GetMaxTextureSize();
   // Whether the rendered text is greater than maxTextureSize
-  DALI_TEST_CHECK( label.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ).height > maxTextureSize );
+  DALI_TEST_CHECK(label.GetCurrentProperty<Vector3>(Actor::Property::SIZE).height > maxTextureSize);
 
   // Check if the number of renderers is greater than 1.
-  DALI_TEST_CHECK( label.GetRendererCount() > 1u );
+  DALI_TEST_CHECK(label.GetRendererCount() > 1u);
+
+  //DASHED
+  underlineMapSet.Clear();
+  underlineMapSet.Insert("enable", false);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 0);
+  underlineMapSet.Insert("type", Text::Underline::DASHED);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+
+  application.GetScene().Add(label);
+
+  application.SendNotification();
+  application.Render();
+
+  // Whether the rendered text is greater than maxTextureSize
+  DALI_TEST_CHECK(label.GetCurrentProperty<Vector3>(Actor::Property::SIZE).height > maxTextureSize);
+
+  // Check if the number of renderers is greater than 1.
+  DALI_TEST_CHECK(label.GetRendererCount() > 1u);
+
+  //DOUBLE
+  underlineMapSet.Clear();
+  underlineMapSet.Insert("enable", false);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 0);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+
+  application.GetScene().Add(label);
+
+  application.SendNotification();
+  application.Render();
+
+  // Whether the rendered text is greater than maxTextureSize
+  DALI_TEST_CHECK(label.GetCurrentProperty<Vector3>(Actor::Property::SIZE).height > maxTextureSize);
+
+  // Check if the number of renderers is greater than 1.
+  DALI_TEST_CHECK(label.GetRendererCount() > 1u);
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextlabelStrikethroughExceedsWidthAndHeight(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextlabelStrikethroughExceedsWidthAndHeight");
+
+  TextLabel label = TextLabel::New();
+  label.SetProperty(TextLabel::Property::TEXT, "Test");
+  label.SetProperty(TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
+  //Exeeding BufferWidth
+  label.SetProperty(Actor::Property::SIZE, Vector2(200.f, 400.0f));
+  label.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, HorizontalAlignment::RIGHT);
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 200.f);
+
+  application.GetScene().Add(label);
+  application.SendNotification();
+  application.Render();
+
+  Property::Map strikethroughMapSet;
+  strikethroughMapSet.Clear();
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::BLUE);
+  strikethroughMapSet.Insert("height", 2.0f);
+  label.SetProperty(TextLabel::Property::TEXT, "Test1");
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+  application.GetScene().Add(label);
+  application.SendNotification();
+  application.Render();
+  // Check if the number of renderers is 1.
+  DALI_TEST_EQUALS(1, label.GetRendererCount(), TEST_LOCATION);
+
+  label = TextLabel::New();
+  label.SetProperty(TextLabel::Property::TEXT, "Test");
+  label.SetProperty(TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
+
+  //Exeeding BufferHeight
+  label.SetProperty(Actor::Property::SIZE, Vector2(200.f, 100.0f));
+  label.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, HorizontalAlignment::RIGHT);
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 200.f);
+
+  application.GetScene().Add(label);
+  application.SendNotification();
+  application.Render();
+
+  strikethroughMapSet.Clear();
+  strikethroughMapSet.Insert("enable", true);
+  strikethroughMapSet.Insert("color", Color::BLUE);
+  strikethroughMapSet.Insert("height", 2.0f);
+  label.SetProperty(TextLabel::Property::TEXT, "Test2");
+  label.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+  application.GetScene().Add(label);
+  application.SendNotification();
+  application.Render();
+  // Check if the number of renderers is 1.
+  DALI_TEST_EQUALS(1, label.GetRendererCount(), TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliToolkitTextlabelUnderlineExceedsWidth(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextlabelUnderlineExceedsWidth");
+
+  TextLabel label = TextLabel::New();
+  label.SetProperty(TextLabel::Property::TEXT, "Test");
+  label.SetProperty(TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
+  //Exeeding BufferWidth
+  label.SetProperty(Actor::Property::SIZE, Vector2(200.f, 400.0f));
+  label.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, HorizontalAlignment::RIGHT);
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 200.f);
+
+  application.GetScene().Add(label);
+  application.SendNotification();
+  application.Render();
+
+  Property::Map underlineMapSet;
+
+  //SOLID
+  underlineMapSet.Clear();
+  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);
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+
+  application.GetScene().Add(label);
+
+  application.SendNotification();
+  application.Render();
+
+  // Check if the number of renderers is 1.
+  DALI_TEST_EQUALS(1, label.GetRendererCount(), TEST_LOCATION);
+
+  //DASHED
+  underlineMapSet.Clear();
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DASHED);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+
+  application.GetScene().Add(label);
+
+  application.SendNotification();
+  application.Render();
+
+  // Check if the number of renderers is 1.
+  DALI_TEST_EQUALS(1, label.GetRendererCount(), TEST_LOCATION);
+
+  //DOUBLE
+  underlineMapSet.Clear();
+  underlineMapSet.Insert("enable", true);
+  underlineMapSet.Insert("color", Color::BLUE);
+  underlineMapSet.Insert("height", 1);
+  underlineMapSet.Insert("type", Text::Underline::DOUBLE);
+  underlineMapSet.Insert("dashWidth", 2);
+  underlineMapSet.Insert("dashGap", 1);
+  label.SetProperty(TextLabel::Property::UNDERLINE, underlineMapSet);
+  label.SetProperty(Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+
+  application.GetScene().Add(label);
+
+  application.SendNotification();
+  application.Render();
+
+  // Check if the number of renderers is 1.
+  DALI_TEST_EQUALS(1, label.GetRendererCount(), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1769,19 +2188,19 @@ int UtcDaliToolkitTextlabelLastCharacterIndex(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliToolkitTextlabelLastCharacterIndex");
 
-  Vector2 size( 300.0f, 100.0f );
+  Vector2 size(300.0f, 100.0f);
 
   Dali::Toolkit::DevelText::RendererParameters textParameters;
-  textParameters.text = "This is a sample text to get the last index.";
-  textParameters.layout = "multiLine";
-  textParameters.fontSize = 20.f;
-  textParameters.textWidth = 300u;
-  textParameters.textHeight = 100u;
-  textParameters.ellipsisEnabled = true;
-  Dali::Property::Array indexArray = Dali::Toolkit::DevelText::GetLastCharacterIndex( textParameters );
+  textParameters.text              = "This is a sample text to get the last index.";
+  textParameters.layout            = "multiLine";
+  textParameters.fontSize          = 20.f;
+  textParameters.textWidth         = 300u;
+  textParameters.textHeight        = 100u;
+  textParameters.ellipsisEnabled   = true;
+  Dali::Property::Array indexArray = Dali::Toolkit::DevelText::GetLastCharacterIndex(textParameters);
 
-  DALI_TEST_CHECK( !indexArray.Empty() );
-  DALI_TEST_EQUALS( indexArray.GetElementAt(0).Get<int>(), 10, TEST_LOCATION );
+  DALI_TEST_CHECK(!indexArray.Empty());
+  DALI_TEST_EQUALS(indexArray.GetElementAt(0).Get<int>(), 10, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1792,28 +2211,28 @@ int UtcDaliToolkitTextlabelFontSizeScale(void)
   tet_infoline(" UtcDaliToolkitTextlabelFontSizeScale");
 
   TextLabel label = TextLabel::New();
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 30.f );
-  label.SetProperty( TextLabel::Property::TEXT, "Test" );
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 30.f);
+  label.SetProperty(TextLabel::Property::TEXT, "Test");
   Vector3 nonScaledSize = label.GetNaturalSize();
 
   TextLabel labelScaled = TextLabel::New();
-  labelScaled.SetProperty( TextLabel::Property::POINT_SIZE, 15.f );
-  labelScaled.SetProperty( Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE, 2.f );
-  labelScaled.SetProperty( TextLabel::Property::TEXT, "Test" );
+  labelScaled.SetProperty(TextLabel::Property::POINT_SIZE, 15.f);
+  labelScaled.SetProperty(Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE, 2.f);
+  labelScaled.SetProperty(TextLabel::Property::TEXT, "Test");
   Vector3 scaledSize = labelScaled.GetNaturalSize();
 
-  DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION );
+  DALI_TEST_EQUALS(nonScaledSize, scaledSize, TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::PIXEL_SIZE, 30.f );
-  label.SetProperty( TextLabel::Property::TEXT, "Test" );
+  label.SetProperty(TextLabel::Property::PIXEL_SIZE, 30.f);
+  label.SetProperty(TextLabel::Property::TEXT, "Test");
   nonScaledSize = label.GetNaturalSize();
 
-  labelScaled.SetProperty( TextLabel::Property::PIXEL_SIZE, 15.f );
-  labelScaled.SetProperty( Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE, 2.f );
-  labelScaled.SetProperty( TextLabel::Property::TEXT, "Test" );
+  labelScaled.SetProperty(TextLabel::Property::PIXEL_SIZE, 15.f);
+  labelScaled.SetProperty(Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE, 2.f);
+  labelScaled.SetProperty(TextLabel::Property::TEXT, "Test");
   scaledSize = labelScaled.GetNaturalSize();
 
-  DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION );
+  DALI_TEST_EQUALS(nonScaledSize, scaledSize, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1854,7 +2273,7 @@ int UtcDaliToolkitTextlabelAnchorClicked(void)
 
   // reset
   gAnchorClickedCallBackCalled = false;
-  anchorClickedSignal = false;
+  anchorClickedSignal          = false;
   label.SetProperty(TextLabel::Property::TEXT, "");
   label.SetProperty(TextLabel::Property::ENABLE_MARKUP, false);
 
@@ -1879,7 +2298,6 @@ int UtcDaliToolkitTextlabelAnchorClicked(void)
   DALI_TEST_CHECK(gAnchorClickedCallBackCalled);
   DALI_TEST_CHECK(anchorClickedSignal);
 
-
   gAnchorClickedCallBackNotCalled = true;
   // Tap the outside of anchor, callback should not be called.
   TestGenerateTap(application, 150.f, 100.f, 300);
@@ -1899,29 +2317,29 @@ int UtcDaliTextLabelAtlasLimitationIsEnabledForLargeFontPointSize(void)
   //TextLabel is not using Atlas but this is to unify font-size on text-controllers
 
   // +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
   TextLabel textLabel = TextLabel::New();
   //Set size to avoid automatic eliding
-  textLabel.SetProperty( Actor::Property::SIZE, Vector2(1025, 1025));
+  textLabel.SetProperty(Actor::Property::SIZE, Vector2(1025, 1025));
   //Set very large font-size using point-size
-  textLabel.SetProperty( TextLabel::Property::POINT_SIZE, 1000);
+  textLabel.SetProperty(TextLabel::Property::POINT_SIZE, 1000);
   //Specify font-family
-  textLabel.SetProperty( TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
+  textLabel.SetProperty(TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
   //Set text to check if appear or not
-  textLabel.SetProperty( TextLabel::Property::TEXT, "A");
+  textLabel.SetProperty(TextLabel::Property::TEXT, "A");
 
-  application.GetScene().Add( textLabel );
+  application.GetScene().Add(textLabel);
 
   application.SendNotification();
   application.Render();
   //Use GetNaturalSize to verify that size of block does not exceed Atlas size
   Vector3 naturalSize = textLabel.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;
 }
@@ -1931,89 +2349,86 @@ int UtcDaliTextLabelHyphenWrapMode(void)
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliTextLabelHyphenWrapMode ");
 
-  int lineCount =0;
-  TextLabel label = TextLabel::New();
-  label.SetProperty( Actor::Property::SIZE, Vector2( 150.0f, 300.f ));
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 12.f );
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true);
-  application.GetScene().Add( label );
+  int       lineCount = 0;
+  TextLabel label     = TextLabel::New();
+  label.SetProperty(Actor::Property::SIZE, Vector2(150.0f, 300.f));
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 12.f);
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
+  application.GetScene().Add(label);
   application.SendNotification();
   application.Render();
 
-  label.SetProperty( TextLabel::Property::TEXT, "Hi Experimen" );
-  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE,DevelText::LineWrap::HYPHENATION);
-  DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( DevelText::LineWrap::HYPHENATION ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "Hi Experimen");
+  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE, DevelText::LineWrap::HYPHENATION);
+  DALI_TEST_EQUALS(label.GetProperty<int>(TextLabel::Property::LINE_WRAP_MODE), static_cast<int>(DevelText::LineWrap::HYPHENATION), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount = label.GetProperty<int>( TextLabel::Property::LINE_COUNT );
+  lineCount = label.GetProperty<int>(TextLabel::Property::LINE_COUNT);
   /*
     text will be :
     Hi Exp-
     erimen
   */
-  DALI_TEST_EQUALS( lineCount, 2, TEST_LOCATION );
+  DALI_TEST_EQUALS(lineCount, 2, TEST_LOCATION);
 
-  label.SetProperty( TextLabel::Property::TEXT, "Hi Experimen" );
-  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE,DevelText::LineWrap::MIXED);
-  DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( DevelText::LineWrap::MIXED ), TEST_LOCATION );
+  label.SetProperty(TextLabel::Property::TEXT, "Hi Experimen");
+  label.SetProperty(TextLabel::Property::LINE_WRAP_MODE, DevelText::LineWrap::MIXED);
+  DALI_TEST_EQUALS(label.GetProperty<int>(TextLabel::Property::LINE_WRAP_MODE), static_cast<int>(DevelText::LineWrap::MIXED), TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  lineCount = label.GetProperty<int>( TextLabel::Property::LINE_COUNT );
+  lineCount = label.GetProperty<int>(TextLabel::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;
 }
 
-
 int utcDaliTextLabelGetHeightForWidthChangeLineCountWhenTextChanged(void)
 {
   ToolkitTestApplication application;
 
   tet_infoline(" utcDaliTextLabelGetHeightForWidthChangeLineCountWhenTextChanged ");
 
-  int lineCountBefore =;
-  int lineCountAfter =0 ;
+  int lineCountBefore = 0;
+  int lineCountAfter  = 0;
 
   // Create a text editor
   TextLabel textLabel = TextLabel::New();
   //Set very large font-size using point-size
-  textLabel.SetProperty( TextLabel::Property::POINT_SIZE, 10) ;
+  textLabel.SetProperty(TextLabel::Property::POINT_SIZE, 10);
   //Specify font-family
-  textLabel.SetProperty( TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
+  textLabel.SetProperty(TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
   //Specify size
-  textLabel.SetProperty( Actor::Property::SIZE, Vector2( 200.f, 100.f ) );
+  textLabel.SetProperty(Actor::Property::SIZE, Vector2(200.f, 100.f));
   //Set text longer than width of textLabel
-  textLabel.SetProperty( TextLabel::Property::TEXT, "Short text");
+  textLabel.SetProperty(TextLabel::Property::TEXT, "Short text");
   //Set line wrap mode Character
   textLabel.SetProperty(TextLabel::Property::LINE_WRAP_MODE, "CHARACTER");
   textLabel.SetProperty(TextLabel::Property::MULTI_LINE, true);
 
-  application.GetScene().Add( textLabel );
+  application.GetScene().Add(textLabel);
 
   application.SendNotification();
   application.Render();
 
+  lineCountBefore = textLabel.GetProperty<int>(TextLabel::Property::LINE_COUNT);
 
-  lineCountBefore =  textLabel.GetProperty<int>( TextLabel::Property::LINE_COUNT );
-
-  textLabel.SetProperty( TextLabel::Property::TEXT, "This is very loooooooooooooooooooooooooooooooooooong text for test");
-  lineCountAfter =  textLabel.GetProperty<int>( TextLabel::Property::LINE_COUNT );
+  textLabel.SetProperty(TextLabel::Property::TEXT, "This is very loooooooooooooooooooooooooooooooooooong text for test");
+  lineCountAfter = textLabel.GetProperty<int>(TextLabel::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;
 }
@@ -2024,31 +2439,31 @@ int utcDaliTextLabelGeometryRTL(void)
   tet_infoline(" utcDaliTextLabelGeometryRTL");
 
   TextLabel label = TextLabel::New();
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 7.f );
-  label.SetProperty( Actor::Property::SIZE, Vector2( 150.f, 100.f ) );
-  label.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
-  label.SetProperty( TextLabel::Property::MULTI_LINE, true);
-  label.SetProperty( TextLabel::Property::TEXT, "line1 \nline2\nline 3\nالاخيرالسطر" );
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 7.f);
+  label.SetProperty(Actor::Property::SIZE, Vector2(150.f, 100.f));
+  label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true);
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);
+  label.SetProperty(TextLabel::Property::TEXT, "line1 \nline2\nline 3\nالاخيرالسطر");
 
   // 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();
 
   unsigned int expectedCount = 4;
-  unsigned int startIndex = 3;
-  unsigned int endIndex = 24;
+  unsigned int startIndex    = 3;
+  unsigned int endIndex      = 24;
 
   Vector<Vector2> positionsList = DevelTextLabel::GetTextPosition(label, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextLabel::GetTextSize(label, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextLabel::GetTextSize(label, startIndex, endIndex);
 
   DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
   DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
@@ -2079,30 +2494,30 @@ int utcDaliTextLabelGeometryGlyphMiddle(void)
   tet_infoline(" utcDaliTextLabelGeometryGlyphMiddle");
 
   TextLabel label = TextLabel::New();
-  DALI_TEST_CHECK( label );
+  DALI_TEST_CHECK(label);
 
-  application.GetScene().Add( label );
+  application.GetScene().Add(label);
 
-  label.SetProperty( TextLabel::Property::POINT_SIZE, 7.f );
-  label.SetProperty( Actor::Property::SIZE, Vector2( 200.f, 200.f ) );
-  label.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
-  label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
-  label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
-  label.SetProperty( TextLabel::Property::TEXT, "لا تحتوي على لا" );
+  label.SetProperty(TextLabel::Property::POINT_SIZE, 7.f);
+  label.SetProperty(Actor::Property::SIZE, Vector2(200.f, 200.f));
+  label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true);
+  label.SetProperty(TextLabel::Property::TEXT, "لا تحتوي على لا");
 
   // 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();
 
   unsigned int expectedCount = 1;
-  unsigned int startIndex = 1;
-  unsigned int endIndex = 13;
+  unsigned int startIndex    = 1;
+  unsigned int endIndex      = 13;
 
   Vector<Vector2> positionsList = DevelTextLabel::GetTextPosition(label, startIndex, endIndex);
-  Vector<Vector2> sizeList = DevelTextLabel::GetTextSize(label, startIndex, endIndex);
+  Vector<Vector2> sizeList      = DevelTextLabel::GetTextSize(label, startIndex, endIndex);
 
   DALI_TEST_EQUALS(positionsList.Size(), expectedCount, TEST_LOCATION);
   DALI_TEST_EQUALS(sizeList.Size(), expectedCount, TEST_LOCATION);
@@ -2125,56 +2540,94 @@ int UtcDaliToolkitTextlabelEllipsisPositionProperty(void)
   TextLabel textLabel = TextLabel::New();
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Default is END");
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::START);
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::MIDDLE);
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, DevelText::EllipsisPosition::END);
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START using integer");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, 1);
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE using integer");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, 2);
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END using integer");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, 0);
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START using string - uppercase");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, "START");
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE using string - uppercase");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, "MIDDLE");
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END using string - uppercase");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, "END");
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to START using string - lowercase");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, "start");
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::START ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::START), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to MIDDLE using string - lowercase");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, "middle");
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::MIDDLE ), TEST_LOCATION );
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::MIDDLE), TEST_LOCATION);
 
   tet_infoline(" UtcDaliToolkitTextlabelEllipsisPositionProperty - Change to END using string - lowercase");
   textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS_POSITION, "end");
-  DALI_TEST_EQUALS( textLabel.GetProperty< int >( DevelTextLabel::Property::ELLIPSIS_POSITION ), static_cast< int >( Toolkit::DevelText::EllipsisPosition::END ), TEST_LOCATION );
-
+  DALI_TEST_EQUALS(textLabel.GetProperty<int>(DevelTextLabel::Property::ELLIPSIS_POSITION), static_cast<int>(Toolkit::DevelText::EllipsisPosition::END), TEST_LOCATION);
 
   END_TEST;
 }
+
+int UtcDaliToolkitTextLabelStrikethroughGeneration(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliToolkitTextLabelStrikethroughGeneration");
+
+  TextLabel textLabel = TextLabel::New();
+  textLabel.SetProperty(TextLabel::Property::TEXT, "Test");
+  textLabel.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 100.f));
+  textLabel.SetProperty(TextLabel::Property::POINT_SIZE, 10);
+  textLabel.SetProperty(TextLabel::Property::FONT_FAMILY, "DejaVu Sans");
+
+  application.GetScene().Add(textLabel);
+  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
+  textLabel.SetProperty(DevelTextLabel::Property::STRIKETHROUGH, strikethroughMapSet);
+  strikethroughMapGet = textLabel.GetProperty<Property::Map>(DevelTextLabel::Property::STRIKETHROUGH);
+  textLabel.SetProperty(TextLabel::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;
+}
\ No newline at end of file
index d54a00b..87701b2 100644 (file)
@@ -1219,7 +1219,7 @@ int UtcDaliVisualGetPropertyMap10(void)
   propertyMap.Insert( "shadow", shadowMapSet.Add("color", Color::RED).Add("offset", Vector2(2.0f, 2.0f)).Add("blurRadius", 3.0f) );
 
   Property::Map underlineMapSet;
-  propertyMap.Insert( "underline", underlineMapSet.Add("enable", true).Add("color", Color::GREEN).Add("height", 1) );
+  propertyMap.Insert( "underline", underlineMapSet.Add("enable", true).Add("color", Color::GREEN).Add("height", 1).Add("type", Text::Underline::Type::SOLID).Add("dashWidth", 2).Add("dashGap", 1) );
 
   Property::Map outlineMapSet;
   propertyMap.Insert( "outline", outlineMapSet.Add("color", Color::YELLOW).Add("width", 1) );
index 4e553e8..aa2fdcc 100755 (executable)
@@ -80,6 +80,7 @@ static int gFrameRenderedCallbackCalled = 0;
 static int gConsoleMessageCallbackCalled = 0;
 static std::unique_ptr<Dali::WebEngineConsoleMessage> gConsoleMessageInstance = nullptr;
 static int gResponsePolicyDecidedCallbackCalled = 0;
+static int gNavigationPolicyDecidedCallbackCalled = 0;
 static std::unique_ptr<Dali::WebEnginePolicyDecision> gResponsePolicyDecisionInstance = nullptr;
 static int gCertificateConfirmCallbackCalled = 0;
 static std::unique_ptr<Dali::WebEngineCertificate> gCertificateConfirmInstance = nullptr;
@@ -144,6 +145,11 @@ static void OnResponsePolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecisio
   gResponsePolicyDecisionInstance = std::move(decision);
 }
 
+static void OnNavigationPolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> decision)
+{
+  gNavigationPolicyDecidedCallbackCalled++;
+}
+
 static void OnUrlChanged(const std::string& url)
 {
   gUrlChangedCallbackCalled++;
@@ -1277,6 +1283,24 @@ int UtcDaliWebViewResponsePolicyDecisionRequest(void)
   END_TEST;
 }
 
+int UtcDaliWebViewNavigationPolicyDecisionRequest(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK(view);
+
+  // load url.
+  view.RegisterNavigationPolicyDecidedCallback(&OnNavigationPolicyDecided);
+  DALI_TEST_EQUALS(gNavigationPolicyDecidedCallbackCalled, 0, TEST_LOCATION);
+
+  view.LoadUrl(TEST_URL1);
+  Test::EmitGlobalTimerSignal();
+  DALI_TEST_EQUALS(gNavigationPolicyDecidedCallbackCalled, 1, TEST_LOCATION);
+
+  END_TEST;
+}
+
 int UtcDaliWebViewHitTest(void)
 {
   ToolkitTestApplication application;
index 74c19df..5a35e2d 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_EDITOR_DEVEL_H
 
 /*
- * 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.
@@ -178,6 +178,14 @@ enum Type
   FONT_SIZE_SCALE,
 
   /**
+   * @brief True to enable the font size scale or false to disable.
+   * @details Name "enableFontSizeScale", type Property::BOOLEAN.
+   * @note The default value is true.
+   * If false, font size scale is not apppied.
+   */
+  ENABLE_FONT_SIZE_SCALE,
+
+  /**
    * @brief The position for primary cursor.
    * @details Name "primaryCursorPosition", type Property::INTEGER.
    */
@@ -274,6 +282,18 @@ enum Type
    * @note If the font size is larger than the line size, it works with the font size.
    */
   MIN_LINE_SIZE,
+
+  /**
+   * @brief A horizontal line through the text center.
+   * @details Name "strikethrough", type Property::MAP.
+   */
+  STRIKETHROUGH,
+
+  /**
+   * @brief The strikethrough parameters of the new input text.
+   * @details Name "inputStrikethrough", type Property::MAP.
+   */
+  INPUT_STRIKETHROUGH,
 };
 
 } // namespace Property
index 7498110..9bc6fc1 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_FIELD_DEVEL_H
 
 /*
- * 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.
@@ -163,6 +163,14 @@ enum
   FONT_SIZE_SCALE,
 
   /**
+   * @brief True to enable the font size scale or false to disable.
+   * @details Name "enableFontSizeScale", type Property::BOOLEAN.
+   * @note The default value is true.
+   * If false, font size scale is not apppied.
+   */
+  ENABLE_FONT_SIZE_SCALE,
+
+  /**
    * @brief The position for primary cursor.
    * @details Name "primaryCursorPosition", type Property::INTEGER.
    */
@@ -213,6 +221,18 @@ enum
   * @see DevelText::EllipsisPosition
   */
   ELLIPSIS_POSITION,
+
+  /**
+   * @brief A horizontal line through the text center.
+   * @details Name "strikethrough", type Property::MAP.
+   */
+  STRIKETHROUGH,
+
+  /**
+   * @brief The strikethrough parameters of the new input text.
+   * @details Name "inputStrikethrough", type Property::MAP.
+   */
+  INPUT_STRIKETHROUGH,
 };
 
 } // namespace Property
index 17a808f..47c41a8 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_LABEL_DEVEL_H
 
 /*
- * 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.
@@ -156,12 +156,35 @@ enum Type
   FONT_SIZE_SCALE,
 
   /**
+   * @brief True to enable the font size scale or false to disable.
+   * @details Name "enableFontSizeScale", type Property::BOOLEAN.
+   * @note The default value is true.
+   * If false, font size scale is not apppied.
+   */
+  ENABLE_FONT_SIZE_SCALE,
+
+  /**
   * @brief The enumerations used to specify whether to position the ellipsis at the END, START or MIDDLE of the text.
   * @details Name "EllipsisPosition", type [Type](@ref Dali::Toolkit::DevelText::EllipsisPosition::Type) (Property::INTEGER), or Property::STRING. Read/Write
   * @note Default is EllipsisPosition::END.
   * @see DevelText::EllipsisPosition
   */
   ELLIPSIS_POSITION,
+
+  /**
+   * @brief The default strikethrough parameters.
+   * @details Name "strikethrough", type Property::MAP.
+   *
+   * The strikethrough map contains the following keys:
+   *
+   * | %Property Name       | Type     | Required | Description                                                                                                        |
+   * |----------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------|
+   * | enable               | BOOLEAN  | No       | True to enable the strikethrough or false to disable (the default value is false)                                  |
+   * | color                | VECTOR4  | No       | The color of the strikethrough (the default value is Color::BLACK)                                                 |
+   * | height               | FLOAT    | No       | The height of the strikethrough (the default value is 0)                                                               |
+   *
+   */
+  STRIKETHROUGH,
 };
 
 } // namespace Property
index bd6450c..94b05ee 100644 (file)
@@ -90,7 +90,29 @@ enum
    * @details Name "height", type Property::STRING or Property::FLOAT. i.e. "1.0" or 1.f
    * @note Optional. If not provided then the default height is used (1 pixel).
    */
-  HEIGHT
+  HEIGHT,
+
+  /**
+   * @brief The type of the underline.
+   * @details Name "type", type Property::STRING or type Text::Underline::Type. i.e "dashed" or Text::Underline::DASHED
+   *          Values "SOLID", "DASHED", "DOUBLE" , default SOLID.
+   * @note Optional. If not provided then the default type is used (solid underline).
+   */
+  TYPE,
+
+  /**
+   * @brief The width in pixels of the dashes of the dashed underline. Only valid when "DASHED" underline type is used.
+   * @details Name "dashWidth", type Property::STRING or Property::FLOAT. e.g. "1.0" or 1.f
+   * @note Optional. If not provided then the default width is used (1 pixel).
+   */
+  DASH_WIDTH,
+
+  /**
+   * @brief The gap in pixels between the dashes of the dashed underline. Only valid when "DASHED" underline type is used.
+   * @details Name "dashGap", type Property::STRING or Property::FLOAT. e.g. "1.0" or 1.f
+   * @note Optional. If not provided then the default gap is used (1 pixel).
+   */
+  DASH_GAP
 };
 
 } // namespace Property
@@ -147,6 +169,38 @@ enum
 
 } // namespace Background
 
+namespace Strikethrough
+{
+namespace Property
+{
+enum
+{
+  /**
+   * @brief Whether the strikethrough is enabled.
+   * @details Name "enable", type Property::STRING or Property::BOOLEAN. i.e. "true", "false", true or false
+   * @note Optional. By default is disabled.
+   */
+  ENABLE,
+
+  /**
+   * @brief The color of the strikethrough.
+   * @details Name "color", type Property::STRING or Property::VECTOR4
+   * @note Optional. If not provided then the default color is black.
+   */
+  COLOR,
+
+  /**
+   * @brief The height in pixels of the strikethrough.
+   * @details Name "height", type Property::STRING or Property::FLOAT. i.e. "1.0" or 1.f
+   * @note Optional. If not provided then the default height is used (1 pixel).
+   */
+  HEIGHT
+};
+
+} // namespace Property
+
+} // namespace Strikethrough
+
 } // namespace DevelText
 
 /**
index 8412273..5b0f3d2 100755 (executable)
@@ -364,6 +364,11 @@ void WebView::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEn
   Dali::Toolkit::GetImpl(*this).RegisterResponsePolicyDecidedCallback(callback);
 }
 
+void WebView::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback)
+{
+  Dali::Toolkit::GetImpl(*this).RegisterNavigationPolicyDecidedCallback(callback);
+}
+
 void WebView::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
 {
   Dali::Toolkit::GetImpl(*this).RegisterCertificateConfirmedCallback(callback);
index 6b373df..af7a058 100755 (executable)
@@ -692,6 +692,13 @@ public:
   void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback);
 
   /**
+   * @brief Callback to be called when navigation policy would be decided.
+   *
+   * @param[in] callback
+   */
+  void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback);
+
+  /**
    * @brief Callback to be called when certificate need be confirmed.
    *
    * @param[in] callback
index 062094f..a8c79d6 100644 (file)
@@ -56,6 +56,11 @@ enum
    * @copydoc Dali::Toolkit::DevelTextLabel::Property::BACKGROUND
    */
   BACKGROUND = UNDERLINE + 2,
+
+  /**
+   * @copydoc Dali::Toolkit::DevelTextLabel::Property::STRIKETHROUGH
+   */
+  STRIKETHROUGH = UNDERLINE + 3,
 };
 
 } // namespace Property
index 1d9deec..0011c02 100644 (file)
@@ -171,6 +171,19 @@ void ImageView::SetImage(const std::string& url, ImageDimensions size)
   // Signal that a Relayout may be needed
 }
 
+void ImageView::ClearImageVisual()
+{
+  // Clear cached properties
+  mPropertyMap.Clear();
+  mUrl.clear();
+
+  // Unregister the exsiting visual
+  DevelControl::UnregisterVisual(*this, Toolkit::ImageView::Property::IMAGE);
+
+  // Trigger a size negotiation request that may be needed when unregistering a visual.
+  RelayoutRequest();
+}
+
 void ImageView::EnablePreMultipliedAlpha(bool preMultipled)
 {
   if(mVisual)
@@ -477,20 +490,12 @@ void ImageView::SetProperty(BaseObject* object, Property::Index index, const Pro
         else
         {
           map = value.GetMap();
-          if(map)
+          if(DALI_LIKELY(map))
           {
             // the property map is emtpy map. Unregister visual.
             if(DALI_UNLIKELY(map->Count() == 0u))
             {
-              // Clear cached properties
-              impl.mPropertyMap.Clear();
-              impl.mUrl.clear();
-
-              // Unregister the exsiting visual
-              DevelControl::UnregisterVisual(impl, Toolkit::ImageView::Property::IMAGE);
-
-              // Trigger a size negotiation request that may be needed when unregistering a visual.
-              impl.RelayoutRequest();
+              impl.ClearImageVisual();
             }
             else
             {
@@ -520,6 +525,11 @@ void ImageView::SetProperty(BaseObject* object, Property::Index index, const Pro
               }
             }
           }
+          else
+          {
+            // invalid property value comes. Unregister visual.
+            impl.ClearImageVisual();
+          }
         }
         break;
       }
index ef48839..cf288ab 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_INTERNAL_IMAGE_VIEW_H
 
 /*
- * 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.
@@ -68,6 +68,13 @@ public:
   void SetImage(const std::string& imageUrl, ImageDimensions size);
 
   /**
+   * @brief Unregister ImageView IMAGE visual
+   *
+   * ImageView will display nothing
+   */
+  void ClearImageVisual();
+
+  /**
    * @brief Set whether the Pre-multiplied Alpha Blending is required
    *
    * @param[in] preMultipled whether alpha is pre-multiplied.
index d35e92b..a75e21c 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.
@@ -146,6 +146,7 @@ DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "verticalScrollP
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "enableEditing",                        BOOLEAN,   ENABLE_EDITING                      )
 DALI_DEVEL_PROPERTY_REGISTRATION_READ_ONLY(Toolkit, TextEditor, "selectedText",                         STRING,    SELECTED_TEXT                       )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "fontSizeScale",                        FLOAT,     FONT_SIZE_SCALE                     )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "enableFontSizeScale",                  BOOLEAN,   ENABLE_FONT_SIZE_SCALE              )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "primaryCursorPosition",                INTEGER,   PRIMARY_CURSOR_POSITION             )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "grabHandleColor",                      VECTOR4,   GRAB_HANDLE_COLOR                   )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "enableGrabHandlePopup",                BOOLEAN,   ENABLE_GRAB_HANDLE_POPUP            )
@@ -154,6 +155,8 @@ DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "inputFilter",
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "ellipsis",                             BOOLEAN,   ELLIPSIS                            )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "ellipsisPosition",                     INTEGER,   ELLIPSIS_POSITION                   )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "minLineSize",                          FLOAT,     MIN_LINE_SIZE                       )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "strikethrough",                        MAP,       STRIKETHROUGH                       )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextEditor, "inputStrikethrough",                   MAP,       INPUT_STRIKETHROUGH                 )
 
 DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "textChanged",           SIGNAL_TEXT_CHANGED           )
 DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "inputStyleChanged",     SIGNAL_INPUT_STYLE_CHANGED    )
@@ -215,6 +218,11 @@ Toolkit::TextEditor::InputStyle::Mask ConvertInputStyle(Text::InputStyle::Mask i
   {
     editorInputStyleMask = static_cast<Toolkit::TextEditor::InputStyle::Mask>(editorInputStyleMask | Toolkit::TextEditor::InputStyle::OUTLINE);
   }
+  if(InputStyle::NONE != static_cast<InputStyle::Mask>(inputStyleMask & InputStyle::INPUT_STRIKETHROUGH))
+  {
+    editorInputStyleMask = static_cast<Toolkit::TextEditor::InputStyle::Mask>(editorInputStyleMask | Toolkit::TextEditor::InputStyle::STRIKETHROUGH);
+  }
+
   return editorInputStyleMask;
 }
 
index f35c169..c6698ff 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.
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#include <dali-toolkit/internal/controls/text-controls/text-editor-property-handler.h>
 #include <dali-toolkit/internal/controls/text-controls/common-text-utils.h>
+#include <dali-toolkit/internal/controls/text-controls/text-editor-property-handler.h>
 
 #include <dali-toolkit/devel-api/focus-manager/keyinput-focus-manager.h>
 
@@ -610,6 +610,15 @@ void TextEditor::PropertyHandler::SetProperty(Toolkit::TextEditor textEditor, Pr
       }
       break;
     }
+    case Toolkit::DevelTextEditor::Property::ENABLE_FONT_SIZE_SCALE:
+    {
+      const bool enableFontSizeScale = value.Get<bool>();
+      if(!Equals(impl.mController->IsFontSizeScaleEnabled(), enableFontSizeScale))
+      {
+        impl.mController->SetFontSizeScaleEnabled(enableFontSizeScale);
+      }
+      break;
+    }
     case Toolkit::DevelTextEditor::Property::PRIMARY_CURSOR_POSITION:
     {
       uint32_t position = static_cast<uint32_t>(value.Get<int>());
@@ -689,6 +698,24 @@ void TextEditor::PropertyHandler::SetProperty(Toolkit::TextEditor textEditor, Pr
       impl.mRenderer.Reset();
       break;
     }
+    case Toolkit::DevelTextEditor::Property::STRIKETHROUGH:
+    {
+      const bool update = SetStrikethroughProperties(impl.mController, value, Text::EffectStyle::DEFAULT);
+      if(update)
+      {
+        impl.mRenderer.Reset();
+      }
+      break;
+    }
+    case Toolkit::DevelTextEditor::Property::INPUT_STRIKETHROUGH:
+    {
+      const bool update = SetStrikethroughProperties(impl.mController, value, Text::EffectStyle::INPUT);
+      if(update)
+      {
+        impl.mRenderer.Reset();
+      }
+      break;
+    }
   }
 }
 
@@ -975,6 +1002,16 @@ Property::Value TextEditor::PropertyHandler::GetProperty(Toolkit::TextEditor tex
       value = impl.mController->GetLineWrapMode();
       break;
     }
+    case Toolkit::DevelTextEditor::Property::STRIKETHROUGH:
+    {
+      GetStrikethroughProperties(impl.mController, value, Text::EffectStyle::DEFAULT);
+      break;
+    }
+    case Toolkit::DevelTextEditor::Property::INPUT_STRIKETHROUGH:
+    {
+      GetStrikethroughProperties(impl.mController, value, Text::EffectStyle::INPUT);
+      break;
+    }
     case Toolkit::DevelTextEditor::Property::ENABLE_SHIFT_SELECTION:
     {
       value = impl.mController->IsShiftSelectionEnabled();
@@ -1032,6 +1069,11 @@ Property::Value TextEditor::PropertyHandler::GetProperty(Toolkit::TextEditor tex
       value = impl.mController->GetFontSizeScale();
       break;
     }
+    case Toolkit::DevelTextEditor::Property::ENABLE_FONT_SIZE_SCALE:
+    {
+      value = impl.mController->IsFontSizeScaleEnabled();
+      break;
+    }
     case Toolkit::DevelTextEditor::Property::PRIMARY_CURSOR_POSITION:
     {
       value = static_cast<int>(impl.mController->GetPrimaryCursorPosition());
index 7eec04e..3475b36 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.
@@ -137,10 +137,13 @@ DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "selectedTextStar
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "selectedTextEnd",                  INTEGER,   SELECTED_TEXT_END                   )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "enableEditing",                    BOOLEAN,   ENABLE_EDITING                      )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "fontSizeScale",                    FLOAT,     FONT_SIZE_SCALE                     )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "enableFontSizeScale",              BOOLEAN,   ENABLE_FONT_SIZE_SCALE              )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "primaryCursorPosition",            INTEGER,   PRIMARY_CURSOR_POSITION             )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "grabHandleColor",                  VECTOR4,   GRAB_HANDLE_COLOR                   )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "inputFilter",                      MAP,       INPUT_FILTER                        )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "ellipsisPosition",                 INTEGER,   ELLIPSIS_POSITION                   )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "strikethrough",                    MAP,       STRIKETHROUGH                       )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextField, "inputStrikethrough",               MAP,       INPUT_STRIKETHROUGH                 )
 
 DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "textChanged",           SIGNAL_TEXT_CHANGED           )
 DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "maxLengthReached",      SIGNAL_MAX_LENGTH_REACHED     )
index dc253f0..6020ba7 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.
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#include <dali-toolkit/internal/controls/text-controls/text-field-property-handler.h>
 #include <dali-toolkit/internal/controls/text-controls/common-text-utils.h>
+#include <dali-toolkit/internal/controls/text-controls/text-field-property-handler.h>
 
 #include <dali-toolkit/devel-api/focus-manager/keyinput-focus-manager.h>
 #include <dali-toolkit/devel-api/text/rendering-backend.h>
@@ -626,6 +626,15 @@ void TextField::PropertyHandler::SetProperty(Toolkit::TextField textField, Prope
       }
       break;
     }
+    case Toolkit::DevelTextField::Property::ENABLE_FONT_SIZE_SCALE:
+    {
+      const bool enableFontSizeScale = value.Get<bool>();
+      if(!Equals(impl.mController->IsFontSizeScaleEnabled(), enableFontSizeScale))
+      {
+        impl.mController->SetFontSizeScaleEnabled(enableFontSizeScale);
+      }
+      break;
+    }
     case Toolkit::DevelTextField::Property::PRIMARY_CURSOR_POSITION:
     {
       uint32_t position = static_cast<uint32_t>(value.Get<int>());
@@ -665,6 +674,24 @@ void TextField::PropertyHandler::SetProperty(Toolkit::TextField textField, Prope
       }
       break;
     }
+    case Toolkit::DevelTextField::Property::STRIKETHROUGH:
+    {
+      const bool update = SetStrikethroughProperties(impl.mController, value, Text::EffectStyle::DEFAULT);
+      if(update)
+      {
+        impl.mRenderer.Reset();
+      }
+      break;
+    }
+    case Toolkit::DevelTextField::Property::INPUT_STRIKETHROUGH:
+    {
+      const bool update = SetStrikethroughProperties(impl.mController, value, Text::EffectStyle::INPUT);
+      if(update)
+      {
+        impl.mRenderer.Reset();
+      }
+      break;
+    }
   }
 }
 
@@ -1003,6 +1030,11 @@ Property::Value TextField::PropertyHandler::GetProperty(Toolkit::TextField textF
       value = impl.mController->GetFontSizeScale();
       break;
     }
+    case Toolkit::DevelTextField::Property::ENABLE_FONT_SIZE_SCALE:
+    {
+      value = impl.mController->IsFontSizeScaleEnabled();
+      break;
+    }
     case Toolkit::DevelTextField::Property::PRIMARY_CURSOR_POSITION:
     {
       value = static_cast<int>(impl.mController->GetPrimaryCursorPosition());
@@ -1025,6 +1057,16 @@ Property::Value TextField::PropertyHandler::GetProperty(Toolkit::TextField textF
       value = impl.mController->GetEllipsisPosition();
       break;
     }
+    case Toolkit::DevelTextField::Property::STRIKETHROUGH:
+    {
+      GetStrikethroughProperties(impl.mController, value, Text::EffectStyle::DEFAULT);
+      break;
+    }
+    case Toolkit::DevelTextField::Property::INPUT_STRIKETHROUGH:
+    {
+      GetStrikethroughProperties(impl.mController, value, Text::EffectStyle::INPUT);
+      break;
+    }
   } //switch
   return value;
 }
index ae948e2..9ef8ed1 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.
@@ -136,7 +136,9 @@ DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextLabel, "textFit",
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextLabel, "minLineSize",                  FLOAT,   MIN_LINE_SIZE                  )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextLabel, "renderingBackend",             INTEGER, RENDERING_BACKEND              )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextLabel, "fontSizeScale",                FLOAT,   FONT_SIZE_SCALE                )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextLabel, "enableFontSizeScale",          BOOLEAN, ENABLE_FONT_SIZE_SCALE         )
 DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextLabel, "ellipsisPosition",             INTEGER, ELLIPSIS_POSITION              )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit,           TextLabel, "strikethrough",                MAP,     STRIKETHROUGH                  )
 
 DALI_ANIMATABLE_PROPERTY_REGISTRATION_WITH_DEFAULT(Toolkit, TextLabel, "textColor",      Color::BLACK,     TEXT_COLOR   )
 DALI_ANIMATABLE_PROPERTY_COMPONENT_REGISTRATION(Toolkit,    TextLabel, "textColorRed",   TEXT_COLOR_RED,   TEXT_COLOR, 0)
@@ -508,6 +510,15 @@ void TextLabel::SetProperty(BaseObject* object, Property::Index index, const Pro
         }
         break;
       }
+      case Toolkit::DevelTextLabel::Property::ENABLE_FONT_SIZE_SCALE:
+      {
+        const bool enableFontSizeScale = value.Get<bool>();
+        if(!Equals(impl.mController->IsFontSizeScaleEnabled(), enableFontSizeScale))
+        {
+          impl.mController->SetFontSizeScaleEnabled(enableFontSizeScale);
+        }
+        break;
+      }
       case Toolkit::DevelTextLabel::Property::ELLIPSIS_POSITION:
       {
         DevelText::EllipsisPosition::Type ellipsisPositionType(static_cast<DevelText::EllipsisPosition::Type>(-1)); // Set to invalid value to ensure a valid mode does get set
@@ -518,6 +529,11 @@ void TextLabel::SetProperty(BaseObject* object, Property::Index index, const Pro
         }
         break;
       }
+      case Toolkit::DevelTextLabel::Property::STRIKETHROUGH:
+      {
+        impl.mTextUpdateNeeded = SetStrikethroughProperties(impl.mController, value, Text::EffectStyle::DEFAULT) || impl.mTextUpdateNeeded;
+        break;
+      }
     }
 
     // Request relayout when text update is needed. It's necessary to call it
@@ -756,11 +772,21 @@ Property::Value TextLabel::GetProperty(BaseObject* object, Property::Index index
         value = impl.mController->GetFontSizeScale();
         break;
       }
+      case Toolkit::DevelTextLabel::Property::ENABLE_FONT_SIZE_SCALE:
+      {
+        value = impl.mController->IsFontSizeScaleEnabled();
+        break;
+      }
       case Toolkit::DevelTextLabel::Property::ELLIPSIS_POSITION:
       {
         value = impl.mController->GetEllipsisPosition();
         break;
       }
+      case Toolkit::DevelTextLabel::Property::STRIKETHROUGH:
+      {
+        GetStrikethroughProperties(impl.mController, value, Text::EffectStyle::DEFAULT);
+        break;
+      }
     }
   }
 
index f791349..0a8c129 100755 (executable)
@@ -717,6 +717,14 @@ void WebView::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEn
   }
 }
 
+void WebView::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback)
+{
+  if(mWebEngine)
+  {
+    mWebEngine.RegisterNavigationPolicyDecidedCallback(callback);
+  }
+}
+
 void WebView::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
 {
   if(mWebEngine)
index ca1ec27..2d8a523 100755 (executable)
@@ -363,6 +363,11 @@ public:
   void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback);
 
   /**
+   * @copydoc Dali::Toolkit::WebView::RegisterNavigationPolicyDecidedCallback()
+   */
+  void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback);
+
+  /**
    * @copydoc Dali::Toolkit::WebView::RegisterCertificateConfirmedCallback()
    */
   void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback);
index d8506cb..ca42ca6 100644 (file)
@@ -1,6 +1,7 @@
 varying mediump vec2 vTexCoord;
 uniform sampler2D sTexture;
 uniform sampler2D sStyle;
+uniform sampler2D sOverlayStyle;
 uniform lowp vec4 uColor;
 uniform lowp vec3 mixColor;
 
@@ -8,7 +9,8 @@ void main()
 {
   mediump vec4 textTexture = texture2D( sTexture, vTexCoord );
   mediump vec4 styleTexture = texture2D( sStyle, vTexCoord );
+  mediump vec4 overlayStyleTexture = texture2D( sOverlayStyle, vTexCoord );
 
   // Draw the text as overlay above the style
-  gl_FragColor = ( textTexture + styleTexture * ( 1.0 - textTexture.a ) ) * uColor * vec4( mixColor, 1.0 );
+  gl_FragColor = ( overlayStyleTexture + textTexture * (1.0 - overlayStyleTexture.a) + styleTexture * ( 1.0 - textTexture.a ) * (1.0 - overlayStyleTexture.a) ) * uColor * vec4( mixColor, 1.0 );
 }
index b892a17..0d82aa7 100644 (file)
@@ -1,6 +1,7 @@
 varying mediump vec2 vTexCoord;
 uniform sampler2D sTexture;
 uniform sampler2D sStyle;
+uniform sampler2D sOverlayStyle;
 uniform sampler2D sMask;
 uniform lowp float uHasMultipleTextColors;
 uniform lowp vec4 uTextColorAnimatable;
@@ -11,6 +12,7 @@ void main()
 {
   mediump vec4 textTexture = texture2D( sTexture, vTexCoord );
   mediump vec4 styleTexture = texture2D( sStyle, vTexCoord );
+  mediump vec4 overlayStyleTexture = texture2D( sOverlayStyle, vTexCoord );
   mediump float maskTexture = texture2D( sMask, vTexCoord ).r;
 
   // Set the color of non-transparent pixel in text to what it is animated to.
@@ -20,5 +22,5 @@ void main()
   textTexture.rgb = mix( textTexture.rgb, uTextColorAnimatable.rgb, vstep * maskTexture * ( 1.0 - uHasMultipleTextColors ) );
 
   // Draw the text as overlay above the style
-  gl_FragColor = ( textTexture + styleTexture * ( 1.0 - textTexture.a ) ) * uColor * vec4( mixColor, 1.0 );
+  gl_FragColor = ( overlayStyleTexture + textTexture * (1.0 - overlayStyleTexture.a) + styleTexture * ( 1.0 - textTexture.a ) * (1.0 - overlayStyleTexture.a) ) * uColor * vec4( mixColor, 1.0 );
 }
index f5d8b1c..cf93f15 100644 (file)
@@ -1,6 +1,7 @@
 varying mediump vec2 vTexCoord;
 uniform sampler2D sTexture;
 uniform sampler2D sStyle;
+uniform sampler2D sOverlayStyle;
 uniform lowp vec4 uTextColorAnimatable;
 uniform lowp vec4 uColor;
 uniform lowp vec3 mixColor;
@@ -9,7 +10,8 @@ void main()
 {
   mediump float textTexture = texture2D( sTexture, vTexCoord ).r;
   mediump vec4 styleTexture = texture2D( sStyle, vTexCoord );
+  mediump vec4 overlayStyleTexture = texture2D( sOverlayStyle, vTexCoord );
 
   // Draw the text as overlay above the style
-  gl_FragColor = ( uTextColorAnimatable * textTexture + styleTexture * ( 1.0 - uTextColorAnimatable.a * textTexture ) ) * uColor * vec4( mixColor, 1.0 );
-}
+  gl_FragColor = ( overlayStyleTexture + uTextColorAnimatable * textTexture * (1.0 - overlayStyleTexture.a) + styleTexture * ( 1.0 - uTextColorAnimatable.a * textTexture ) * (1.0 - overlayStyleTexture.a) ) * uColor * vec4( mixColor, 1.0 );
+}
\ No newline at end of file
index de3a1f2..fed87e8 100644 (file)
@@ -37,18 +37,19 @@ struct InputStyle
 {
   enum Mask
   {
-    NONE               = 0x0000,
-    INPUT_COLOR        = 0x0001,
-    INPUT_FONT_FAMILY  = 0x0002,
-    INPUT_POINT_SIZE   = 0x0004,
-    INPUT_FONT_WEIGHT  = 0x0008,
-    INPUT_FONT_WIDTH   = 0x0010,
-    INPUT_FONT_SLANT   = 0x0020,
-    INPUT_LINE_SPACING = 0x0040,
-    INPUT_UNDERLINE    = 0x0080,
-    INPUT_SHADOW       = 0x0100,
-    INPUT_EMBOSS       = 0x0200,
-    INPUT_OUTLINE      = 0x0400
+    NONE                = 0x0000,
+    INPUT_COLOR         = 0x0001,
+    INPUT_FONT_FAMILY   = 0x0002,
+    INPUT_POINT_SIZE    = 0x0004,
+    INPUT_FONT_WEIGHT   = 0x0008,
+    INPUT_FONT_WIDTH    = 0x0010,
+    INPUT_FONT_SLANT    = 0x0020,
+    INPUT_LINE_SPACING  = 0x0040,
+    INPUT_UNDERLINE     = 0x0080,
+    INPUT_SHADOW        = 0x0100,
+    INPUT_EMBOSS        = 0x0200,
+    INPUT_OUTLINE       = 0x0400,
+    INPUT_STRIKETHROUGH = 0x0800
   };
 
   InputStyle()
@@ -63,6 +64,7 @@ struct InputStyle
     shadowProperties(),
     embossProperties(),
     outlineProperties(),
+    strikethroughProperties(),
     isDefaultColor(true),
     isFamilyDefined(false),
     isWeightDefined(false),
@@ -73,7 +75,8 @@ struct InputStyle
     isUnderlineDefined(false),
     isShadowDefined(false),
     isEmbossDefined(false),
-    isOutlineDefined(false)
+    isOutlineDefined(false),
+    isStrikethroughDefined(false)
   {
   }
 
@@ -118,6 +121,9 @@ struct InputStyle
 
     isOutlineDefined  = inputStyle.isOutlineDefined;
     outlineProperties = inputStyle.outlineProperties;
+
+    isStrikethroughDefined  = inputStyle.isStrikethroughDefined;
+    strikethroughProperties = inputStyle.strikethroughProperties;
   }
 
   /**
@@ -148,7 +154,8 @@ struct InputStyle
        (underlineProperties != inputStyle.underlineProperties) ||
        (shadowProperties != inputStyle.shadowProperties) ||
        (embossProperties != inputStyle.embossProperties) ||
-       (outlineProperties != inputStyle.outlineProperties))
+       (outlineProperties != inputStyle.outlineProperties) ||
+       (isStrikethroughDefined != inputStyle.isStrikethroughDefined))
     {
       return false;
     }
@@ -204,6 +211,10 @@ struct InputStyle
     {
       mask = static_cast<Mask>(mask | INPUT_OUTLINE);
     }
+    if(strikethroughProperties != inputStyle.strikethroughProperties)
+    {
+      mask = static_cast<Mask>(mask | INPUT_STRIKETHROUGH);
+    }
 
     return mask;
   }
@@ -217,10 +228,11 @@ struct InputStyle
 
   float lineSpacing; ///< The line's spacing.
 
-  std::string underlineProperties; ///< The underline properties string.
-  std::string shadowProperties;    ///< The shadow properties string.
-  std::string embossProperties;    ///< The emboss properties string.
-  std::string outlineProperties;   ///< The outline properties string.
+  std::string underlineProperties;     ///< The underline properties string.
+  std::string shadowProperties;        ///< The shadow properties string.
+  std::string embossProperties;        ///< The emboss properties string.
+  std::string outlineProperties;       ///< The outline properties string.
+  std::string strikethroughProperties; ///< The strikethrough properties string.
 
   bool isDefaultColor : 1;  ///< Whether the text's color is the default.
   bool isFamilyDefined : 1; ///< Whether the font's family is defined.
@@ -229,11 +241,12 @@ struct InputStyle
   bool isSlantDefined : 1;  ///< Whether the font's slant is defined.
   bool isSizeDefined : 1;   ///< Whether the font's size is defined.
 
-  bool isLineSpacingDefined : 1; ///< Whether the line spacing is defined.
-  bool isUnderlineDefined : 1;   ///< Whether the underline parameters are defined.
-  bool isShadowDefined : 1;      ///< Whether the shadow parameters are defined.
-  bool isEmbossDefined : 1;      ///< Whether the emboss parameters are defined.
-  bool isOutlineDefined : 1;     ///< Whether the outline parameters are defined.
+  bool isLineSpacingDefined : 1;   ///< Whether the line spacing is defined.
+  bool isUnderlineDefined : 1;     ///< Whether the underline parameters are defined.
+  bool isShadowDefined : 1;        ///< Whether the shadow parameters are defined.
+  bool isEmbossDefined : 1;        ///< Whether the emboss parameters are defined.
+  bool isOutlineDefined : 1;       ///< Whether the outline parameters are defined.
+  bool isStrikethroughDefined : 1; ///< Whether the strikethrough parameters are defined.
 };
 
 } // namespace Text
index ffa4cce..ce8bcee 100644 (file)
@@ -51,6 +51,10 @@ const std::string YELLOW_COLOR("yellow");
 const std::string MAGENTA_COLOR("magenta");
 const std::string CYAN_COLOR("cyan");
 const std::string TRANSPARENT_COLOR("transparent");
+
+const std::string SOLID_UNDERLINE("solid");
+const std::string DASHED_UNDERLINE("dashed");
+const std::string DOUBLE_UNDERLINE("double");
 } // namespace
 
 bool TokenComparison(const std::string& string1, const char* const stringBuffer2, Length length)
@@ -295,6 +299,22 @@ void Vector2ToString(const Vector2& value, std::string& vector2Str)
   vector2Str += yStr;
 }
 
+void UnderlineTypeStringToTypeValue(const char* const typeStr, Length length, Text::Underline::Type& retType)
+{
+  if(TokenComparison(SOLID_UNDERLINE, typeStr, length))
+  {
+    retType = Text::Underline::SOLID;
+  }
+  else if(TokenComparison(DASHED_UNDERLINE, typeStr, length))
+  {
+    retType = Text::Underline::DASHED;
+  }
+  else if(TokenComparison(DOUBLE_UNDERLINE, typeStr, length))
+  {
+    retType = Text::Underline::DOUBLE;
+  }
+}
+
 } // namespace Text
 
 } // namespace Toolkit
index 490e51f..d7a6596 100644 (file)
@@ -24,6 +24,7 @@
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/text/text-definitions.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
 
 namespace Dali
 {
@@ -183,6 +184,15 @@ void StringToVector2(const char* const vectorStr, Length length, Vector2& vector
  */
 void Vector2ToString(const Vector2& value, std::string& vector2Str);
 
+/**
+ * @brief Converts a string into its value in the enum Text::Underline::Type.
+ *
+ * @param[in] typeStr The underline type value packed inside a string.
+ * @param[in] length The length of the string.
+ * @param[out] retType The Underline type.
+ */
+void UnderlineTypeStringToTypeValue(const char* const typeStr, Length length, Text::Underline::Type& retType);
+
 } // namespace Text
 
 } // namespace Toolkit
index ef80844..a210785 100644 (file)
@@ -46,6 +46,7 @@ Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, true, "LOG_TEXT
 const float    ZERO(0.0f);
 const float    HALF(0.5f);
 const float    ONE(1.0f);
+const float    ONE_AND_A_HALF(1.5f);
 const uint32_t DOUBLE_PIXEL_PADDING = 4u; //Padding will be added twice to Atlas
 const uint16_t NO_OUTLINE           = 0u;
 } // namespace
@@ -70,7 +71,7 @@ struct AtlasRenderer::Impl
   };
 
   /**
-   * brief Struct used to generate the underline mesh.
+   * brief Struct used to generate the underline/striketthrough mesh.
    * There is one Extent per line of text.
    */
   struct Extent
@@ -80,9 +81,10 @@ struct AtlasRenderer::Impl
       mLeft(0.0f),
       mRight(0.0f),
       mUnderlinePosition(0.0f),
-      mUnderlineThickness(0.0f),
+      mLineThickness(0.0f),
       mMeshRecordIndex(0u),
-      mUnderlineChunkId(0u)
+      mUnderlineChunkId(0u),
+      mStrikethroughPosition(0.0f)
     {
     }
 
@@ -90,9 +92,10 @@ struct AtlasRenderer::Impl
     float    mLeft;
     float    mRight;
     float    mUnderlinePosition;
-    float    mUnderlineThickness;
+    float    mLineThickness;
     uint32_t mMeshRecordIndex;
     uint32_t mUnderlineChunkId;
+    float    mStrikethroughPosition;
   };
 
   struct MaxBlockSize
@@ -283,27 +286,31 @@ struct AtlasRenderer::Impl
                     const Vector4&           color,
                     uint16_t                 outline,
                     AtlasManager::AtlasSlot& slot,
-                    bool                     underlineGlyph,
+                    bool                     decorationlineGlyph,
                     float                    currentUnderlinePosition,
-                    float                    currentUnderlineThickness,
+                    float                    currentlineThickness,
                     std::vector<MeshRecord>& meshContainer,
                     Vector<TextCacheEntry>&  newTextCache,
                     Vector<Extent>&          extents,
-                    uint32_t                 underlineChunkId)
+                    uint32_t                 underlineChunkId,
+                    bool                     isGlyphCached)
   {
     // Generate mesh data for this quad, plugging in our supplied position
     AtlasManager::Mesh2D newMesh;
     mGlyphManager.GenerateMeshData(slot.mImageId, position, newMesh);
 
-    TextCacheEntry textCacheEntry;
-    textCacheEntry.mFontId       = glyph.fontId;
-    textCacheEntry.mImageId      = slot.mImageId;
-    textCacheEntry.mIndex        = glyph.index;
-    textCacheEntry.mOutlineWidth = outline;
-    textCacheEntry.isItalic      = glyph.isItalicRequired;
-    textCacheEntry.isBold        = glyph.isBoldRequired;
-
-    newTextCache.PushBack(textCacheEntry);
+    if(!isGlyphCached)
+    {
+      TextCacheEntry textCacheEntry;
+      textCacheEntry.mFontId       = glyph.fontId;
+      textCacheEntry.mImageId      = slot.mImageId;
+      textCacheEntry.mIndex        = glyph.index;
+      textCacheEntry.mOutlineWidth = outline;
+      textCacheEntry.isItalic      = glyph.isItalicRequired;
+      textCacheEntry.isBold        = glyph.isBoldRequired;
+
+      newTextCache.PushBack(textCacheEntry);
+    }
 
     AtlasManager::Vertex2D* verticesBuffer = newMesh.mVertices.Begin();
 
@@ -322,11 +329,12 @@ struct AtlasRenderer::Impl
                    newMesh,
                    extents,
                    position.y + glyph.yBearing,
-                   underlineGlyph,
+                   decorationlineGlyph,
                    currentUnderlinePosition,
-                   currentUnderlineThickness,
+                   currentlineThickness,
                    slot,
-                   underlineChunkId);
+                   underlineChunkId,
+                   position.y + (glyph.height * HALF));
   }
 
   void CreateActors(const std::vector<MeshRecord>& meshContainer,
@@ -416,21 +424,28 @@ struct AtlasRenderer::Impl
     std::vector<MeshRecord> meshContainer;
     std::vector<MeshRecord> meshContainerOutline;
     Vector<Extent>          extents;
+    Vector<Extent>          strikethroughExtents;
     mDepth = depth;
 
-    const Vector2&   textSize(view.GetLayoutSize());
-    const Vector2    halfTextSize(textSize * 0.5f);
-    const Vector2&   shadowOffset(view.GetShadowOffset());
-    const Vector4&   shadowColor(view.GetShadowColor());
-    const bool       underlineEnabled = view.IsUnderlineEnabled();
-    const Vector4&   underlineColor(view.GetUnderlineColor());
-    const float      underlineHeight = view.GetUnderlineHeight();
-    const uint16_t   outlineWidth    = view.GetOutlineWidth();
-    const Vector4&   outlineColor(view.GetOutlineColor());
-    const bool       isOutline     = 0u != outlineWidth;
-    const GlyphInfo* hyphens       = view.GetHyphens();
-    const Length*    hyphenIndices = view.GetHyphenIndices();
-    const Length     hyphensCount  = view.GetHyphensCount();
+    const Vector2&              textSize(view.GetLayoutSize());
+    const Vector2               halfTextSize(textSize * 0.5f);
+    const Vector2&              shadowOffset(view.GetShadowOffset());
+    const Vector4&              shadowColor(view.GetShadowColor());
+    const bool                  underlineEnabled = view.IsUnderlineEnabled();
+    const Vector4&              underlineColor(view.GetUnderlineColor());
+    const float                 underlineHeight      = view.GetUnderlineHeight();
+    const Text::Underline::Type underlineType        = view.GetUnderlineType();
+    const float                 dashedUnderlineWidth = view.GetDashedUnderlineWidth();
+    const float                 dashedUnderlineGap   = view.GetDashedUnderlineGap();
+    const uint16_t              outlineWidth         = view.GetOutlineWidth();
+    const Vector4&              outlineColor(view.GetOutlineColor());
+    const bool                  isOutline            = 0u != outlineWidth;
+    const GlyphInfo*            hyphens              = view.GetHyphens();
+    const Length*               hyphenIndices        = view.GetHyphenIndices();
+    const Length                hyphensCount         = view.GetHyphensCount();
+    const bool                  strikethroughEnabled = view.IsStrikethroughEnabled();
+    const Vector4&              strikethroughColor(view.GetStrikethroughColor());
+    const float                 strikethroughHeight = view.GetStrikethroughHeight();
 
     // Elided text info. Indices according to elided text.
     const auto startIndexOfGlyphs              = view.GetStartIndexOfElidedGlyphs();
@@ -448,12 +463,14 @@ struct AtlasRenderer::Impl
                           numberOfUnderlineRuns);
 
     bool thereAreUnderlinedGlyphs = false;
+    bool strikethroughGlyphsExist = false;
 
-    float  currentUnderlinePosition  = ZERO;
-    float  currentUnderlineThickness = underlineHeight;
-    FontId lastFontId                = 0;
-    FontId lastUnderlinedFontId      = 0;
-    Style  style                     = STYLE_NORMAL;
+    float  currentUnderlinePosition      = ZERO;
+    float  currentUnderlineThickness     = underlineHeight;
+    float  currentStrikethroughThickness = strikethroughHeight;
+    FontId lastFontId                    = 0;
+    FontId lastUnderlinedFontId          = 0;
+    Style  style                         = STYLE_NORMAL;
 
     if(fabsf(shadowOffset.x) > Math::MACHINE_EPSILON_1 || fabsf(shadowOffset.y) > Math::MACHINE_EPSILON_1)
     {
@@ -499,12 +516,13 @@ struct AtlasRenderer::Impl
 
       const bool isGlyphUnderlined = underlineEnabled || IsGlyphUnderlined(i, underlineRuns);
       thereAreUnderlinedGlyphs     = thereAreUnderlinedGlyphs || isGlyphUnderlined;
+      strikethroughGlyphsExist     = strikethroughGlyphsExist || strikethroughEnabled;
 
       // No operation for white space
       if(glyph.width && glyph.height)
       {
         // Are we still using the same fontId as previous
-        if(isGlyphUnderlined && (glyph.fontId != lastUnderlinedFontId))
+        if((isGlyphUnderlined || strikethroughGlyphsExist) && (glyph.fontId != lastUnderlinedFontId))
         {
           // We need to fetch fresh font underline metrics
           FontMetrics fontMetrics;
@@ -527,6 +545,19 @@ struct AtlasRenderer::Impl
             }
           }
 
+          if(fabsf(strikethroughHeight) < Math::MACHINE_EPSILON_1000)
+          {
+            // Ensure strikethrough will be at least a pixel high
+            if(currentStrikethroughThickness < ONE)
+            {
+              currentStrikethroughThickness = ONE;
+            }
+            else
+            {
+              currentStrikethroughThickness = ceil(currentStrikethroughThickness);
+            }
+          }
+
           // Clamp the underline position at the font descender and check for ( as EFL describes it ) a broken font
           if(currentUnderlinePosition > descender)
           {
@@ -594,7 +625,25 @@ struct AtlasRenderer::Impl
                        meshContainer,
                        newTextCache,
                        extents,
-                       underlineChunkId);
+                       underlineChunkId,
+                       false);
+
+          if(strikethroughGlyphsExist)
+          {
+            GenerateMesh(glyph,
+                         positionPlusOutlineOffset,
+                         color,
+                         NO_OUTLINE,
+                         slot,
+                         strikethroughGlyphsExist,
+                         0.0f,
+                         currentStrikethroughThickness,
+                         meshContainer,
+                         newTextCache,
+                         strikethroughExtents,
+                         0u,
+                         true);
+          }
 
           lastFontId = glyph.fontId; // Prevents searching for existing blocksizes when string of the same fontId.
         }
@@ -612,7 +661,8 @@ struct AtlasRenderer::Impl
                        meshContainerOutline,
                        newTextCache,
                        extents,
-                       0u);
+                       0u,
+                       false);
         }
 
         //The new underlined chunk. Add new id if they are not consecutive indices (this is for Markup case)
@@ -638,7 +688,13 @@ struct AtlasRenderer::Impl
     if(thereAreUnderlinedGlyphs)
     {
       // Check to see if any of the text needs an underline
-      GenerateUnderlines(meshContainer, extents, underlineColor);
+      GenerateUnderlines(meshContainer, extents, underlineColor, underlineType, dashedUnderlineWidth, dashedUnderlineGap);
+    }
+
+    if(strikethroughGlyphsExist)
+    {
+      // Check to see if any of the text needs a strikethrough
+      GenerateStrikethrough(meshContainer, strikethroughExtents, strikethroughColor);
     }
 
     // For each MeshData object, create a mesh actor and add to the renderable actor
@@ -775,11 +831,12 @@ struct AtlasRenderer::Impl
                       AtlasManager::Mesh2D&    newMesh,
                       Vector<Extent>&          extents,
                       float                    baseLine,
-                      bool                     underlineGlyph,
+                      bool                     decorationlineGlyph,
                       float                    underlinePosition,
-                      float                    underlineThickness,
+                      float                    lineThickness,
                       AtlasManager::AtlasSlot& slot,
-                      uint32_t                 underlineChunkId)
+                      uint32_t                 underlineChunkId,
+                      float                    strikethroughPosition)
   {
     if(slot.mImageId)
     {
@@ -798,7 +855,7 @@ struct AtlasRenderer::Impl
           // Append the mesh to the existing mesh and adjust any extents
           Toolkit::Internal::AtlasMeshFactory::AppendMesh(mIt->mMesh, newMesh);
 
-          if(underlineGlyph)
+          if(decorationlineGlyph)
           {
             AdjustExtents(extents,
                           meshContainer,
@@ -807,8 +864,9 @@ struct AtlasRenderer::Impl
                           right,
                           baseLine,
                           underlinePosition,
-                          underlineThickness,
-                          underlineChunkId);
+                          lineThickness,
+                          underlineChunkId,
+                          strikethroughPosition);
           }
 
           return;
@@ -821,7 +879,7 @@ struct AtlasRenderer::Impl
       meshRecord.mMesh    = newMesh;
       meshContainer.push_back(meshRecord);
 
-      if(underlineGlyph)
+      if(decorationlineGlyph)
       {
         // Adjust extents for this new meshrecord
         AdjustExtents(extents,
@@ -831,8 +889,9 @@ struct AtlasRenderer::Impl
                       right,
                       baseLine,
                       underlinePosition,
-                      underlineThickness,
-                      underlineChunkId);
+                      lineThickness,
+                      underlineChunkId,
+                      strikethroughPosition);
       }
     }
   }
@@ -844,8 +903,9 @@ struct AtlasRenderer::Impl
                      float                    right,
                      float                    baseLine,
                      float                    underlinePosition,
-                     float                    underlineThickness,
-                     uint32_t                 underlineChunkId)
+                     float                    lineThickness,
+                     uint32_t                 underlineChunkId,
+                     float                    strikethroughPosition)
   {
     bool foundExtent = false;
     for(Vector<Extent>::Iterator eIt    = extents.Begin(),
@@ -869,22 +929,23 @@ struct AtlasRenderer::Impl
         {
           eIt->mUnderlinePosition = underlinePosition;
         }
-        if(underlineThickness > eIt->mUnderlineThickness)
+        if(lineThickness > eIt->mLineThickness)
         {
-          eIt->mUnderlineThickness = underlineThickness;
+          eIt->mLineThickness = lineThickness;
         }
       }
     }
     if(!foundExtent)
     {
       Extent extent;
-      extent.mLeft               = left;
-      extent.mRight              = right;
-      extent.mBaseLine           = baseLine;
-      extent.mUnderlinePosition  = underlinePosition;
-      extent.mUnderlineThickness = underlineThickness;
-      extent.mMeshRecordIndex    = index;
-      extent.mUnderlineChunkId   = underlineChunkId;
+      extent.mLeft                  = left;
+      extent.mRight                 = right;
+      extent.mBaseLine              = baseLine;
+      extent.mUnderlinePosition     = underlinePosition;
+      extent.mMeshRecordIndex       = index;
+      extent.mUnderlineChunkId      = underlineChunkId;
+      extent.mLineThickness         = lineThickness;
+      extent.mStrikethroughPosition = strikethroughPosition;
       extents.PushBack(extent);
     }
   }
@@ -927,9 +988,182 @@ struct AtlasRenderer::Impl
     }
   }
 
-  void GenerateUnderlines(std::vector<MeshRecord>& meshRecords,
-                          Vector<Extent>&          extents,
-                          const Vector4&           underlineColor)
+  void GenerateUnderlines(std::vector<MeshRecord>&     meshRecords,
+                          Vector<Extent>&              extents,
+                          const Vector4&               underlineColor,
+                          const Text::Underline::Type& underlineType,
+                          const float&                 dashedUnderlineWidth,
+                          const float&                 dashedUnderlineGap)
+  {
+    AtlasManager::Mesh2D newMesh;
+    unsigned short       faceIndex = 0;
+    for(Vector<Extent>::ConstIterator eIt    = extents.Begin(),
+                                      eEndIt = extents.End();
+        eIt != eEndIt;
+        ++eIt)
+    {
+      AtlasManager::Vertex2D vert;
+      uint32_t               index = eIt->mMeshRecordIndex;
+      Vector2                uv    = mGlyphManager.GetAtlasSize(meshRecords[index].mAtlasId);
+
+      // Make sure we don't hit texture edge for single pixel texture ( filled pixel is in top left of every atlas )
+      float u           = HALF / uv.x;
+      float v           = HALF / uv.y;
+      float thickness   = eIt->mLineThickness;
+      float ShiftLineBy = (underlineType == Text::Underline::Type::DOUBLE) ? (thickness * ONE_AND_A_HALF) : (thickness * HALF);
+      float baseLine    = eIt->mBaseLine + eIt->mUnderlinePosition - ShiftLineBy;
+      float tlx         = eIt->mLeft;
+      float brx         = eIt->mRight;
+
+      if(underlineType == Text::Underline::Type::DASHED)
+      {
+        float dashTlx = tlx;
+        float dashBrx = tlx;
+        faceIndex     = 0;
+
+        AtlasManager::Mesh2D newMesh;
+        while((dashTlx >= tlx) && (dashTlx < brx) && ((dashTlx + dashedUnderlineWidth) <= brx))
+        {
+          dashBrx = dashTlx + dashedUnderlineWidth;
+
+          //The top left edge of the underline
+          vert.mPosition.x  = dashTlx;
+          vert.mPosition.y  = baseLine;
+          vert.mTexCoords.x = ZERO;
+          vert.mTexCoords.y = ZERO;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          //The top right edge of the underline
+          vert.mPosition.x  = dashBrx;
+          vert.mPosition.y  = baseLine;
+          vert.mTexCoords.x = u;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          //The bottom left edge of the underline
+          vert.mPosition.x  = dashTlx;
+          vert.mPosition.y  = baseLine + thickness;
+          vert.mTexCoords.x = ZERO;
+          vert.mTexCoords.y = v;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          //The bottom right edge of the underline
+          vert.mPosition.x  = dashBrx;
+          vert.mPosition.y  = baseLine + thickness;
+          vert.mTexCoords.x = u;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          dashTlx = dashBrx + dashedUnderlineGap; // The next dash will start at the right of the current dash plus the gap
+
+          // Six indices in counter clockwise winding
+          newMesh.mIndices.PushBack(faceIndex + 1u);
+          newMesh.mIndices.PushBack(faceIndex);
+          newMesh.mIndices.PushBack(faceIndex + 2u);
+          newMesh.mIndices.PushBack(faceIndex + 2u);
+          newMesh.mIndices.PushBack(faceIndex + 3u);
+          newMesh.mIndices.PushBack(faceIndex + 1u);
+
+          faceIndex += 4;
+
+          Toolkit::Internal::AtlasMeshFactory::AppendMesh(meshRecords[index].mMesh, newMesh);
+        }
+      }
+      else
+      {
+        // It's either SOLID or DOUBLE so we need to generate the first solid underline anyway.
+        vert.mPosition.x  = tlx;
+        vert.mPosition.y  = baseLine;
+        vert.mTexCoords.x = ZERO;
+        vert.mTexCoords.y = ZERO;
+        vert.mColor       = underlineColor;
+        newMesh.mVertices.PushBack(vert);
+
+        vert.mPosition.x  = brx;
+        vert.mPosition.y  = baseLine;
+        vert.mTexCoords.x = u;
+        vert.mColor       = underlineColor;
+        newMesh.mVertices.PushBack(vert);
+
+        vert.mPosition.x  = tlx;
+        vert.mPosition.y  = baseLine + thickness;
+        vert.mTexCoords.x = ZERO;
+        vert.mTexCoords.y = v;
+        vert.mColor       = underlineColor;
+        newMesh.mVertices.PushBack(vert);
+
+        vert.mPosition.x  = brx;
+        vert.mPosition.y  = baseLine + thickness;
+        vert.mTexCoords.x = u;
+        vert.mColor       = underlineColor;
+        newMesh.mVertices.PushBack(vert);
+
+        // Six indices in counter clockwise winding
+        newMesh.mIndices.PushBack(faceIndex + 1u);
+        newMesh.mIndices.PushBack(faceIndex);
+        newMesh.mIndices.PushBack(faceIndex + 2u);
+        newMesh.mIndices.PushBack(faceIndex + 2u);
+        newMesh.mIndices.PushBack(faceIndex + 3u);
+        newMesh.mIndices.PushBack(faceIndex + 1u);
+        faceIndex += 4;
+
+        Toolkit::Internal::AtlasMeshFactory::AppendMesh(meshRecords[index].mMesh, newMesh);
+
+        if(underlineType == Text::Underline::Type::DOUBLE)
+        {
+          baseLine += 2 * thickness;
+
+          //The top left edge of the underline
+          vert.mPosition.x  = tlx;
+          vert.mPosition.y  = baseLine; // Vertical start of the second underline
+          vert.mTexCoords.x = ZERO;
+          vert.mTexCoords.y = ZERO;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          //The top right edge of the underline
+          vert.mPosition.x  = brx;
+          vert.mPosition.y  = baseLine;
+          vert.mTexCoords.x = u;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          //The bottom left edge of the underline
+          vert.mPosition.x  = tlx;
+          vert.mPosition.y  = baseLine + thickness; // Vertical End of the second underline
+          vert.mTexCoords.x = ZERO;
+          vert.mTexCoords.y = v;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          //The bottom right edge of the underline
+          vert.mPosition.x  = brx;
+          vert.mPosition.y  = baseLine + thickness;
+          vert.mTexCoords.x = u;
+          vert.mColor       = underlineColor;
+          newMesh.mVertices.PushBack(vert);
+
+          // Six indices in counter clockwise winding
+          newMesh.mIndices.PushBack(faceIndex + 1u);
+          newMesh.mIndices.PushBack(faceIndex);
+          newMesh.mIndices.PushBack(faceIndex + 2u);
+          newMesh.mIndices.PushBack(faceIndex + 2u);
+          newMesh.mIndices.PushBack(faceIndex + 3u);
+          newMesh.mIndices.PushBack(faceIndex + 1u);
+
+          faceIndex += 4;
+
+          Toolkit::Internal::AtlasMeshFactory::AppendMesh(meshRecords[index].mMesh, newMesh);
+        }
+      }
+    }
+  }
+
+  void GenerateStrikethrough(std::vector<MeshRecord>& meshRecords,
+                             Vector<Extent>&          extents,
+                             const Vector4&           strikethroughColor)
   {
     AtlasManager::Mesh2D newMesh;
     unsigned short       faceIndex = 0;
@@ -943,37 +1177,37 @@ struct AtlasRenderer::Impl
       Vector2                uv    = mGlyphManager.GetAtlasSize(meshRecords[index].mAtlasId);
 
       // Make sure we don't hit texture edge for single pixel texture ( filled pixel is in top left of every atlas )
-      float u         = HALF / uv.x;
-      float v         = HALF / uv.y;
-      float thickness = eIt->mUnderlineThickness;
-      float baseLine  = eIt->mBaseLine + eIt->mUnderlinePosition - (thickness * HALF);
-      float tlx       = eIt->mLeft;
-      float brx       = eIt->mRight;
+      float u                     = HALF / uv.x;
+      float v                     = HALF / uv.y;
+      float thickness             = eIt->mLineThickness;
+      float tlx                   = eIt->mLeft;
+      float brx                   = eIt->mRight;
+      float strikethroughPosition = eIt->mStrikethroughPosition;
 
       vert.mPosition.x  = tlx;
-      vert.mPosition.y  = baseLine;
+      vert.mPosition.y  = strikethroughPosition;
       vert.mTexCoords.x = ZERO;
       vert.mTexCoords.y = ZERO;
-      vert.mColor       = underlineColor;
+      vert.mColor       = strikethroughColor;
       newMesh.mVertices.PushBack(vert);
 
       vert.mPosition.x  = brx;
-      vert.mPosition.y  = baseLine;
+      vert.mPosition.y  = strikethroughPosition;
       vert.mTexCoords.x = u;
-      vert.mColor       = underlineColor;
+      vert.mColor       = strikethroughColor;
       newMesh.mVertices.PushBack(vert);
 
       vert.mPosition.x  = tlx;
-      vert.mPosition.y  = baseLine + thickness;
+      vert.mPosition.y  = strikethroughPosition + thickness;
       vert.mTexCoords.x = ZERO;
       vert.mTexCoords.y = v;
-      vert.mColor       = underlineColor;
+      vert.mColor       = strikethroughColor;
       newMesh.mVertices.PushBack(vert);
 
       vert.mPosition.x  = brx;
-      vert.mPosition.y  = baseLine + thickness;
+      vert.mPosition.y  = strikethroughPosition + thickness;
       vert.mTexCoords.x = u;
-      vert.mColor       = underlineColor;
+      vert.mColor       = strikethroughColor;
       newMesh.mVertices.PushBack(vert);
 
       // Six indices in counter clockwise winding
index cea2a19..e6f346c 100644 (file)
@@ -35,6 +35,7 @@ namespace Text
 {
 namespace
 {
+const float HALF(0.5f);
 /**
  * @brief Data struct used to set the buffer of the glyph's bitmap into the final bitmap's buffer.
  */
@@ -275,14 +276,17 @@ bool IsGlyphUnderlined(GlyphIndex              index,
 }
 
 /// Helper method to fetch the underline metrics for the specified font glyph
-void FetchFontUnderlineMetrics(
+void FetchFontDecorationlinesMetrics(
   TextAbstraction::FontClient& fontClient,
   const GlyphInfo* const       glyphInfo,
   float&                       currentUnderlinePosition,
   const float                  underlineHeight,
   float&                       currentUnderlineThickness,
   float&                       maxUnderlineThickness,
-  FontId&                      lastUnderlinedFontId)
+  FontId&                      lastlinedFontId,
+  const float                  strikethroughHeight,
+  float&                       currentStrikethroughThickness,
+  float&                       maxStrikethroughThickness)
 {
   FontMetrics fontMetrics;
   fontClient.GetFontMetrics(glyphInfo->fontId, fontMetrics);
@@ -304,12 +308,31 @@ void FetchFontUnderlineMetrics(
     }
   }
 
+  if(fabsf(strikethroughHeight) < Math::MACHINE_EPSILON_1000)
+  {
+    // Ensure strikethrough will be at least a pixel high
+    if(currentStrikethroughThickness < 1.0f)
+    {
+      currentStrikethroughThickness = 1.0f;
+    }
+    else
+    {
+      currentStrikethroughThickness = ceil(currentStrikethroughThickness);
+    }
+  }
+
   // The underline thickness should be the max underline thickness of all glyphs of the line.
   if(currentUnderlineThickness > maxUnderlineThickness)
   {
     maxUnderlineThickness = currentUnderlineThickness;
   }
 
+  // The strikethrough thickness should be the max strikethrough thickness of all glyphs of the line.
+  if(currentStrikethroughThickness > maxStrikethroughThickness)
+  {
+    maxStrikethroughThickness = currentStrikethroughThickness;
+  }
+
   // Clamp the underline position at the font descender and check for ( as EFL describes it ) a broken font
   if(currentUnderlinePosition > descender)
   {
@@ -322,7 +345,7 @@ void FetchFontUnderlineMetrics(
     currentUnderlinePosition = 1.0f;
   }
 
-  lastUnderlinedFontId = glyphInfo->fontId;
+  lastlinedFontId = glyphInfo->fontId;
 }
 
 /// Draws the specified color to the pixel buffer
@@ -349,15 +372,19 @@ void WriteColorToPixelBuffer(
 
 /// Draws the specified underline color to the buffer
 void DrawUnderline(
-  const Vector4&     underlineColor,
-  const unsigned int bufferWidth,
-  const unsigned int bufferHeight,
-  GlyphData&         glyphData,
-  const float        baseline,
-  const float        currentUnderlinePosition,
-  const float        maxUnderlineThickness,
-  const float        lineExtentLeft,
-  const float        lineExtentRight)
+  const Vector4&              underlineColor,
+  const unsigned int          bufferWidth,
+  const unsigned int          bufferHeight,
+  GlyphData&                  glyphData,
+  const float                 baseline,
+  const float                 currentUnderlinePosition,
+  const float                 maxUnderlineThickness,
+  const float                 lineExtentLeft,
+  const float                 lineExtentRight,
+  const Text::Underline::Type underlineType,
+  const float                 dashedUnderlineWidth,
+  const float                 dashedUnderlineGap,
+  const LineRun&              line)
 {
   int       underlineYOffset = glyphData.verticalOffset + baseline + currentUnderlinePosition;
   uint32_t* bitmapBuffer     = reinterpret_cast<uint32_t*>(glyphData.bitmapBuffer.GetBuffer());
@@ -369,16 +396,67 @@ void DrawUnderline(
       // Do not write out of bounds.
       break;
     }
+    if(underlineType == Text::Underline::DASHED)
+    {
+      float dashWidth = dashedUnderlineWidth;
+      float dashGap   = 0;
 
-    for(unsigned int x = glyphData.horizontalOffset + lineExtentLeft; x <= glyphData.horizontalOffset + lineExtentRight; x++)
+      for(unsigned int x = glyphData.horizontalOffset + lineExtentLeft; x <= glyphData.horizontalOffset + lineExtentRight; x++)
+      {
+        if(x > bufferWidth - 1)
+        {
+          // Do not write out of bounds.
+          break;
+        }
+        if(dashGap == 0 && dashWidth > 0)
+        {
+          WriteColorToPixelBuffer(glyphData, bitmapBuffer, underlineColor, x, y);
+          dashWidth--;
+        }
+        else if(dashGap < dashedUnderlineGap)
+        {
+          dashGap++;
+        }
+        else
+        {
+          //reset
+          dashWidth = dashedUnderlineWidth;
+          dashGap   = 0;
+        }
+      }
+    }
+    else
     {
-      if(x > bufferWidth - 1)
+      for(unsigned int x = glyphData.horizontalOffset + lineExtentLeft; x <= glyphData.horizontalOffset + lineExtentRight; x++)
+      {
+        if(x > bufferWidth - 1)
+        {
+          // Do not write out of bounds.
+          break;
+        }
+        WriteColorToPixelBuffer(glyphData, bitmapBuffer, underlineColor, x, y);
+      }
+    }
+  }
+  if(underlineType == Text::Underline::DOUBLE)
+  {
+    int secondUnderlineYOffset = glyphData.verticalOffset - line.descender - maxUnderlineThickness;
+    for(unsigned int y = secondUnderlineYOffset; y < secondUnderlineYOffset + maxUnderlineThickness; y++)
+    {
+      if(y > bufferHeight - 1)
       {
         // Do not write out of bounds.
         break;
       }
-
-      WriteColorToPixelBuffer(glyphData, bitmapBuffer, underlineColor, x, y);
+      for(unsigned int x = glyphData.horizontalOffset + lineExtentLeft; x <= glyphData.horizontalOffset + lineExtentRight; x++)
+      {
+        if(x > bufferWidth - 1)
+        {
+          // Do not write out of bounds.
+          break;
+        }
+        WriteColorToPixelBuffer(glyphData, bitmapBuffer, underlineColor, x, y);
+      }
     }
   }
 }
@@ -527,6 +605,42 @@ Devel::PixelBuffer DrawGlyphsBackground(const ViewModel* model, Devel::PixelBuff
   return glyphData.bitmapBuffer;
 }
 
+/// Draws the specified strikethrough color to the buffer
+void DrawStrikethrough(
+  const Vector4&     strikethroughColor,
+  const unsigned int bufferWidth,
+  const unsigned int bufferHeight,
+  GlyphData&         glyphData,
+  const float        baseline,
+  const LineRun&     line,
+  const float        maxStrikethroughThickness,
+  const float        lineExtentLeft,
+  const float        lineExtentRight,
+  float              strikethroughStartingYPosition)
+{
+  uint32_t* bitmapBuffer = reinterpret_cast<uint32_t*>(glyphData.bitmapBuffer.GetBuffer());
+
+  for(unsigned int y = strikethroughStartingYPosition; y < strikethroughStartingYPosition + maxStrikethroughThickness; y++)
+  {
+    if(y > bufferHeight - 1)
+    {
+      // Do not write out of bounds.
+      break;
+    }
+
+    for(unsigned int x = glyphData.horizontalOffset + lineExtentLeft; x <= glyphData.horizontalOffset + lineExtentRight; x++)
+    {
+      if(x > bufferWidth - 1)
+      {
+        // Do not write out of bounds.
+        break;
+      }
+
+      WriteColorToPixelBuffer(glyphData, bitmapBuffer, strikethroughColor, x, y);
+    }
+  }
+}
+
 } // namespace
 
 TypesetterPtr Typesetter::New(const ModelInterface* const model)
@@ -659,7 +773,7 @@ PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirect
     // Generate the image buffer as an alpha mask for color glyphs.
     imageBuffer = CreateImageBuffer(bufferWidth, bufferHeight, Typesetter::STYLE_MASK, ignoreHorizontalAlignment, pixelFormat, penX, penY, startIndexOfGlyphs, endIndexOfGlyphs);
   }
-  else if(RENDER_NO_TEXT == behaviour)
+  else if(RENDER_NO_TEXT == behaviour || RENDER_OVERLAY_STYLE == behaviour)
   {
     // Generate an empty image buffer so that it can been combined with the image buffers for styles
     imageBuffer = Devel::PixelBuffer::New(bufferWidth, bufferHeight, Pixel::RGBA8888);
@@ -675,7 +789,7 @@ PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirect
   {
     // Generate the outline if enabled
     const uint16_t outlineWidth = mModel->GetOutlineWidth();
-    if(outlineWidth != 0u)
+    if(outlineWidth != 0u && RENDER_OVERLAY_STYLE != behaviour)
     {
       // Create the image buffer for outline
       Devel::PixelBuffer outlineImageBuffer = CreateImageBuffer(bufferWidth, bufferHeight, Typesetter::STYLE_OUTLINE, ignoreHorizontalAlignment, pixelFormat, penX, penY, startIndexOfGlyphs, endIndexOfGlyphs);
@@ -688,7 +802,7 @@ PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirect
 
     // Generate the shadow if enabled
     const Vector2& shadowOffset = mModel->GetShadowOffset();
-    if(fabsf(shadowOffset.x) > Math::MACHINE_EPSILON_1 || fabsf(shadowOffset.y) > Math::MACHINE_EPSILON_1)
+    if(RENDER_OVERLAY_STYLE != behaviour && (fabsf(shadowOffset.x) > Math::MACHINE_EPSILON_1 || fabsf(shadowOffset.y) > Math::MACHINE_EPSILON_1))
     {
       // Create the image buffer for shadow
       Devel::PixelBuffer shadowImageBuffer = CreateImageBuffer(bufferWidth, bufferHeight, Typesetter::STYLE_SHADOW, ignoreHorizontalAlignment, pixelFormat, penX, penY, startIndexOfGlyphs, endIndexOfGlyphs);
@@ -707,7 +821,7 @@ PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirect
 
     // Generate the underline if enabled
     const bool underlineEnabled = mModel->IsUnderlineEnabled();
-    if(underlineEnabled)
+    if(underlineEnabled && RENDER_OVERLAY_STYLE == behaviour)
     {
       // Create the image buffer for underline
       Devel::PixelBuffer underlineImageBuffer = CreateImageBuffer(bufferWidth, bufferHeight, Typesetter::STYLE_UNDERLINE, ignoreHorizontalAlignment, pixelFormat, penX, penY, startIndexOfGlyphs, endIndexOfGlyphs);
@@ -719,7 +833,7 @@ PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirect
     // Generate the background if enabled
     const bool backgroundEnabled   = mModel->IsBackgroundEnabled();
     const bool backgroundMarkupSet = mModel->IsMarkupBackgroundColorSet();
-    if(backgroundEnabled || backgroundMarkupSet)
+    if((backgroundEnabled || backgroundMarkupSet) && RENDER_OVERLAY_STYLE != behaviour)
     {
       Devel::PixelBuffer backgroundImageBuffer;
 
@@ -741,6 +855,17 @@ PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirect
       imageBuffer = CombineImageBuffer(imageBuffer, backgroundImageBuffer, bufferWidth, bufferHeight);
     }
 
+    // Generate the strikethrough if enabled
+    const bool strikethroughEnabled = mModel->IsStrikethroughEnabled();
+    if(strikethroughEnabled && RENDER_OVERLAY_STYLE == behaviour)
+    {
+      // Create the image buffer for strikethrough
+      Devel::PixelBuffer strikethroughImageBuffer = CreateImageBuffer(bufferWidth, bufferHeight, Typesetter::STYLE_STRIKETHROUGH, ignoreHorizontalAlignment, pixelFormat, penX, penY, 0u, endIndexOfGlyphs);
+
+      // Combine the two buffers
+      imageBuffer = CombineImageBuffer(imageBuffer, strikethroughImageBuffer, bufferWidth, bufferHeight);
+    }
+
     // Markup-Processor
 
     imageBuffer = ApplyMarkupProcessorOnPixelBuffer(imageBuffer, bufferWidth, bufferHeight, ignoreHorizontalAlignment, pixelFormat, penX, penY);
@@ -830,9 +955,16 @@ Devel::PixelBuffer Typesetter::CreateImageBuffer(const unsigned int bufferWidth,
       }
     }
 
-    const bool     underlineEnabled = mModel->IsUnderlineEnabled();
-    const Vector4& underlineColor   = mModel->GetUnderlineColor();
-    const float    underlineHeight  = mModel->GetUnderlineHeight();
+    const bool                  underlineEnabled     = mModel->IsUnderlineEnabled();
+    const Vector4&              underlineColor       = mModel->GetUnderlineColor();
+    const float                 underlineHeight      = mModel->GetUnderlineHeight();
+    const Text::Underline::Type underlineType        = mModel->GetUnderlineType();
+    const float                 dashedUnderlineWidth = mModel->GetDashedUnderlineWidth();
+    const float                 dashedUnderlineGap   = mModel->GetDashedUnderlineGap();
+
+    const bool     strikethroughEnabled = mModel->IsStrikethroughEnabled();
+    const Vector4& strikethroughColor   = mModel->GetStrikethroughColor();
+    const float    strikethroughHeight  = mModel->GetStrikethroughHeight();
 
     // Get the underline runs.
     const Length     numberOfUnderlineRuns = mModel->GetNumberOfUnderlineRuns();
@@ -841,10 +973,14 @@ Devel::PixelBuffer Typesetter::CreateImageBuffer(const unsigned int bufferWidth,
     mModel->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
 
     bool thereAreUnderlinedGlyphs = false;
+    bool strikethroughGlyphsExist = false;
 
-    float currentUnderlinePosition  = 0.0f;
-    float currentUnderlineThickness = underlineHeight;
-    float maxUnderlineThickness     = currentUnderlineThickness;
+    float currentUnderlinePosition       = 0.0f;
+    float currentUnderlineThickness      = underlineHeight;
+    float maxUnderlineThickness          = currentUnderlineThickness;
+    float currentStrikethroughThickness  = strikethroughHeight;
+    float maxStrikethroughThickness      = currentStrikethroughThickness;
+    float strikethroughStartingYPosition = 0.0f;
 
     FontId lastUnderlinedFontId = 0;
 
@@ -908,11 +1044,13 @@ Devel::PixelBuffer Typesetter::CreateImageBuffer(const unsigned int bufferWidth,
       const bool underlineGlyph = underlineEnabled || IsGlyphUnderlined(glyphIndex, underlineRuns);
       thereAreUnderlinedGlyphs  = thereAreUnderlinedGlyphs || underlineGlyph;
 
+      strikethroughGlyphsExist = strikethroughGlyphsExist || strikethroughEnabled;
+
       // Are we still using the same fontId as previous
-      if(underlineGlyph && (glyphInfo->fontId != lastUnderlinedFontId))
+      if((strikethroughEnabled || underlineGlyph) && (glyphInfo->fontId != lastUnderlinedFontId))
       {
         // We need to fetch fresh font underline metrics
-        FetchFontUnderlineMetrics(fontClient, glyphInfo, currentUnderlinePosition, underlineHeight, currentUnderlineThickness, maxUnderlineThickness, lastUnderlinedFontId);
+        FetchFontDecorationlinesMetrics(fontClient, glyphInfo, currentUnderlinePosition, underlineHeight, currentUnderlineThickness, maxUnderlineThickness, lastUnderlinedFontId, strikethroughHeight, currentStrikethroughThickness, maxStrikethroughThickness);
       } // underline
 
       // Retrieves the glyph's position.
@@ -974,7 +1112,7 @@ Devel::PixelBuffer Typesetter::CreateImageBuffer(const unsigned int bufferWidth,
         outlineWidth = 0.0f;
       }
 
-      if(style != Typesetter::STYLE_UNDERLINE)
+      if(style != Typesetter::STYLE_UNDERLINE && style != Typesetter::STYLE_STRIKETHROUGH)
       {
         fontClient.CreateBitmap(glyphInfo->fontId,
                                 glyphInfo->index,
@@ -1031,7 +1169,7 @@ Devel::PixelBuffer Typesetter::CreateImageBuffer(const unsigned int bufferWidth,
     // Draw the underline from the leftmost glyph to the rightmost glyph
     if(thereAreUnderlinedGlyphs && style == Typesetter::STYLE_UNDERLINE)
     {
-      DrawUnderline(underlineColor, bufferWidth, bufferHeight, glyphData, baseline, currentUnderlinePosition, maxUnderlineThickness, lineExtentLeft, lineExtentRight);
+      DrawUnderline(underlineColor, bufferWidth, bufferHeight, glyphData, baseline, currentUnderlinePosition, maxUnderlineThickness, lineExtentLeft, lineExtentRight, underlineType, dashedUnderlineWidth, dashedUnderlineGap, line);
     }
 
     // Draw the background color from the leftmost glyph to the rightmost glyph
@@ -1040,6 +1178,14 @@ Devel::PixelBuffer Typesetter::CreateImageBuffer(const unsigned int bufferWidth,
       DrawBackgroundColor(mModel->GetBackgroundColor(), bufferWidth, bufferHeight, glyphData, baseline, line, lineExtentLeft, lineExtentRight);
     }
 
+    // Draw the strikethrough from the leftmost glyph to the rightmost glyph
+    if(strikethroughGlyphsExist && style == Typesetter::STYLE_STRIKETHROUGH)
+    {
+      //TODO : The currently implemented strikethrough creates a strikethrough on the line level. We need to create different strikethroughs the case of glyphs with different sizes.
+      strikethroughStartingYPosition = (glyphData.verticalOffset + baseline + currentUnderlinePosition) - ((line.ascender) * HALF); // Since Free Type font doesn't contain the strikethrough-position property, strikethrough position will be calculated by moving the underline position upwards by half the value of the line height.
+      DrawStrikethrough(strikethroughColor, bufferWidth, bufferHeight, glyphData, baseline, line, maxStrikethroughThickness, lineExtentLeft, lineExtentRight, strikethroughStartingYPosition);
+    }
+
     // Increases the vertical offset with the line's descender.
     glyphData.verticalOffset += static_cast<int>(-line.descender);
   }
index ee57e29..51ac259 100644 (file)
@@ -51,9 +51,10 @@ public:
   enum RenderBehaviour
   {
     RENDER_TEXT_AND_STYLES, ///< Render both the text and its styles
-    RENDER_NO_TEXT,         ///< Do not render the text itself
+    RENDER_NO_TEXT,         ///< Do not render the text itself but render the background styles such as outline and background.
     RENDER_NO_STYLES,       ///< Do not render any styles
-    RENDER_MASK             ///< Render an alpha mask (for color glyphs with no color animation, e.g. emoji)
+    RENDER_MASK,            ///< Render an alpha mask (for color glyphs with no color animation, e.g. emoji)
+    RENDER_OVERLAY_STYLE    ///< Do not render the text itself but render the style but overlay the style on the text (foreground styles such as strikethrough and underline)
   };
 
   /**
@@ -61,13 +62,14 @@ public:
    */
   enum Style
   {
-    STYLE_NONE,        ///< No style
-    STYLE_MASK,        ///< Alpha mask
-    STYLE_SHADOW,      ///< Hard shadow
-    STYLE_SOFT_SHADOW, ///< Soft shadow
-    STYLE_UNDERLINE,   ///< Underline
-    STYLE_OUTLINE,     ///< Outline
-    STYLE_BACKGROUND   ///< Text background
+    STYLE_NONE,         ///< No style
+    STYLE_MASK,         ///< Alpha mask
+    STYLE_SHADOW,       ///< Hard shadow
+    STYLE_SOFT_SHADOW,  ///< Soft shadow
+    STYLE_UNDERLINE,    ///< Underline
+    STYLE_OUTLINE,      ///< Outline
+    STYLE_BACKGROUND,   ///< Text background
+    STYLE_STRIKETHROUGH ///< Strikethrough
   };
 
 public: // Constructor.
@@ -215,4 +217,4 @@ private:
 
 } // namespace Dali
 
-#endif // DALI_TOOLKIT_TEXT_TYPESETTER_H
+#endif // DALI_TOOLKIT_TEXT_TYPESETTER_H
\ No newline at end of file
index 2187487..8f2c864 100644 (file)
@@ -249,6 +249,21 @@ float ViewModel::GetUnderlineHeight() const
   return mModel->GetUnderlineHeight();
 }
 
+Text::Underline::Type ViewModel::GetUnderlineType() const
+{
+  return mModel->GetUnderlineType();
+}
+
+float ViewModel::GetDashedUnderlineWidth() const
+{
+  return mModel->GetDashedUnderlineWidth();
+}
+
+float ViewModel::GetDashedUnderlineGap() const
+{
+  return mModel->GetDashedUnderlineGap();
+}
+
 Length ViewModel::GetNumberOfUnderlineRuns() const
 {
   return mModel->GetNumberOfUnderlineRuns();
@@ -583,6 +598,21 @@ void ViewModel::ElideGlyphs()
   }
 }
 
+float ViewModel::GetStrikethroughHeight() const
+{
+  return mModel->GetStrikethroughHeight();
+}
+
+const Vector4& ViewModel::GetStrikethroughColor() const
+{
+  return mModel->GetStrikethroughColor();
+}
+
+bool ViewModel::IsStrikethroughEnabled() const
+{
+  return mModel->IsStrikethroughEnabled();
+}
+
 } // namespace Text
 
 } // namespace Toolkit
index fd83b62..e30a859 100644 (file)
@@ -211,6 +211,21 @@ public:
   float GetUnderlineHeight() const override;
 
   /**
+   * @copydoc ModelInterface::GetUnderlineType()
+   */
+  Text::Underline::Type GetUnderlineType() const override;
+
+  /**
+   * @copydoc ModelInterface::GetDashedUnderlineWidth()
+   */
+  float GetDashedUnderlineWidth() const override;
+
+  /**
+   * @copydoc ModelInterface::GetDashedUnderlineGap()
+   */
+  float GetDashedUnderlineGap() const override;
+
+  /**
    * @copydoc ModelInterface::GetNumberOfUnderlineRuns()
    */
   Length GetNumberOfUnderlineRuns() const override;
@@ -272,6 +287,12 @@ public:
    */
   void ElideGlyphs();
 
+  float GetStrikethroughHeight() const override;
+
+  const Vector4& GetStrikethroughColor() const override;
+
+  bool IsStrikethroughEnabled() const override;
+
 private:
   const ModelInterface* const mModel;                           ///< Pointer to the text's model.
   Vector<GlyphInfo>           mElidedGlyphs;                    ///< Stores the glyphs of the elided text.
index 1ce7516..bd93e68 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.
@@ -33,7 +33,6 @@
 
 namespace Dali::Toolkit::Text
 {
-
 namespace
 {
 #if defined(DEBUG_ENABLED)
@@ -90,7 +89,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
   // Check whether the indices for updating the text is valid
   if(numberOfCharacters > 0u &&
      (impl.mTextUpdateInfo.mParagraphCharacterIndex > numberOfCharacters ||
-         impl.mTextUpdateInfo.mRequestedNumberOfCharacters > numberOfCharacters))
+      impl.mTextUpdateInfo.mRequestedNumberOfCharacters > numberOfCharacters))
   {
     std::string currentText;
     Utf32ToUtf8(impl.mModel->mLogicalModel->mText.Begin(), numberOfCharacters, currentText);
@@ -146,7 +145,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
                      lineBreakInfo);
 
     if(impl.mModel->mLineWrapMode == ((Text::LineWrap::Mode)DevelText::LineWrap::HYPHENATION) ||
-        impl.mModel->mLineWrapMode == ((Text::LineWrap::Mode)DevelText::LineWrap::MIXED))
+       impl.mModel->mLineWrapMode == ((Text::LineWrap::Mode)DevelText::LineWrap::MIXED))
     {
       CharacterIndex end                 = startIndex + requestedNumberOfCharacters;
       LineBreakInfo* lineBreakInfoBuffer = lineBreakInfo.Begin();
@@ -212,7 +211,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
 
       // Get the default font's description.
       TextAbstraction::FontDescription defaultFontDescription;
-      TextAbstraction::PointSize26Dot6 defaultPointSize = TextAbstraction::FontClient::DEFAULT_POINT_SIZE * impl.mFontSizeScale;
+      TextAbstraction::PointSize26Dot6 defaultPointSize = TextAbstraction::FontClient::DEFAULT_POINT_SIZE * impl.GetFontSizeScale();
 
       //Get the number of points per one unit of point-size
       uint32_t numberOfPointsPerOneUnitOfPointSize = impl.mFontClient.GetNumberOfPointsPerOneUnitOfPointSize();
@@ -223,7 +222,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
         defaultFontDescription = impl.mEventData->mPlaceholderFont->mFontDescription;
         if(impl.mEventData->mPlaceholderFont->sizeDefined)
         {
-          defaultPointSize = impl.mEventData->mPlaceholderFont->mDefaultPointSize * impl.mFontSizeScale * numberOfPointsPerOneUnitOfPointSize;
+          defaultPointSize = impl.mEventData->mPlaceholderFont->mDefaultPointSize * impl.GetFontSizeScale() * numberOfPointsPerOneUnitOfPointSize;
         }
       }
       else if(nullptr != impl.mFontDefaults)
@@ -237,7 +236,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
         }
         else
         {
-          defaultPointSize = impl.mFontDefaults->mDefaultPointSize * impl.mFontSizeScale * numberOfPointsPerOneUnitOfPointSize;
+          defaultPointSize = impl.mFontDefaults->mDefaultPointSize * impl.GetFontSizeScale() * numberOfPointsPerOneUnitOfPointSize;
         }
       }
 
@@ -352,7 +351,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
   }
 
   if((nullptr != impl.mEventData) &&
-      impl.mEventData->mPreEditFlag &&
+     impl.mEventData->mPreEditFlag &&
      (0u != impl.mModel->mVisualModel->mCharactersToGlyph.Count()))
   {
     Dali::InputMethodContext::PreEditAttributeDataContainer attrs;
@@ -565,7 +564,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
 
   if((Controller::NO_OPERATION != (Controller::SHAPE_TEXT & operations)) &&
      !((nullptr != impl.mEventData) &&
-         impl.mEventData->mPreEditFlag &&
+       impl.mEventData->mPreEditFlag &&
        (0u != impl.mModel->mVisualModel->mCharactersToGlyph.Count())))
   {
     //Mark-up processor case
index e0603f8..6ffa715 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.
@@ -672,11 +672,11 @@ float Controller::Impl::GetDefaultFontLineHeight()
   if(nullptr == mFontDefaults)
   {
     TextAbstraction::FontDescription fontDescription;
-    defaultFontId = mFontClient.GetFontId(fontDescription, TextAbstraction::FontClient::DEFAULT_POINT_SIZE * mFontSizeScale);
+    defaultFontId = mFontClient.GetFontId(fontDescription, TextAbstraction::FontClient::DEFAULT_POINT_SIZE * GetFontSizeScale());
   }
   else
   {
-    defaultFontId = mFontDefaults->GetFontId(mFontClient, mFontDefaults->mDefaultPointSize * mFontSizeScale);
+    defaultFontId = mFontDefaults->GetFontId(mFontClient, mFontDefaults->mDefaultPointSize * GetFontSizeScale());
   }
 
   Text::FontMetrics fontMetrics;
index 3c72bdb..e697d81 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_CONTROLLER_IMPL_H
 
 /*
- * 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.
@@ -357,6 +357,7 @@ struct Controller::Impl
     mTextFitMaxSize(DEFAULT_TEXTFIT_MAX),
     mTextFitStepSize(DEFAULT_TEXTFIT_STEP),
     mFontSizeScale(DEFAULT_FONT_SIZE_SCALE),
+    mFontSizeScaleEnabled(true),
     mTextFitEnabled(false),
     mTextFitChanged(false),
     mIsLayoutDirectionChanged(false)
@@ -497,6 +498,11 @@ struct Controller::Impl
     }
   }
 
+  float GetFontSizeScale()
+  {
+    return mFontSizeScaleEnabled ? mFontSizeScale : 1.0f;
+  }
+
   /**
    * @brief Helper to notify InputMethodContext with surrounding text & cursor changes.
    */
@@ -967,6 +973,7 @@ public:
   bool                  mShadowSetByString : 1;        ///< Set when shadow is set by string (legacy) instead of map
   bool                  mOutlineSetByString : 1;       ///< Set when outline is set by string (legacy) instead of map
   bool                  mFontStyleSetByString : 1;     ///< Set when font style is set by string (legacy) instead of map
+  bool                  mStrikethroughSetByString : 1; ///< Set when strikethrough is set by string (legacy) instead of map
   bool                  mShouldClearFocusOnEscape : 1; ///< Whether text control should clear key input focus
   LayoutDirection::Type mLayoutDirection;              ///< Current system language direction
 
@@ -976,6 +983,7 @@ public:
   float mTextFitMaxSize;               ///< Maximum Font Size for text fit. Default 100
   float mTextFitStepSize;              ///< Step Size for font intervalse. Default 1
   float mFontSizeScale;                ///< Scale value for Font Size. Default 1.0
+  bool  mFontSizeScaleEnabled : 1;     ///< Whether the font size scale is enabled.
   bool  mTextFitEnabled : 1;           ///< Whether the text's fit is enabled.
   bool  mTextFitChanged : 1;           ///< Whether the text fit property has changed.
   bool  mIsLayoutDirectionChanged : 1; ///< Whether the layout has changed.
index 8a3ac3e..988ddd1 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.
@@ -393,7 +393,7 @@ void Controller::InputFontHandler::SetInputFontPointSize(Controller& controller,
                                                                              startOfSelectedText,
                                                                              lengthOfSelectedText);
 
-        fontDescriptionRun.size        = static_cast<PointSize26Dot6>(size * controller.mImpl->mFontSizeScale * 64.f);
+        fontDescriptionRun.size        = static_cast<PointSize26Dot6>(size * controller.mImpl->GetFontSizeScale() * 64.f);
         fontDescriptionRun.sizeDefined = true;
 
         controller.mImpl->mTextUpdateInfo.mCharacterIndex             = startOfSelectedText;
index 0bcb97f..ab90270 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.
@@ -351,7 +351,7 @@ void Controller::TextUpdater::InsertText(Controller& controller, const std::stri
 
       if(addFontSizeRun)
       {
-        fontDescriptionRun.size        = static_cast<PointSize26Dot6>(inputStyle.size * impl.mFontSizeScale * 64.f);
+        fontDescriptionRun.size        = static_cast<PointSize26Dot6>(inputStyle.size * impl.GetFontSizeScale() * 64.f);
         fontDescriptionRun.sizeDefined = true;
       }
 
index be985d1..f5d1bb7 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.
@@ -667,6 +667,9 @@ void Controller::SetFontSizeScale(float scale)
 {
   mImpl->mFontSizeScale = scale;
 
+  // No relayout is required
+  if(!mImpl->mFontSizeScaleEnabled) return;
+
   // Update the cursor position if it's in editing mode
   UpdateCursorPosition(mImpl->mEventData);
 
@@ -681,6 +684,24 @@ float Controller::GetFontSizeScale() const
   return mImpl->mFontDefaults ? mImpl->mFontSizeScale : 1.0f;
 }
 
+void Controller::SetFontSizeScaleEnabled(bool enabled)
+{
+  mImpl->mFontSizeScaleEnabled = enabled;
+
+  // Update the cursor position if it's in editing mode
+  UpdateCursorPosition(mImpl->mEventData);
+
+  // Clear the font-specific data
+  mImpl->ClearFontData();
+
+  mImpl->RequestRelayout();
+}
+
+bool Controller::IsFontSizeScaleEnabled() const
+{
+  return mImpl->mFontSizeScaleEnabled;
+}
+
 void Controller::SetDefaultFontSize(float fontSize, FontSizeType type)
 {
   EnsureCreated(mImpl->mFontDefaults);
@@ -805,6 +826,42 @@ float Controller::GetUnderlineHeight() const
   return mImpl->mModel->mVisualModel->GetUnderlineHeight();
 }
 
+void Controller::SetUnderlineType(Text::Underline::Type type)
+{
+  mImpl->mModel->mVisualModel->SetUnderlineType(type);
+
+  mImpl->RequestRelayout();
+}
+
+Text::Underline::Type Controller::GetUnderlineType() const
+{
+  return mImpl->mModel->mVisualModel->GetUnderlineType();
+}
+
+void Controller::SetDashedUnderlineWidth(float width)
+{
+  mImpl->mModel->mVisualModel->SetDashedUnderlineWidth(width);
+
+  mImpl->RequestRelayout();
+}
+
+float Controller::GetDashedUnderlineWidth() const
+{
+  return mImpl->mModel->mVisualModel->GetDashedUnderlineWidth();
+}
+
+void Controller::SetDashedUnderlineGap(float gap)
+{
+  mImpl->mModel->mVisualModel->SetDashedUnderlineGap(gap);
+
+  mImpl->RequestRelayout();
+}
+
+float Controller::GetDashedUnderlineGap() const
+{
+  return mImpl->mModel->mVisualModel->GetDashedUnderlineGap();
+}
+
 void Controller::SetOutlineColor(const Vector4& color)
 {
   mImpl->mModel->mVisualModel->SetOutlineColor(color);
@@ -1092,6 +1149,65 @@ void Controller::FontStyleSetByString(bool setByString)
   mImpl->mFontStyleSetByString = setByString;
 }
 
+void Controller::SetStrikethroughHeight(float height)
+{
+  mImpl->mModel->mVisualModel->SetStrikethroughHeight(height);
+
+  mImpl->RequestRelayout();
+}
+
+float Controller::GetStrikethroughHeight() const
+{
+  return mImpl->mModel->mVisualModel->GetStrikethroughHeight();
+}
+
+void Controller::SetStrikethroughColor(const Vector4& color)
+{
+  mImpl->mModel->mVisualModel->SetStrikethroughColor(color);
+
+  mImpl->RequestRelayout();
+}
+
+const Vector4& Controller::GetStrikethroughColor() const
+{
+  return mImpl->mModel->mVisualModel->GetStrikethroughColor();
+}
+
+void Controller::SetStrikethroughEnabled(bool enabled)
+{
+  mImpl->mModel->mVisualModel->SetStrikethroughEnabled(enabled);
+
+  mImpl->RequestRelayout();
+}
+
+bool Controller::IsStrikethroughEnabled() const
+{
+  return mImpl->mModel->mVisualModel->IsStrikethroughEnabled();
+}
+
+void Controller::SetInputStrikethroughProperties(const std::string& strikethroughProperties)
+{
+  if(NULL != mImpl->mEventData)
+  {
+    mImpl->mEventData->mInputStyle.strikethroughProperties = strikethroughProperties;
+  }
+}
+
+const std::string& Controller::GetInputStrikethroughProperties() const
+{
+  return (NULL != mImpl->mEventData) ? mImpl->mEventData->mInputStyle.strikethroughProperties : EMPTY_STRING;
+}
+
+bool Controller::IsStrikethroughSetByString()
+{
+  return mImpl->mStrikethroughSetByString;
+}
+
+void Controller::StrikethroughSetByString(bool setByString)
+{
+  mImpl->mStrikethroughSetByString = setByString;
+}
+
 Layout::Engine& Controller::GetLayoutEngine()
 {
   return mImpl->mLayoutEngine;
index b16186b..069db55 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_CONTROLLER_H
 
 /*
- * 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.
@@ -659,6 +659,60 @@ public: // Configure the text controller.
    */
   void FontStyleSetByString(bool setByString);
 
+  /**
+   * @brief Query if Strikethrough settings were provided by string or map
+   * @return bool true if set by string
+   */
+  bool IsStrikethroughSetByString();
+
+  /**
+   * Set method Strikethrough setting were set by
+   * @param[in] bool, true if set by string
+   */
+  void StrikethroughSetByString(bool setByString);
+
+  /**
+   * @brief Set the override used for strikethrough height, 0 indicates height will be supplied by font metrics
+   *
+   * @param[in] height The height in pixels of the strikethrough
+   */
+  void SetStrikethroughHeight(float height);
+
+  /**
+   * @brief Retrieves the override height of an strikethrough, 0 indicates height is supplied by font metrics
+   *
+   * @return The height of the strikethrough, or 0 if height is not overrided.
+   */
+  float GetStrikethroughHeight() const;
+
+  /**
+   * @brief Set the strikethrough color.
+   *
+   * @param[in] color color of strikethrough.
+   */
+  void SetStrikethroughColor(const Vector4& color);
+
+  /**
+   * @brief Retrieve the strikethrough color.
+   *
+   * @return The strikethrough color.
+   */
+  const Vector4& GetStrikethroughColor() const;
+
+  /**
+   * @brief Set the strikethrough enabled flag.
+   *
+   * @param[in] enabled The strikethrough enabled flag.
+   */
+  void SetStrikethroughEnabled(bool enabled);
+
+  /**
+   * @brief Returns whether the text has a strikethrough or not.
+   *
+   * @return The strikethrough state.
+   */
+  bool IsStrikethroughEnabled() const;
+
 public: // Update.
   /**
    * @brief Replaces any text previously set.
@@ -908,6 +962,20 @@ public: // Default style & Input style
   float GetFontSizeScale() const;
 
   /**
+   * @brief Set the font size scale enabled flag.
+   *
+   * @param[in] enabled whether to enable the font size scale.
+   */
+  void SetFontSizeScaleEnabled(bool enabled);
+
+  /**
+   * @brief Returns whether the font size scale is enabled or not.
+   *
+   * @return @e true if the font size scale is enabled, otherwise returns @e false.
+   */
+  bool IsFontSizeScaleEnabled() const;
+
+  /**
    * @brief Sets the Placeholder text font size.
    * @param[in] fontSize The placeholder text font size
    * @param[in] type The font size type is point size or pixel size
@@ -1034,6 +1102,46 @@ public: // Default style & Input style
   float GetUnderlineHeight() const;
 
   /**
+   * @brief Sets the underline type.
+   * @param[in] type The underline type.
+   */
+  void SetUnderlineType(Text::Underline::Type type);
+
+  /**
+   * @brief Retrieve underline type.
+   * @return The underline type.
+   */
+  Text::Underline::Type GetUnderlineType() const;
+
+  /**
+   * @brief Set the width of the dashes of the dashed underline.
+   *
+   * @param[in] width The width in pixels of the dashes of the dashed underline.
+   */
+  void SetDashedUnderlineWidth(float width);
+
+  /**
+   * @brief Retrieves the width of the dashes of the dashed underline.
+   *
+   * @return The width of the dashes of the dashed underline.
+   */
+  float GetDashedUnderlineWidth() const;
+
+  /**
+   * @brief Set the gap between the dashes of the dashed underline.
+   *
+   * @param[in] gap The gap between the dashes of the dashed underline.
+   */
+  void SetDashedUnderlineGap(float gap);
+
+  /**
+   * @brief Retrieves the gap between the dashes of the dashed underline.
+   *
+   * @return The The gap between the dashes of the dashed underline.
+   */
+  float GetDashedUnderlineGap() const;
+
+  /**
    * @brief Set the outline color.
    *
    * @param[in] color color of outline.
@@ -1331,6 +1439,22 @@ public: // Default style & Input style
   const std::string& GetInputOutlineProperties() const;
 
   /**
+   * @brief Sets the input strikethrough's properties string.
+   *
+   * @note The string is stored to be recovered.
+   *
+   * @param[in] strikethroughProperties The strikethrough's properties string.
+   */
+  void SetInputStrikethroughProperties(const std::string& strikethroughProperties);
+
+  /**
+   * @brief Retrieves the input strikethrough's properties string.
+   *
+   * @return The strikethrough's properties string.
+   */
+  const std::string& GetInputStrikethroughProperties() const;
+
+  /**
    * @brief Set the control's interface.
    *
    * @param[in] controlInterface The control's interface.
index a367696..8d552d4 100644 (file)
@@ -22,6 +22,8 @@
 #include <dali-toolkit/devel-api/controls/text-controls/text-style-properties-devel.h>
 #include <dali-toolkit/internal/text/markup-processor-helper-functions.h>
 #include <dali-toolkit/internal/text/property-string-parser.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
+#include <dali-toolkit/internal/text/text-enumerations-impl.h>
 
 namespace Dali
 {
@@ -37,6 +39,9 @@ const std::string BLUR_RADIUS_KEY("blurRadius");
 const std::string WIDTH_KEY("width");
 const std::string HEIGHT_KEY("height");
 const std::string ENABLE_KEY("enable");
+const std::string TYPE_KEY("type");
+const std::string DASH_WIDTH_KEY("dashWidth");
+const std::string DASH_GAP_KEY("dashGap");
 const std::string TRUE_TOKEN("true");
 const std::string FALSE_TOKEN("false");
 } // namespace
@@ -106,12 +111,18 @@ bool ParseShadowProperties(const Property::Map& shadowPropertiesMap,
   return 0u == numberOfItems;
 }
 
-bool ParseUnderlineProperties(const Property::Map& underlinePropertiesMap,
-                              bool&                enabled,
-                              bool&                colorDefined,
-                              Vector4&             color,
-                              bool&                heightDefined,
-                              float&               height)
+bool ParseUnderlineProperties(const Property::Map&   underlinePropertiesMap,
+                              bool&                  enabled,
+                              bool&                  colorDefined,
+                              Vector4&               color,
+                              bool&                  heightDefined,
+                              float&                 height,
+                              bool&                  typeDefined,
+                              Text::Underline::Type& type,
+                              bool&                  dashWidthDefined,
+                              float&                 dashWidth,
+                              bool&                  dashGapDefined,
+                              float&                 dashGap)
 {
   const unsigned int numberOfItems = underlinePropertiesMap.Count();
 
@@ -163,6 +174,51 @@ bool ParseUnderlineProperties(const Property::Map& underlinePropertiesMap,
         height = valueGet.second.Get<float>();
       }
     }
+    else if((DevelText::Underline::Property::TYPE == valueGet.first.indexKey) || (TYPE_KEY == valueGet.first.stringKey))
+    {
+      /// Underline Type key.
+      typeDefined = true;
+
+      if(valueGet.second.GetType() == Dali::Property::STRING)
+      {
+        const std::string typeStr = valueGet.second.Get<std::string>();
+        Text::UnderlineTypeStringToTypeValue(typeStr.c_str(), typeStr.size(), type);
+      }
+      else
+      {
+        type = valueGet.second.Get<Text::Underline::Type>();
+      }
+    }
+    else if((DevelText::Underline::Property::DASH_WIDTH == valueGet.first.indexKey) || (DASH_WIDTH_KEY == valueGet.first.stringKey))
+    {
+      /// Dashed Underline Width key.
+      dashWidthDefined = true;
+
+      if(valueGet.second.GetType() == Dali::Property::STRING)
+      {
+        const std::string dashWidthStr = valueGet.second.Get<std::string>();
+        dashWidth                      = StringToFloat(dashWidthStr.c_str());
+      }
+      else
+      {
+        dashWidth = valueGet.second.Get<float>();
+      }
+    }
+    else if((DevelText::Underline::Property::DASH_GAP == valueGet.first.indexKey) || (DASH_GAP_KEY == valueGet.first.stringKey))
+    {
+      /// Dashed Underline Gap key.
+      dashGapDefined = true;
+
+      if(valueGet.second.GetType() == Dali::Property::STRING)
+      {
+        const std::string dashGapStr = valueGet.second.Get<std::string>();
+        dashGap                      = StringToFloat(dashGapStr.c_str());
+      }
+      else
+      {
+        dashGap = valueGet.second.Get<float>();
+      }
+    }
   }
 
   return 0u == numberOfItems;
@@ -226,6 +282,67 @@ bool ParseBackgroundProperties(const Property::Map& backgroundProperties,
   return 0u == numberOfItems;
 }
 
+bool ParseStrikethroughProperties(const Property::Map& strikethroughPropertiesMap,
+                                  bool&                enabled,
+                                  bool&                colorDefined,
+                                  Vector4&             color,
+                                  bool&                heightDefined,
+                                  float&               height)
+{
+  const unsigned int numberOfItems = strikethroughPropertiesMap.Count();
+
+  // Parses and applies the style.
+  for(unsigned int index = 0u; index < numberOfItems; ++index)
+  {
+    const KeyValuePair& valueGet = strikethroughPropertiesMap.GetKeyValue(index);
+
+    if((DevelText::Strikethrough::Property::ENABLE == valueGet.first.indexKey) || (ENABLE_KEY == valueGet.first.stringKey))
+    {
+      /// Enable key.
+      if(valueGet.second.GetType() == Dali::Property::STRING)
+      {
+        const std::string enableStr = valueGet.second.Get<std::string>();
+        enabled                     = Text::TokenComparison(TRUE_TOKEN, enableStr.c_str(), enableStr.size());
+      }
+      else
+      {
+        enabled = valueGet.second.Get<bool>();
+      }
+    }
+    else if((DevelText::Strikethrough::Property::COLOR == valueGet.first.indexKey) || (COLOR_KEY == valueGet.first.stringKey))
+    {
+      /// Color key.
+      colorDefined = true;
+
+      if(valueGet.second.GetType() == Dali::Property::STRING)
+      {
+        const std::string colorStr = valueGet.second.Get<std::string>();
+        Text::ColorStringToVector4(colorStr.c_str(), colorStr.size(), color);
+      }
+      else
+      {
+        color = valueGet.second.Get<Vector4>();
+      }
+    }
+    else if((DevelText::Strikethrough::Property::HEIGHT == valueGet.first.indexKey) || (HEIGHT_KEY == valueGet.first.stringKey))
+    {
+      /// Height key.
+      heightDefined = true;
+
+      if(valueGet.second.GetType() == Dali::Property::STRING)
+      {
+        const std::string heightStr = valueGet.second.Get<std::string>();
+        height                      = StringToFloat(heightStr.c_str());
+      }
+      else
+      {
+        height = valueGet.second.Get<float>();
+      }
+    }
+  }
+  return 0u == numberOfItems;
+}
+
 bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type)
 {
   bool update = false;
@@ -238,11 +355,17 @@ bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& val
       {
         const Property::Map& propertiesMap = value.Get<Property::Map>();
 
-        bool    enabled      = false;
-        bool    colorDefined = false;
-        Vector4 color;
-        bool    heightDefined = false;
-        float   height        = 0.f;
+        bool                  enabled       = false;
+        bool                  colorDefined  = false;
+        Vector4               color;
+        bool                  heightDefined = false;
+        float                 height        = 0.f;
+        bool                  typeDefined   = false;
+        Text::Underline::Type type;
+        bool                  dashWidthDefined = false;
+        float                 dashWidth        = 2.0f;
+        bool                  dashGapDefined   = false;
+        float                 dashGap          = 1.0f;
 
         bool empty = true;
 
@@ -261,7 +384,13 @@ bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& val
                                              colorDefined,
                                              color,
                                              heightDefined,
-                                             height);
+                                             height,
+                                             typeDefined,
+                                             type,
+                                             dashWidthDefined,
+                                             dashWidth,
+                                             dashGapDefined,
+                                             dashGap);
 
             controller->UnderlineSetByString(!empty);
           }
@@ -273,7 +402,13 @@ bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& val
                                            colorDefined,
                                            color,
                                            heightDefined,
-                                           height);
+                                           height,
+                                           typeDefined,
+                                           type,
+                                           dashWidthDefined,
+                                           dashWidth,
+                                           dashGapDefined,
+                                           dashGap);
 
           controller->UnderlineSetByString(false);
         }
@@ -298,6 +433,24 @@ bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& val
             controller->SetUnderlineHeight(height);
             update = true;
           }
+
+          if(typeDefined && (controller->GetUnderlineType() != type))
+          {
+            controller->SetUnderlineType(type);
+            update = true;
+          }
+
+          if(dashWidthDefined && (fabsf(controller->GetDashedUnderlineWidth() - dashWidth) > Math::MACHINE_EPSILON_1000))
+          {
+            controller->SetDashedUnderlineWidth(dashWidth);
+            update = true;
+          }
+
+          if(dashGapDefined && (fabsf(controller->GetDashedUnderlineGap() - dashGap) > Math::MACHINE_EPSILON_1000))
+          {
+            controller->SetDashedUnderlineGap(dashGap);
+            update = true;
+          }
         }
         else
         {
@@ -331,9 +484,12 @@ void GetUnderlineProperties(ControllerPtr controller, Property::Value& value, Ef
     {
       case EffectStyle::DEFAULT:
       {
-        const bool     enabled = controller->IsUnderlineEnabled();
-        const Vector4& color   = controller->GetUnderlineColor();
-        const float    height  = controller->GetUnderlineHeight();
+        const bool                  enabled   = controller->IsUnderlineEnabled();
+        const Vector4&              color     = controller->GetUnderlineColor();
+        const float                 height    = controller->GetUnderlineHeight();
+        const Text::Underline::Type type      = controller->GetUnderlineType();
+        const float                 dashWidth = controller->GetDashedUnderlineWidth();
+        const float                 dashGap   = controller->GetDashedUnderlineGap();
 
         if(controller->IsUnderlineSetByString())
         {
@@ -347,7 +503,19 @@ void GetUnderlineProperties(ControllerPtr controller, Property::Value& value, Ef
 
           std::string heightStr;
           FloatToString(height, heightStr);
-          underlineProperties += "\"height\":\"" + heightStr + "\"}";
+          underlineProperties += "\"height\":\"" + heightStr + "\",";
+
+          std::string typeStr;
+          typeStr = GetUnderlineTypeToString(type);
+          underlineProperties += "\"type\":\"" + typeStr + "\",";
+
+          std::string dashWidthStr;
+          FloatToString(dashWidth, dashWidthStr);
+          underlineProperties += "\"dashWidth\":\"" + dashWidthStr + "\",";
+
+          std::string dashGapStr;
+          FloatToString(dashGap, dashGapStr);
+          underlineProperties += "\"dashGap\":\"" + dashGapStr + "\"}";
 
           value = underlineProperties;
         }
@@ -358,6 +526,9 @@ void GetUnderlineProperties(ControllerPtr controller, Property::Value& value, Ef
           map.Insert(ENABLE_KEY, enabled);
           map.Insert(COLOR_KEY, color);
           map.Insert(HEIGHT_KEY, height);
+          map.Insert(TYPE_KEY, type);
+          map.Insert(DASH_WIDTH_KEY, dashWidth);
+          map.Insert(DASH_GAP_KEY, dashGap);
 
           value = map;
         }
@@ -774,6 +945,153 @@ void GetBackgroundProperties(ControllerPtr controller, Property::Value& value, E
   }
 }
 
+bool SetStrikethroughProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type)
+{
+  bool update = false;
+
+  if(controller)
+  {
+    switch(type)
+    {
+      case EffectStyle::DEFAULT:
+      {
+        const Property::Map& propertiesMap = value.Get<Property::Map>();
+
+        bool    enabled      = false;
+        bool    colorDefined = false;
+        Vector4 color;
+        bool    heightDefined = false;
+        float   height        = 0.f;
+
+        bool empty = true;
+
+        if(propertiesMap.Empty())
+        {
+          // Map empty so check if a string provided
+          const std::string propertyString = value.Get<std::string>();
+
+          if(!propertyString.empty())
+          {
+            Property::Map parsedStringMap;
+            Text::ParsePropertyString(propertyString, parsedStringMap);
+
+            empty = ParseStrikethroughProperties(parsedStringMap,
+                                             enabled,
+                                             colorDefined,
+                                             color,
+                                             heightDefined,
+                                             height);
+
+            controller->StrikethroughSetByString(!empty);
+          }
+        }
+        else
+        {
+          empty = ParseStrikethroughProperties(propertiesMap,
+                                               enabled,
+                                               colorDefined,
+                                               color,
+                                               heightDefined,
+                                               height);
+
+          controller->StrikethroughSetByString(false);
+        }
+
+        if(!empty)
+        {
+          if(enabled != controller->IsStrikethroughEnabled())
+          {
+            controller->SetStrikethroughEnabled(enabled);
+            update = true;
+          }
+
+          // Sets the default strikethrough values.
+          if(colorDefined && (controller->GetStrikethroughColor() != color))
+          {
+            controller->SetStrikethroughColor(color);
+            update = true;
+          }
+          if(heightDefined && (fabsf(controller->GetStrikethroughHeight() - height) > Math::MACHINE_EPSILON_1000))
+          {
+            controller->SetStrikethroughHeight(height);
+            update = true;
+          }
+        }
+        else
+        {
+          // Disable strikethrough.
+          if(controller->IsStrikethroughEnabled())
+          {
+            controller->SetStrikethroughEnabled(false);
+            update = true;
+          }
+        }
+        break;
+      }
+      case EffectStyle::INPUT:
+      {
+        const std::string& strikethroughProperties = value.Get<std::string>();
+
+        controller->SetInputStrikethroughProperties(strikethroughProperties);
+        update = true;
+        break;
+      }
+    } // switch
+  }   // if( controller )
+
+  return update;
+}
+
+void GetStrikethroughProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type)
+{
+  if(controller)
+  {
+    switch(type)
+    {
+      case EffectStyle::DEFAULT:
+      {
+        const bool     enabled = controller->IsStrikethroughEnabled();
+        const Vector4& color   = controller->GetStrikethroughColor();
+        const float    height  = controller->GetStrikethroughHeight();
+
+        if(controller->IsStrikethroughSetByString())
+        {
+          std::string       strikethroughProperties = "{\"enable\":";
+          const std::string enabledStr          = enabled ? "true" : "false";
+          strikethroughProperties += "\"" + enabledStr + "\",";
+
+          std::string colorStr;
+          Vector4ToColorString(color, colorStr);
+          strikethroughProperties += "\"color\":\"" + colorStr + "\",";
+
+          std::string heightStr;
+          FloatToString(height, heightStr);
+          strikethroughProperties += "\"height\":\"" + heightStr + "\"}";
+
+          value = strikethroughProperties;
+        }
+        else
+        {
+          Property::Map map;
+
+          map.Insert(ENABLE_KEY, enabled);
+          map.Insert(COLOR_KEY, color);
+          map.Insert(HEIGHT_KEY, height);
+
+          value = map;
+        }
+
+        break;
+      }
+      case EffectStyle::INPUT:
+      {
+        value = controller->GetInputStrikethroughProperties();
+        break;
+      }
+    }
+  }
+}
+
 } // namespace Text
 
 } // namespace Toolkit
index fcc2381..a1b7bea 100644 (file)
@@ -60,13 +60,22 @@ bool ParseShadowProperties(const Property::Map& shadowProperties,
  * @param[out] color The underline's color.
  * @param[out] heightDefined Whether the underline's height is defined.
  * @param[out] height The underline's height.
+ * @param[out] type The underline's type; DASHED, DOUBLE, etc. Default is a solid underline.
+ * @param[out] dashWidth The dashed underline's width.
+ * @param[out] dashGap The dashed underline's gap.
  */
-bool ParseUnderlineProperties(const Property::Map& underlineProperties,
-                              bool&                enabled,
-                              bool&                colorDefined,
-                              Vector4&             color,
-                              bool&                heightDefined,
-                              float&               height);
+bool ParseUnderlineProperties(const Property::Map&   underlineProperties,
+                              bool&                  enabled,
+                              bool&                  colorDefined,
+                              Vector4&               color,
+                              bool&                  heightDefined,
+                              float&                 height,
+                              bool&                  typeDefined,
+                              Text::Underline::Type& type,
+                              bool&                  widthDefined,
+                              float&                 dashWidth,
+                              bool&                  dashGapDefined,
+                              float&                 dashGap);
 
 /**
  * @brief Parses the outline properties.
@@ -97,6 +106,23 @@ bool ParseBackgroundProperties(const Property::Map& backgroundProperties,
                                Vector4&             color);
 
 /**
+ * @brief Parses the strikethrough properties.
+ *
+ * @param[in] strikethroughProperties The map with the strikethrough properties.
+ * @param[out] enabled Whether the strikethrough is enabled.
+ * @param[out] colorDefined Whether the strikethrough's color is defined.
+ * @param[out] color The strikethrough's color.
+ * @param[out] heightDefined Whether the strikethrough's height is defined.
+ * @param[out] height The strikethrough's height.
+ */
+bool ParseStrikethroughProperties(const Property::Map& strikethroughProperties,
+                              bool&                enabled,
+                              bool&                colorDefined,
+                              Vector4&             color,
+                              bool&                heightDefined,
+                              float&               height);
+
+/**
  * @brief Sets the underline properties.
  *
  * @param[in] controller The text's controller.
@@ -108,6 +134,17 @@ bool ParseBackgroundProperties(const Property::Map& backgroundProperties,
 bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
 
 /**
+ * @brief Sets the strikethrough properties.
+ *
+ * @param[in] controller The text's controller.
+ * @param[in] value The values of the strikethrough's properties.
+ * @param[in] type Whether the property is for the default strikethrough or the input strikethrough.
+ *
+ * @return Whether the strikethrough properties have been updated.
+ */
+bool SetStrikethroughProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
+
+/**
  * @brief Retrieves the underline's properties.
  *
  * @param[in] controller The text's controller.
@@ -117,6 +154,15 @@ bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& val
 void GetUnderlineProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
 
 /**
+ * @brief Retrieves the strikethrough's properties.
+ *
+ * @param[in] controller The text's controller.
+ * @param[out] value The value of the strikethrough's properties.
+ * @param[in] type Whether the property is for the default strikethrough or the input strikethrough.
+ */
+void GetStrikethroughProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
+
+/**
  * @brief Sets the shadow properties.
  *
  * @param[in] controller The text's controller.
index ebb567d..0296dfd 100644 (file)
@@ -55,6 +55,11 @@ DALI_ENUM_TO_STRING_TABLE_BEGIN(ELLIPSIS_POSITION_TYPE)
   DALI_ENUM_TO_STRING_WITH_SCOPE(Toolkit::DevelText::EllipsisPosition, MIDDLE)
 DALI_ENUM_TO_STRING_TABLE_END(ELLIPSIS_POSITION_TYPE)
 
+DALI_ENUM_TO_STRING_TABLE_BEGIN(UNDERLINE_TYPE)
+  DALI_ENUM_TO_STRING_WITH_SCOPE(Toolkit::Text::Underline::Type, SOLID)
+  DALI_ENUM_TO_STRING_WITH_SCOPE(Toolkit::Text::Underline::Type, DASHED)
+  DALI_ENUM_TO_STRING_WITH_SCOPE(Toolkit::Text::Underline::Type, DOUBLE)
+DALI_ENUM_TO_STRING_TABLE_END(UNDERLINE_TYPE)
 } // namespace
 
 bool GetHorizontalAlignmentEnumeration(const Property::Value& propertyValue, Toolkit::Text::HorizontalAlignment::Type& alignment)
@@ -91,6 +96,13 @@ bool GetEllipsisPositionTypeEnumeration(const Property::Value& propertyValue, To
   return Scripting::GetEnumerationProperty(propertyValue, ELLIPSIS_POSITION_TYPE_TABLE, ELLIPSIS_POSITION_TYPE_TABLE_COUNT, ellipsisPositionType);
 }
 
+const char* GetUnderlineTypeToString(const Toolkit::Text::Underline::Type& type)
+{
+  return Scripting::GetLinearEnumerationName<Toolkit::Text::Underline::Type>(type,
+                                                                             UNDERLINE_TYPE_TABLE,
+                                                                             UNDERLINE_TYPE_TABLE_COUNT);
+}
+
 } // namespace Text
 
 } // namespace Toolkit
index af71f7d..3aa1fbd 100644 (file)
@@ -78,6 +78,13 @@ const char* GetVerticalAlignmentString(const Toolkit::Text::VerticalAlignment::T
  */
 bool GetEllipsisPositionTypeEnumeration(const Property::Value& propertyValue, Toolkit::DevelText::EllipsisPosition::Type& ellipsisPositionType);
 
+/**
+ * @brief Converts the underline type to string format.
+ * @param[in] type the Toolkit::Text::Underline::Type enum source
+ * @return the string equivalent
+ */
+const char* GetUnderlineTypeToString(const Toolkit::Text::Underline::Type& type);
+
 } // namespace Text
 
 } // namespace Toolkit
index d9520f1..f36c527 100644 (file)
@@ -265,6 +265,27 @@ public:
   virtual float GetUnderlineHeight() const = 0;
 
   /**
+   * @brief Retrieves the underline type override.
+   *
+   * @return Returns the override type for an underline.
+   */
+  virtual Text::Underline::Type GetUnderlineType() const = 0;
+
+  /**
+   * @brief Retrieves the dashed underline width override
+   *
+   * @return Returns the override width for the dashed underline.
+   */
+  virtual float GetDashedUnderlineWidth() const = 0;
+
+  /**
+   * @brief Retrieves the dashed underline gap override
+   *
+   * @return Returns the override gap for the dashed underline.
+   */
+  virtual float GetDashedUnderlineGap() const = 0;
+
+  /**
    * @brief Retrieves the number of underline runs.
    *
    * @return The number of underline runs.
@@ -335,6 +356,27 @@ public:
    * @return number of hyphens.
    */
   virtual Length GetHyphensCount() const = 0;
+
+  /**
+   * @brief Retrieves the strikethrough color.
+   *
+   * @return The strikethrough color.
+   */
+  virtual const Vector4& GetStrikethroughColor() const = 0;
+
+  /**
+   * @brief Returns whether strikethrough is enabled or not.
+   *
+   * @return The strikethrough state.
+   */
+  virtual bool IsStrikethroughEnabled() const = 0;
+
+  /**
+   * @brief Retrieves the strikethrough height override
+   *
+   * @return Returns the override height for a strikethrough, 0 indicates that adaptor will determine the height
+   */
+  virtual float GetStrikethroughHeight() const = 0;
 };
 
 } // namespace Text
index 4c3e3f0..6001a6e 100644 (file)
@@ -192,6 +192,21 @@ float Model::GetUnderlineHeight() const
   return mVisualModel->GetUnderlineHeight();
 }
 
+Text::Underline::Type Model::GetUnderlineType() const
+{
+  return mVisualModel->GetUnderlineType();
+}
+
+float Model::GetDashedUnderlineWidth() const
+{
+  return mVisualModel->GetDashedUnderlineWidth();
+}
+
+float Model::GetDashedUnderlineGap() const
+{
+  return mVisualModel->GetDashedUnderlineGap();
+}
+
 Length Model::GetNumberOfUnderlineRuns() const
 {
   return mVisualModel->GetNumberOfUnderlineRuns();
@@ -241,6 +256,20 @@ Length Model::GetHyphensCount() const
 {
   return mVisualModel->mHyphen.glyph.Size();
 }
+const Vector4& Model::GetStrikethroughColor() const
+{
+  return mVisualModel->GetStrikethroughColor();
+}
+
+bool Model::IsStrikethroughEnabled() const
+{
+  return mVisualModel->IsStrikethroughEnabled();
+}
+
+float Model::GetStrikethroughHeight() const
+{
+  return mVisualModel->GetStrikethroughHeight();
+}
 
 Model::Model()
 : mLogicalModel(),
index 280b63d..4d8149b 100644 (file)
@@ -208,6 +208,21 @@ public:
   float GetUnderlineHeight() const override;
 
   /**
+   * @copydoc ModelInterface::GetUnderlineType()
+   */
+  Text::Underline::Type GetUnderlineType() const override;
+
+  /**
+   * @copydoc ModelInterface::GetDashedUnderlineWidth()
+   */
+  float GetDashedUnderlineWidth() const override;
+
+  /**
+   * @copydoc ModelInterface::GetDashedUnderlineGap()
+   */
+  float GetDashedUnderlineGap() const override;
+
+  /**
    * @copydoc ModelInterface::GetNumberOfUnderlineRuns()
    */
   Length GetNumberOfUnderlineRuns() const override;
@@ -257,6 +272,12 @@ public:
   */
   Length GetHyphensCount() const override;
 
+  float GetStrikethroughHeight() const override;
+
+  const Vector4& GetStrikethroughColor() const override;
+
+  bool IsStrikethroughEnabled() const override;
+
 private: // Private contructors & copy operator.
   /**
    * @brief Private constructor.
index 24994bf..c6f76a4 100644 (file)
@@ -21,6 +21,7 @@
 // INTERNAL INCLUDES
 #include <dali-toolkit/devel-api/text/text-enumerations-devel.h>
 #include <dali-toolkit/internal/text/text-definitions.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
 
 namespace Dali
 {
@@ -194,6 +195,27 @@ public:
   virtual float GetUnderlineHeight() const = 0;
 
   /**
+   * @brief Retrieves the underline type override
+   *
+   * @return Returns the override type for an underline.
+   */
+  virtual Text::Underline::Type GetUnderlineType() const = 0;
+
+  /**
+   * @brief Retrieves the dashed underline width override.
+   *
+   * @return Returns the override width for the dashed underline.
+   */
+  virtual float GetDashedUnderlineWidth() const = 0;
+
+  /**
+   * @brief Retrieves the dashed underline gap override.
+   *
+   * @return Returns the override gap for the dashed underline.
+   */
+  virtual float GetDashedUnderlineGap() const = 0;
+
+  /**
    * @brief Retrieves the number of underline runs.
    *
    * @return The number of underline runs.
@@ -266,6 +288,27 @@ public:
    * @return The second middle index of elided glyphs, index of ellipsis of middle.
    */
   virtual GlyphIndex GetSecondMiddleIndexOfElidedGlyphs() const = 0;
+
+  /**
+   * @brief Retrieves the strikethrough color.
+   *
+   * @return The strikethrough color.
+   */
+  virtual const Vector4& GetStrikethroughColor() const = 0;
+
+  /**
+   * @brief Returns whether strikethrough is enabled or not.
+   *
+   * @return The strikethrough state.
+   */
+  virtual bool IsStrikethroughEnabled() const = 0;
+
+  /**
+   * @brief Retrieves the strikethrough height override
+   *
+   * @return Returns the override height for a strikethrough, 0 indicates that adaptor will determine the height
+   */
+  virtual float GetStrikethroughHeight() const = 0;
 };
 
 } // namespace Text
index a5a6b3b..93c420e 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.
@@ -213,7 +213,7 @@ Length View::GetGlyphs(GlyphInfo* glyphs,
 
           if(lastGlyphIndexOfLine == index)
           {
-            penY += -line->descender;
+            penY += -line->descender + line->lineSpacing;
 
             // Get the next line.
             ++lineIndex;
@@ -225,7 +225,7 @@ Length View::GetGlyphs(GlyphInfo* glyphs,
 
               lastGlyphIndexOfLine = (line->isSplitToTwoHalves ? line->glyphRunSecondHalf.glyphIndex + line->glyphRunSecondHalf.numberOfGlyphs : line->glyphRun.glyphIndex + line->glyphRun.numberOfGlyphs) - 1u;
 
-              penY += line->ascender + line->lineSpacing;
+              penY += line->ascender;
             }
           }
         }
@@ -625,6 +625,36 @@ float View::GetUnderlineHeight() const
   return 0.0f;
 }
 
+Text::Underline::Type View::GetUnderlineType() const
+{
+  Text::Underline::Type type = Text::Underline::Type::SOLID;
+  if(mImpl->mVisualModel)
+  {
+    type = mImpl->mVisualModel->GetUnderlineType();
+  }
+  return type;
+}
+
+float View::GetDashedUnderlineWidth() const
+{
+  float width = 0.0f;
+  if(mImpl->mVisualModel)
+  {
+    width = mImpl->mVisualModel->GetDashedUnderlineWidth();
+  }
+  return width;
+}
+
+float View::GetDashedUnderlineGap() const
+{
+  float gap = 0.0f;
+  if(mImpl->mVisualModel)
+  {
+    gap = mImpl->mVisualModel->GetDashedUnderlineGap();
+  }
+  return gap;
+}
+
 Length View::GetNumberOfUnderlineRuns() const
 {
   if(mImpl->mVisualModel)
@@ -742,6 +772,21 @@ GlyphIndex View::GetSecondMiddleIndexOfElidedGlyphs() const
   return secondMiddleIndexOfElidedGlyphs;
 }
 
+const Vector4& View::GetStrikethroughColor() const
+{
+  return (mImpl->mVisualModel) ? mImpl->mVisualModel->GetStrikethroughColor() : Vector4::ZERO;
+}
+
+bool View::IsStrikethroughEnabled() const
+{
+  return (mImpl->mVisualModel) ? mImpl->mVisualModel->IsStrikethroughEnabled() : false;
+}
+
+float View::GetStrikethroughHeight() const
+{
+  return (mImpl->mVisualModel) ? mImpl->mVisualModel->GetStrikethroughHeight() : 0.0f;
+}
+
 } // namespace Text
 
 } // namespace Toolkit
index 62324e8..7b14c8c 100644 (file)
@@ -146,6 +146,21 @@ public:
   float GetUnderlineHeight() const override;
 
   /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetUnderlineType()
+   */
+  Text::Underline::Type GetUnderlineType() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetDashedUnderlineWidth()
+   */
+  float GetDashedUnderlineWidth() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetDashedUnderlineGap()
+   */
+  float GetDashedUnderlineGap() const override;
+
+  /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetNumberOfUnderlineRuns()
    */
   Length GetNumberOfUnderlineRuns() const override;
@@ -197,6 +212,21 @@ public:
    */
   GlyphIndex GetSecondMiddleIndexOfElidedGlyphs() const override;
 
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetStrikethroughColor()
+   */
+  const Vector4& GetStrikethroughColor() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::IsStrikethroughEnabled()
+   */
+  bool IsStrikethroughEnabled() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetStrikethroughHeight()
+   */
+  float GetStrikethroughHeight() const override;
+
 private:
   // Undefined
   View(const View& handle);
index 9c57494..6ac00cd 100644 (file)
@@ -380,6 +380,21 @@ void VisualModel::SetUnderlineHeight(float height)
   mUnderlineHeight = height;
 }
 
+void VisualModel::SetUnderlineType(Text::Underline::Type type)
+{
+  mUnderlineType = type;
+}
+
+void VisualModel::SetDashedUnderlineWidth(float width)
+{
+  mDashedUnderlineWidth = width;
+}
+
+void VisualModel::SetDashedUnderlineGap(float gap)
+{
+  mDashedUnderlineGap = gap;
+}
+
 void VisualModel::SetOutlineWidth(uint16_t width)
 {
   mOutlineWidth = width;
@@ -430,6 +445,21 @@ void VisualModel::SetSecondMiddleIndexOfElidedGlyphs(GlyphIndex secondMiddleInde
   mSecondMiddleIndexOfElidedGlyphs = secondMiddleIndexOfElidedGlyphs;
 }
 
+void VisualModel::SetStrikethroughColor(const Vector4& color)
+{
+  mStrikethroughColor = color;
+}
+
+void VisualModel::SetStrikethroughEnabled(bool enabled)
+{
+  mStrikethroughEnabled = enabled;
+}
+
+void VisualModel::SetStrikethroughHeight(float height)
+{
+  mStrikethroughHeight = height;
+}
+
 const Vector4& VisualModel::GetTextColor() const
 {
   return mTextColor;
@@ -470,6 +500,21 @@ float VisualModel::GetUnderlineHeight() const
   return mUnderlineHeight;
 }
 
+Text::Underline::Type VisualModel::GetUnderlineType() const
+{
+  return mUnderlineType;
+}
+
+float VisualModel::GetDashedUnderlineWidth() const
+{
+  return mDashedUnderlineWidth;
+}
+
+float VisualModel::GetDashedUnderlineGap() const
+{
+  return mDashedUnderlineGap;
+}
+
 uint16_t VisualModel::GetOutlineWidth() const
 {
   return mOutlineWidth;
@@ -525,6 +570,21 @@ Length VisualModel::GetNumberOfUnderlineRuns() const
   return mUnderlineRuns.Count();
 }
 
+const Vector4& VisualModel::GetStrikethroughColor() const
+{
+  return mStrikethroughColor;
+}
+
+bool VisualModel::IsStrikethroughEnabled() const
+{
+  return mStrikethroughEnabled;
+}
+
+float VisualModel::GetStrikethroughHeight() const
+{
+  return mStrikethroughHeight;
+}
+
 void VisualModel::ClearCaches()
 {
   mCachedLineIndex = 0u;
@@ -547,9 +607,14 @@ VisualModel::VisualModel()
   mUnderlineColor(Color::BLACK),
   mOutlineColor(Color::WHITE),
   mBackgroundColor(Color::TRANSPARENT),
+  mStrikethroughColor(Color::BLACK),
   mControlSize(),
   mShadowOffset(),
   mUnderlineHeight(0.0f),
+  mStrikethroughHeight(0.0f),
+  mUnderlineType(Text::Underline::SOLID),
+  mDashedUnderlineWidth(2.0f),
+  mDashedUnderlineGap(1.0f),
   mShadowBlurRadius(0.0f),
   mOutlineWidth(0u),
   mNaturalSize(),
@@ -564,7 +629,8 @@ VisualModel::VisualModel()
   mUnderlineEnabled(false),
   mUnderlineColorSet(false),
   mBackgroundEnabled(false),
-  mMarkupProcessorEnabled(false)
+  mMarkupProcessorEnabled(false),
+  mStrikethroughEnabled(false)
 
 {
 }
index ac9b12d..710f0ab 100644 (file)
@@ -28,6 +28,7 @@
 // INTERNAL INCLUDES
 #include <dali-toolkit/internal/text/color-run.h>
 #include <dali-toolkit/internal/text/line-run.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
 
 // DEVEL INCLUDES
 #include <dali-toolkit/devel-api/text/text-enumerations-devel.h>
@@ -301,6 +302,27 @@ public:
   void SetUnderlineHeight(float height);
 
   /**
+   * @brief Set the override used for underline type.
+   *
+   * @param[in] underlineType The type of the underline.
+   */
+  void SetUnderlineType(Text::Underline::Type type);
+
+  /**
+   * @brief Set the override used for the width of the dashes of the dashed underline.
+   *
+   * @param[in] width width of the dashes.
+   */
+  void SetDashedUnderlineWidth(float width);
+
+  /**
+   * @brief Set the override used for the gap between the dashes of the dashed underline.
+   *
+   * @param[in] gap gap between the dashes.
+   */
+  void SetDashedUnderlineGap(float gap);
+
+  /**
    * @brief Retrieves the underline height override
    *
    * @return Returns the override height for an underline, 0 indicates that font metrics will determine the height
@@ -308,6 +330,27 @@ public:
   float GetUnderlineHeight() const;
 
   /**
+   * @brief Retrieves the underline type override.
+   *
+   * @return Returns the override type for the underline.
+   */
+  Text::Underline::Type GetUnderlineType() const;
+
+  /**
+   * @brief Retrieves the dashed underline width.
+   *
+   * @return Returns the override width for the dashed underline.
+   */
+  float GetDashedUnderlineWidth() const;
+
+  /**
+   * @brief Retrieves the dashed underline gap.
+   *
+   * @return Returns the override gap for the dashed underline.
+   */
+  float GetDashedUnderlineGap() const;
+
+  /**
    * @brief Retrieves the number of underline runs.
    *
    * @return The number of underline runs.
@@ -467,6 +510,48 @@ public:
    */
   GlyphIndex GetSecondMiddleIndexOfElidedGlyphs() const;
 
+  /**
+   * @brief Sets the text's strikethrough color.
+   *
+   * @param[in] color The text's strikethrough color.
+   */
+  void SetStrikethroughColor(const Vector4& color);
+
+  /**
+   * @brief Retrieves the text's strikethrough color.
+   *
+   * @return The text's strikethrough color.
+   */
+  const Vector4& GetStrikethroughColor() const;
+
+  /**
+   * @brief Sets the text strikethrough flag.
+   *
+   * @param[in] enabled true if strikethrough.
+   */
+  void SetStrikethroughEnabled(bool enabled);
+
+  /**
+   * @brief Returns whether the text is strikethrough or not.
+   *
+   * @return strikethrough state.
+   */
+  bool IsStrikethroughEnabled() const;
+
+  /**
+   * @brief Set the override used for strikethrough height, 0 indicates height will be come from font metrics
+   *
+   * @param[in] height The height in pixels of the strikethrough
+   */
+  void SetStrikethroughHeight(float height);
+
+  /**
+   * @brief Retrieves the strikethrough height override
+   *
+   * @return Returns the override height for a strikethrough, 0 indicates that font metrics will determine the height
+   */
+  float GetStrikethroughHeight() const;
+
 protected:
   /**
    * @brief A reference counted object may only be deleted by calling Unreference().
@@ -498,17 +583,21 @@ public:
   Vector<ColorIndex>     mColorIndices;           ///< Indices to the vector of colors for each glyphs.
   Vector<Vector4>        mBackgroundColors;       ///< Background colors of the glyphs.
   Vector<ColorIndex>     mBackgroundColorIndices; ///< Indices to the vector of background colors for each glyphs.
-
-  Vector4  mTextColor;        ///< The text color
-  Vector4  mShadowColor;      ///< Color of drop shadow
-  Vector4  mUnderlineColor;   ///< Color of underline
-  Vector4  mOutlineColor;     ///< Color of outline
-  Vector4  mBackgroundColor;  ///< Color of text background
-  Size     mControlSize;      ///< The size of the UI control.
-  Vector2  mShadowOffset;     ///< Offset for drop shadow, 0 indicates no shadow
-  float    mUnderlineHeight;  ///< Fixed height for underline to override font metrics.
-  float    mShadowBlurRadius; ///< Blur radius of shadow, 0 indicates no blur.
-  uint16_t mOutlineWidth;     ///< Width of outline.
+  Vector4                mTextColor;              ///< The text color
+  Vector4                mShadowColor;            ///< Color of drop shadow
+  Vector4                mUnderlineColor;         ///< Color of underline
+  Vector4                mOutlineColor;           ///< Color of outline
+  Vector4                mBackgroundColor;        ///< Color of text background
+  Vector4                mStrikethroughColor;     ///< Color of text background
+  Size                   mControlSize;            ///< The size of the UI control.
+  Vector2                mShadowOffset;           ///< Offset for drop shadow, 0 indicates no shadow
+  float                  mUnderlineHeight;        ///< Fixed height for underline to override font metrics.
+  float                  mStrikethroughHeight;    ///< Fixed height for strikethrough to override font metrics.
+  Text::Underline::Type  mUnderlineType;          ///< The type of the underline.
+  float                  mDashedUnderlineWidth;   ///< The width of the dashes of the dashed underline.
+  float                  mDashedUnderlineGap;     ///< The gap between the dashes of the dashed underline.
+  float                  mShadowBlurRadius;       ///< Blur radius of shadow, 0 indicates no blur.
+  uint16_t               mOutlineWidth;           ///< Width of outline.
 
 private:
   Size mNaturalSize; ///< Size of the text with no line wrapping.
@@ -530,6 +619,7 @@ public:
   bool       mBackgroundEnabled : 1;      ///< Background enabled flag
   bool       mMarkupProcessorEnabled : 1; ///< Markup-processor enabled flag
   HyphenInfo mHyphen;                     ///< Contains hyphen glyph info & the character index to draw hyphen after.
+  bool       mStrikethroughEnabled : 1;   ///< Strikethrough enabled flag
 };
 
 } // namespace Text
index a4903c5..7720aa2 100644 (file)
@@ -223,6 +223,9 @@ void TextVisual::DoCreatePropertyMap(Property::Map& map) const
 
   GetBackgroundProperties(mController, value, Text::EffectStyle::DEFAULT);
   map.Insert(Toolkit::DevelTextVisual::Property::BACKGROUND, value);
+
+  GetStrikethroughProperties(mController, value, Text::EffectStyle::DEFAULT);
+  map.Insert(Toolkit::DevelTextVisual::Property::STRIKETHROUGH, value);
 }
 
 void TextVisual::DoCreateInstancePropertyMap(Property::Map& map) const
@@ -460,6 +463,11 @@ void TextVisual::DoSetProperty(Dali::Property::Index index, const Dali::Property
       SetBackgroundProperties(mController, propertyValue, Text::EffectStyle::DEFAULT);
       break;
     }
+    case Toolkit::DevelTextVisual::Property::STRIKETHROUGH:
+    {
+      SetStrikethroughProperties(mController, propertyValue, Text::EffectStyle::DEFAULT);
+      break;
+    }
   }
 }
 
@@ -545,10 +553,12 @@ void TextVisual::UpdateRenderer()
       const bool outlineEnabled         = (mController->GetTextModel()->GetOutlineWidth() > Math::MACHINE_EPSILON_1);
       const bool backgroundEnabled      = mController->GetTextModel()->IsBackgroundEnabled();
       const bool markupProcessorEnabled = mController->IsMarkupProcessorEnabled();
+      const bool strikethroughEnabled   = mController->GetTextModel()->IsStrikethroughEnabled();
 
-      const bool styleEnabled = (shadowEnabled || underlineEnabled || outlineEnabled || backgroundEnabled || markupProcessorEnabled);
+      const bool styleEnabled = (shadowEnabled || underlineEnabled || outlineEnabled || backgroundEnabled || markupProcessorEnabled || strikethroughEnabled);
+      const bool isOverlayStyle = underlineEnabled || strikethroughEnabled;
 
-      AddRenderer(control, relayoutSize, hasMultipleTextColors, containsColorGlyph, styleEnabled);
+      AddRenderer(control, relayoutSize, hasMultipleTextColors, containsColorGlyph, styleEnabled, isOverlayStyle);
 
       // Text rendered and ready to display
       ResourceReady(Toolkit::Visual::ResourceStatus::READY);
@@ -583,12 +593,13 @@ PixelData TextVisual::ConvertToPixelData(unsigned char* buffer, int width, int h
   return pixelData;
 }
 
-void TextVisual::CreateTextureSet(TilingInfo& info, Renderer& renderer, Sampler& sampler, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled)
+void TextVisual::CreateTextureSet(TilingInfo& info, Renderer& renderer, Sampler& sampler, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled, bool isOverlayStyle)
 {
   TextureSet   textureSet      = TextureSet::New();
   unsigned int textureSetIndex = 0u;
 
   // Convert the buffer to pixel data to make it a texture.
+
   if(info.textBuffer)
   {
     PixelData data = ConvertToPixelData(info.textBuffer, info.width, info.height, info.offsetPosition, info.textPixelFormat);
@@ -603,6 +614,13 @@ void TextVisual::CreateTextureSet(TilingInfo& info, Renderer& renderer, Sampler&
     ++textureSetIndex;
   }
 
+  if(styleEnabled && isOverlayStyle)
+  {
+    PixelData overlayStyleData = ConvertToPixelData(info.styleBuffer, info.width, info.height, info.offsetPosition, Pixel::RGBA8888);
+    AddTexture(textureSet, overlayStyleData, sampler, textureSetIndex);
+    ++textureSetIndex;
+  }
+
   if(containsColorGlyph && !hasMultipleTextColors && info.maskBuffer)
   {
     PixelData maskData = ConvertToPixelData(info.maskBuffer, info.width, info.height, info.offsetPosition, Pixel::L8);
@@ -627,7 +645,7 @@ void TextVisual::CreateTextureSet(TilingInfo& info, Renderer& renderer, Sampler&
   mRendererList.push_back(renderer);
 }
 
-void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled)
+void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled, bool isOverlayStyle)
 {
   Shader shader = GetTextShader(mFactoryCache, hasMultipleTextColors, containsColorGlyph, styleEnabled);
   mImpl->mRenderer.SetShader(shader);
@@ -638,7 +656,7 @@ void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultiple
   // No tiling required. Use the default renderer.
   if(size.height < maxTextureSize)
   {
-    TextureSet textureSet = GetTextTexture(size, hasMultipleTextColors, containsColorGlyph, styleEnabled);
+    TextureSet textureSet = GetTextTexture(size, hasMultipleTextColors, containsColorGlyph, styleEnabled, isOverlayStyle);
 
     mImpl->mRenderer.SetTextures(textureSet);
     //Register transform properties
@@ -700,7 +718,7 @@ void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultiple
     }
 
     // Create a textureset in the default renderer.
-    CreateTextureSet(info, mImpl->mRenderer, sampler, hasMultipleTextColors, containsColorGlyph, styleEnabled);
+    CreateTextureSet(info, mImpl->mRenderer, sampler, hasMultipleTextColors, containsColorGlyph, styleEnabled, isOverlayStyle);
 
     verifiedHeight -= maxTextureSize;
 
@@ -719,7 +737,7 @@ void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultiple
       // New offset for tiling.
       info.offSet.y += maxTextureSize;
       // Create a textureset int the new tiling renderer.
-      CreateTextureSet(info, tilingRenderer, sampler, hasMultipleTextColors, containsColorGlyph, styleEnabled);
+      CreateTextureSet(info, tilingRenderer, sampler, hasMultipleTextColors, containsColorGlyph, styleEnabled, isOverlayStyle);
 
       verifiedHeight -= maxTextureSize;
     }
@@ -737,7 +755,7 @@ void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultiple
   }
 }
 
-TextureSet TextVisual::GetTextTexture(const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled)
+TextureSet TextVisual::GetTextTexture(const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled, bool isOverlayStyle)
 {
   // Filter mode needs to be set to linear to produce better quality while scaling.
   Sampler sampler = Sampler::New();
@@ -757,17 +775,19 @@ TextureSet TextVisual::GetTextTexture(const Vector2& size, bool hasMultipleTextC
   // It may happen the image atlas can't handle a pixel data it exceeds the maximum size.
   // In that case, create a texture. TODO: should tile the text.
   unsigned int textureSetIndex = 0u;
-
   AddTexture(textureSet, data, sampler, textureSetIndex);
   ++textureSetIndex;
 
   if(styleEnabled)
   {
-    // Create RGBA texture for all the text styles (without the text itself)
+    // Create RGBA texture for all the text styles that render in the background (without the text itself)
     PixelData styleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_NO_TEXT, false, Pixel::RGBA8888);
-
     AddTexture(textureSet, styleData, sampler, textureSetIndex);
     ++textureSetIndex;
+    // Create RGBA texture for overlay styles such as underline and strikethrough (without the text itself)
+    PixelData overlayStyleData = mTypesetter->Render(size, textDirection, Text::Typesetter::RENDER_OVERLAY_STYLE, false, Pixel::RGBA8888);
+    AddTexture(textureSet, overlayStyleData, sampler, textureSetIndex);
+    ++textureSetIndex;
   }
 
   if(containsColorGlyph && !hasMultipleTextColors)
@@ -855,4 +875,4 @@ Shader TextVisual::GetTextShader(VisualFactoryCache& factoryCache, bool hasMulti
 
 } // namespace Toolkit
 
-} // namespace Dali
+} // namespace Dali
\ No newline at end of file
index f9d6c79..76f4bf9 100644 (file)
@@ -269,8 +269,9 @@ private:
    * @param[in] hasMultipleTextColors Whether the text contains multiple colors.
    * @param[in] containsColorGlyph Whether the text contains color glyph.
    * @param[in] styleEnabled Whether the text contains any styles (e.g. shadow, underline, etc.).
+   * @param[in] isOverlayStyle Whether the style needs to overlay on the text (e.g. strikethrough, underline, etc.).
    */
-  void CreateTextureSet(TilingInfo& info, Renderer& renderer, Sampler& sampler, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled);
+  void CreateTextureSet(TilingInfo& info, Renderer& renderer, Sampler& sampler, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled, bool isOverlayStyle);
 
   /**
    * Create renderer of the text for rendering.
@@ -279,8 +280,9 @@ private:
    * @param[in] hasMultipleTextColors Whether the text contains multiple colors.
    * @param[in] containsColorGlyph Whether the text contains color glyph.
    * @param[in] styleEnabled Whether the text contains any styles (e.g. shadow, underline, etc.).
+   * @param[in] isOverlayStyle Whether the style needs to overlay on the text (e.g. strikethrough, underline, etc.).
    */
-  void AddRenderer(Actor& actor, const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled);
+  void AddRenderer(Actor& actor, const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled, bool isOverlayStyle);
 
   /**
    * Get the texture of the text for rendering.
@@ -288,8 +290,9 @@ private:
    * @param[in] hasMultipleTextColors Whether the text contains multiple colors.
    * @param[in] containsColorGlyph Whether the text contains color glyph.
    * @param[in] styleEnabled Whether the text contains any styles (e.g. shadow, underline, etc.).
+   * @param[in] isOverlayStyle Whether the style needs to overlay on the text (e.g. strikethrough, underline, etc.).
    */
-  TextureSet GetTextTexture(const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled);
+  TextureSet GetTextTexture(const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled, bool isOverlayStyle);
 
   /**
    * Get the text rendering shader.
@@ -347,4 +350,4 @@ private:
 
 } // namespace Dali
 
-#endif /* DALI_TOOLKIT_INTERNAL_TEXT_VISUAL_H */
+#endif /* DALI_TOOLKIT_INTERNAL_TEXT_VISUAL_H */
\ No newline at end of file
index 53bcd1c..643fb21 100644 (file)
@@ -137,6 +137,7 @@ const char* const SHADOW_PROPERTY("shadow");
 const char* const UNDERLINE_PROPERTY("underline");
 const char* const OUTLINE_PROPERTY("outline");
 const char* const BACKGROUND_PROPERTY("textBackground");
+const char* const STRIKETHROUGH_PROPERTY("strikethrough");
 
 //NPatch visual
 const char* const BORDER_ONLY("borderOnly");
index 470ded9..1544206 100644 (file)
@@ -121,6 +121,7 @@ extern const char* const SHADOW_PROPERTY;
 extern const char* const UNDERLINE_PROPERTY;
 extern const char* const OUTLINE_PROPERTY;
 extern const char* const BACKGROUND_PROPERTY;
+extern const char* const STRIKETHROUGH_PROPERTY;
 
 //NPatch visual
 extern const char* const BORDER_ONLY;
index 81eb8d3..b644b08 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_EDITOR_H
 
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
@@ -449,16 +449,17 @@ public:
      */
     enum Mask
     {
-      NONE         = 0x0000, ///< @SINCE_1_2_2
-      COLOR        = 0x0001, ///< @SINCE_1_2_2
-      FONT_FAMILY  = 0x0002, ///< @SINCE_1_2_2
-      POINT_SIZE   = 0x0004, ///< @SINCE_1_2_2
-      FONT_STYLE   = 0x0008, ///< @SINCE_1_2_2
-      LINE_SPACING = 0x0010, ///< @SINCE_1_2_2
-      UNDERLINE    = 0x0020, ///< @SINCE_1_2_2
-      SHADOW       = 0x0040, ///< @SINCE_1_2_2
-      EMBOSS       = 0x0080, ///< @SINCE_1_2_2
-      OUTLINE      = 0x0100  ///< @SINCE_1_2_2
+      NONE          = 0x0000, ///< @SINCE_1_2_2
+      COLOR         = 0x0001, ///< @SINCE_1_2_2
+      FONT_FAMILY   = 0x0002, ///< @SINCE_1_2_2
+      POINT_SIZE    = 0x0004, ///< @SINCE_1_2_2
+      FONT_STYLE    = 0x0008, ///< @SINCE_1_2_2
+      LINE_SPACING  = 0x0010, ///< @SINCE_1_2_2
+      UNDERLINE     = 0x0020, ///< @SINCE_1_2_2
+      SHADOW        = 0x0040, ///< @SINCE_1_2_2
+      EMBOSS        = 0x0080, ///< @SINCE_1_2_2
+      OUTLINE       = 0x0100, ///< @SINCE_1_2_2
+      STRIKETHROUGH = 0x0200,
     };
   };
 
index 61bab1c..a99d1d2 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_FIELD_H
 
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
@@ -452,7 +452,7 @@ public:
        * @SINCE_1_2.60
        * @note PLACEHOLDER map is used to add ellipsis to placeholder text.
        */
-      ELLIPSIS
+      ELLIPSIS,
     };
   };
 
@@ -482,15 +482,16 @@ public:
    */
     enum Mask
     {
-      NONE        = 0x0000, ///< @SINCE_1_2_2
-      COLOR       = 0x0001, ///< @SINCE_1_2_2
-      FONT_FAMILY = 0x0002, ///< @SINCE_1_2_2
-      POINT_SIZE  = 0x0004, ///< @SINCE_1_2_2
-      FONT_STYLE  = 0x0008, ///< @SINCE_1_2_2
-      UNDERLINE   = 0x0010, ///< @SINCE_1_2_2
-      SHADOW      = 0x0020, ///< @SINCE_1_2_2
-      EMBOSS      = 0x0040, ///< @SINCE_1_2_2
-      OUTLINE     = 0x0080  ///< @SINCE_1_2_2
+      NONE          = 0x0000, ///< @SINCE_1_2_2
+      COLOR         = 0x0001, ///< @SINCE_1_2_2
+      FONT_FAMILY   = 0x0002, ///< @SINCE_1_2_2
+      POINT_SIZE    = 0x0004, ///< @SINCE_1_2_2
+      FONT_STYLE    = 0x0008, ///< @SINCE_1_2_2
+      UNDERLINE     = 0x0010, ///< @SINCE_1_2_2
+      SHADOW        = 0x0020, ///< @SINCE_1_2_2
+      EMBOSS        = 0x0040, ///< @SINCE_1_2_2
+      OUTLINE       = 0x0080, ///< @SINCE_1_2_2
+      STRIKETHROUGH = 0x1000
     };
   };
 
index 2d8c763..471a619 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_LABEL_H
 
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
index 4223c6f..ed43527 100644 (file)
@@ -29,7 +29,7 @@ namespace Toolkit
 {
 const unsigned int TOOLKIT_MAJOR_VERSION = 2;
 const unsigned int TOOLKIT_MINOR_VERSION = 1;
-const unsigned int TOOLKIT_MICRO_VERSION = 4;
+const unsigned int TOOLKIT_MICRO_VERSION = 5;
 const char* const  TOOLKIT_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index 39918c1..e5b7fbe 100644 (file)
@@ -109,6 +109,24 @@ enum Mode
 
 } // namespace LineWrap
 
+/**
+ * @brief The available underline types for text.
+ * @SINCE_1_2.60
+ */
+namespace Underline
+{
+/**
+ * @brief Enumerations specifying the underline type.
+ */
+enum Type
+{
+  SOLID,
+  DASHED,
+  DOUBLE
+};
+
+} // namespace UnderlineType
+
 } // namespace Text
 
 /**
index cdd1a1a..2ab1cba 100644 (file)
@@ -128,6 +128,12 @@ enum
    * @SINCE_1_2.60
    */
   UNDERLINE,
+
+  /**
+   * @brief The default strikethrough parameters.
+   * @details name "strikethrough", type Property::MAP.
+   */
+  STRIKETHROUGH,
 };
 
 } // namespace Property
index d67f76d..72b04a5 100644 (file)
@@ -1,6 +1,6 @@
 Name:       dali2-toolkit
 Summary:    Dali 3D engine Toolkit
-Version:    2.1.4
+Version:    2.1.5
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT