END_TEST;
}
+
+int UtcDaliToolkitFlexContainerSetPropertyEnumP(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyEnumP");
+ FlexContainer flexContainer = FlexContainer::New();
+ DALI_TEST_CHECK( flexContainer );
+
+ // Add flex container to the stage
+ Stage::GetCurrent().Add( flexContainer );
+
+ // Create two actors and add them to the container
+ Actor actor1 = Actor::New();
+ Actor actor2 = Actor::New();
+ DALI_TEST_CHECK( actor1 );
+ DALI_TEST_CHECK( actor2 );
+
+ flexContainer.Add(actor1);
+ flexContainer.Add(actor2);
+
+ // Check content direction property.
+ flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "RTL" );
+ DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
+
+ // Check flex direction property.
+ flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, "columnReverse" );
+ DALI_TEST_EQUALS( (FlexContainer::FlexDirection)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ), FlexContainer::COLUMN_REVERSE, TEST_LOCATION );
+
+ // Check flex wrap property.
+ flexContainer.SetProperty( FlexContainer::Property::FLEX_WRAP, "wrap" );
+ DALI_TEST_EQUALS( (FlexContainer::WrapType)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_WRAP ), FlexContainer::WRAP, TEST_LOCATION );
+
+ // Check justify content property.
+ flexContainer.SetProperty( FlexContainer::Property::JUSTIFY_CONTENT, "spaceBetween" );
+ DALI_TEST_EQUALS( (FlexContainer::Justification)flexContainer.GetProperty<int>( FlexContainer::Property::JUSTIFY_CONTENT ), FlexContainer::JUSTIFY_SPACE_BETWEEN, TEST_LOCATION );
+
+ // Check align items property.
+ flexContainer.SetProperty( FlexContainer::Property::ALIGN_ITEMS, "flexStart" );
+ DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_ITEMS ), FlexContainer::ALIGN_FLEX_START, TEST_LOCATION );
+
+ // Check align content property.
+ flexContainer.SetProperty( FlexContainer::Property::ALIGN_CONTENT, "stretch" );
+ DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_CONTENT ), FlexContainer::ALIGN_STRETCH, TEST_LOCATION );
+
+ END_TEST;
+}
+
int UtcDaliToolkitFlexContainerSetChildPropertyP(void)
{
ToolkitTestApplication application;
DALI_TEST_EQUALS( actor.GetProperty<Vector4>( FlexContainer::ChildProperty::FLEX_MARGIN ), Vector4( 10.0f, 10.0f, 10.0f, 10.0f ), TEST_LOCATION );
DALI_TEST_CHECK( actor.GetPropertyIndex( CHILD_PROPERTY_NAME_FLEX_MARGIN ) == FlexContainer::ChildProperty::FLEX_MARGIN );
+ application.SendNotification();
+ application.Render();
+
+ END_TEST;
+}
+
+
+
+//Functor to test whether RelayoutSignal is emitted
+class RelayoutSignalHandler : public Dali::ConnectionTracker
+{
+public:
+
+ RelayoutSignalHandler( FlexContainer& actor )
+ : mSignalVerified( false ),
+ mActor( actor )
+ {
+ }
+
+ // callback to be connected to RelayoutSignal
+ void RelayoutCallback( Actor actor )
+ {
+ if( mActor == actor )
+ {
+ mSignalVerified = true;
+ }
+ }
+
+ void Reset()
+ {
+ mSignalVerified = false;
+ }
+
+ bool mSignalVerified;
+ Actor& mActor;
+};
+
+int UtcDaliToolkitFlexContainerRemoveChildP(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
+ FlexContainer flexContainer = FlexContainer::New();
+ DALI_TEST_CHECK( flexContainer );
+
+ // Add flex container to the stage
+ Stage::GetCurrent().Add( flexContainer );
+
+ RelayoutSignalHandler relayoutSignal(flexContainer);
+ flexContainer.OnRelayoutSignal().Connect(&relayoutSignal, &RelayoutSignalHandler::RelayoutCallback );
+
+ // Create two actors and add them to the container
+ Actor actor1 = Actor::New();
+ Actor actor2 = Actor::New();
+ DALI_TEST_CHECK( actor1 );
+ DALI_TEST_CHECK( actor2 );
+
+ flexContainer.Add(actor1);
+ flexContainer.Add(actor2);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( relayoutSignal.mSignalVerified, true, TEST_LOCATION );
+ relayoutSignal.Reset();
+
+ DALI_TEST_CHECK( actor1 );
+ DALI_TEST_CHECK( actor2 );
+
+ flexContainer.Remove(actor1);
+ application.SendNotification();
+ application.Render();
+ DALI_TEST_EQUALS( relayoutSignal.mSignalVerified, true, TEST_LOCATION );
+ relayoutSignal.Reset();
+
+ flexContainer.Remove(actor2);
+ application.SendNotification();
+ application.Render();
+ DALI_TEST_EQUALS( relayoutSignal.mSignalVerified, true, TEST_LOCATION );
+ relayoutSignal.Reset();
+
END_TEST;
}
+namespace
+{
+
+// Functors to test whether PreFocusChange signal is emitted when the keyboard focus is about to change
+class PreFocusChangeCallback : public Dali::ConnectionTracker
+{
+public:
+ PreFocusChangeCallback(bool& signalReceived, Actor firstFocusActor)
+ : mSignalVerified(signalReceived),
+ mFirstFocusActor(firstFocusActor),
+ mDirection(Control::KeyboardFocus::LEFT)
+ {
+ }
+
+ Actor Callback(Actor currentFocusedActor, Actor proposedActorToFocus, Control::KeyboardFocus::Direction direction)
+ {
+ tet_infoline("Verifying PreFocusChangeCallback()");
+
+ mSignalVerified = true;
+ mDirection = direction;
+ if( ! proposedActorToFocus )
+ {
+ return mFirstFocusActor;
+ }
+ else
+ {
+ return proposedActorToFocus;
+ }
+ }
+
+ void Reset()
+ {
+ mSignalVerified = false;
+ mDirection = Control::KeyboardFocus::LEFT;
+ }
+
+ bool& mSignalVerified;
+ Actor mFirstFocusActor;
+ Control::KeyboardFocus::Direction mDirection;
+};
+
+// Functors to test whether focus changed signal is emitted when the keyboard focus is changed
+class FocusChangedCallback : public Dali::ConnectionTracker
+{
+public:
+ FocusChangedCallback(bool& signalReceived)
+ : mSignalVerified(signalReceived),
+ mOriginalFocusedActor(),
+ mCurrentFocusedActor()
+ {
+ }
+
+ void Callback(Actor originalFocusedActor, Actor currentFocusedActor)
+ {
+ tet_infoline("Verifying FocusChangedCallback()");
+
+ if(originalFocusedActor == mCurrentFocusedActor)
+ {
+ mSignalVerified = true;
+ }
+
+ mOriginalFocusedActor = originalFocusedActor;
+ mCurrentFocusedActor = currentFocusedActor;
+ }
+
+ void Reset()
+ {
+ mSignalVerified = false;
+ }
+
+ bool& mSignalVerified;
+ Actor mOriginalFocusedActor;
+ Actor mCurrentFocusedActor;
+};
+
+} // anonymous namespace
+
+
+int UtcDaliToolkitFlexContainerMoveFocus(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
+ FlexContainer flexContainer = FlexContainer::New();
+ DALI_TEST_CHECK( flexContainer );
+
+ flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW );
+
+ // Add flex container to the stage
+ Stage::GetCurrent().Add( flexContainer );
+ Size stageSize = Stage::GetCurrent().GetSize();
+
+ RelayoutSignalHandler relayoutSignal(flexContainer);
+ flexContainer.OnRelayoutSignal().Connect(&relayoutSignal, &RelayoutSignalHandler::RelayoutCallback );
+ flexContainer.SetSize( stageSize );
+
+ // Create two actors and add them to the container
+ Actor actor1 = Actor::New();
+ Actor actor2 = Actor::New();
+ actor1.SetKeyboardFocusable(true);
+ actor2.SetKeyboardFocusable(true);
+ DALI_TEST_CHECK( actor1 );
+ DALI_TEST_CHECK( actor2 );
+
+ flexContainer.Add(actor1);
+ flexContainer.Add(actor2);
+
+ application.SendNotification();
+ application.Render();
+
+ KeyboardFocusManager manager = KeyboardFocusManager::Get();
+ DALI_TEST_CHECK(manager);
+
+ bool preFocusChangeSignalVerified = false;
+ PreFocusChangeCallback preFocusChangeCallback(preFocusChangeSignalVerified, actor1);
+ manager.PreFocusChangeSignal().Connect( &preFocusChangeCallback, &PreFocusChangeCallback::Callback );
+
+ bool focusChangedSignalVerified = false;
+ FocusChangedCallback focusChangedCallback(focusChangedSignalVerified);
+ manager.FocusChangedSignal().Connect( &focusChangedCallback, &FocusChangedCallback::Callback );
+
+ // Move the focus to the right
+ DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::RIGHT), true, TEST_LOCATION);
+ DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified);
+ DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor1, TEST_LOCATION);
+ preFocusChangeCallback.Reset();
+ DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor1, TEST_LOCATION);
+ focusChangedCallback.Reset();
+
+ // Move the focus towards right
+ DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::RIGHT), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(preFocusChangeCallback.mSignalVerified, true, TEST_LOCATION);
+ DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor2, TEST_LOCATION);
+ DALI_TEST_EQUALS(focusChangedCallback.mSignalVerified, true, TEST_LOCATION);
+ DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor2, TEST_LOCATION);
+
+ preFocusChangeCallback.Reset();
+ focusChangedCallback.Reset();
+
+ // Move the focus towards left
+ DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::LEFT), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(preFocusChangeCallback.mSignalVerified, true, TEST_LOCATION);
+ DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor1, TEST_LOCATION);
+ DALI_TEST_EQUALS(focusChangedCallback.mSignalVerified, true, TEST_LOCATION);
+ DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor1, TEST_LOCATION);
+
+ END_TEST;
+}
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/dali-toolkit.h>
#include <dali/integration-api/events/touch-event-integ.h>
+#include <dali/integration-api/events/pan-gesture-event.h>
using namespace Dali;
using namespace Dali::Toolkit;
return true;
}
-int UtcDaliSliderSignals(void)
+int UtcDaliSliderSignals1(void)
{
ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
- tet_infoline(" UtcDaliSliderSignals");
+ tet_infoline(" UtcDaliSliderSignals1");
// Create the Popup actor
Slider slider = Slider::New();
DALI_TEST_CHECK(gSliderMarkCallBackCalled);
END_TEST;
}
+
+
+namespace
+{
+bool gSliderSignal=false;
+struct SliderSignalFunctor
+{
+ SliderSignalFunctor()
+ {
+ }
+
+ void operator()()
+ {
+ gSliderSignal = true;
+ }
+};
+} // anonymous
+
+
+
+int UtcDaliSliderSignals2(void)
+{
+ ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
+ tet_infoline(" UtcDaliSliderSignals1");
+
+ // Create the Popup actor
+ Slider slider = Slider::New();
+ Stage::GetCurrent().Add( slider );
+ slider.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ slider.SetAnchorPoint(ParentOrigin::TOP_LEFT);
+ slider.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
+ slider.SetPosition( 0.0f, 0.0f );
+
+ const float MIN_BOUND = 0.0f;
+ const float MAX_BOUND = 1.0f;
+ const int NUM_MARKS = 5;
+ Property::Array marks;
+ for( int i = 0; i < NUM_MARKS; ++i )
+ {
+ marks.PushBack( MIN_BOUND + ( static_cast<float>(i) / ( NUM_MARKS - 1) ) * ( MAX_BOUND - MIN_BOUND ) );
+ }
+ slider.SetProperty( Slider::Property::MARKS, marks );
+ slider.SetProperty( Slider::Property::MARK_TOLERANCE, 0.1f );
+
+ gSliderSignal = false;
+ ConnectionTracker* testTracker = new ConnectionTracker();
+ slider.ConnectSignal( testTracker, "valueChanged", SliderSignalFunctor() );
+
+ application.SendNotification();
+ application.Render();
+
+ gSliderValueChangedCallBackCalled = false;
+ gSliderMarkCallBackCalled = false;
+
+ Dali::Integration::TouchEvent event;
+
+ event = Dali::Integration::TouchEvent();
+
+ Integration::Point pointDown;
+ pointDown.SetState( PointState::DOWN );
+ pointDown.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
+ event.AddPoint( pointDown );
+
+ for( int i = 0; i < 5; ++i )
+ {
+ Integration::Point pointMotion;
+ pointMotion.SetState( PointState::MOTION );
+ pointMotion.SetScreenPosition( Vector2( 10.0f + i * 10.0f, 10.0f ) );
+ event.AddPoint( pointMotion );
+ }
+
+ Integration::Point pointUp;
+ pointUp.SetState( PointState::UP );
+ pointUp.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
+ event.AddPoint( pointUp );
+
+ application.ProcessEvent( event );
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_CHECK(gSliderSignal);
+ END_TEST;
+}
+
+int UtcDaliSetPropertyP(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline( "UtcDaliSetPropertyP" );
+
+ Slider slider = Slider::New();
+ slider.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ slider.SetAnchorPoint(ParentOrigin::TOP_LEFT);
+ slider.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
+ slider.SetPosition( 0.0f, 0.0f );
+
+ Stage::GetCurrent().Add(slider);
+ application.SendNotification();
+ application.Render();
+
+ Property::Map map;
+ map["rendererType"] = "image";
+ map["url"] = "url";
+ slider.SetProperty(Slider::Property::LOWER_BOUND, 1.0f);
+ slider.SetProperty(Slider::Property::UPPER_BOUND, 5.0f);
+ slider.SetProperty(Slider::Property::VALUE, 3.0f);
+ slider.SetProperty(Slider::Property::DISABLED_COLOR, Color::BLACK);
+ slider.SetProperty(Slider::Property::VALUE_PRECISION, 4);
+ slider.SetProperty(Slider::Property::SHOW_POPUP, true);
+ slider.SetProperty(Slider::Property::SHOW_VALUE, true);
+ slider.SetProperty(Slider::Property::MARKS, false);
+ slider.SetProperty(Slider::Property::SNAP_TO_MARKS, false);
+ slider.SetProperty(Slider::Property::MARK_TOLERANCE, 0.5f);
+
+ float lb = slider.GetProperty<float>(Slider::Property::LOWER_BOUND);
+ DALI_TEST_EQUALS(lb, 1.0f, TEST_LOCATION);
+ float ub = slider.GetProperty<float>(Slider::Property::UPPER_BOUND);
+ DALI_TEST_EQUALS(ub, 5.0f, TEST_LOCATION);
+ float val = slider.GetProperty<float>(Slider::Property::VALUE);
+ DALI_TEST_EQUALS(val, 3.0f, TEST_LOCATION);
+ Vector4 color = slider.GetProperty<Vector4>(Slider::Property::DISABLED_COLOR);
+ DALI_TEST_EQUALS( color, Color::BLACK, TEST_LOCATION );
+ int precision = slider.GetProperty<int>(Slider::Property::VALUE_PRECISION);
+ DALI_TEST_EQUALS( precision, 4, TEST_LOCATION);
+ bool showPopup = slider.GetProperty<bool>(Slider::Property::SHOW_POPUP);
+ DALI_TEST_EQUALS( showPopup, true , TEST_LOCATION);
+ bool showValue = slider.GetProperty<bool>(Slider::Property::SHOW_VALUE);
+ DALI_TEST_EQUALS( showValue, true, TEST_LOCATION );
+ bool marks = slider.GetProperty<bool>(Slider::Property::MARKS);
+ DALI_TEST_EQUALS( marks, false, TEST_LOCATION );
+ bool snapToMarks = slider.GetProperty<bool>(Slider::Property::SNAP_TO_MARKS);
+ DALI_TEST_EQUALS( snapToMarks, false, TEST_LOCATION );
+ float tolerance = slider.GetProperty<float>(Slider::Property::MARK_TOLERANCE);
+ DALI_TEST_EQUALS( tolerance, 0.5f, TEST_LOCATION );
+
+ {
+ map["url"] = "track2.png";
+ slider.SetProperty(Slider::Property::TRACK_VISUAL, map);
+ map["url"] = "handle2.png";
+ slider.SetProperty(Slider::Property::HANDLE_VISUAL, map);
+ map["url"] = "progress2.png";
+ slider.SetProperty(Slider::Property::PROGRESS_VISUAL, map);
+ map["url"] = "popup2.png";
+ slider.SetProperty(Slider::Property::POPUP_VISUAL, map);
+ map["url"] = "popupArrow2.png";
+ slider.SetProperty(Slider::Property::POPUP_ARROW_VISUAL, map);
+
+ Property::Value value = slider.GetProperty(Slider::Property::TRACK_VISUAL);
+ Property::Map* resultMap = value.GetMap();
+ DALI_TEST_CHECK( resultMap );
+ Property::Value* url = resultMap->Find("url");
+ DALI_TEST_CHECK( url ) ;
+ DALI_TEST_EQUALS( *url, "track2.png", TEST_LOCATION );
+
+ value = slider.GetProperty(Slider::Property::HANDLE_VISUAL);
+ resultMap = value.GetMap();
+ DALI_TEST_CHECK( resultMap );
+ url = resultMap->Find("url");
+ DALI_TEST_CHECK( url ) ;
+ DALI_TEST_EQUALS( *url, "handle2.png", TEST_LOCATION );
+
+ value = slider.GetProperty(Slider::Property::PROGRESS_VISUAL);
+ resultMap = value.GetMap();
+ DALI_TEST_CHECK( resultMap );
+ url = resultMap->Find("url");
+ DALI_TEST_CHECK( url ) ;
+ DALI_TEST_EQUALS( *url, "progress2.png", TEST_LOCATION );
+
+ value = slider.GetProperty(Slider::Property::POPUP_VISUAL);
+ resultMap = value.GetMap();
+ DALI_TEST_CHECK( resultMap );
+ url = resultMap->Find("url");
+ DALI_TEST_CHECK( url ) ;
+ DALI_TEST_EQUALS( *url, "popup2.png", TEST_LOCATION );
+
+ value = slider.GetProperty(Slider::Property::POPUP_ARROW_VISUAL);
+ resultMap = value.GetMap();
+ DALI_TEST_CHECK( resultMap );
+ url = resultMap->Find("url");
+ DALI_TEST_CHECK( url ) ;
+ DALI_TEST_EQUALS( *url, "popupArrow2.png", TEST_LOCATION );
+ }
+
+ END_TEST;
+}
+
+
+// DestroyHandleVisualDisplay
+// CreateValueDisplay
+// SlidingFinishedSignal()
+// UpdateSkin disabled
+// AddPopup
+// RemovePopup
+// SnapToMark
+// HideValueView
+// GetDisabledColor
+// GetShowPopup
+// GetShowVisual
+// DisplayPopup (with set valueText label)