/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * 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.
*
*/
-#include <iostream>
-#include <stdlib.h>
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/dali-toolkit.h>
#include <dali/integration-api/events/touch-event-integ.h>
-
+#include <stdlib.h>
+#include <iostream>
using namespace Dali;
using namespace Dali::Toolkit;
namespace
{
-
static bool gObjectCreatedCallBackCalled;
static void TestCallback(BaseHandle handle)
gObjectCreatedCallBackCalled = true;
}
+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;
}
-int UtcDaliRadioButtonNew(void)
+} // namespace
+
+int UtcDaliRadioButtonConstructorP(void)
{
ToolkitTestApplication application;
- tet_infoline(" UtcDaliRadioButtonNew");
+
+ RadioButton button;
+
+ DALI_TEST_CHECK(!button);
+ END_TEST;
+}
+
+int UtcDaliRadioButtonCopyConstructorP(void)
+{
+ ToolkitTestApplication application;
+
+ // Initialize an object, ref count == 1
+ RadioButton button = RadioButton::New();
+
+ RadioButton copy(button);
+ DALI_TEST_CHECK(copy);
+ END_TEST;
+}
+
+int UtcDaliRadioButtonMoveConstructor(void)
+{
+ ToolkitTestApplication application;
+
+ RadioButton button = RadioButton::New();
+ DALI_TEST_EQUALS(1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+ DALI_TEST_EQUALS(button.GetProperty<bool>(Button::Property::TOGGLABLE), true, TEST_LOCATION);
+ button.SetProperty(Button::Property::TOGGLABLE, false);
+ DALI_TEST_EQUALS(button.GetProperty<bool>(Button::Property::TOGGLABLE), false, TEST_LOCATION);
+
+ RadioButton 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), false, TEST_LOCATION);
+ DALI_TEST_CHECK(!button);
+
+ END_TEST;
+}
+
+int UtcDaliRadioButtonAssignmentOperatorP(void)
+{
+ ToolkitTestApplication application;
+
+ RadioButton button = RadioButton::New();
+
+ RadioButton copy(button);
+ DALI_TEST_CHECK(copy);
+
+ DALI_TEST_CHECK(button == copy);
+ END_TEST;
+}
+
+int UtcDaliRadioButtonMoveAssignment(void)
+{
+ ToolkitTestApplication application;
+
+ RadioButton button = RadioButton::New();
+ DALI_TEST_EQUALS(1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+ DALI_TEST_EQUALS(button.GetProperty<bool>(Button::Property::TOGGLABLE), true, TEST_LOCATION);
+ button.SetProperty(Button::Property::TOGGLABLE, false);
+ DALI_TEST_EQUALS(button.GetProperty<bool>(Button::Property::TOGGLABLE), false, TEST_LOCATION);
+
+ RadioButton 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), false, TEST_LOCATION);
+ DALI_TEST_CHECK(!button);
+
+ END_TEST;
+}
+
+int UtcDaliRadioButtonNewP(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliRadioButtonNewP");
// Create the Slider actor
RadioButton radioButton;
- DALI_TEST_CHECK( !radioButton );
+ DALI_TEST_CHECK(!radioButton);
radioButton = RadioButton::New();
- DALI_TEST_CHECK( radioButton );
+ DALI_TEST_CHECK(radioButton);
RadioButton radioButton2(radioButton);
- DALI_TEST_CHECK( radioButton2 == radioButton );
+ DALI_TEST_CHECK(radioButton2 == radioButton);
//Additional check to ensure object is created by checking if it's registered
- ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
- DALI_TEST_CHECK( registry );
+ ObjectRegistry registry = application.GetCore().GetObjectRegistry();
+ DALI_TEST_CHECK(registry);
gObjectCreatedCallBackCalled = false;
- registry.ObjectCreatedSignal().Connect( &TestCallback );
+ registry.ObjectCreatedSignal().Connect(&TestCallback);
{
RadioButton radioButton = RadioButton::New();
}
- DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
+ DALI_TEST_CHECK(gObjectCreatedCallBackCalled);
END_TEST;
}
-int UtcDaliRadioButtonDestructor(void)
+int UtcDaliRadioButtonDestructorP(void)
{
ToolkitTestApplication application;
RadioButton* radioButton = new RadioButton();
delete radioButton;
- DALI_TEST_CHECK( true );
+ DALI_TEST_CHECK(true);
END_TEST;
}
Handle handle = RadioButton::New();
- RadioButton radioButton = RadioButton::DownCast( handle );
+ RadioButton radioButton = RadioButton::DownCast(handle);
- DALI_TEST_CHECK( radioButton == handle );
+ DALI_TEST_CHECK(radioButton == handle);
END_TEST;
}
-int UtcDaliRadioButtonLabelActor(void)
+int UtcDaliRadioButtonLabelProperty(void)
{
ToolkitTestApplication application;
- TextLabel actor1 = TextLabel::New( "test actor 1" );
-
- RadioButton radioButton = RadioButton::New( actor1 );
- DALI_TEST_CHECK( actor1 == radioButton.GetLabel() );
-
- TextLabel actor2 = TextLabel::New( "test actor 2" );
- radioButton.SetLabel( actor2 );
- DALI_TEST_CHECK( actor2 == radioButton.GetLabel() );
-
- END_TEST;
-}
-
-int UtcDaliRadioButtonSelected(void)
-{
- ToolkitTestApplication application;
+ const std::string labelText = "test actor 1";
RadioButton radioButton = RadioButton::New();
- // Default selected
- DALI_TEST_CHECK( radioButton.IsSelected() == false );
+ radioButton.SetProperty(Toolkit::Button::Property::LABEL,
+ Property::Map().Add(Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT).Add(Toolkit::TextVisual::Property::POINT_SIZE, 15.0f));
- // False
- radioButton.SetSelected( false );
- DALI_TEST_CHECK( radioButton.IsSelected() == false );
+ radioButton.SetProperty(Toolkit::Button::Property::LABEL, labelText);
+ DALI_TEST_EQUALS(GetButtonText(radioButton), labelText, TEST_LOCATION);
- // True
- radioButton.SetSelected( true );
- DALI_TEST_CHECK( radioButton.IsSelected() == true );
+ std::string labelText2 = "test actor 2";
+ radioButton.SetProperty(Toolkit::Button::Property::LABEL, labelText2);
- // False
- radioButton.SetSelected( false );
- DALI_TEST_CHECK( radioButton.IsSelected() == false );
+ DALI_TEST_EQUALS(GetButtonText(radioButton), labelText2, TEST_LOCATION);
END_TEST;
}
int UtcDaliRadioButtonSelectedProperty(void)
{
- ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
+ ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
tet_infoline(" UtcDaliRadioButtonSelectedProperty");
// Create the RadioButton actor
RadioButton radioButton = RadioButton::New();
- Stage::GetCurrent().Add( radioButton );
- radioButton.SetParentOrigin(ParentOrigin::TOP_LEFT);
- radioButton.SetAnchorPoint(ParentOrigin::TOP_LEFT);
- radioButton.SetPosition( 0.0f, 0.0f );
+ application.GetScene().Add(radioButton);
+ radioButton.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+ radioButton.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
+ radioButton.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f));
// Default selected
- DALI_TEST_CHECK( radioButton.GetProperty<bool>( Button::Property::SELECTED ) == false );
+ DALI_TEST_CHECK(radioButton.GetProperty<bool>(Button::Property::SELECTED) == false);
// Setting false selected
- radioButton.SetProperty( Button::Property::SELECTED, false );
- DALI_TEST_CHECK( radioButton.GetProperty<bool>( Button::Property::SELECTED ) == false );
+ radioButton.SetProperty(Button::Property::SELECTED, false);
+ DALI_TEST_CHECK(radioButton.GetProperty<bool>(Button::Property::SELECTED) == false);
// Setting true selected
- radioButton.SetProperty( Button::Property::SELECTED, true );
- DALI_TEST_CHECK( radioButton.GetProperty<bool>( Button::Property::SELECTED ) == true );
+ radioButton.SetProperty(Button::Property::SELECTED, true);
+ DALI_TEST_CHECK(radioButton.GetProperty<bool>(Button::Property::SELECTED) == true);
// Setting false again
- radioButton.SetProperty( Button::Property::SELECTED, false );
- DALI_TEST_CHECK( radioButton.GetProperty<bool>( Button::Property::SELECTED ) == false );
+ radioButton.SetProperty(Button::Property::SELECTED, false);
+ DALI_TEST_CHECK(radioButton.GetProperty<bool>(Button::Property::SELECTED) == false);
// Test selecting radio buttons
- RadioButton radioButton2 = RadioButton::New( "label" );
- radioButton2.SetParentOrigin(ParentOrigin::TOP_LEFT);
- radioButton2.SetAnchorPoint(ParentOrigin::TOP_LEFT);
- radioButton2.SetPosition( 0.0f, 0.0f );
+ RadioButton radioButton2 = RadioButton::New("label");
+ radioButton2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+ radioButton2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
+ radioButton2.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f));
- RadioButton radioButton3 = RadioButton::New( "label" );
- radioButton3.SetParentOrigin(ParentOrigin::TOP_LEFT);
- radioButton3.SetAnchorPoint(ParentOrigin::TOP_LEFT);
- radioButton3.SetPosition( 0.0f, 40.0f );
+ RadioButton radioButton3 = RadioButton::New("label");
+ radioButton3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+ radioButton3.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
+ radioButton3.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 40.0f));
Actor radioGroup = Actor::New();
- Stage::GetCurrent().Add( radioGroup );
- radioGroup.SetParentOrigin(ParentOrigin::TOP_LEFT);
- radioGroup.SetAnchorPoint(ParentOrigin::TOP_LEFT);
- radioGroup.SetPosition( 0.0f, 0.0f );
- radioGroup.SetSize( 400.0f, 400.0 );
+ application.GetScene().Add(radioGroup);
+ radioGroup.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+ radioGroup.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
+ radioGroup.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+ radioGroup.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0));
- radioGroup.Add( radioButton2 );
- radioGroup.Add( radioButton3 );
+ radioGroup.Add(radioButton2);
+ radioGroup.Add(radioButton3);
application.SendNotification();
application.Render();
// Simulate touch events
- DALI_TEST_CHECK( radioButton2.GetProperty<bool>( Button::Property::SELECTED ) == false );
- DALI_TEST_CHECK( radioButton3.GetProperty<bool>( Button::Property::SELECTED ) == false );
+ DALI_TEST_CHECK(radioButton2.GetProperty<bool>(Button::Property::SELECTED) == false);
+ DALI_TEST_CHECK(radioButton3.GetProperty<bool>(Button::Property::SELECTED) == false);
// Select first radio
{
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 10.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 10.0f );
+ Dali::Integration::Point pointDown;
+ pointDown.SetState(PointState::DOWN);
+ pointDown.SetScreenPosition(Vector2(1.0f, 1.0f));
- event1.AddPoint( pointDown );
- application.ProcessEvent( event1 );
+ Dali::Integration::Point pointUp(pointDown);
+ pointUp.SetState(PointState::UP);
- event2.AddPoint( pointUp );
- application.ProcessEvent( event2 );
+ event1.AddPoint(pointDown);
+ application.ProcessEvent(event1);
+
+ event2.AddPoint(pointUp);
+ application.ProcessEvent(event2);
application.SendNotification();
application.Render();
- DALI_TEST_CHECK( radioButton2.GetProperty<bool>( Button::Property::SELECTED ) == true );
- DALI_TEST_CHECK( radioButton3.GetProperty<bool>( Button::Property::SELECTED ) == false );
+ DALI_TEST_CHECK(radioButton2.GetProperty<bool>(Button::Property::SELECTED) == true);
+ DALI_TEST_CHECK(radioButton3.GetProperty<bool>(Button::Property::SELECTED) == false);
}
// Select an already selected radio
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 10.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 10.0f );
+ Dali::Integration::Point pointDown;
+ pointDown.SetState(PointState::DOWN);
+ pointDown.SetScreenPosition(Vector2(1.0f, 1.0f));
+
+ Dali::Integration::Point pointUp(pointDown);
+ pointUp.SetState(PointState::UP);
- event1.AddPoint( pointDown );
- application.ProcessEvent( event1 );
+ event1.AddPoint(pointDown);
+ application.ProcessEvent(event1);
- event2.AddPoint( pointUp );
- application.ProcessEvent( event2 );
+ event2.AddPoint(pointUp);
+ application.ProcessEvent(event2);
application.SendNotification();
application.Render();
- DALI_TEST_CHECK( radioButton2.GetProperty<bool>( Button::Property::SELECTED ) == true );
- DALI_TEST_CHECK( radioButton3.GetProperty<bool>( Button::Property::SELECTED ) == false );
+ DALI_TEST_CHECK(radioButton2.GetProperty<bool>(Button::Property::SELECTED) == true);
+ DALI_TEST_CHECK(radioButton3.GetProperty<bool>(Button::Property::SELECTED) == false);
}
// Select second radio
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 50.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 50.0f );
+ Dali::Integration::Point pointDown;
+ pointDown.SetState(PointState::DOWN);
+ pointDown.SetScreenPosition(Vector2(1.0f, 41.0f));
- event1.AddPoint( pointDown );
- application.ProcessEvent( event1 );
+ Dali::Integration::Point pointUp(pointDown);
+ pointUp.SetState(PointState::UP);
- event2.AddPoint( pointUp );
- application.ProcessEvent( event2 );
+ event1.AddPoint(pointDown);
+ application.ProcessEvent(event1);
+
+ event2.AddPoint(pointUp);
+ application.ProcessEvent(event2);
application.SendNotification();
application.Render();
- DALI_TEST_CHECK( radioButton2.GetProperty<bool>( Button::Property::SELECTED ) == false );
- DALI_TEST_CHECK( radioButton3.GetProperty<bool>( Button::Property::SELECTED ) == true );
+ DALI_TEST_CHECK(radioButton2.GetProperty<bool>(Button::Property::SELECTED) == false);
+ DALI_TEST_CHECK(radioButton3.GetProperty<bool>(Button::Property::SELECTED) == true);
}
// Select outside radio group
Dali::Integration::TouchEvent event1 = Dali::Integration::TouchEvent();
Dali::Integration::TouchEvent event2 = Dali::Integration::TouchEvent();
- const Dali::TouchPoint pointDown( 0, TouchPoint::Down, 10.0f, 500.0f );
- const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 500.0f );
+ Dali::Integration::Point pointDown;
+ pointDown.SetState(PointState::DOWN);
+ pointDown.SetScreenPosition(Vector2(1.0f, 500.0f));
+
+ Dali::Integration::Point pointUp(pointDown);
+ pointUp.SetState(PointState::UP);
- event1.AddPoint( pointDown );
- application.ProcessEvent( event1 );
+ event1.AddPoint(pointDown);
+ application.ProcessEvent(event1);
- event2.AddPoint( pointUp );
- application.ProcessEvent( event2 );
+ event2.AddPoint(pointUp);
+ application.ProcessEvent(event2);
application.SendNotification();
application.Render();
- DALI_TEST_CHECK( radioButton2.GetProperty<bool>( Button::Property::SELECTED ) == false );
- DALI_TEST_CHECK( radioButton3.GetProperty<bool>( Button::Property::SELECTED ) == true );
+ DALI_TEST_CHECK(radioButton2.GetProperty<bool>(Button::Property::SELECTED) == false);
+ DALI_TEST_CHECK(radioButton3.GetProperty<bool>(Button::Property::SELECTED) == true);
}
END_TEST;