[AT-SPI] Squashed implementation
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-PushButton.cpp
index 235d8ab..5913861 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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 <dali/integration-api/events/touch-event-integ.h>
 #include <dali-toolkit/dali-toolkit.h>
 
+#include <dali-toolkit/devel-api/controls/buttons/button-devel.h>
+
+#include <dali/devel-api/adaptor-framework/image-loading.h>
+
 using namespace Dali;
 using namespace Toolkit;
 
@@ -43,10 +47,14 @@ namespace
 {
 static const char* TEST_IMAGE_ONE = TEST_RESOURCE_DIR "/gallery-small-1.jpg";
 
+static const Vector2 INSIDE_TOUCH_POINT_POSITON  = Vector2( 240, 400 );
+static const Vector3 BUTTON_POSITON_TO_GET_INSIDE_TOUCH_EVENTS  = Vector3( 200, 360, 0 );
+static const Size BUTTON_SIZE_TO_GET_INSIDE_TOUCH_EVENTS  = Size( 100, 100 );
+
 static bool gPushButtonSelectedState = false;
 bool PushButtonSelected( Button button )
 {
-  gPushButtonSelectedState = button.IsSelected();
+  gPushButtonSelectedState = button.GetProperty<bool>(button.GetPropertyIndex("selected") );
   return true;
 }
 
@@ -66,11 +74,19 @@ static bool PushButtonReleased( Button button )
   return true;
 }
 
+static bool gPushButtonClicked = false;
+
+static bool PushButtonClicked( Button button )
+{
+  gPushButtonClicked = true;
+  return gPushButtonClicked;
+}
+
 Dali::Integration::Point GetPointDownInside()
 {
   Dali::Integration::Point point;
   point.SetState( PointState::DOWN );
-  point.SetScreenPosition( Vector2( 240, 400 ) );
+  point.SetScreenPosition( INSIDE_TOUCH_POINT_POSITON );
   return point;
 }
 
@@ -78,7 +94,7 @@ Dali::Integration::Point GetPointUpInside()
 {
   Dali::Integration::Point point;
   point.SetState( PointState::UP );
-  point.SetScreenPosition( Vector2( 240, 400 ) );
+  point.SetScreenPosition( INSIDE_TOUCH_POINT_POSITON );
   return point;
 }
 
@@ -86,7 +102,7 @@ Dali::Integration::Point GetPointLeave()
 {
   Dali::Integration::Point point;
   point.SetState( PointState::LEAVE );
-  point.SetScreenPosition( Vector2( 240, 400 ) );
+  point.SetScreenPosition( INSIDE_TOUCH_POINT_POSITON );
   return point;
 }
 
@@ -94,7 +110,7 @@ Dali::Integration::Point GetPointEnter()
 {
   Dali::Integration::Point point;
   point.SetState( PointState::MOTION );
-  point.SetScreenPosition( Vector2( 240, 400 ) );
+  point.SetScreenPosition( INSIDE_TOUCH_POINT_POSITON );
   return point;
 }
 
@@ -114,11 +130,44 @@ Dali::Integration::Point GetPointUpOutside()
   return point;
 }
 
+// Set up the position of the button for the default test events
+void SetupButtonForTestTouchEvents( ToolkitTestApplication& application, Button& button, bool useDefaultImages )
+{
+  button.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  button.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  button.SetProperty( Actor::Property::POSITION, BUTTON_POSITON_TO_GET_INSIDE_TOUCH_EVENTS );
+  if ( useDefaultImages )
+  {
+    const Vector2 TEST_IMAGE_SIZE = Vector2( BUTTON_SIZE_TO_GET_INSIDE_TOUCH_EVENTS );
+    TestPlatformAbstraction& platform = application.GetPlatform();
+    platform.SetClosestImageSize( TEST_IMAGE_SIZE );
+    button.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, TEST_IMAGE_ONE );
+    button.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, TEST_IMAGE_ONE );
+  }
+}
+
+static std::string GetButtonText( Button button )
+{
+  Property::Value value = button.GetProperty( Toolkit::Button::Property::LABEL );
+
+  Property::Map *labelProperty = value.GetMap();
+
+  std::string textLabel;
+
+  if ( labelProperty )
+  {
+    Property::Value* value = labelProperty->Find( Toolkit::TextVisual::Property::TEXT );
+    value->Get( textLabel );
+  }
+
+  return textLabel;
+}
+
 } //namespace
 
 int UtcDaliPushButtonConstructorP(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   PushButton button;
 
@@ -128,7 +177,7 @@ int UtcDaliPushButtonConstructorP(void)
 
 int UtcDaliPushButtonCopyConstructorP(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   // Initialize an object, ref count == 1
   PushButton button = PushButton::New();
@@ -138,9 +187,28 @@ int UtcDaliPushButtonCopyConstructorP(void)
   END_TEST;
 }
 
+int UtcDaliPushButtonMoveConstructor(void)
+{
+  ToolkitTestApplication application;
+
+  PushButton button = PushButton::New();
+  DALI_TEST_EQUALS( 1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS( button.GetProperty<bool>( Button::Property::TOGGLABLE ), false , TEST_LOCATION );
+  button.SetProperty( Button::Property::TOGGLABLE, true );
+  DALI_TEST_EQUALS( button.GetProperty<bool>( Button::Property::TOGGLABLE ), true , TEST_LOCATION );
+
+  PushButton moved = std::move( button );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS( moved.GetProperty<bool>( Button::Property::TOGGLABLE ), true , TEST_LOCATION );
+  DALI_TEST_CHECK( !button );
+
+  END_TEST;
+}
+
 int UtcDaliPushButtonAssignmentOperatorP(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   PushButton button = PushButton::New();
 
@@ -151,9 +219,29 @@ int UtcDaliPushButtonAssignmentOperatorP(void)
   END_TEST;
 }
 
+int UtcDaliPushButtonMoveAssignment(void)
+{
+  ToolkitTestApplication application;
+
+  PushButton button = PushButton::New();
+  DALI_TEST_EQUALS( 1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS( button.GetProperty<bool>( Button::Property::TOGGLABLE ), false , TEST_LOCATION );
+  button.SetProperty( Button::Property::TOGGLABLE, true );
+  DALI_TEST_EQUALS( button.GetProperty<bool>( Button::Property::TOGGLABLE ), true , TEST_LOCATION );
+
+  PushButton moved;
+  moved = std::move( button );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_EQUALS( moved.GetProperty<bool>( Button::Property::TOGGLABLE ), true , TEST_LOCATION );
+  DALI_TEST_CHECK( !button );
+
+  END_TEST;
+}
+
 int UtcDaliPushButtonNewP(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   PushButton button = PushButton::New();
 
@@ -163,7 +251,7 @@ int UtcDaliPushButtonNewP(void)
 
 int UtcDaliPushButtonDownCastP(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   PushButton button = PushButton::New();
 
@@ -179,7 +267,7 @@ int UtcDaliPushButtonDownCastP(void)
 
 int UtcDaliPushButtonDownCastN(void)
 {
-  TestApplication application;
+  ToolkitTestApplication application;
 
   BaseHandle unInitializedObject;
 
@@ -191,25 +279,23 @@ int UtcDaliPushButtonDownCastN(void)
   END_TEST;
 }
 
-int UtcDaliPushButtonSetGetAutoRepeating(void)
+int UtcDaliPushButtonAutoRepeatingProperty(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetGetAutoRepeating");
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetAutoRepeating( true );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("autoRepeating"), true );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("autoRepeating")), true, TEST_LOCATION );
 
-  DALI_TEST_CHECK( pushButton.IsAutoRepeating() );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("autoRepeating"), false );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("autoRepeating")), false, TEST_LOCATION );
 
-  pushButton.SetAutoRepeating( false );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("autoRepeating"), true );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("autoRepeating")), true, TEST_LOCATION );
 
-  DALI_TEST_CHECK( !pushButton.IsAutoRepeating() );
-
-  pushButton.SetAutoRepeating( true );
-
-  DALI_TEST_CHECK( pushButton.IsAutoRepeating() );
-  END_TEST;
+    END_TEST;
 }
 
 int UtcDaliPushButtonSetAutoRepeating(void)
@@ -235,122 +321,120 @@ int UtcDaliPushButtonSetAutoRepeating(void)
   END_TEST;
 }
 
-int UtcDaliPushButtonSetGetTogglableButton(void)
+int UtcDaliPushButtonTogglableProperty(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetGetTogglableButton");
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetTogglableButton( true );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("togglable"), true );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("togglable")), true, TEST_LOCATION );
 
-  DALI_TEST_CHECK( pushButton.IsTogglableButton() );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("togglable"), false );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("togglable")), false, TEST_LOCATION );
 
-  pushButton.SetTogglableButton( false );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("togglable"), true );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("togglable")), true, TEST_LOCATION );
 
-  DALI_TEST_CHECK( !pushButton.IsTogglableButton() );
-
-  pushButton.SetTogglableButton( true );
-
-  DALI_TEST_CHECK( pushButton.IsTogglableButton() );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton(void)
+int UtcDaliPushButtonAutoRepeatingPropertyAndTogglableButton(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton");
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetAutoRepeating( true );
-  pushButton.SetTogglableButton( true );
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("togglable"), true );
 
-  DALI_TEST_CHECK( pushButton.IsTogglableButton() );
-  DALI_TEST_CHECK( !pushButton.IsAutoRepeating() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("togglable")), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("autoRepeating")), false, TEST_LOCATION );
 
-  pushButton.SetTogglableButton( true );
-  pushButton.SetAutoRepeating( true );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("togglable"), true );
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
 
-  DALI_TEST_CHECK( pushButton.IsAutoRepeating() );
-  DALI_TEST_CHECK( !pushButton.IsTogglableButton() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("autoRepeating")), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("togglable")), false, TEST_LOCATION );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetGetSelected01(void)
+int UtcDaliPushButtonSelectedProperty01(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetGetSelected01");
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetTogglableButton( true );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("togglable"), true );
+
   pushButton.StateChangedSignal().Connect( &PushButtonSelected );
 
   gPushButtonSelectedState = false;
-  pushButton.SetSelected( true );
+  pushButton.SetProperty( Button::Property::SELECTED, true );
 
-  DALI_TEST_CHECK( pushButton.IsSelected() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED  ), true , TEST_LOCATION );
   DALI_TEST_CHECK( gPushButtonSelectedState );
 
-  pushButton.SetSelected( false );
+  pushButton.SetProperty( Button::Property::SELECTED, false );
 
-  DALI_TEST_CHECK( !pushButton.IsSelected() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED  ), false , TEST_LOCATION );
   DALI_TEST_CHECK( !gPushButtonSelectedState );
 
-  pushButton.SetSelected( true );
+  pushButton.SetProperty( Button::Property::SELECTED, true );
 
-  DALI_TEST_CHECK( pushButton.IsSelected() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED  ), true , TEST_LOCATION );
   DALI_TEST_CHECK( gPushButtonSelectedState );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetGetSelected02(void)
+int UtcDaliPushButtonSelectedProperty02(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetGetSelected02");
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetTogglableButton( false );
+  pushButton.SetProperty( pushButton.GetPropertyIndex("togglable"), false );
   pushButton.StateChangedSignal().Connect( &PushButtonSelected );
 
   gPushButtonSelectedState = false;
-  pushButton.SetSelected( true );
+  pushButton.SetProperty( Button::Property::SELECTED, true );
 
-  DALI_TEST_CHECK( !pushButton.IsSelected() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED  ), false , TEST_LOCATION );
   DALI_TEST_CHECK( !gPushButtonSelectedState );
 
-  pushButton.SetSelected( false );
+  pushButton.SetProperty( Button::Property::SELECTED, false );
 
-  DALI_TEST_CHECK( !pushButton.IsSelected() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED  ), false , TEST_LOCATION );
   DALI_TEST_CHECK( !gPushButtonSelectedState );
 
-  pushButton.SetSelected( true );
+  pushButton.SetProperty( Button::Property::SELECTED, true );
 
-  DALI_TEST_CHECK( !pushButton.IsSelected() );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED  ), false , TEST_LOCATION );
   DALI_TEST_CHECK( !gPushButtonSelectedState );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetGetAutorepeatingDelayValues01(void)
+int UtcDaliPushButtonAutorepeatingDelayPropertyValues01(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetGetAutorepeatingDelayValues01");
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetAutoRepeating( true );
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+
+  pushButton.SetProperty( Button::Property::INITIAL_AUTO_REPEATING_DELAY, 1.f );
 
-  pushButton.SetInitialAutoRepeatingDelay( 1.f );
-  DALI_TEST_EQUALS( pushButton.GetInitialAutoRepeatingDelay(), 1.f, TEST_LOCATION );
+  DALI_TEST_EQUALS( pushButton.GetProperty<float>(pushButton.GetPropertyIndex("initialAutoRepeatingDelay") ), 1.f, TEST_LOCATION );
 
-  pushButton.SetNextAutoRepeatingDelay( 1.f );
-  DALI_TEST_EQUALS( pushButton.GetNextAutoRepeatingDelay(), 1.f, TEST_LOCATION );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetGetAutorepeatingDelayValues02(void)
+int UtcDaliPushButtonAutorepeatingDelayPropertyValues02(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetGetAutorepeatingDelayValues02");
@@ -360,11 +444,11 @@ int UtcDaliPushButtonSetGetAutorepeatingDelayValues02(void)
   bool assert1( false );
   bool assert2( false );
 
-  pushButton.SetAutoRepeating( true );
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
 
   try
   {
-    pushButton.SetInitialAutoRepeatingDelay( -1.f );
+    pushButton.SetProperty( Button::Property::INITIAL_AUTO_REPEATING_DELAY, -1.f );
   }
   catch( Dali::DaliException& e )
   {
@@ -375,7 +459,7 @@ int UtcDaliPushButtonSetGetAutorepeatingDelayValues02(void)
 
   try
   {
-    pushButton.SetNextAutoRepeatingDelay( -1.f );
+    pushButton.SetProperty( Button::Property::NEXT_AUTO_REPEATING_DELAY, -1.f );
   }
   catch( Dali::DaliException& e )
   {
@@ -388,7 +472,7 @@ int UtcDaliPushButtonSetGetAutorepeatingDelayValues02(void)
   END_TEST;
 }
 
-int UtcDaliPushButtonSetLabelText(void)
+int UtcDaliPushButtonLabelProperty(void)
 {
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliPushButtonSetLabelText");
@@ -400,9 +484,15 @@ int UtcDaliPushButtonSetLabelText(void)
   application.SendNotification();
   application.Render();
 
-  pushButton.SetLabelText( STR );
+  pushButton.SetProperty( Toolkit::Button::Property::LABEL,
+                            Property::Map().Add( Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT )
+                                           .Add( Toolkit::TextVisual::Property::POINT_SIZE, 15.0f )
+                          );
+
 
-  DALI_TEST_EQUALS( pushButton.GetLabelText(), STR, TEST_LOCATION );
+  pushButton.SetProperty( Toolkit::Button::Property::LABEL, STR );
+
+  DALI_TEST_EQUALS( GetButtonText( pushButton ), STR, TEST_LOCATION );
 
   END_TEST;
 }
@@ -413,12 +503,12 @@ int UtcDaliPushButtonPressed(void)
   tet_infoline(" UtcDaliPushButtonPressed");
 
   PushButton pushButton = PushButton::New();
-  pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pushButton.SetPosition( 240, 400 );
-  pushButton.SetSize( 100, 100 );
+  pushButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::POSITION, BUTTON_POSITON_TO_GET_INSIDE_TOUCH_EVENTS );
+  pushButton.SetProperty( Actor::Property::SIZE, BUTTON_SIZE_TO_GET_INSIDE_TOUCH_EVENTS );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
   application.SendNotification();
   application.Render();
@@ -446,12 +536,12 @@ int UtcDaliPushButtonReleased(void)
   tet_infoline(" UtcDaliPushButtonReleased");
 
   PushButton pushButton = PushButton::New();
-  pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pushButton.SetPosition( 240, 400 );
-  pushButton.SetSize( 100, 100 );
+  pushButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::POSITION, BUTTON_POSITON_TO_GET_INSIDE_TOUCH_EVENTS );
+  pushButton.SetProperty( Actor::Property::SIZE, BUTTON_SIZE_TO_GET_INSIDE_TOUCH_EVENTS );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
   application.SendNotification();
   application.Render();
@@ -529,12 +619,12 @@ int UtcDaliPushButtonSelected(void)
   tet_infoline(" UtcDaliPushButtonSelected");
 
   PushButton pushButton = PushButton::New();
-  pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pushButton.SetPosition( 240, 400 );
-  pushButton.SetSize( 100, 100 );
+  pushButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::POSITION, BUTTON_POSITON_TO_GET_INSIDE_TOUCH_EVENTS );
+  pushButton.SetProperty( Actor::Property::SIZE, BUTTON_SIZE_TO_GET_INSIDE_TOUCH_EVENTS );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
   application.SendNotification();
   application.Render();
@@ -558,7 +648,7 @@ int UtcDaliPushButtonSelected(void)
   DALI_TEST_CHECK( !gPushButtonSelectedState );
 
   // Set togglable property.
-  pushButton.SetTogglableButton( true );
+  pushButton.SetProperty( Button::Property::TOGGLABLE, true );
 
   // Test2. Touch point down and up inside the button twice.
   gPushButtonSelectedState = false;
@@ -615,7 +705,8 @@ int UtcDaliPushButtonSelected(void)
   // Test5. Touch point down outside and up inside the button.
   // Start in unselected state
   pushButton.SetProperty( Button::Property::SELECTED, false );
-  DALI_TEST_CHECK( !pushButton.IsSelected());
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("selected") ),false , TEST_LOCATION );
 
   gPushButtonSelectedState = false;
   event = Dali::Integration::TouchEvent();
@@ -634,21 +725,6 @@ int UtcDaliPushButtonSelected(void)
   END_TEST;
 }
 
-int UtcDaliPushButtonPropertySetIconAlignment(void)
-{
-  ToolkitTestApplication application;
-  tet_infoline(" UtcDaliPushButtonPropertySetIconAlignment");
-
-  PushButton pushButton = PushButton::New();
-  pushButton.SetProperty( Toolkit::PushButton::Property::ICON_ALIGNMENT, "TOP" );
-  DALI_TEST_EQUALS( pushButton.GetProperty<std::string>( Toolkit::PushButton::Property::ICON_ALIGNMENT ), "TOP", TEST_LOCATION );
-
-  pushButton.SetProperty( Toolkit::PushButton::Property::ICON_ALIGNMENT, "RIGHT" );
-  DALI_TEST_EQUALS( pushButton.GetProperty<std::string>( Toolkit::PushButton::Property::ICON_ALIGNMENT ), "RIGHT", TEST_LOCATION );
-
-  END_TEST;
-}
-
 int UtcDaliPushButtonPropertySetLabelPadding(void)
 {
   ToolkitTestApplication application;
@@ -689,15 +765,18 @@ int UtcDaliPushButtonPaddingLayout(void)
   PushButton pushButton = PushButton::New();
 
   const Vector4 TEST_ICON_PADDING( 20.0f, 20.0f, 20.0f, 20.0f );
-  const Vector4 TEST_LABEL_PADDING( 10.0f, 10.0f, 10.0f ,10.0f );
-  const Vector2 TEST_IMAGE_SIZE = Vector2( 5.0f, 5.0f);
+  const Vector4 TEST_LABEL_PADDING( 10.0f, 10.0f, 10.0f, 10.0f );
 
-  pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pushButton.SetPosition( 0.0f, 0.0f );
+  // Get actual size of test image
+  ImageDimensions testImageSize = Dali::GetClosestImageSize( TEST_IMAGE_ONE );
+  const Vector2 TEST_IMAGE_SIZE( testImageSize.GetWidth(), testImageSize.GetHeight() );
+
+  pushButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
   pushButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
   application.SendNotification();
   application.Render();
@@ -712,7 +791,7 @@ int UtcDaliPushButtonPaddingLayout(void)
   DALI_TEST_EQUALS( size, Vector2::ZERO, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
 
   // Check label only padding
-  pushButton.SetLabelText( "Label" );
+  pushButton.SetProperty( Toolkit::Button::Property::LABEL, "Label" );
 
   application.SendNotification();
   application.Render();
@@ -741,19 +820,17 @@ int UtcDaliPushButtonPaddingLayout(void)
   pushButton.Unparent();
   pushButton = PushButton::New();
 
-  pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pushButton.SetPosition( 0.0f, 0.0f );
+  pushButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
   pushButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
-  TestPlatformAbstraction& platform = application.GetPlatform();
-  platform.SetClosestImageSize( TEST_IMAGE_SIZE );
 
-  pushButton.SetProperty( Toolkit::PushButton::Property::ICON_ALIGNMENT, "RIGHT" );
-  pushButton.SetProperty( Toolkit::PushButton::Property::UNSELECTED_ICON, TEST_IMAGE_ONE );
-  pushButton.SetProperty( Toolkit::PushButton::Property::SELECTED_ICON, TEST_IMAGE_ONE );
+  pushButton.SetProperty( Toolkit::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "BEGIN" );
+  pushButton.SetProperty( Toolkit::Button::Property::UNSELECTED_VISUAL, TEST_IMAGE_ONE );
+  pushButton.SetProperty( Toolkit::Button::Property::SELECTED_VISUAL, TEST_IMAGE_ONE );
 
   application.SendNotification();
   application.Render();
@@ -772,11 +849,12 @@ int UtcDaliPushButtonPaddingLayout(void)
   size.width = pushButton.GetRelayoutSize( Dimension::WIDTH );
   size.height = pushButton.GetRelayoutSize( Dimension::HEIGHT );
   tet_printf( "Button RelayoutSize after icon padding(%f,%f)\n", size.width, size.height );
-  const Vector2 expectedIconAndPaddingSize( TEST_ICON_PADDING.x+TEST_ICON_PADDING.y+TEST_IMAGE_SIZE.width, TEST_ICON_PADDING.w+TEST_ICON_PADDING.z +TEST_IMAGE_SIZE.height );
+  const Vector2 expectedIconAndPaddingSize( TEST_ICON_PADDING.x+TEST_ICON_PADDING.y+TEST_IMAGE_SIZE.width, TEST_ICON_PADDING.w + TEST_ICON_PADDING.z + TEST_IMAGE_SIZE.height );
   DALI_TEST_EQUALS( size, expectedIconAndPaddingSize, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
 
   // Now test padding for both label and icon simultaneously.
-  pushButton.SetLabelText( "Label" );
+  pushButton.SetProperty( Toolkit::Button::Property::LABEL, "Label" );
+
   application.SendNotification();
   application.Render();
 
@@ -794,7 +872,8 @@ int UtcDaliPushButtonPaddingLayout(void)
   tet_printf( "Button RelayoutSize after icon and label padding(%f,%f)\n", size.width, size.height );
 
   DALI_TEST_EQUALS( size.width, sizeLabelAndPadding.width + expectedIconAndPaddingSize.width, TEST_LOCATION );
-  DALI_TEST_GREATER( size.height, expectedIconAndPaddingSize.width, TEST_LOCATION ); // Test height of control is greater than icon and padding. As Text set to larger values.
+  // Test height of control is same as icon and padding, as Text is smaller than icon
+  DALI_TEST_EQUALS( size.height, expectedIconAndPaddingSize.height, TEST_LOCATION );
 
   END_TEST;
 }
@@ -832,19 +911,22 @@ int UtcDaliPushButtonAlignmentLayout(void)
 
   const Vector4 TEST_ICON_PADDING( 70.0f, 70.0f, 70.0f, 70.0f );
   const Vector4 TEST_LABEL_PADDING( 30.0f, 30.0f, 30.0f, 30.0f );
-  const Vector2 TEST_IMAGE_SIZE = Vector2( 10.0f, 10.0f);
+
+  // Get actual size of test image
+  ImageDimensions testImageSize = Dali::GetClosestImageSize( TEST_IMAGE_ONE );
+  const Vector2 TEST_IMAGE_SIZE( testImageSize.GetWidth(), testImageSize.GetHeight() );
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pushButton.SetPosition( 0.0f, 0.0f );
+  pushButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
   pushButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
   // Add a label and get size of control
-  pushButton.SetLabelText( "Label" );
+  pushButton.SetProperty( Toolkit::Button::Property::LABEL, "Label" );
   application.SendNotification();
   application.Render();
 
@@ -872,13 +954,10 @@ int UtcDaliPushButtonAlignmentLayout(void)
   const Vector2 testImageWithPaddingSize = Vector2 ( ( TEST_IMAGE_SIZE.width + TEST_ICON_PADDING.x + TEST_ICON_PADDING.y ),
                                                      ( TEST_IMAGE_SIZE.height + TEST_ICON_PADDING.w + TEST_ICON_PADDING.z ) );
 
-  TestPlatformAbstraction& platform = application.GetPlatform();
-  platform.SetClosestImageSize( TEST_IMAGE_SIZE );
-
   // Add Icon and set its alignment
-  pushButton.SetProperty( Toolkit::PushButton::Property::ICON_ALIGNMENT, "RIGHT" );
-  pushButton.SetProperty( Toolkit::PushButton::Property::UNSELECTED_ICON, TEST_IMAGE_ONE );
-  pushButton.SetProperty( Toolkit::PushButton::Property::SELECTED_ICON, TEST_IMAGE_ONE );
+  pushButton.SetProperty( Toolkit::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "BEGIN" );
+  pushButton.SetProperty( Toolkit::Button::Property::UNSELECTED_VISUAL, TEST_IMAGE_ONE );
+  pushButton.SetProperty( Toolkit::Button::Property::SELECTED_VISUAL, TEST_IMAGE_ONE );
   pushButton.SetProperty( Toolkit::PushButton::Property::ICON_PADDING, TEST_ICON_PADDING );
 
   application.SendNotification();
@@ -905,7 +984,7 @@ int UtcDaliPushButtonAlignmentLayout(void)
   DALI_TEST_EQUALS( size.height, ( std::max( testImageWithPaddingSize.height, labelAndPaddingSize.height) ) , Math::MACHINE_EPSILON_1000, TEST_LOCATION );
 
   // Now test left alignment matches right for size.
-  pushButton.SetProperty( Toolkit::PushButton::Property::ICON_ALIGNMENT, "LEFT" );
+  pushButton.SetProperty( Toolkit::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "END" );
 
   application.SendNotification();
   application.Render();
@@ -946,8 +1025,8 @@ int UtcDaliPushButtonAlignmentLayout(void)
    *
    */
 
-  tet_infoline("SetProperty on ICON_ALIGNMENT should relayout the Button");
-  pushButton.SetProperty( Toolkit::PushButton::Property::ICON_ALIGNMENT, "TOP" );
+  tet_infoline("SetProperty on LABEL_RELATIVE_ALIGNMENT should relayout the Button");
+  pushButton.SetProperty( Toolkit::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "BOTTOM" );
 
   application.SendNotification();
   application.Render();
@@ -982,7 +1061,7 @@ int UtcDaliPushButtonAlignmentLayout(void)
    *  +---------+
    */
   tet_infoline(" Test Icon BOTTOM alignment - Width grows to largest of Icon or label (plus padding)");
-  pushButton.SetProperty( Toolkit::PushButton::Property::ICON_ALIGNMENT, "BOTTOM" );
+  pushButton.SetProperty( Toolkit::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "TOP" );
 
   application.SendNotification();
   application.Render();
@@ -1002,9 +1081,9 @@ int UtcDaliPushButtonSetUnSelectedVisual01P(void)
   ToolkitTestApplication application;
 
   PushButton pushButton = PushButton::New();
-  pushButton.SetSize(100.0f, 100.0f);
+  pushButton.SetProperty( Actor::Property::SIZE, Vector2( BUTTON_SIZE_TO_GET_INSIDE_TOUCH_EVENTS ) );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
   Property::Map propertyMap;
   propertyMap.Insert(Visual::Property::TYPE,  Visual::COLOR);
@@ -1024,7 +1103,7 @@ int UtcDaliPushButtonSetUnSelectedVisual01P(void)
 
   tet_printf("Remove button from stage\n" );
 
-  Stage::GetCurrent().Remove( pushButton );
+  application.GetScene().Remove( pushButton );
 
   rendererCount = pushButton.GetRendererCount();
   tet_printf("After removing pushbutton from stage the renderer count is(%d)\n ", rendererCount );
@@ -1040,9 +1119,9 @@ int UtcDaliPushButtonSetUnSelectedVisual01P(void)
 
   tet_printf("Added UNSELECTED_VISUAL and add button back to Stage\n");
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
 
-  tet_printf("With UNSELECTED_BACKGROUND_VISUAL and UNSELECTED_ICON the renderer count is(%d)\n", pushButton.GetRendererCount() );
+  tet_printf("With UNSELECTED_BACKGROUND_VISUAL and UNSELECTED_VISUAL the renderer count is(%d)\n", pushButton.GetRendererCount() );
 
   DALI_TEST_EQUALS( pushButton.GetRendererCount(), 2, TEST_LOCATION );
 
@@ -1057,11 +1136,11 @@ int UtcDaliPushButtonSetSelectedVisualN(void)
 
   PushButton pushButton = PushButton::New();
 
-  pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  pushButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
   pushButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
   application.SendNotification();
   application.Render(0);
 
@@ -1069,7 +1148,7 @@ int UtcDaliPushButtonSetSelectedVisualN(void)
   tet_printf("RendererCount prior to adding visual(%d)\n",preRendererCount);
   DALI_TEST_EQUALS( preRendererCount, 0, TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( pushButton );
+  application.GetScene().Remove( pushButton );
   application.SendNotification();
   application.Render(0);
 
@@ -1077,12 +1156,11 @@ int UtcDaliPushButtonSetSelectedVisualN(void)
   const int BROKEN_VISUAL_TYPE = 999999999;
 
   colorMap.Insert(Visual::Property::TYPE,  BROKEN_VISUAL_TYPE);
-  //colorMap.Insert(Visual::Property::TYPE,  Visual::COLOR);
   colorMap.Insert(BorderVisual::Property::COLOR,  Color::BLUE);
   colorMap.Insert(BorderVisual::Property::SIZE,  5.f);
   pushButton.SetProperty( Toolkit::Button::Property::UNSELECTED_VISUAL, colorMap );
 
-  Stage::GetCurrent().Add( pushButton );
+  application.GetScene().Add( pushButton );
   application.SendNotification();
   application.Render(0);
 
@@ -1093,143 +1171,241 @@ int UtcDaliPushButtonSetSelectedVisualN(void)
   END_TEST;
 }
 
-int UtcDaliPushButtonSetButtonImageP(void)
+int UtcDaliPushButtonToggleSignalP(void)
 {
   ToolkitTestApplication application;
+  tet_infoline(" UtcDaliButtonToggleSignalP Ensure Signals emitted");
 
   PushButton button = PushButton::New();
-  Stage::GetCurrent().Add( button );
+  button.SetProperty( Button::Property::TOGGLABLE, true);
 
-  try
-  {
-    button.SetButtonImage( ImageView::New() );
-    DALI_TEST_CHECK( true );
-  }
-  catch(...)
-  {
-    DALI_TEST_CHECK( false );
-  }
+  SetupButtonForTestTouchEvents( application, button, true );
+
+  application.GetScene().Add( button );
+
+  application.SendNotification();
+  application.Render();
+
+  // connect to its signal
+  button.ClickedSignal().Connect( &PushButtonClicked );
+  gPushButtonClicked = false;
+
+  tet_infoline(" Touch down and up within button");
+  Dali::Integration::TouchEvent event;
+  event = Dali::Integration::TouchEvent();
+  event.AddPoint( GetPointDownInside() );
+  application.ProcessEvent( event );
+
+  event = Dali::Integration::TouchEvent();
+  event.AddPoint( GetPointUpInside() );
+  application.ProcessEvent( event );
+
+  DALI_TEST_EQUALS( gPushButtonClicked, true, TEST_LOCATION );
 
   END_TEST;
 }
 
-int UtcDaliPushButtonSetBackgroundImageP(void)
+// Deprecated API Tests
+
+int UtcDaliPushButtonSetGetAutoRepeating(void)
 {
   ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetGetAutoRepeating");
 
-  PushButton button = PushButton::New();
-  Stage::GetCurrent().Add( button );
+  PushButton pushButton = PushButton::New();
 
-  try
-  {
-    button.SetBackgroundImage( ImageView::New() );
-    DALI_TEST_CHECK( true );
-  }
-  catch(...)
-  {
-    DALI_TEST_CHECK( false );
-  }
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::AUTO_REPEATING ), true, TEST_LOCATION );
 
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, false );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::AUTO_REPEATING ), false, TEST_LOCATION );
+
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::AUTO_REPEATING ), true, TEST_LOCATION );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetSelectedImageP(void)
+int UtcDaliPushButtonSetGetTogglableButton(void)
 {
   ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetGetTogglableButton");
 
-  PushButton button = PushButton::New();
-  Stage::GetCurrent().Add( button );
+  PushButton pushButton = PushButton::New();
 
-  try
-  {
-    button.SetSelectedImage( ImageView::New() );
-    DALI_TEST_CHECK( true );
-  }
-  catch(...)
-  {
-    DALI_TEST_CHECK( false );
-  }
+  pushButton.SetProperty( Button::Property::TOGGLABLE, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::TOGGLABLE ), true, TEST_LOCATION );
+
+  pushButton.SetProperty( Button::Property::TOGGLABLE, false );
 
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::TOGGLABLE ), false, TEST_LOCATION );
+
+  pushButton.SetProperty( Button::Property::TOGGLABLE, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::TOGGLABLE ), true, TEST_LOCATION );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetSelectedBackgroundImageP(void)
+int UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton(void)
 {
   ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton");
 
-  PushButton button = PushButton::New();
-  Stage::GetCurrent().Add( button );
+  PushButton pushButton = PushButton::New();
 
-  try
-  {
-    button.SetSelectedBackgroundImage( ImageView::New() );
-    DALI_TEST_CHECK( true );
-  }
-  catch(...)
-  {
-    DALI_TEST_CHECK( false );
-  }
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+  pushButton.SetProperty( Button::Property::TOGGLABLE, true);
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::TOGGLABLE ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::AUTO_REPEATING ), false, TEST_LOCATION );
+
+  pushButton.SetProperty( Button::Property::TOGGLABLE, true);
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::AUTO_REPEATING ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::TOGGLABLE ), false, TEST_LOCATION );
 
   END_TEST;
 }
 
-int UtcDaliPushButtonSetDisabledBackgroundImageP(void)
+int UtcDaliPushButtonSetGetSelected01(void)
 {
   ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetGetSelected01");
 
-  PushButton button = PushButton::New();
-  Stage::GetCurrent().Add( button );
+  PushButton pushButton = PushButton::New();
 
-  try
-  {
-    button.SetDisabledBackgroundImage( ImageView::New() );
-    DALI_TEST_CHECK( true );
-  }
-  catch(...)
-  {
-    DALI_TEST_CHECK( false );
-  }
+  pushButton.SetProperty( Button::Property::TOGGLABLE, true);
+  pushButton.StateChangedSignal().Connect( &PushButtonSelected );
+
+  gPushButtonSelectedState = false;
+  pushButton.SetProperty( Button::Property::SELECTED, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED), true, TEST_LOCATION );
+  DALI_TEST_CHECK( gPushButtonSelectedState );
+
+  pushButton.SetProperty( Button::Property::SELECTED, false );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED), false, TEST_LOCATION );
+  DALI_TEST_CHECK( !gPushButtonSelectedState );
+
+  pushButton.SetProperty( Button::Property::SELECTED, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED), true, TEST_LOCATION );
+  DALI_TEST_CHECK( gPushButtonSelectedState );
+  END_TEST;
+}
+
+int UtcDaliPushButtonSetGetSelected02(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetGetSelected02");
+
+  PushButton pushButton = PushButton::New();
+
+  tet_infoline(" Set Toggle feature off");
+  pushButton.SetProperty( Button::Property::TOGGLABLE, false);
+  pushButton.StateChangedSignal().Connect( &PushButtonSelected );
+
+  gPushButtonSelectedState = false;
+  tet_infoline(" Try to set to selected, expecting failure as not a toggle button");
+  pushButton.SetProperty( Button::Property::SELECTED, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED), false, TEST_LOCATION );
+  DALI_TEST_CHECK( !gPushButtonSelectedState );
+
+  pushButton.SetProperty( Button::Property::SELECTED, false );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED), false, TEST_LOCATION );
+  DALI_TEST_CHECK( !gPushButtonSelectedState );
+
+  pushButton.SetProperty( Button::Property::SELECTED, true );
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<bool>( Button::Property::SELECTED ), false, TEST_LOCATION );
+  DALI_TEST_CHECK( !gPushButtonSelectedState );
 
   END_TEST;
 }
 
+int UtcDaliPushButtonSetGetAutorepeatingDelayValues01(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetGetAutorepeatingDelayValues01");
+
+  PushButton pushButton = PushButton::New();
+
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+
+  pushButton.SetProperty( Button::Property::INITIAL_AUTO_REPEATING_DELAY, 1.f);
+  DALI_TEST_EQUALS( pushButton.GetProperty<float>( Button::Property::INITIAL_AUTO_REPEATING_DELAY ), 1.f, TEST_LOCATION );
+
+  pushButton.SetProperty( Button::Property::NEXT_AUTO_REPEATING_DELAY, 1.f);
+
+  DALI_TEST_EQUALS( pushButton.GetProperty<float>( Button::Property::NEXT_AUTO_REPEATING_DELAY ), 1.f, TEST_LOCATION );
+  END_TEST;
+}
 
-int UtcDaliPushButtonSetDisabledImageP(void)
+int UtcDaliPushButtonSetGetAutorepeatingDelayValues02(void)
 {
   ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetGetAutorepeatingDelayValues02");
 
-  PushButton button = PushButton::New();
-  Stage::GetCurrent().Add( button );
+  PushButton pushButton = PushButton::New();
+
+  bool assert1( false );
+  bool assert2( false );
+
+  pushButton.SetProperty( Button::Property::AUTO_REPEATING, true );
+
+  try
+  {
+    pushButton.SetProperty( Button::Property::INITIAL_AUTO_REPEATING_DELAY, -1.f );
+  }
+  catch( Dali::DaliException& e )
+  {
+    DALI_TEST_PRINT_ASSERT( e );
+    DALI_TEST_EQUALS(e.condition, "initialAutoRepeatingDelay > 0.f", TEST_LOCATION);
+    assert1 = true;
+  }
 
   try
   {
-    button.SetDisabledImage( ImageView::New() );
-    DALI_TEST_CHECK( true );
+    pushButton.SetProperty( Button::Property::NEXT_AUTO_REPEATING_DELAY, -1.f );
   }
-  catch(...)
+  catch( Dali::DaliException& e )
   {
-    DALI_TEST_CHECK( false );
+    DALI_TEST_PRINT_ASSERT( e );
+    DALI_TEST_EQUALS(e.condition, "nextAutoRepeatingDelay > 0.f", TEST_LOCATION);
+    assert2 = true;
   }
 
+  DALI_TEST_CHECK( assert1 && assert2 );
   END_TEST;
 }
 
-int UtcDaliPushButtonSetDisabledSelectedImageP(void)
+int UtcDaliPushButtonSetLabelText(void)
 {
   ToolkitTestApplication application;
+  tet_infoline(" UtcDaliPushButtonSetLabelText");
 
-  PushButton button = PushButton::New();
-  Stage::GetCurrent().Add( button );
+  const std::string STR( "Hola!" );
 
-  try
-  {
-    button.SetDisabledSelectedImage( ImageView::New() );
-    DALI_TEST_CHECK( true );
-  }
-  catch(...)
-  {
-    DALI_TEST_CHECK( false );
-  }
+  PushButton pushButton = PushButton::New();
+
+  pushButton.SetProperty( Toolkit::Button::Property::LABEL,
+                          Property::Map().Add( Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT )
+                                         .Add( Toolkit::TextVisual::Property::POINT_SIZE, 15.0f )
+                        );
+
+  application.SendNotification();
+  application.Render();
+
+  pushButton.SetProperty( Button::Property::LABEL, STR );
+
+  DALI_TEST_EQUALS(GetButtonText( pushButton ), STR, TEST_LOCATION);
 
   END_TEST;
 }