+ button.SetProperty( Toolkit::Button::Property::AUTO_REPEATING, true );
+ button.SetProperty( Toolkit::Button::Property::INITIAL_AUTO_REPEATING_DELAY, AUTO_REPEATING_DELAY );
+ // connect to its touch signal
+ ConnectionTracker* testTracker = new ConnectionTracker();
+ button.PressedSignal().Connect( &ButtonCallback );
+ button.ClickedSignal().Connect( &ButtonCallback );
+ bool clickedSignal = false;
+ bool pressedSignal = false;
+ button.ConnectSignal( testTracker, "pressed", CallbackFunctor(&pressedSignal) );
+ button.ConnectSignal( testTracker, "clicked", CallbackFunctor(&clickedSignal) );
+
+ Dali::Integration::TouchEvent event;
+
+ // Touch point down and up inside the button.
+
+ gIsCalledButtonCallback = false;
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint( GetPointDownInside() );
+ application.ProcessEvent( event );
+
+ DALI_TEST_EQUALS( gIsCalledButtonCallback, true, TEST_LOCATION );
+ DALI_TEST_EQUALS( pressedSignal, true, TEST_LOCATION );
+ tet_infoline("Consume first clicked signal then wait\n");
+
+ gIsCalledButtonCallback = false;
+ Dali::Timer timer = Timer::New( AUTO_REPEATING_DELAY );
+ timer.MockEmitSignal();
+ application.Wait( AUTO_REPEATING_DELAY*2 );
+ DALI_TEST_EQUALS( clickedSignal, true, TEST_LOCATION );
+ tet_infoline("Check gIsCalledButtonCallback was called again after last consumption of it.\n");
+
+ DALI_TEST_EQUALS( gIsCalledButtonCallback, true, TEST_LOCATION );
+
+ gIsCalledButtonCallback = false;
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint( GetPointUpInside() );
+ application.ProcessEvent( event );
+
+ DALI_TEST_EQUALS( gIsCalledButtonCallback, true, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliButtonSetInitialAutoRepeatingDelayP(void)
+{
+ ToolkitTestApplication application;
+
+ Button button = PushButton::New();
+
+ button.SetInitialAutoRepeatingDelay( 0.5f );
+
+ DALI_TEST_EQUALS( button.GetInitialAutoRepeatingDelay(), 0.5f, TEST_LOCATION );
+
+ button.SetInitialAutoRepeatingDelay( 0.2f );
+
+ DALI_TEST_EQUALS( button.GetInitialAutoRepeatingDelay(), 0.2f, TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliButtonSetNextAutoRepeatingDelayP(void)
+{
+ ToolkitTestApplication application;
+
+ Button button = PushButton::New();
+
+ button.SetNextAutoRepeatingDelay( 0.5f );
+
+ DALI_TEST_EQUALS( button.GetNextAutoRepeatingDelay(), 0.5f, TEST_LOCATION );
+
+ button.SetProperty( Button::Property::NEXT_AUTO_REPEATING_DELAY, 0.2f );
+
+ DALI_TEST_EQUALS( button.GetNextAutoRepeatingDelay(), 0.2f, TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliButtonSetTogglableButtonP(void)
+{
+ ToolkitTestApplication application;
+
+ Button button = PushButton::New();
+
+ button.SetTogglableButton( true );
+
+ DALI_TEST_CHECK( button.IsTogglableButton() );
+
+ button.SetTogglableButton( false );
+
+ DALI_TEST_CHECK( !button.IsTogglableButton() );
+ END_TEST;
+}
+
+int UtcDaliButtonSetSelectedP(void)
+{
+ ToolkitTestApplication application;
+
+ Button button = PushButton::New();
+ button.SetTogglableButton( true );
+
+ button.SetSelected( true );
+
+ DALI_TEST_CHECK( button.IsSelected() );
+
+ button.SetSelected( false );
+
+ DALI_TEST_CHECK( !button.IsSelected() );
+ END_TEST;
+}
+
+int UtcDaliButtonSetAnimationTimeP(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliButtonSetAnimationTimeP");
+
+ Button button = PushButton::New();
+
+ button.SetAnimationTime( ANIMATION_TIME );
+
+ DALI_TEST_EQUALS( button.GetAnimationTime(), ANIMATION_TIME, TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliButtonSetLabelStringP(void)
+{
+ ToolkitTestApplication application;
+
+ Button button = PushButton::New();
+
+ button.SetLabelText( "Button Label" );
+
+ DALI_TEST_EQUALS( button.GetLabelText(), "Button Label", TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliButtonSetLabelPropertyP(void)
+{
+ ToolkitTestApplication application;
+
+ const std::string TEST_LABEL1 = "test label one";
+ const std::string TEST_LABEL2 = "test label two";
+
+ Button button = PushButton::New();
+
+ button.SetProperty( Button::Property::LABEL_TEXT, TEST_LABEL1 );
+
+ std::string labelText = button.GetProperty<std::string>( Button::Property::LABEL_TEXT );
+
+ DALI_TEST_EQUALS( labelText, TEST_LABEL1, TEST_LOCATION );
+
+ Property::Map propertyMap;
+ propertyMap.Insert( Toolkit::TextLabel::Property::TEXT, TEST_LABEL2 );
+ propertyMap.Insert( Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE);
+ button.SetProperty( Button::Property::LABEL, propertyMap );
+
+ labelText = button.GetProperty<std::string>( Button::Property::LABEL_TEXT );
+
+ DALI_TEST_EQUALS( labelText, TEST_LABEL2, TEST_LOCATION );