X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-PushButton.cpp;h=0d259d92bbfa4b680d636c6a8f1dcca3112bb8dc;hb=HEAD;hp=26abdea6cecc896a621b9a845158cce0ff072d05;hpb=fa6279fb2830427d5ab569ca14e6ade1557ef2fa;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp b/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp index 26abdea..4e5ad76 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp @@ -1,29 +1,34 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ -#include #include +#include // Need to override adaptor classes for toolkit test harness, so include // test harness headers before dali headers. #include +#include #include #include -#include + +#include + +#include using namespace Dali; using namespace Toolkit; @@ -40,17 +45,22 @@ void utc_dali_toolkit_pushbutton_cleanup(void) 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 gPushButtonToggleState = false; -bool PushButtonToggled( Button button, bool toggled ) +static bool gPushButtonSelectedState = false; +bool PushButtonSelected(Button button) { - gPushButtonToggleState = toggled && ( toggled == static_cast( button ).IsToggled() ); + gPushButtonSelectedState = button.GetProperty(button.GetPropertyIndex("selected")); return true; } static bool gPushButtonPressed = false; -static bool PushButtonPressed( Button button ) +static bool PushButtonPressed(Button button) { gPushButtonPressed = true; return true; @@ -58,605 +68,1338 @@ static bool PushButtonPressed( Button button ) static bool gPushButtonReleased = false; -static bool PushButtonReleased( Button button ) +static bool PushButtonReleased(Button button) { gPushButtonReleased = true; return true; } -const Dali::TouchPoint pointDownInside( 0, TouchPoint::Down, 240, 400 ); -const Dali::TouchPoint pointUpInside( 0, TouchPoint::Up, 240, 400 ); -const Dali::TouchPoint pointLeave( 0, TouchPoint::Leave, 240, 400 ); -const Dali::TouchPoint pointEnter( 0, TouchPoint::Motion, 240, 400 ); -const Dali::TouchPoint pointMotionOut( 0, TouchPoint::Motion, 10, 10 ); -const Dali::TouchPoint pointDownOutside( 0, TouchPoint::Down, 10, 10 ); -const Dali::TouchPoint pointUpOutside( 0, TouchPoint::Up, 10, 10 ); +static bool gPushButtonClicked = false; -static bool gOnTouchPointInterrupted = false; +static bool PushButtonClicked(Button button) +{ + gPushButtonClicked = true; + return gPushButtonClicked; +} +Dali::Integration::Point GetPointDownInside() +{ + Dali::Integration::Point point; + point.SetState(PointState::DOWN); + point.SetScreenPosition(INSIDE_TOUCH_POINT_POSITON); + return point; +} + +Dali::Integration::Point GetPointUpInside() +{ + Dali::Integration::Point point; + point.SetState(PointState::UP); + point.SetScreenPosition(INSIDE_TOUCH_POINT_POSITON); + return point; +} -Image CreateSolidColorImage( const Vector4& color, unsigned int width, unsigned int height ) +Dali::Integration::Point GetPointLeave() { - BitmapImage imageData = BitmapImage::New( width, height, Pixel::RGBA8888 ); + Dali::Integration::Point point; + point.SetState(PointState::LEAVE); + point.SetScreenPosition(INSIDE_TOUCH_POINT_POSITON); + return point; +} - // Create the image - PixelBuffer* pixbuf = imageData.GetBuffer(); - unsigned int size = width * height; +Dali::Integration::Point GetPointEnter() +{ + Dali::Integration::Point point; + point.SetState(PointState::MOTION); + point.SetScreenPosition(INSIDE_TOUCH_POINT_POSITON); + return point; +} - for( size_t i = 0; i < size; i++ ) - { - pixbuf[i*4+0] = 0xFF * color.r; - pixbuf[i*4+1] = 0xFF * color.g; - pixbuf[i*4+2] = 0xFF * color.b; - pixbuf[i*4+3] = 0xFF * color.a; - } +Dali::Integration::Point GetPointDownOutside() +{ + Dali::Integration::Point point; + point.SetState(PointState::DOWN); + point.SetScreenPosition(Vector2(10, 10)); + return point; +} - imageData.Update(); +Dali::Integration::Point GetPointUpOutside() +{ + Dali::Integration::Point point; + point.SetState(PointState::UP); + point.SetScreenPosition(Vector2(10, 10)); + return point; +} - return imageData; +// 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) +{ + ToolkitTestApplication application; + + PushButton button; -int UtcDaliPushButtonSetGetAutoRepeating(void) + DALI_TEST_CHECK(!button); + END_TEST; +} + +int UtcDaliPushButtonCopyConstructorP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonSetGetAutoRepeating"); - PushButton pushButton = PushButton::New(); + // Initialize an object, ref count == 1 + PushButton button = PushButton::New(); - pushButton.SetAutoRepeating( true ); + PushButton copy(button); + DALI_TEST_CHECK(copy); + END_TEST; +} - DALI_TEST_CHECK( pushButton.IsAutoRepeating() ); +int UtcDaliPushButtonMoveConstructor(void) +{ + ToolkitTestApplication application; - pushButton.SetAutoRepeating( false ); + PushButton button = PushButton::New(); + DALI_TEST_EQUALS(1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION); + DALI_TEST_EQUALS(button.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); + button.SetProperty(Button::Property::TOGGLABLE, true); + DALI_TEST_EQUALS(button.GetProperty(Button::Property::TOGGLABLE), true, TEST_LOCATION); - DALI_TEST_CHECK( !pushButton.IsAutoRepeating() ); + PushButton moved = std::move(button); + DALI_TEST_CHECK(moved); + DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION); + DALI_TEST_EQUALS(moved.GetProperty(Button::Property::TOGGLABLE), true, TEST_LOCATION); + DALI_TEST_CHECK(!button); - pushButton.SetAutoRepeating( true ); + END_TEST; +} - DALI_TEST_CHECK( pushButton.IsAutoRepeating() ); +int UtcDaliPushButtonAssignmentOperatorP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + + PushButton copy(button); + DALI_TEST_CHECK(copy); + + DALI_TEST_CHECK(button == copy); END_TEST; } -int UtcDaliPushButtonSetGetToggleButton(void) +int UtcDaliPushButtonMoveAssignment(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonSetGetToggleButton"); + PushButton button = PushButton::New(); + DALI_TEST_EQUALS(1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION); + DALI_TEST_EQUALS(button.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); + button.SetProperty(Button::Property::TOGGLABLE, true); + DALI_TEST_EQUALS(button.GetProperty(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(Button::Property::TOGGLABLE), true, TEST_LOCATION); + DALI_TEST_CHECK(!button); + + END_TEST; +} + +int UtcDaliPushButtonNewP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + + DALI_TEST_CHECK(button); + END_TEST; +} + +int UtcDaliPushButtonDownCastP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + + BaseHandle object(button); + + PushButton button2 = PushButton::DownCast(object); + DALI_TEST_CHECK(button2); + + PushButton button3 = DownCast(object); + DALI_TEST_CHECK(button3); + END_TEST; +} + +int UtcDaliPushButtonDownCastN(void) +{ + ToolkitTestApplication application; + + BaseHandle unInitializedObject; + + PushButton button1 = PushButton::DownCast(unInitializedObject); + DALI_TEST_CHECK(!button1); + + PushButton button2 = DownCast(unInitializedObject); + DALI_TEST_CHECK(!button2); + END_TEST; +} + +int UtcDaliPushButtonAutoRepeatingProperty(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSetGetAutoRepeating"); + + PushButton pushButton = PushButton::New(); + + pushButton.SetProperty(pushButton.GetPropertyIndex("autoRepeating"), true); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("autoRepeating")), true, TEST_LOCATION); + + pushButton.SetProperty(pushButton.GetPropertyIndex("autoRepeating"), false); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("autoRepeating")), false, TEST_LOCATION); + + pushButton.SetProperty(pushButton.GetPropertyIndex("autoRepeating"), true); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("autoRepeating")), true, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliPushButtonSetAutoRepeating(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliPushButtonSetAutoRepeating\n"); + tet_infoline("Ensure setting AutoRepeating on a SELECTED Toggle button switches off Toggle\n"); PushButton pushButton = PushButton::New(); - pushButton.SetToggleButton( true ); + const bool INITIAL_TOGGLE_VALUE = true; + const bool INITIAL_SELECTED_VALUE = true; - DALI_TEST_CHECK( pushButton.IsToggleButton() ); + pushButton.SetProperty(Button::Property::TOGGLABLE, INITIAL_TOGGLE_VALUE); + pushButton.SetProperty(Button::Property::SELECTED, INITIAL_SELECTED_VALUE); - pushButton.SetToggleButton( false ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::TOGGLABLE), INITIAL_TOGGLE_VALUE, TEST_LOCATION); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), INITIAL_SELECTED_VALUE, TEST_LOCATION); - DALI_TEST_CHECK( !pushButton.IsToggleButton() ); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); - pushButton.SetToggleButton( true ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::TOGGLABLE), !INITIAL_TOGGLE_VALUE, TEST_LOCATION); - DALI_TEST_CHECK( pushButton.IsToggleButton() ); END_TEST; } -int UtcDaliPushButtonSetGetAutoRepeatingAndToggleButton(void) +int UtcDaliPushButtonTogglableProperty(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonSetGetAutoRepeatingAndToggleButton"); + tet_infoline(" UtcDaliPushButtonSetGetTogglableButton"); PushButton pushButton = PushButton::New(); - pushButton.SetAutoRepeating( true ); - pushButton.SetToggleButton( true ); + pushButton.SetProperty(pushButton.GetPropertyIndex("togglable"), true); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("togglable")), true, TEST_LOCATION); - DALI_TEST_CHECK( pushButton.IsToggleButton() ); - DALI_TEST_CHECK( !pushButton.IsAutoRepeating() ); + pushButton.SetProperty(pushButton.GetPropertyIndex("togglable"), false); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("togglable")), false, TEST_LOCATION); - pushButton.SetToggleButton( true ); - pushButton.SetAutoRepeating( true ); + pushButton.SetProperty(pushButton.GetPropertyIndex("togglable"), true); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("togglable")), true, TEST_LOCATION); - DALI_TEST_CHECK( pushButton.IsAutoRepeating() ); - DALI_TEST_CHECK( !pushButton.IsToggleButton() ); END_TEST; } -int UtcDaliPushButtonSetGetToggled01(void) +int UtcDaliPushButtonAutoRepeatingPropertyAndTogglableButton(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonSetGetToggled01"); + tet_infoline(" UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton"); PushButton pushButton = PushButton::New(); - pushButton.SetToggleButton( true ); - pushButton.ToggledSignal().Connect( &PushButtonToggled ); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); + pushButton.SetProperty(pushButton.GetPropertyIndex("togglable"), true); - gPushButtonToggleState = false; - pushButton.SetToggled( true ); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("togglable")), true, TEST_LOCATION); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("autoRepeating")), false, TEST_LOCATION); - DALI_TEST_CHECK( pushButton.IsToggled() ); - DALI_TEST_CHECK( gPushButtonToggleState ); + pushButton.SetProperty(pushButton.GetPropertyIndex("togglable"), true); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); - pushButton.SetToggled( false ); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("autoRepeating")), true, TEST_LOCATION); + DALI_TEST_EQUALS(pushButton.GetProperty(pushButton.GetPropertyIndex("togglable")), false, TEST_LOCATION); + END_TEST; +} + +int UtcDaliPushButtonSelectedProperty01(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSetGetSelected01"); + + PushButton pushButton = PushButton::New(); - DALI_TEST_CHECK( !pushButton.IsToggled() ); - DALI_TEST_CHECK( !gPushButtonToggleState ); + pushButton.SetProperty(pushButton.GetPropertyIndex("togglable"), true); - pushButton.SetToggled( true ); + pushButton.StateChangedSignal().Connect(&PushButtonSelected); - DALI_TEST_CHECK( pushButton.IsToggled() ); - DALI_TEST_CHECK( gPushButtonToggleState ); + gPushButtonSelectedState = false; + pushButton.SetProperty(Button::Property::SELECTED, true); + + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), true, TEST_LOCATION); + DALI_TEST_CHECK(gPushButtonSelectedState); + + pushButton.SetProperty(Button::Property::SELECTED, false); + + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), false, TEST_LOCATION); + DALI_TEST_CHECK(!gPushButtonSelectedState); + + pushButton.SetProperty(Button::Property::SELECTED, true); + + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), true, TEST_LOCATION); + DALI_TEST_CHECK(gPushButtonSelectedState); END_TEST; } -int UtcDaliPushButtonSetGetToggled02(void) +int UtcDaliPushButtonSelectedProperty02(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonSetGetToggled02"); + tet_infoline(" UtcDaliPushButtonSetGetSelected02"); PushButton pushButton = PushButton::New(); - pushButton.SetToggleButton( false ); - pushButton.ToggledSignal().Connect( &PushButtonToggled ); + pushButton.SetProperty(pushButton.GetPropertyIndex("togglable"), false); + pushButton.StateChangedSignal().Connect(&PushButtonSelected); - gPushButtonToggleState = false; - pushButton.SetToggled( true ); + gPushButtonSelectedState = false; + pushButton.SetProperty(Button::Property::SELECTED, true); - DALI_TEST_CHECK( !pushButton.IsToggled() ); - DALI_TEST_CHECK( !gPushButtonToggleState ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), false, TEST_LOCATION); + DALI_TEST_CHECK(!gPushButtonSelectedState); - pushButton.SetToggled( false ); + pushButton.SetProperty(Button::Property::SELECTED, false); - DALI_TEST_CHECK( !pushButton.IsToggled() ); - DALI_TEST_CHECK( !gPushButtonToggleState ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), false, TEST_LOCATION); + DALI_TEST_CHECK(!gPushButtonSelectedState); - pushButton.SetToggled( true ); + pushButton.SetProperty(Button::Property::SELECTED, true); - DALI_TEST_CHECK( !pushButton.IsToggled() ); - DALI_TEST_CHECK( !gPushButtonToggleState ); + DALI_TEST_EQUALS(pushButton.GetProperty(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.SetInitialAutoRepeatingDelay( 1.f ); - DALI_TEST_EQUALS( pushButton.GetInitialAutoRepeatingDelay(), 1.f, TEST_LOCATION ); + pushButton.SetProperty(Button::Property::INITIAL_AUTO_REPEATING_DELAY, 1.f); + + DALI_TEST_EQUALS(pushButton.GetProperty(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"); PushButton pushButton = PushButton::New(); - bool assert1( false ); - bool assert2( false ); + 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 ) + catch(Dali::DaliException& e) { - tet_printf("Assertion %s failed at %s\n", e.mCondition.c_str(), e.mLocation.c_str()); - DALI_TEST_EQUALS(e.mCondition, "initialAutoRepeatingDelay > 0.f", TEST_LOCATION); + DALI_TEST_PRINT_ASSERT(e); + DALI_TEST_EQUALS(e.condition, "initialAutoRepeatingDelay > 0.f", TEST_LOCATION); assert1 = true; } try { - pushButton.SetNextAutoRepeatingDelay( -1.f ); + pushButton.SetProperty(Button::Property::NEXT_AUTO_REPEATING_DELAY, -1.f); } - catch( Dali::DaliException& e ) + catch(Dali::DaliException& e) { - tet_printf("Assertion %s failed at %s\n", e.mCondition.c_str(), e.mLocation.c_str()); - DALI_TEST_EQUALS(e.mCondition, "nextAutoRepeatingDelay > 0.f", TEST_LOCATION); + DALI_TEST_PRINT_ASSERT(e); + DALI_TEST_EQUALS(e.condition, "nextAutoRepeatingDelay > 0.f", TEST_LOCATION); assert2 = true; } - DALI_TEST_CHECK( assert1 && assert2 ); + DALI_TEST_CHECK(assert1 && assert2); END_TEST; } -int UtcDaliPushButtonSetImages(void) +int UtcDaliPushButtonLabelProperty(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonSetImages"); + tet_infoline(" UtcDaliPushButtonSetLabelText"); + + const std::string STR("Hola!"); - Actor imageActor; + PushButton pushButton = PushButton::New(); + + application.SendNotification(); + application.Render(); - Image image01 = CreateSolidColorImage( Color::RED, 10, 10 ); - ImageActor imageActor01 = CreateSolidColorActor( Color::RED ); - imageActor01.SetSize( 20.f, 20.f ); + pushButton.SetProperty(Toolkit::Button::Property::LABEL, + Property::Map().Add(Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT).Add(Toolkit::TextVisual::Property::POINT_SIZE, 15.0f)); - Image image02 = CreateSolidColorImage( Color::RED, 30, 30 ); - ImageActor imageActor02 = CreateSolidColorActor( Color::RED ); - imageActor02.SetSize( 40.f, 40.f ); + pushButton.SetProperty(Toolkit::Button::Property::LABEL, STR); - Image image03 = CreateSolidColorImage( Color::RED, 50, 50 ); - ImageActor imageActor03 = CreateSolidColorActor( Color::RED ); - imageActor03.SetSize( 60.f, 60.f ); + DALI_TEST_EQUALS(GetButtonText(pushButton), STR, TEST_LOCATION); - Image image04 = CreateSolidColorImage( Color::RED, 70, 70 ); - ImageActor imageActor04 = CreateSolidColorActor( Color::RED ); - imageActor04.SetSize( 80.f, 80.f ); + END_TEST; +} - Image image05 = CreateSolidColorImage( Color::RED, 90, 90 ); - ImageActor imageActor05 = CreateSolidColorActor( Color::RED ); - imageActor05.SetSize( 100.f, 100.f ); +int UtcDaliPushButtonPressed(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonPressed"); - Vector3 size; PushButton pushButton = PushButton::New(); + 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); + + application.GetScene().Add(pushButton); application.SendNotification(); application.Render(); - // Just check if check box button size changes when a bigger image is set. + gPushButtonPressed = false; - pushButton.SetButtonImage( image01 ); + // connect to its touch signal + pushButton.PressedSignal().Connect(&PushButtonPressed); + Dali::Integration::TouchEvent eventDown; + eventDown.AddPoint(GetPointDownInside()); + + // flush the queue and render once application.SendNotification(); application.Render(); + application.ProcessEvent(eventDown); + + DALI_TEST_CHECK(gPushButtonPressed); + END_TEST; +} - size = pushButton.GetButtonImage().GetCurrentSize(); +int UtcDaliPushButtonReleased(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonReleased"); - DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION ); + PushButton pushButton = PushButton::New(); + 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); - pushButton.SetButtonImage( imageActor01 ); + application.GetScene().Add(pushButton); application.SendNotification(); application.Render(); - size = pushButton.GetButtonImage().GetCurrentSize(); + // connect to its touch signal + pushButton.ReleasedSignal().Connect(&PushButtonReleased); + + Dali::Integration::TouchEvent event; + + // Test1. Touch point down and up inside the button. + + gPushButtonReleased = false; + event = Dali::Integration::TouchEvent(); + event.AddPoint(GetPointDownInside()); + application.ProcessEvent(event); - DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION ); + event = Dali::Integration::TouchEvent(); + event.AddPoint(GetPointUpInside()); + application.ProcessEvent(event); + + DALI_TEST_CHECK(gPushButtonReleased); + + // Test2. Touch point down and up outside the button. - pushButton.SetBackgroundImage( image02 ); + gPushButtonReleased = false; + event = Dali::Integration::TouchEvent(); + event.AddPoint(GetPointDownOutside()); + application.ProcessEvent(event); + + event = Dali::Integration::TouchEvent(); + event.AddPoint(GetPointUpOutside()); + application.ProcessEvent(event); + + DALI_TEST_CHECK(!gPushButtonReleased); + + // Test3. Touch point down inside and up outside the button. + + gPushButtonReleased = 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(gPushButtonReleased); + + // Test4. Touch point down outside and up inside the button. + + gPushButtonReleased = 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(!gPushButtonReleased); + END_TEST; +} + +int UtcDaliPushButtonSelected(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSelected"); + + PushButton pushButton = PushButton::New(); + 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); + + application.GetScene().Add(pushButton); application.SendNotification(); application.Render(); - size = pushButton.GetBackgroundImage().GetCurrentSize(); + // connect to its touch signal + pushButton.StateChangedSignal().Connect(&PushButtonSelected); + + Dali::Integration::TouchEvent event; + + // Test1. No togglable button. + + 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); + + // Set togglable property. + pushButton.SetProperty(Button::Property::TOGGLABLE, true); + + // 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_EQUALS( size.width, 30.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 30.f, TEST_LOCATION ); + DALI_TEST_CHECK(!gPushButtonSelectedState); - pushButton.SetBackgroundImage( imageActor02 ); + // 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(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(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(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(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(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); application.SendNotification(); application.Render(); - size = pushButton.GetBackgroundImage().GetCurrentSize(); + // First test the size is zero. + // No padding should be added as there is no label or icon. + Vector2 size(Vector2::ZERO); + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + tet_printf("Button Natural Size(%f,%f)\n", pushButton.GetNaturalSize().width, pushButton.GetNaturalSize().height); - DALI_TEST_EQUALS( size.width, 40.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 40.f, TEST_LOCATION ); + DALI_TEST_EQUALS(size, Vector2::ZERO, Math::MACHINE_EPSILON_1000, TEST_LOCATION); - pushButton.SetPressedImage( image03 ); + // Check label only padding + pushButton.SetProperty(Toolkit::Button::Property::LABEL, "Label"); application.SendNotification(); application.Render(); - size = pushButton.GetPressedImage().GetCurrentSize(); + Vector2 sizeWithLabelWithoutPadding(Vector2::ZERO); + sizeWithLabelWithoutPadding.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + sizeWithLabelWithoutPadding.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); - DALI_TEST_EQUALS( size.width, 50.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 50.f, TEST_LOCATION ); + tet_printf("Button RelayoutSize label without padding (%f,%f)\n", sizeWithLabelWithoutPadding.width, sizeWithLabelWithoutPadding.height); - pushButton.SetPressedImage( imageActor03 ); + // Add label padding to label + pushButton.SetProperty(Toolkit::PushButton::Property::LABEL_PADDING, TEST_LABEL_PADDING); + application.SendNotification(); + application.Render(); + + Vector2 sizeLabelAndPadding(Vector2::ZERO); + sizeLabelAndPadding.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + sizeLabelAndPadding.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + tet_printf("Button RelayoutSize after label padding(%f,%f)\n", sizeLabelAndPadding.width, sizeLabelAndPadding.height); + + // If control size has increased beyond size of just label then padding has been applied + DALI_TEST_GREATER(sizeLabelAndPadding.width, sizeWithLabelWithoutPadding.width + TEST_LABEL_PADDING.x, TEST_LOCATION); + DALI_TEST_GREATER(sizeLabelAndPadding.height, sizeWithLabelWithoutPadding.height + TEST_LABEL_PADDING.w, TEST_LOCATION); + + // Re-initialise the button so we can setup icon-only padding. + pushButton.Unparent(); + pushButton = PushButton::New(); + + 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); + + 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(); - size = pushButton.GetPressedImage().GetCurrentSize(); + // Size of button with just icon + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + tet_printf("Button RelayoutSize with icon(%f,%f)\n", size.width, size.height); + + pushButton.SetProperty(Toolkit::PushButton::Property::ICON_PADDING, TEST_ICON_PADDING); - DALI_TEST_EQUALS( size.width, 60.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 60.f, TEST_LOCATION ); + application.SendNotification(); + application.Render(); + DALI_TEST_EQUALS(size, TEST_IMAGE_SIZE, Math::MACHINE_EPSILON_1000, TEST_LOCATION); - pushButton.SetDimmedBackgroundImage( image04 ); + 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); + DALI_TEST_EQUALS(size, expectedIconAndPaddingSize, Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + // Now test padding for both label and icon simultaneously. + pushButton.SetProperty(Toolkit::Button::Property::LABEL, "Label"); application.SendNotification(); application.Render(); - size = pushButton.GetDimmedBackgroundImage().GetCurrentSize(); + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + tet_printf("Button RelayoutSize after label added(%f,%f)\n", size.width, size.height); - DALI_TEST_EQUALS( size.width, 70.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 70.f, TEST_LOCATION ); + pushButton.SetProperty(Toolkit::PushButton::Property::LABEL_PADDING, TEST_LABEL_PADDING); - pushButton.SetDimmedBackgroundImage( imageActor04 ); + application.SendNotification(); + application.Render(); + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + 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); + // 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; +} + +int UtcDaliPushButtonAlignmentLayout(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonAlignmentLayout"); + + /* + * This test checks different alignments for the icon against the label. + * The icon is then moved around the label in each of it's alignments. + * The final relayed out size is checked to confirm the layout has been done correctly. + * + * There is an Icon which has 0 width and height, but with 75 padding on all sides. + * - Therefore total width and height are both 150. + * + * There is a Label which has "an unknown" width and height, but with 30 padding on all sides. + * - Therefore total width and height are 60+x and 60+y respectively. + * Where x & y are the width and height of the text. + * + * The width of the button will always expand to the largest of the icon and label sizes (plus padding). + * So We use the padding to help us determine the orientation is correct for each alignment. + * + * |<- 150 ->| |<-- 60+x -->| + * + * +---------+ - + * | | ^ +------------+ - + * | | | | | ^ + * | Icon | 150 | Label | 60+y + * | | | | | v + * | | v +------------+ - + * +---------+ - + */ + + 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); + + // 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.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); + + // Add a label and get size of control + pushButton.SetProperty(Toolkit::Button::Property::LABEL, "Label"); application.SendNotification(); application.Render(); - size = pushButton.GetDimmedBackgroundImage().GetCurrentSize(); + // First get the size of control with just label + Vector2 justLabelSize(Vector2::ZERO); + justLabelSize.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + justLabelSize.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + tet_printf("Button RelayoutSize with just label and no padding(%f,%f)\n", justLabelSize.width, justLabelSize.height); - DALI_TEST_EQUALS( size.width, 80.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 80.f, TEST_LOCATION ); + pushButton.SetProperty(Toolkit::PushButton::Property::LABEL_PADDING, TEST_LABEL_PADDING); + application.SendNotification(); + application.Render(); + + // Size of Label and Padding + Vector2 expectedLabelAndPaddingSize(Vector2::ZERO); + expectedLabelAndPaddingSize.width = justLabelSize.width + TEST_LABEL_PADDING.x + TEST_LABEL_PADDING.y; + expectedLabelAndPaddingSize.height = justLabelSize.height + TEST_LABEL_PADDING.w + TEST_LABEL_PADDING.z; + + Vector2 labelAndPaddingSize(Vector2::ZERO); + labelAndPaddingSize.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + labelAndPaddingSize.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + + DALI_TEST_EQUALS(labelAndPaddingSize, expectedLabelAndPaddingSize, Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + 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)); + + // Add Icon and set its alignment + 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(); + application.Render(); - pushButton.SetDimmedImage( image05 ); + Vector2 size(Vector2::ZERO); + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + + /* + * Test Icon right alignment. + * Height grows to largest of Icon or Label (+ padding). + * Normally this will be Icons height, except with very large font sizes. + * + * +------------+---------+ + * |............+ | + * | | | + * | Label | Icon | + * | | | + * |............+ | + * +------------+---------+ + */ + DALI_TEST_EQUALS(size.width, (testImageWithPaddingSize.width + labelAndPaddingSize.width), TEST_LOCATION); + 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::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "END"); application.SendNotification(); application.Render(); - size = pushButton.GetDimmedImage().GetCurrentSize(); + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + + /* + * Test Icon left alignment. + * Height grows to largest of Icon or Label (+ padding). + * Normally this will be Icons height, except with very large font sizes. + * + * +---------+------------+ + * | +............| + * | | | + * | Icon | Label | + * | | | + * | +............| + * +---------+------------+ + */ + DALI_TEST_EQUALS(size.width, (testImageWithPaddingSize.width + labelAndPaddingSize.width), TEST_LOCATION); + DALI_TEST_EQUALS(size.height, (std::max(testImageWithPaddingSize.height, labelAndPaddingSize.height)), Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + tet_infoline(" Test Icon TOP alignment - Width grows to largest of Icon or label (plus padding)"); + /* + * + * +---------+ + * | | + * | | + * | Icon | + * | | + * | | + * +---------+ + * | | + * | Label | + * | | + * +---------+ + * + */ + + tet_infoline("SetProperty on LABEL_RELATIVE_ALIGNMENT should relayout the Button"); + pushButton.SetProperty(Toolkit::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "BOTTOM"); - DALI_TEST_EQUALS( size.width, 90.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 90.f, TEST_LOCATION ); + application.SendNotification(); + application.Render(); - pushButton.SetDimmedImage( imageActor05 ); + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + + tet_printf("Natural width (%f)\n", pushButton.GetNaturalSize().width); + tet_printf("Natural height (%f)\n", pushButton.GetNaturalSize().height); + + tet_printf(" UtcDaliPushButtonAlignmentLayout Top layout - Image and Padding size (%f,%f)\n", testImageWithPaddingSize.width, testImageWithPaddingSize.height); + tet_printf(" UtcDaliPushButtonAlignmentLayout Top layout - Text and Padding size (%f,%f)\n", labelAndPaddingSize.width, labelAndPaddingSize.height); + + DALI_TEST_EQUALS(size.width, (std::max(testImageWithPaddingSize.width, labelAndPaddingSize.width)), TEST_LOCATION); + + DALI_TEST_EQUALS(size.height, (testImageWithPaddingSize.height + labelAndPaddingSize.height), TEST_LOCATION); + + /* + * Test Icon bottom alignment. + * Width grows to largest of Icon or Label (+ padding). + * + * +---------+ + * | | + * | Label | + * | | + * +---------+ + * | | + * | | + * | Icon | + * | | + * | | + * +---------+ + */ + tet_infoline(" Test Icon BOTTOM alignment - Width grows to largest of Icon or label (plus padding)"); + pushButton.SetProperty(Toolkit::DevelButton::Property::LABEL_RELATIVE_ALIGNMENT, "TOP"); application.SendNotification(); application.Render(); - size = pushButton.GetDimmedImage().GetCurrentSize(); + size.width = pushButton.GetRelayoutSize(Dimension::WIDTH); + size.height = pushButton.GetRelayoutSize(Dimension::HEIGHT); + + DALI_TEST_EQUALS(size.width, (std::max(testImageWithPaddingSize.width, labelAndPaddingSize.width)), TEST_LOCATION); + DALI_TEST_EQUALS(size.height, (testImageWithPaddingSize.height + labelAndPaddingSize.height), TEST_LOCATION); - DALI_TEST_EQUALS( size.width, 100.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 100.f, TEST_LOCATION ); END_TEST; } -int UtcDaliPushButtonSetLabelText(void) +int UtcDaliPushButtonSetUnSelectedVisual01P(void) { + tet_infoline(" Test adding a visual for the UNSELECTED_VISUAL property, removing Button from stage and counting renderers\n"); ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonSetLabelText"); - - const std::string STR( "Hola!" ); PushButton pushButton = PushButton::New(); + pushButton.SetProperty(Actor::Property::SIZE, Vector2(BUTTON_SIZE_TO_GET_INSIDE_TOUCH_EVENTS)); + + application.GetScene().Add(pushButton); + + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + + pushButton.SetProperty(Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, propertyMap); + + tet_infoline(" UNSELECTED_VISUAL Added to button\n"); application.SendNotification(); - application.Render(); + application.Render(0); + + unsigned int rendererCount = pushButton.GetRendererCount(); + tet_printf("After adding UNSELECTED_BACKGROUND_VISUAL the renderer count is(%d)\n", rendererCount); + + DALI_TEST_EQUALS(pushButton.GetRendererCount(), 1, TEST_LOCATION); + + tet_printf("Remove button from stage\n"); + + application.GetScene().Remove(pushButton); + + rendererCount = pushButton.GetRendererCount(); + tet_printf("After removing pushbutton from stage the renderer count is(%d)\n ", rendererCount); + + DALI_TEST_EQUALS(pushButton.GetRendererCount(), 0, TEST_LOCATION); + + tet_printf("After removing pushbutton from stage the renderer count is(%d)\n ", rendererCount); - TextView textView; + Property::Map propertyMap2; + propertyMap2.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap2.Insert(ColorVisual::Property::MIX_COLOR, Color::RED); + pushButton.SetProperty(Toolkit::Button::Property::UNSELECTED_VISUAL, propertyMap2); - pushButton.SetLabelText( STR ); + tet_printf("Added UNSELECTED_VISUAL and add button back to Stage\n"); - textView = TextView::DownCast( pushButton.GetLabelText() ); - DALI_TEST_CHECK( STR == textView.GetText() ); + application.GetScene().Add(pushButton); - TextView text = TextView::New( STR ); - pushButton.SetLabelText( text ); + 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); - textView = TextView::DownCast( pushButton.GetLabelText() ); - DALI_TEST_CHECK( STR == textView.GetText() ); END_TEST; } -int UtcDaliPushButtonPressed(void) +int UtcDaliPushButtonSetSelectedVisualN(void) { + tet_infoline(" Test adding a broken visual for the UNSELECTED_VISUAL property"); + ToolkitTestApplication application; - 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 ); - Stage::GetCurrent().Add( pushButton ); + 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); + application.GetScene().Add(pushButton); application.SendNotification(); - application.Render(); + application.Render(0); - gPushButtonPressed = false; + unsigned int preRendererCount = pushButton.GetRendererCount(); + tet_printf("RendererCount prior to adding visual(%d)\n", preRendererCount); + DALI_TEST_EQUALS(preRendererCount, 0, TEST_LOCATION); - // connect to its touch signal - pushButton.PressedSignal().Connect( &PushButtonPressed ); + application.GetScene().Remove(pushButton); + application.SendNotification(); + application.Render(0); - Dali::Integration::TouchEvent eventDown; - eventDown.AddPoint( pointDownInside ); + Property::Map colorMap; + const int BROKEN_VISUAL_TYPE = 999999999; - // flush the queue and render once + 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(); - application.ProcessEvent( eventDown ); + application.Render(0); + + unsigned int postRendererCount = pushButton.GetRendererCount(); + tet_printf("RendererCount post broken visual (%d)\n", postRendererCount); + DALI_TEST_EQUALS(postRendererCount, 0, TEST_LOCATION); - DALI_TEST_CHECK( gPushButtonPressed ); END_TEST; } -int UtcDaliPushButtonReleased(void) +int UtcDaliPushButtonToggleSignalP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonReleased"); + tet_infoline(" UtcDaliButtonToggleSignalP Ensure Signals emitted"); - PushButton pushButton = PushButton::New(); - pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); - pushButton.SetPosition( 240, 400 ); - pushButton.SetSize( 100, 100 ); + PushButton button = PushButton::New(); + button.SetProperty(Button::Property::TOGGLABLE, true); - Stage::GetCurrent().Add( pushButton ); + SetupButtonForTestTouchEvents(application, button, true); + + application.GetScene().Add(button); application.SendNotification(); application.Render(); - // connect to its touch signal - pushButton.ReleasedSignal().Connect( &PushButtonReleased ); + // connect to its signal + button.ClickedSignal().Connect(&PushButtonClicked); + gPushButtonClicked = false; + tet_infoline(" Touch down and up within button"); Dali::Integration::TouchEvent event; - - // Test1. Touch point down and up inside the button. - - gPushButtonReleased = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); - application.ProcessEvent( event ); + event.AddPoint(GetPointDownInside()); + application.ProcessEvent(event); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); - application.ProcessEvent( event ); + event.AddPoint(GetPointUpInside()); + application.ProcessEvent(event); - DALI_TEST_CHECK( gPushButtonReleased ); + DALI_TEST_EQUALS(gPushButtonClicked, true, TEST_LOCATION); - // Test2. Touch point down and up outside the button. + END_TEST; +} - gPushButtonReleased = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); - application.ProcessEvent( event ); +// Deprecated API Tests - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); - application.ProcessEvent( event ); +int UtcDaliPushButtonSetGetAutoRepeating(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSetGetAutoRepeating"); - DALI_TEST_CHECK( !gPushButtonReleased ); + PushButton pushButton = PushButton::New(); - // Test3. Touch point down inside and up outside the button. + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); - gPushButtonReleased = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); - application.ProcessEvent( event ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::AUTO_REPEATING), true, TEST_LOCATION); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointLeave ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, false); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); - application.ProcessEvent( event ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::AUTO_REPEATING), false, TEST_LOCATION); - DALI_TEST_CHECK( gPushButtonReleased ); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); - // Test4. Touch point down outside and up inside the button. + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::AUTO_REPEATING), true, TEST_LOCATION); + END_TEST; +} - gPushButtonReleased = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); - application.ProcessEvent( event ); +int UtcDaliPushButtonSetGetTogglableButton(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSetGetTogglableButton"); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointEnter ); - application.ProcessEvent( event ); + PushButton pushButton = PushButton::New(); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::TOGGLABLE, true); - DALI_TEST_CHECK( !gPushButtonReleased ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::TOGGLABLE), true, TEST_LOCATION); + + pushButton.SetProperty(Button::Property::TOGGLABLE, false); + + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); + + pushButton.SetProperty(Button::Property::TOGGLABLE, true); + + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::TOGGLABLE), true, TEST_LOCATION); END_TEST; } -int UtcDaliPushButtonToggled(void) +int UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPushButtonToggled"); + tet_infoline(" UtcDaliPushButtonSetGetAutoRepeatingAndTogglableButton"); PushButton pushButton = PushButton::New(); - pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); - pushButton.SetPosition( 240, 400 ); - pushButton.SetSize( 100, 100 ); - Stage::GetCurrent().Add( pushButton ); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); + pushButton.SetProperty(Button::Property::TOGGLABLE, true); - application.SendNotification(); - application.Render(); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::TOGGLABLE), true, TEST_LOCATION); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::AUTO_REPEATING), false, TEST_LOCATION); - // connect to its touch signal - pushButton.ToggledSignal().Connect( &PushButtonToggled ); + pushButton.SetProperty(Button::Property::TOGGLABLE, true); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); - Dali::Integration::TouchEvent event; + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::AUTO_REPEATING), true, TEST_LOCATION); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); - // Test1. No toggle button. + END_TEST; +} - gPushButtonToggleState = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); - application.ProcessEvent( event ); +int UtcDaliPushButtonSetGetSelected01(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSetGetSelected01"); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); - application.ProcessEvent( event ); + PushButton pushButton = PushButton::New(); - DALI_TEST_CHECK( !gPushButtonToggleState ); + pushButton.SetProperty(Button::Property::TOGGLABLE, true); + pushButton.StateChangedSignal().Connect(&PushButtonSelected); - // Set toggle property. - pushButton.SetToggleButton( true ); + gPushButtonSelectedState = false; + pushButton.SetProperty(Button::Property::SELECTED, true); - // Test2. Touch point down and up inside the button twice. - gPushButtonToggleState = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); - application.ProcessEvent( event ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), true, TEST_LOCATION); + DALI_TEST_CHECK(gPushButtonSelectedState); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::SELECTED, false); - DALI_TEST_CHECK( gPushButtonToggleState ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), false, TEST_LOCATION); + DALI_TEST_CHECK(!gPushButtonSelectedState); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::SELECTED, true); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); - application.ProcessEvent( event ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), true, TEST_LOCATION); + DALI_TEST_CHECK(gPushButtonSelectedState); + END_TEST; +} - DALI_TEST_CHECK( !gPushButtonToggleState ); +int UtcDaliPushButtonSetGetSelected02(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSetGetSelected02"); - // Test3. Touch point down and up outside the button. + PushButton pushButton = PushButton::New(); - gPushButtonToggleState = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); - application.ProcessEvent( event ); + tet_infoline(" Set Toggle feature off"); + pushButton.SetProperty(Button::Property::TOGGLABLE, false); + pushButton.StateChangedSignal().Connect(&PushButtonSelected); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); - application.ProcessEvent( event ); + gPushButtonSelectedState = false; + tet_infoline(" Try to set to selected, expecting failure as not a toggle button"); + pushButton.SetProperty(Button::Property::SELECTED, true); - DALI_TEST_CHECK( !gPushButtonToggleState ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), false, TEST_LOCATION); + DALI_TEST_CHECK(!gPushButtonSelectedState); - // Test4. Touch point down inside and up outside the button. + pushButton.SetProperty(Button::Property::SELECTED, false); - gPushButtonToggleState = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); - application.ProcessEvent( event ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), false, TEST_LOCATION); + DALI_TEST_CHECK(!gPushButtonSelectedState); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointLeave ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::SELECTED, true); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); - application.ProcessEvent( event ); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::SELECTED), false, TEST_LOCATION); + DALI_TEST_CHECK(!gPushButtonSelectedState); + + END_TEST; +} - DALI_TEST_CHECK( !gPushButtonToggleState ); +int UtcDaliPushButtonSetGetAutorepeatingDelayValues01(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliPushButtonSetGetAutorepeatingDelayValues01"); - // Test5. Touch point down outside and up inside the button. + PushButton pushButton = PushButton::New(); - gPushButtonToggleState = false; - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::AUTO_REPEATING, true); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointEnter ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::INITIAL_AUTO_REPEATING_DELAY, 1.f); + DALI_TEST_EQUALS(pushButton.GetProperty(Button::Property::INITIAL_AUTO_REPEATING_DELAY), 1.f, TEST_LOCATION); - event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); - application.ProcessEvent( event ); + pushButton.SetProperty(Button::Property::NEXT_AUTO_REPEATING_DELAY, 1.f); + + DALI_TEST_EQUALS(pushButton.GetProperty(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(); + + 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); - DALI_TEST_CHECK( !gPushButtonToggleState ); END_TEST; }