+ application.GetScene().Add(pushButton);
+ application.SendNotification();
+ application.Render(0);
+
+ unsigned int preRendererCount = pushButton.GetRendererCount();
+ tet_printf("RendererCount prior to adding visual(%d)\n", preRendererCount);
+ DALI_TEST_EQUALS(preRendererCount, 0, TEST_LOCATION);
+
+ application.GetScene().Remove(pushButton);
+ application.SendNotification();
+ application.Render(0);
+
+ Property::Map colorMap;
+ const int BROKEN_VISUAL_TYPE = 999999999;
+
+ colorMap.Insert(Visual::Property::TYPE, BROKEN_VISUAL_TYPE);
+ colorMap.Insert(BorderVisual::Property::COLOR, Color::BLUE);
+ colorMap.Insert(BorderVisual::Property::SIZE, 5.f);
+ pushButton.SetProperty(Toolkit::Button::Property::UNSELECTED_VISUAL, colorMap);
+
+ application.GetScene().Add(pushButton);
+ application.SendNotification();
+ application.Render(0);
+
+ unsigned int postRendererCount = pushButton.GetRendererCount();
+ tet_printf("RendererCount post broken visual (%d)\n", postRendererCount);
+ DALI_TEST_EQUALS(postRendererCount, 0, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliPushButtonToggleSignalP(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliButtonToggleSignalP Ensure Signals emitted");
+
+ PushButton button = PushButton::New();
+ button.SetProperty(Button::Property::TOGGLABLE, true);
+
+ 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;
+}
+
+// Deprecated API Tests
+
+int UtcDaliPushButtonSetGetAutoRepeating(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonSetGetAutoRepeating");
+
+ PushButton pushButton = PushButton::New();
+
+ 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 UtcDaliPushButtonSetGetTogglableButton(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonSetGetTogglableButton");
+
+ PushButton pushButton = PushButton::New();
+
+ 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 UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton");
+
+ PushButton pushButton = PushButton::New();
+
+ 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 UtcDaliPushButtonSetGetSelected01(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonSetGetSelected01");
+
+ PushButton pushButton = PushButton::New();
+
+ 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 UtcDaliPushButtonSetGetAutorepeatingDelayValues02(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonSetGetAutorepeatingDelayValues02");
+
+ 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
+ {
+ pushButton.SetProperty(Button::Property::NEXT_AUTO_REPEATING_DELAY, -1.f);
+ }
+ catch(Dali::DaliException& e)
+ {
+ 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 UtcDaliPushButtonSetLabelText(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonSetLabelText");
+
+ const std::string STR("Hola!");
+
+ PushButton pushButton = PushButton::New();