+ // Test2. Touch point down and up inside the button twice.
+ gPushButtonSelectedState = false;
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointDownInside());
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointUpInside());
+ application.ProcessEvent(event);
+
+ DALI_TEST_CHECK(gPushButtonSelectedState);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointDownInside());
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointUpInside());
+ application.ProcessEvent(event);
+
+ DALI_TEST_CHECK(!gPushButtonSelectedState);
+
+ // Test3. Touch point down and up outside the button.
+
+ gPushButtonSelectedState = false;
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointDownOutside());
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointUpOutside());
+ application.ProcessEvent(event);
+
+ DALI_TEST_CHECK(!gPushButtonSelectedState);
+
+ // Test4. Touch point down inside and up outside the button.
+ // State changes on Button down
+ gPushButtonSelectedState = false;
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointDownInside());
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointLeave());
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointUpOutside());
+ application.ProcessEvent(event);
+
+ DALI_TEST_CHECK(gPushButtonSelectedState);
+
+ // Test5. Touch point down outside and up inside the button.
+ // Start in unselected state
+ pushButton.SetProperty(Button::Property::SELECTED, false);
+
+ DALI_TEST_EQUALS(pushButton.GetProperty<bool>(pushButton.GetPropertyIndex("selected")), false, TEST_LOCATION);
+
+ gPushButtonSelectedState = false;
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointDownOutside());
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointEnter());
+ application.ProcessEvent(event);
+
+ event = Dali::Integration::TouchEvent();
+ event.AddPoint(GetPointUpInside());
+ application.ProcessEvent(event);
+
+ DALI_TEST_CHECK(!gPushButtonSelectedState);
+ END_TEST;
+}
+
+int UtcDaliPushButtonPropertySetLabelPadding(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonPropertySetLabelPadding");
+
+ PushButton pushButton = PushButton::New();
+ pushButton.SetProperty(Toolkit::PushButton::Property::LABEL_PADDING, Vector4(1.0f, 1.0f, 1.0f, 1.0f));
+ DALI_TEST_EQUALS(pushButton.GetProperty<Vector4>(Toolkit::PushButton::Property::LABEL_PADDING), Vector4(1.0f, 1.0f, 1.0f, 1.0f), Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+ pushButton.SetProperty(Toolkit::PushButton::Property::LABEL_PADDING, Vector4(10.0f, 10.0f, 10.0f, 10.0f));
+ DALI_TEST_EQUALS(pushButton.GetProperty<Vector4>(Toolkit::PushButton::Property::LABEL_PADDING), Vector4(10.0f, 10.0f, 10.0f, 10.0f), Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliPushButtonPropertySetIconPadding(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonPropertySetIconPadding");
+
+ PushButton pushButton = PushButton::New();
+ pushButton.SetProperty(Toolkit::PushButton::Property::ICON_PADDING, Vector4(1.0f, 1.0f, 1.0f, 1.0f));
+ DALI_TEST_EQUALS(pushButton.GetProperty<Vector4>(Toolkit::PushButton::Property::ICON_PADDING), Vector4(1.0f, 1.0f, 1.0f, 1.0f), Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+ pushButton.SetProperty(Toolkit::PushButton::Property::ICON_PADDING, Vector4(10.0f, 10.0f, 10.0f, 10.0f));
+ DALI_TEST_EQUALS(pushButton.GetProperty<Vector4>(Toolkit::PushButton::Property::ICON_PADDING), Vector4(10.0f, 10.0f, 10.0f, 10.0f), Math::MACHINE_EPSILON_1000, TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliPushButtonPaddingLayout(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliPushButtonPaddingLayout");
+
+ // This test creates padding for an icon and a label.
+ // The icon and label are each enabled and disabled to confirm the correct padding is used.
+ 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);
+
+ // 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);
+
+ application.GetScene().Add(pushButton);