/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2015 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 "assert.h"
#include <dali/public-api/dali-core.h>
#include <string>
+#include <cfloat> // For FLT_MAX
#include <dali/integration-api/events/touch-event-integ.h>
+#include <dali/integration-api/events/hover-event-integ.h>
#include <dali-test-suite-utils.h>
//& set: DaliActor
namespace
{
-
bool gTouchCallBackCalled=false;
-bool gTouchCallBack2Called=false;
+bool gHoverCallBackCalled=false;
/**
* Simulates a Down Touch at 25.0, 25.0.
app.Render(1);
gTouchCallBackCalled = false;
- gTouchCallBack2Called = false;
// simulate a touch event
- Dali::TouchPoint point( 0, TouchPoint::Down, 25.0f, 25.0f );
+ Dali::Integration::Point point;
+ point.SetState( PointState::DOWN );
+ point.SetScreenPosition( Vector2( 25.0f, 25.0f ) );
Dali::Integration::TouchEvent event;
event.AddPoint( point );
app.ProcessEvent( event );
struct TestConstraint
{
- Vector4 operator()(const Vector4& color)
+ void operator()( Vector4& color, const PropertyInputContainer& /* inputs */ )
{
gTestConstraintCalled = true;
- return Vector4(color.x, color.y, color.z, 0.1f);
}
};
{
}
- T operator()(const T& current)
+ void operator()( T& current, const PropertyInputContainer& /* inputs */ )
{
mResultRef = mValue;
- return current;
}
unsigned int& mResultRef;
unsigned int mValue;
};
-bool wasConstraintCallbackCalled1 = false;
-void TestConstraintCallback1( ActiveConstraint& constraint )
-{
- wasConstraintCallbackCalled1 = true;
-}
-
-bool wasConstraintCallbackCalled2 = false;
-void TestConstraintCallback2( ActiveConstraint& constraint )
-{
- wasConstraintCallbackCalled2 = true;
-}
-
-bool wasConstraintCallbackCalled3 = false;
-void TestConstraintCallback3( ActiveConstraint& constraint )
-{
- wasConstraintCallbackCalled3 = true;
-}
-
static bool TestCallback(Actor actor, const TouchEvent& event)
{
gTouchCallBackCalled = true;
END_TEST;
}
-static bool TestCallback2(Actor actor, const TouchEvent& event)
+static bool TestCallback3(Actor actor, const HoverEvent& event)
{
- gTouchCallBack2Called = true;
+ gHoverCallBackCalled = true;
return false;
END_TEST;
}
{
PositionComponentConstraint(){}
- Vector3 operator()(const Vector3& current, const PropertyInput& property)
+ void operator()( Vector3& pos, const PropertyInputContainer& inputs )
{
- const Matrix& m = property.GetMatrix();
- Vector3 pos;
+ const Matrix& m = inputs[0]->GetMatrix();
Vector3 scale;
Quaternion rot;
m.GetTransformComponents(pos, rot, scale);
- return pos;
}
};
+struct OrientationComponentConstraint
+{
+ OrientationComponentConstraint(){}
+
+ void operator()( Quaternion& orientation, const PropertyInputContainer& inputs )
+ {
+ const Quaternion& parentOrientation = inputs[0]->GetQuaternion();
+ Vector3 pos, scale;
+ Quaternion rot;
+ orientation = parentOrientation;
+ }
+};
+// OnRelayout
+
+static bool gOnRelayoutCallBackCalled = false;
+static std::vector< std::string > gActorNamesRelayout;
+void OnRelayoutCallback( Actor actor )
+{
+ gOnRelayoutCallBackCalled = true;
+ gActorNamesRelayout.push_back( actor.GetName() );
+}
} // anonymous namespace
}
//& purpose: Testing Dali::Actor::DownCast()
-int UtcDaliActorDownCast(void)
+int UtcDaliActorDownCastP(void)
{
TestApplication application;
tet_infoline("Testing Dali::Actor::DownCast()");
}
//& purpose: Testing Dali::Actor::DownCast()
-int UtcDaliActorDownCast2(void)
+int UtcDaliActorDownCastN(void)
{
TestApplication application;
tet_infoline("Testing Dali::Actor::DownCast()");
END_TEST;
}
-int UtcDaliActorAdd(void)
+int UtcDaliActorAddP(void)
{
tet_infoline("Testing Actor::Add");
TestApplication application;
parent2.Add( child );
DALI_TEST_EQUALS( parent2.GetChildCount(), 1u, TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliActorAddN(void)
+{
+ tet_infoline("Testing Actor::Add");
+ TestApplication application;
+
+ Actor child = Actor::New();
+
+ Actor parent2 = Actor::New();
+ parent2.Add( child );
+
// try illegal Add
try
{
}
catch(Dali::DaliException& e)
{
- tet_printf("Assertion %s test at %s\n", e.mCondition.c_str(), e.mLocation.c_str());
+ DALI_TEST_PRINT_ASSERT( e );
DALI_TEST_ASSERT(e, "this != &child", TEST_LOCATION);
DALI_TEST_EQUALS( parent2.GetChildCount(), 1u, TEST_LOCATION );
}
}
catch(Dali::DaliException& e)
{
- tet_printf("Assertion %s test at %s\n", e.mCondition.c_str(), e.mLocation.c_str());
+ DALI_TEST_PRINT_ASSERT( e );
DALI_TEST_ASSERT(e, "!child.IsRoot()", TEST_LOCATION);
DALI_TEST_EQUALS( parent2.GetChildCount(), 1u, TEST_LOCATION );
}
}
catch(Dali::DaliException& e)
{
- tet_printf("Assertion %s test at %s\n", e.mCondition.c_str(), e.mLocation.c_str());
+ DALI_TEST_PRINT_ASSERT( e );
DALI_TEST_ASSERT(e, "actor", TEST_LOCATION);
DALI_TEST_EQUALS( parent2.GetChildCount(), 1u, TEST_LOCATION );
}
tet_printf("Assertion test failed - wrong Exception\n" );
tet_result(TET_FAIL);
}
- END_TEST;
-}
-
-int UtcDaliActorInsert(void)
-{
- tet_infoline("Testing Actor::Insert");
- TestApplication application;
-
- Actor parent = Actor::New();
- Stage::GetCurrent().Add( parent );
- Actor first = Actor::New();
- Actor second = Actor::New();
- Actor third = Actor::New();
-
- parent.Insert(1, first); // test insert beyond range
- DALI_TEST_EQUALS( parent.GetChildCount(), 1u, TEST_LOCATION );
- parent.Insert(0, second);
- DALI_TEST_EQUALS( parent.GetChildCount(), 2u, TEST_LOCATION );
- parent.Insert(1, third);
-
- DALI_TEST_EQUALS( parent.GetChildCount(), 3u, TEST_LOCATION );
-
- DALI_TEST_CHECK(parent.GetChildAt(0) == first);
- DALI_TEST_CHECK(parent.GetChildAt(1) == second);
- DALI_TEST_CHECK(parent.GetChildAt(2) == third);
END_TEST;
}
-
-int UtcDaliActorRemove01(void)
+int UtcDaliActorRemoveN(void)
{
tet_infoline("Testing Actor::Remove");
TestApplication application;
// add child back
parent.Add(child);
- // try illegal Remove
- try
- {
- parent.Remove( parent );
- tet_printf("Assertion test failed - no Exception\n" );
- tet_result(TET_FAIL);
- }
- catch(Dali::DaliException& e)
- {
- tet_printf("Assertion %s test at %s\n", e.mCondition.c_str(), e.mLocation.c_str());
- DALI_TEST_ASSERT(e, "this != &child", TEST_LOCATION);
- DALI_TEST_EQUALS( parent.GetChildCount(), 1u, TEST_LOCATION );
- }
- catch(...)
- {
- tet_printf("Assertion test failed - wrong Exception\n" );
- tet_result(TET_FAIL);
- }
+ DALI_TEST_EQUALS( parent.GetChildCount(), 1u, TEST_LOCATION );
+ // try Remove self, its a no-op
+ parent.Remove( parent );
+ DALI_TEST_EQUALS( parent.GetChildCount(), 1u, TEST_LOCATION );
// try Remove empty
try
}
catch(Dali::DaliException& e)
{
- tet_printf("Assertion %s test at %s\n", e.mCondition.c_str(), e.mLocation.c_str());
+ DALI_TEST_PRINT_ASSERT( e );
DALI_TEST_ASSERT(e, "actor", TEST_LOCATION);
DALI_TEST_EQUALS( parent.GetChildCount(), 1u, TEST_LOCATION );
}
END_TEST;
}
-int UtcDaliActorRemove02(void)
+int UtcDaliActorRemoveP(void)
{
TestApplication application;
END_TEST;
}
+int UtcDaliActorSetParentOriginIndividual(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ Vector3 vector(0.7f, 0.8f, 0.9f);
+ DALI_TEST_CHECK(vector != actor.GetCurrentParentOrigin());
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN_X, vector.x );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.x, actor.GetCurrentParentOrigin().x, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN_Y, vector.y );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.y, actor.GetCurrentParentOrigin().y, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN_Z, vector.z );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.z, actor.GetCurrentParentOrigin().z, TEST_LOCATION );
+
+ END_TEST;
+}
+
int UtcDaliActorGetCurrentParentOrigin(void)
{
TestApplication application;
END_TEST;
}
+int UtcDaliActorSetAnchorPointIndividual(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ Vector3 vector(0.7f, 0.8f, 0.9f);
+ DALI_TEST_CHECK(vector != actor.GetCurrentAnchorPoint());
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT_X, vector.x );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.x, actor.GetCurrentAnchorPoint().x, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT_Y, vector.y );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.y, actor.GetCurrentAnchorPoint().y, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT_Z, vector.z );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.z, actor.GetCurrentAnchorPoint().z, TEST_LOCATION );
+
+ END_TEST;
+}
+
int UtcDaliActorGetCurrentAnchorPoint(void)
{
TestApplication application;
TestApplication application;
Actor actor = Actor::New();
- Vector3 vector(100.0f, 100.0f, 100.0f);
+ Vector3 vector(100.0f, 100.0f, 0.0f);
DALI_TEST_CHECK(vector != actor.GetCurrentSize());
TestApplication application;
Actor actor = Actor::New();
- Vector3 vector(100.0f, 100.0f, 100.0f);
+ Vector3 vector(100.0f, 100.0f, 0.0f);
DALI_TEST_CHECK(vector != actor.GetCurrentSize());
END_TEST;
}
+int UtcDaliActorSetSizeIndividual(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ Vector3 vector(0.7f, 0.8f, 0.9f);
+ DALI_TEST_CHECK(vector != actor.GetCurrentSize());
+
+ actor.SetProperty( Actor::Property::SIZE_WIDTH, vector.width );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.width, actor.GetCurrentSize().width, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::SIZE_HEIGHT, vector.height );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.height, actor.GetCurrentSize().height, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::SIZE_DEPTH, vector.depth );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.depth, actor.GetCurrentSize().depth, TEST_LOCATION );
+
+ END_TEST;
+}
+
+
int UtcDaliActorGetCurrentSize(void)
{
TestApplication application;
Actor actor = Actor::New();
Vector3 vector(100.0f, 100.0f, 20.0f);
- DALI_TEST_CHECK(vector != actor.GetSize());
+ DALI_TEST_CHECK(vector != actor.GetTargetSize());
DALI_TEST_CHECK(vector != actor.GetCurrentSize());
actor.SetSize(vector);
- DALI_TEST_CHECK(vector == actor.GetSize());
+ DALI_TEST_CHECK(vector == actor.GetTargetSize());
DALI_TEST_CHECK(vector != actor.GetCurrentSize());
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_CHECK(vector == actor.GetSize());
+ DALI_TEST_CHECK(vector == actor.GetTargetSize());
DALI_TEST_CHECK(vector == actor.GetCurrentSize());
// Animation
const float durationSeconds = 2.0f;
Animation animation = Animation::New( durationSeconds );
const Vector3 targetValue( 10.0f, 20.0f, 30.0f );
- animation.AnimateTo( Property( actor, Actor::SIZE ), targetValue );
+ animation.AnimateTo( Property( actor, Actor::Property::SIZE ), targetValue );
- DALI_TEST_CHECK( actor.GetSize() == targetValue );
+ DALI_TEST_CHECK( actor.GetTargetSize() == targetValue );
// Start the animation
animation.Play();
application.SendNotification();
application.Render( static_cast<unsigned int>( durationSeconds * 1000.0f ) );
- DALI_TEST_CHECK( actor.GetSize() == targetValue );
+ DALI_TEST_CHECK( actor.GetTargetSize() == targetValue );
END_TEST;
}
application.Render();
DALI_TEST_EQUALS( Vector3( 1.0f, 1.1f, 1.2f ), actor.GetCurrentPosition(), TEST_LOCATION );
- actor.MoveBy( Vector3( 0.1f, 0.1f, 0.1f ) );
+ actor.TranslateBy( Vector3( 0.1f, 0.1f, 0.1f ) );
// flush the queue and render once
application.SendNotification();
application.Render();
END_TEST;
}
-int UtcDaliActorMoveBy(void)
+int UtcDaliActorSetPositionProperties(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ Vector3 vector(0.7f, 0.8f, 0.9f);
+ DALI_TEST_CHECK(vector != actor.GetCurrentPosition());
+
+ actor.SetProperty( Actor::Property::POSITION_X, vector.x );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.x, actor.GetCurrentPosition().x, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::POSITION_Y, vector.y );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.y, actor.GetCurrentPosition().y, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::POSITION_Z, vector.z );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.z, actor.GetCurrentPosition().z, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorTranslateBy(void)
{
TestApplication application;
DALI_TEST_CHECK(vector == actor.GetCurrentPosition());
- actor.MoveBy(vector);
+ actor.TranslateBy(vector);
// flush the queue and render once
application.SendNotification();
DALI_TEST_EQUALS( parent.GetCurrentWorldPosition(), Vector3::ZERO, TEST_LOCATION );
DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), Vector3::ZERO, TEST_LOCATION );
- // first test default, which is INHERIT_PARENT_POSITION
+ // first test default, which is to inherit position
DALI_TEST_EQUALS( child.GetPositionInheritanceMode(), Dali::INHERIT_PARENT_POSITION, TEST_LOCATION );
application.SendNotification();
application.Render(0); // should only really call Update as Render is not required to update scene
DALI_TEST_EQUALS( parent.GetCurrentWorldPosition(), parentPosition, TEST_LOCATION );
DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), parentPosition + childPosition, TEST_LOCATION );
- // Change inheritance mode to use parent
- child.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION );
- DALI_TEST_EQUALS( child.GetPositionInheritanceMode(), Dali::USE_PARENT_POSITION, TEST_LOCATION );
+
+ //Change child position
+ Vector3 childOffset( -1.0f, 1.0f, 0.0f );
+ child.SetPosition( childOffset );
+
+ // Change inheritance mode to not inherit
+ child.SetPositionInheritanceMode( Dali::DONT_INHERIT_POSITION );
+ DALI_TEST_EQUALS( child.GetPositionInheritanceMode(), Dali::DONT_INHERIT_POSITION, TEST_LOCATION );
+ application.SendNotification();
+ application.Render(0); // should only really call Update as Render is not required to update scene
+ DALI_TEST_EQUALS( parent.GetCurrentPosition(), parentPosition, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentPosition(), childOffset, TEST_LOCATION );
+ DALI_TEST_EQUALS( parent.GetCurrentWorldPosition(), parentPosition, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), childOffset, TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliActorSetInheritPosition(void)
+{
+ tet_infoline("Testing Actor::SetInheritPosition");
+ TestApplication application;
+
+ Actor parent = Actor::New();
+ Vector3 parentPosition( 1.0f, 2.0f, 3.0f );
+ parent.SetPosition( parentPosition );
+ parent.SetParentOrigin( ParentOrigin::CENTER );
+ parent.SetAnchorPoint( AnchorPoint::CENTER );
+ Stage::GetCurrent().Add( parent );
+
+ Actor child = Actor::New();
+ child.SetParentOrigin( ParentOrigin::CENTER );
+ child.SetAnchorPoint( AnchorPoint::CENTER );
+ Vector3 childPosition( 10.0f, 11.0f, 12.0f );
+ child.SetPosition( childPosition );
+ parent.Add( child );
+
+ // The actors should not have a world position yet
+ DALI_TEST_EQUALS( parent.GetCurrentWorldPosition(), Vector3::ZERO, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), Vector3::ZERO, TEST_LOCATION );
+
+ // first test default, which is to inherit position
+ DALI_TEST_EQUALS( child.IsPositionInherited(), true, TEST_LOCATION );
application.SendNotification();
application.Render(0); // should only really call Update as Render is not required to update scene
DALI_TEST_EQUALS( parent.GetCurrentPosition(), parentPosition, TEST_LOCATION );
DALI_TEST_EQUALS( child.GetCurrentPosition(), childPosition, TEST_LOCATION );
DALI_TEST_EQUALS( parent.GetCurrentWorldPosition(), parentPosition, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), parentPosition, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), parentPosition + childPosition, TEST_LOCATION );
- // Change inheritance mode to use parent + offset
- child.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION_PLUS_LOCAL_POSITION );
+ //Change child position
Vector3 childOffset( -1.0f, 1.0f, 0.0f );
child.SetPosition( childOffset );
- DALI_TEST_EQUALS( child.GetPositionInheritanceMode(), Dali::USE_PARENT_POSITION_PLUS_LOCAL_POSITION, TEST_LOCATION );
+
+ // Use local position as world postion
+ child.SetInheritPosition( false );
+ DALI_TEST_EQUALS( child.IsPositionInherited(), false, TEST_LOCATION );
application.SendNotification();
application.Render(0); // should only really call Update as Render is not required to update scene
DALI_TEST_EQUALS( parent.GetCurrentPosition(), parentPosition, TEST_LOCATION );
DALI_TEST_EQUALS( child.GetCurrentPosition(), childOffset, TEST_LOCATION );
DALI_TEST_EQUALS( parent.GetCurrentWorldPosition(), parentPosition, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), parentPosition + childOffset, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), childOffset, TEST_LOCATION );
- // Change inheritance mode to not inherit
- child.SetPositionInheritanceMode( Dali::DONT_INHERIT_POSITION );
- DALI_TEST_EQUALS( child.GetPositionInheritanceMode(), Dali::DONT_INHERIT_POSITION, TEST_LOCATION );
+ //Change back to inherit position from parent
+ child.SetInheritPosition( true );
+ DALI_TEST_EQUALS( child.IsPositionInherited(), true, TEST_LOCATION );
application.SendNotification();
application.Render(0); // should only really call Update as Render is not required to update scene
DALI_TEST_EQUALS( parent.GetCurrentPosition(), parentPosition, TEST_LOCATION );
DALI_TEST_EQUALS( child.GetCurrentPosition(), childOffset, TEST_LOCATION );
DALI_TEST_EQUALS( parent.GetCurrentWorldPosition(), parentPosition, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), childOffset, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldPosition(), parentPosition + childOffset, TEST_LOCATION );
END_TEST;
}
-// SetRotation(float angleRadians, Vector3 axis)
-int UtcDaliActorSetRotation01(void)
+// SetOrientation(float angleRadians, Vector3 axis)
+int UtcDaliActorSetOrientation01(void)
{
TestApplication application;
- Quaternion rotation(0.785f, Vector3(1.0f, 1.0f, 0.0f));
+ Quaternion rotation( Radian(0.785f), Vector3(1.0f, 1.0f, 0.0f));
Actor actor = Actor::New();
- actor.SetRotation(rotation);
+ actor.SetOrientation(rotation);
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(rotation, actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(rotation, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
END_TEST;
}
-int UtcDaliActorSetRotation02(void)
+int UtcDaliActorSetOrientation02(void)
{
TestApplication application;
Actor actor = Actor::New();
- float angle = 0.785f;
+ Radian angle( 0.785f );
Vector3 axis(1.0f, 1.0f, 0.0f);
- actor.SetRotation(Radian( angle ), axis);
+ actor.SetOrientation( angle, axis);
Quaternion rotation( angle, axis );
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(rotation, actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(rotation, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
Stage::GetCurrent().Add( actor );
actor.RotateBy( Degree( 360 ), axis);
- DALI_TEST_EQUALS(rotation, actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(rotation, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
- actor.SetRotation( Degree( 0 ), Vector3( 1.0f, 0.0f, 0.0f ) );
- Quaternion result( 0, Vector3( 1.0f, 0.0f, 0.0f ) );
+ actor.SetOrientation( Degree( 0 ), Vector3( 1.0f, 0.0f, 0.0f ) );
+ Quaternion result( Radian( 0 ), Vector3( 1.0f, 0.0f, 0.0f ) );
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( result, actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS( result, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
- actor.SetRotation(Radian( angle ), axis);
+ actor.SetOrientation( angle, axis);
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(rotation, actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(rotation, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
Stage::GetCurrent().Remove( actor );
END_TEST;
}
+// SetOrientation(float angleRadians, Vector3 axis)
+int UtcDaliActorSetOrientationProperty(void)
+{
+ TestApplication application;
+
+ Quaternion rotation( Radian(0.785f), Vector3(1.0f, 1.0f, 0.0f));
+ Actor actor = Actor::New();
+
+ actor.SetProperty( Actor::Property::ORIENTATION, rotation );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(rotation, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
+ END_TEST;
+}
+
// RotateBy(float angleRadians, Vector3 axis)
int UtcDaliActorRotateBy01(void)
{
Actor actor = Actor::New();
- float angle = M_PI * 0.25f;
- actor.RotateBy(Radian( angle ), Vector3::ZAXIS);
+ Radian angle( M_PI * 0.25f );
+ actor.RotateBy(( angle ), Vector3::ZAXIS);
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(Quaternion(M_PI*0.25f, Vector3::ZAXIS), actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(Quaternion( angle, Vector3::ZAXIS), actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
Stage::GetCurrent().Add( actor );
- actor.RotateBy(Radian( angle ), Vector3::ZAXIS);
+ actor.RotateBy( angle, Vector3::ZAXIS);
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(Quaternion(M_PI*0.5f, Vector3::ZAXIS), actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(Quaternion(angle * 2.0f, Vector3::ZAXIS), actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
Stage::GetCurrent().Remove( actor );
END_TEST;
Actor actor = Actor::New();
- Quaternion rotation(M_PI*0.25f, Vector3::ZAXIS);
+ Radian angle( M_PI * 0.25f );
+ Quaternion rotation(angle, Vector3::ZAXIS);
actor.RotateBy(rotation);
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(rotation, actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(rotation, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
actor.RotateBy(rotation);
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(Quaternion(M_PI*0.5f, Vector3::ZAXIS), actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(Quaternion(angle * 2.0f, Vector3::ZAXIS), actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
END_TEST;
}
-int UtcDaliActorGetCurrentRotation(void)
+int UtcDaliActorGetCurrentOrientation(void)
{
TestApplication application;
Actor actor = Actor::New();
- Quaternion rotation(0.785f, Vector3(1.0f, 1.0f, 0.0f));
- actor.SetRotation(rotation);
+ Quaternion rotation(Radian(0.785f), Vector3(1.0f, 1.0f, 0.0f));
+ actor.SetOrientation(rotation);
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS(rotation, actor.GetCurrentRotation(), 0.001, TEST_LOCATION);
+ DALI_TEST_EQUALS(rotation, actor.GetCurrentOrientation(), 0.001, TEST_LOCATION);
END_TEST;
}
-int UtcDaliActorGetCurrentWorldRotation(void)
+int UtcDaliActorGetCurrentWorldOrientation(void)
{
tet_infoline("Testing Actor::GetCurrentWorldRotation");
TestApplication application;
Actor parent = Actor::New();
Radian rotationAngle( Degree(90.0f) );
Quaternion rotation( rotationAngle, Vector3::YAXIS );
- parent.SetRotation( rotation );
+ parent.SetOrientation( rotation );
Stage::GetCurrent().Add( parent );
Actor child = Actor::New();
- child.SetRotation( rotation );
+ child.SetOrientation( rotation );
parent.Add( child );
// The actors should not have a world rotation yet
- DALI_TEST_EQUALS( parent.GetCurrentWorldRotation(), Quaternion(0.0f, Vector3::YAXIS), 0.001, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldRotation(), Quaternion(0.0f, Vector3::YAXIS), 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( parent.GetCurrentWorldOrientation(), Quaternion(Radian(0.0f), Vector3::YAXIS), 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldOrientation(), Quaternion(Radian(0.0f), Vector3::YAXIS), 0.001, TEST_LOCATION );
application.SendNotification();
application.Render(0);
- DALI_TEST_EQUALS( parent.GetCurrentRotation(), rotation, 0.001, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentRotation(), rotation, 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( parent.GetCurrentOrientation(), rotation, 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentOrientation(), rotation, 0.001, TEST_LOCATION );
// The actors should have a world rotation now
- DALI_TEST_EQUALS( parent.GetCurrentWorldRotation(), Quaternion( rotationAngle, Vector3::YAXIS ), 0.001, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldRotation(), Quaternion( rotationAngle * 2.0f, Vector3::YAXIS ), 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( parent.GetCurrentWorldOrientation(), Quaternion( rotationAngle, Vector3::YAXIS ), 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldOrientation(), Quaternion( rotationAngle * 2.0f, Vector3::YAXIS ), 0.001, TEST_LOCATION );
// turn off child rotation inheritance
- child.SetInheritRotation( false );
- DALI_TEST_EQUALS( child.IsRotationInherited(), false, TEST_LOCATION );
+ child.SetInheritOrientation( false );
+ DALI_TEST_EQUALS( child.IsOrientationInherited(), false, TEST_LOCATION );
application.SendNotification();
application.Render(0);
// The actors should have a world rotation now
- DALI_TEST_EQUALS( parent.GetCurrentWorldRotation(), Quaternion( rotationAngle, Vector3::YAXIS ), 0.001, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldRotation(), rotation, 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( parent.GetCurrentWorldOrientation(), Quaternion( rotationAngle, Vector3::YAXIS ), 0.001, TEST_LOCATION );
+ DALI_TEST_EQUALS( child.GetCurrentWorldOrientation(), rotation, 0.001, TEST_LOCATION );
END_TEST;
}
END_TEST;
}
-int UtcDaliActorScaleBy(void)
+int UtcDaliActorSetScaleIndividual(void)
{
TestApplication application;
+
Actor actor = Actor::New();
- Vector3 vector(100.0f, 100.0f, 100.0f);
+ Vector3 vector(0.7f, 0.8f, 0.9f);
DALI_TEST_CHECK(vector != actor.GetCurrentScale());
- actor.SetScale(vector);
+ actor.SetProperty( Actor::Property::SCALE_X, vector.x );
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_CHECK(vector == actor.GetCurrentScale());
+ DALI_TEST_EQUALS( vector.x, actor.GetCurrentScale().x, TEST_LOCATION );
- actor.ScaleBy(vector);
+ actor.SetProperty( Actor::Property::SCALE_Y, vector.y );
// flush the queue and render once
application.SendNotification();
application.Render();
- DALI_TEST_CHECK(vector*100.0f == actor.GetCurrentScale());
- END_TEST;
+ DALI_TEST_EQUALS( vector.y, actor.GetCurrentScale().y, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::SCALE_Z, vector.z );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.z, actor.GetCurrentScale().z, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorScaleBy(void)
+{
+ TestApplication application;
+ Actor actor = Actor::New();
+ Vector3 vector(100.0f, 100.0f, 100.0f);
+
+ DALI_TEST_CHECK(vector != actor.GetCurrentScale());
+
+ actor.SetScale(vector);
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_CHECK(vector == actor.GetCurrentScale());
+
+ actor.ScaleBy(vector);
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_CHECK(vector*100.0f == actor.GetCurrentScale());
+ END_TEST;
}
int UtcDaliActorGetCurrentScale(void)
DALI_TEST_EQUALS(actor.GetCurrentOpacity(), 0.4f, TEST_LOCATION );
// change opacity, actor is on stage to change is not immediate
- actor.OpacityBy( 0.1f );
+ actor.SetOpacity( actor.GetCurrentOpacity() + 0.1f );
// flush the queue and render once
application.SendNotification();
application.Render();
DALI_TEST_EQUALS(actor.GetCurrentOpacity(), 0.9f, TEST_LOCATION );
// change opacity, actor is on stage to change is not immediate
- actor.OpacityBy( -0.9f );
+ actor.SetOpacity( actor.GetCurrentOpacity() - 0.9f );
// flush the queue and render once
application.SendNotification();
application.Render();
application.Render();
DALI_TEST_CHECK(color == actor.GetCurrentColor());
- actor.ColorBy( Vector4( -0.4f, -0.5f, -0.6f, -0.4f ) );
+ actor.SetColor( actor.GetCurrentColor() + Vector4( -0.4f, -0.5f, -0.6f, -0.4f ) );
// flush the queue and render once
application.SendNotification();
application.Render();
application.Render();
DALI_TEST_EQUALS( color, actor.GetCurrentColor(), TEST_LOCATION );
- actor.ColorBy( Vector4( 1.1f, 1.1f, 1.1f, 1.1f ) );
+ actor.SetColor( actor.GetCurrentColor() + Vector4( 1.1f, 1.1f, 1.1f, 1.1f ) );
// flush the queue and render once
application.SendNotification();
application.Render();
END_TEST;
}
+int UtcDaliActorSetColorIndividual(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ Vector4 vector(0.7f, 0.8f, 0.9f, 0.6f);
+ DALI_TEST_CHECK(vector != actor.GetCurrentColor());
+
+ actor.SetProperty( Actor::Property::COLOR_RED, vector.r );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.r, actor.GetCurrentColor().r, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::COLOR_GREEN, vector.g );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.g, actor.GetCurrentColor().g, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::COLOR_BLUE, vector.b );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.b, actor.GetCurrentColor().b, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::COLOR_ALPHA, vector.a );
+
+ // flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS( vector.a, actor.GetCurrentColor().a, TEST_LOCATION );
+
+ END_TEST;
+}
+
+
int UtcDaliActorGetCurrentColor(void)
{
TestApplication application;
float localX;
float localY;
+ application.SendNotification();
+ application.Render();
+
DALI_TEST_CHECK( actor.ScreenToLocal(localX, localY, 50.0f, 50.0f) );
DALI_TEST_EQUALS(localX, 40.0f, 0.01f, TEST_LOCATION);
END_TEST;
}
-
-int UtcDaliActorApplyConstraint(void)
-{
- TestApplication application;
-
- gTestConstraintCalled = false;
-
- Actor actor = Actor::New();
-
- Constraint constraint = Constraint::New<Vector4>( Actor::COLOR, TestConstraint() );
- actor.ApplyConstraint(constraint);
-
- DALI_TEST_CHECK( gTestConstraintCalled == false );
- // add to stage
- Stage::GetCurrent().Add( actor );
-
- // flush the queue and render once
- application.SendNotification();
- application.Render();
-
- DALI_TEST_CHECK( gTestConstraintCalled == true );
- END_TEST;
-}
-
-
-int UtcDaliActorApplyConstraintAppliedCallback(void)
-{
- TestApplication application;
-
- // Build a reusable constraint
-
- Actor parent = Actor::New();
- Vector3 parentSize( 100.0f, 100.0f, 100.0f );
- parent.SetSize( parentSize );
- Stage::GetCurrent().Add( parent );
-
- Constraint constraint = Constraint::New<Vector3>( Actor::SIZE,
- Source( parent, Actor::SIZE ),
- EqualToConstraint() );
-
- // Create some child actors
-
- Actor child1 = Actor::New();
- parent.Add( child1 );
-
- Actor child2 = Actor::New();
- parent.Add( child2 );
-
- Actor child3 = Actor::New();
- parent.Add( child3 );
-
- // Apply constraint with different timings - everything should be finished after 10 seconds
-
- wasConstraintCallbackCalled1 = false;
- wasConstraintCallbackCalled2 = false;
- wasConstraintCallbackCalled3 = false;
-
- constraint.SetApplyTime( 5.0f );
- ActiveConstraint activeConstraint1 = child1.ApplyConstraint( constraint );
- activeConstraint1.AppliedSignal().Connect( TestConstraintCallback1 );
-
- constraint.SetApplyTime( 10.0f );
- ActiveConstraint activeConstraint2 = child2.ApplyConstraint( constraint );
- activeConstraint2.AppliedSignal().Connect( TestConstraintCallback2 );
-
- constraint.SetApplyTime( TimePeriod( 2.0f/*delay*/, 5.0f/*duration*/ ) );
- ActiveConstraint activeConstraint3 = child3.ApplyConstraint( constraint );
- activeConstraint3.AppliedSignal().Connect( TestConstraintCallback3 );
-
- // Check event-side size
- DALI_TEST_EQUALS( child1.GetSize(), Vector3::ZERO, TEST_LOCATION );
- DALI_TEST_EQUALS( child2.GetSize(), Vector3::ZERO, TEST_LOCATION );
- DALI_TEST_EQUALS( child3.GetSize(), Vector3::ZERO, TEST_LOCATION );
-
- DALI_TEST_EQUALS( child1.GetCurrentSize(), Vector3::ZERO, TEST_LOCATION );
- DALI_TEST_EQUALS( child2.GetCurrentSize(), Vector3::ZERO, TEST_LOCATION );
- DALI_TEST_EQUALS( child3.GetCurrentSize(), Vector3::ZERO, TEST_LOCATION );
-
- application.SendNotification();
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 1 elapsed second
-
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize*0.20f, TEST_LOCATION ); // 1 / 5 * 100 = 20%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.10f, TEST_LOCATION ); // 1 / 10 * 100 = 10%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize*0.00f, TEST_LOCATION ); // 0%
-
- // Check signals have not fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 2 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize*0.40f, TEST_LOCATION ); // 2 / 5 * 100 = 40%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.20f, TEST_LOCATION ); // 2 / 10 * 100 = 20%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize*0.00f, TEST_LOCATION ); // 0%
-
- // Check signals have not fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 3 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize*0.60f, TEST_LOCATION ); // 3 / 5 * 100 = 60%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.30f, TEST_LOCATION ); // 3 / 10 * 100 = 30%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize*0.20f, TEST_LOCATION ); // (3 - 2) / 5 * 100 = 20%
-
- // Check signals have not fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 4 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize*0.80f, TEST_LOCATION ); // 4 / 5 * 100 = 80%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.40f, TEST_LOCATION ); // 4 / 10 * 100 = 40%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize*0.40f, TEST_LOCATION ); // (4 - 2) / 5 * 100 = 40%
-
- // Check signals have not fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 5 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION ); // 5 / 5 * 100 = 100%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.50f, TEST_LOCATION ); // 5 / 10 * 100 = 50%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize*0.60f, TEST_LOCATION ); // (5 - 2) / 5 * 100 = 60%
-
- // Check signals have not fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 6 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100% (signal 1 should fire)
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.60f, TEST_LOCATION ); // 6 / 10 * 100 = 60%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize*0.80f, TEST_LOCATION ); // (6 - 2) / 5 * 100 = 80%
-
- // 1st signal should have fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, true, TEST_LOCATION );
- wasConstraintCallbackCalled1 = false;
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 7 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.70f, TEST_LOCATION ); // 7 / 10 * 100 = 70%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize, TEST_LOCATION ); // (7 - 2) / 5 * 100 = 100%
-
- // Check signals have not fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 8 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.80f, TEST_LOCATION ); // 8 / 10 * 100 = 80%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100% (signal 3 should fire)
-
- // 3rd signal should have fired
- application.SendNotification();
-
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, true, TEST_LOCATION );
- wasConstraintCallbackCalled3 = false;
-
- application.Render(static_cast<unsigned int>(1000.0f)); // 9 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize*0.90f, TEST_LOCATION ); // 9 / 10 * 100 = 90%
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100%
-
- // Check signals have not fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(static_cast<unsigned int>(1000.0f + 1.0f)); // over 10 elapsed seconds
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100%
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100% (signal 2 should fire)
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize, TEST_LOCATION ); // Past 100%
-
- // 2nd signal should have fired
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, true, TEST_LOCATION );
- wasConstraintCallbackCalled2 = false;
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- // Check that nothing has changed after a couple of buffer swaps
-
- application.Render(0);
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION );
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize, TEST_LOCATION );
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize, TEST_LOCATION );
-
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
-
- application.Render(0);
- DALI_TEST_EQUALS( child1.GetCurrentSize(), parentSize, TEST_LOCATION );
- DALI_TEST_EQUALS( child2.GetCurrentSize(), parentSize, TEST_LOCATION );
- DALI_TEST_EQUALS( child3.GetCurrentSize(), parentSize, TEST_LOCATION );
-
- application.SendNotification();
- DALI_TEST_EQUALS( wasConstraintCallbackCalled1, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled2, false, TEST_LOCATION );
- DALI_TEST_EQUALS( wasConstraintCallbackCalled3, false, TEST_LOCATION );
- END_TEST;
-}
-
int UtcDaliActorRemoveConstraints(void)
{
tet_infoline(" UtcDaliActorRemoveConstraints");
Actor actor = Actor::New();
- Constraint constraint = Constraint::New<Vector4>( Actor::COLOR, TestConstraint() );
- actor.ApplyConstraint(constraint);
+ Constraint constraint = Constraint::New<Vector4>( actor, Actor::Property::COLOR, TestConstraint() );
+ constraint.Apply();
actor.RemoveConstraints();
DALI_TEST_CHECK( gTestConstraintCalled == false );
Stage::GetCurrent().Add( actor );
- actor.ApplyConstraint(constraint);
+ constraint.Apply();
// flush the queue and render once
application.SendNotification();
END_TEST;
}
-int UtcDaliActorRemoveConstraint(void)
-{
- tet_infoline(" UtcDaliActorRemoveConstraint");
- TestApplication application;
-
- Actor actor = Actor::New();
-
- // 1. Apply Constraint1 and Constraint2, and test...
- unsigned int result1 = 0u;
- unsigned int result2 = 0u;
- ActiveConstraint activeConstraint1 = actor.ApplyConstraint( Constraint::New<Vector4>( Actor::COLOR, TestConstraintRef<Vector4>(result1, 1) ) );
- ActiveConstraint activeConstraint2 = actor.ApplyConstraint( Constraint::New<Vector4>( Actor::COLOR, TestConstraintRef<Vector4>(result2, 2) ) );
-
- Stage::GetCurrent().Add( actor );
- // flush the queue and render once
- application.SendNotification();
- application.Render();
-
- DALI_TEST_EQUALS( result1, 1u, TEST_LOCATION );
- DALI_TEST_EQUALS( result2, 2u, TEST_LOCATION );
-
- // 2. Remove Constraint1 and test...
- result1 = 0;
- result2 = 0;
- actor.RemoveConstraint(activeConstraint1);
- // make color property dirty, which will trigger constraints to be reapplied.
- actor.SetColor( Color::WHITE );
- // flush the queue and render once
- application.SendNotification();
- application.Render();
-
- DALI_TEST_EQUALS( result1, 0u, TEST_LOCATION ); ///< constraint 1 should not apply now.
- DALI_TEST_EQUALS( result2, 2u, TEST_LOCATION );
-
- // 3. Re-Apply Constraint1 and test...
- result1 = 0;
- result2 = 0;
- activeConstraint1 = actor.ApplyConstraint( Constraint::New<Vector4>( Actor::COLOR, TestConstraintRef<Vector4>(result1, 1) ) );
- // make color property dirty, which will trigger constraints to be reapplied.
- actor.SetColor( Color::WHITE );
- // flush the queue and render once
- application.SendNotification();
- application.Render();
-
- DALI_TEST_EQUALS( result1, 1u, TEST_LOCATION );
- DALI_TEST_EQUALS( result2, 2u, TEST_LOCATION );
-
- // 2. Remove Constraint2 and test...
- result1 = 0;
- result2 = 0;
- actor.RemoveConstraint(activeConstraint2);
- // make color property dirty, which will trigger constraints to be reapplied.
- actor.SetColor( Color::WHITE );
- // flush the queue and render once
- application.SendNotification();
- application.Render();
-
- DALI_TEST_EQUALS( result1, 1u, TEST_LOCATION );
- DALI_TEST_EQUALS( result2, 0u, TEST_LOCATION ); ///< constraint 2 should not apply now.
-
- // 2. Remove Constraint1 as well and test...
- result1 = 0;
- result2 = 0;
- actor.RemoveConstraint(activeConstraint1);
- // make color property dirty, which will trigger constraints to be reapplied.
- actor.SetColor( Color::WHITE );
- // flush the queue and render once
- application.SendNotification();
- application.Render();
-
- DALI_TEST_EQUALS( result1, 0u, TEST_LOCATION ); ///< constraint 1 should not apply now.
- DALI_TEST_EQUALS( result2, 0u, TEST_LOCATION ); ///< constraint 2 should not apply now.
- END_TEST;
-}
-
int UtcDaliActorRemoveConstraintTag(void)
{
tet_infoline(" UtcDaliActorRemoveConstraintTag");
unsigned int result2 = 0u;
unsigned constraint1Tag = 1u;
- Constraint constraint1 = Constraint::New<Vector4>( Actor::COLOR, TestConstraintRef<Vector4>(result1, 1) );
+ Constraint constraint1 = Constraint::New<Vector4>( actor, Actor::Property::COLOR, TestConstraintRef<Vector4>(result1, 1) );
constraint1.SetTag( constraint1Tag );
- actor.ApplyConstraint( constraint1 );
+ constraint1.Apply();
unsigned constraint2Tag = 2u;
- Constraint constraint2 = Constraint::New<Vector4>( Actor::COLOR, TestConstraintRef<Vector4>(result2, 2) );
+ Constraint constraint2 = Constraint::New<Vector4>( actor, Actor::Property::COLOR, TestConstraintRef<Vector4>(result2, 2) );
constraint2.SetTag( constraint2Tag );
- actor.ApplyConstraint( constraint2 );
+ constraint2.Apply();
Stage::GetCurrent().Add( actor );
// flush the queue and render once
// 3. Re-Apply Constraint1 and test...
result1 = 0;
result2 = 0;
- actor.ApplyConstraint( constraint1 );
+ constraint1.Apply();
// make color property dirty, which will trigger constraints to be reapplied.
actor.SetColor( Color::WHITE );
// flush the queue and render once
// simulate a touch event in the middle of the screen
Vector2 touchPoint( Stage::GetCurrent().GetSize() * 0.5 );
- Dali::TouchPoint point( 1, TouchPoint::Down, touchPoint.x, touchPoint.y );
+ Dali::Integration::Point point;
+ point.SetDeviceId( 1 );
+ point.SetState( PointState::DOWN );
+ point.SetScreenPosition( Vector2( touchPoint.x, touchPoint.y ) );
Dali::Integration::TouchEvent event;
event.AddPoint( point );
application.ProcessEvent( event );
END_TEST;
}
-
-int UtcDaliActorSetSizeSignal(void)
+int UtcDaliActorHoveredSignal(void)
{
TestApplication application;
- Actor actor = Actor::New();
- actor.SetSizeSignal().Connect( SetSizeCallback );
+ gHoverCallBackCalled = false;
- gSetSize.x = gSetSize.y = gSetSize.z = 0.0f;
- gSetSizeCallBackCalled = false;
- Vector2 size2d( 1.0f, 2.0f );
- actor.SetSize( size2d );
- DALI_TEST_CHECK( gSetSizeCallBackCalled == true );
- // SetSize with Vector2 sets depth to be the minimum of width & height
- DALI_TEST_EQUALS( Vector3( 1.0f, 2.0f, 1.0f ), gSetSize, TEST_LOCATION );
+ // get the root layer
+ Actor actor = Stage::GetCurrent().GetRootLayer();
+ DALI_TEST_CHECK( gHoverCallBackCalled == false );
- gSetSize.x = gSetSize.y = gSetSize.z = 0.0f;
- gSetSizeCallBackCalled = false;
- actor.SetSize( 22.0f, 11.0f );
- DALI_TEST_CHECK( gSetSizeCallBackCalled == true );
- // SetSize with Vector2 sets depth to be the minimum of width & height
- DALI_TEST_EQUALS( Vector3( 22.0f, 11.0f, 11.0f ), gSetSize, TEST_LOCATION );
+ application.SendNotification();
+ application.Render();
- gSetSize.x = gSetSize.y = gSetSize.z = 0.0f;
- gSetSizeCallBackCalled = false;
- Vector3 size( 3.0f, 4.0f, 5.0f );
- actor.SetSize( size );
- DALI_TEST_CHECK( gSetSizeCallBackCalled == true );
- DALI_TEST_EQUALS( size, gSetSize, TEST_LOCATION );
+ // connect to its hover signal
+ actor.HoveredSignal().Connect( TestCallback3 );
- // add actor to stage to see that signal still works
- Stage::GetCurrent().Add( actor );
+ // simulate a hover event in the middle of the screen
+ Vector2 touchPoint( Stage::GetCurrent().GetSize() * 0.5 );
+ Dali::Integration::Point point;
+ point.SetDeviceId( 1 );
+ point.SetState( PointState::MOTION );
+ point.SetScreenPosition( Vector2( touchPoint.x, touchPoint.y ) );
+ Dali::Integration::HoverEvent event;
+ event.AddPoint( point );
+ application.ProcessEvent( event );
- gSetSize.x = gSetSize.y = gSetSize.z = 0.0f;
- gSetSizeCallBackCalled = false;
- actor.SetSize( -1.0f, -2.0f, -3.0f );
- DALI_TEST_CHECK( gSetSizeCallBackCalled == true );
- DALI_TEST_EQUALS( Vector3( -1.0f, -2.0f, -3.0f ), gSetSize, TEST_LOCATION );
+ DALI_TEST_CHECK( gHoverCallBackCalled == true );
END_TEST;
}
END_TEST;
}
-int UtcDaliActorFindChildByAlias(void)
+int UtcDaliActorFindChildById(void)
{
- tet_infoline("Testing Dali::Actor::FindChildByAlias()");
+ tet_infoline("Testing Dali::Actor::UtcDaliActorFindChildById()");
TestApplication application;
Actor parent = Actor::New();
- parent.SetName( "parent" );
Actor first = Actor::New();
- first .SetName( "first" );
Actor second = Actor::New();
- second.SetName( "second" );
parent.Add(first);
first.Add(second);
- Actor found = parent.FindChildByAlias( "foo" );
+ Actor found = parent.FindChildById( 100000 );
DALI_TEST_CHECK( !found );
- found = parent.FindChildByAlias( "parent" );
+ found = parent.FindChildById( parent.GetId() );
DALI_TEST_CHECK( found == parent );
- found = parent.FindChildByAlias( "first" );
+ found = parent.FindChildById( first.GetId() );
DALI_TEST_CHECK( found == first );
- found = parent.FindChildByAlias( "second" );
+ found = parent.FindChildById( second.GetId() );
DALI_TEST_CHECK( found == second );
END_TEST;
}
-int UtcDaliActorFindChildById(void)
-{
- tet_infoline("Testing Dali::Actor::UtcDaliActorFindChildById()");
- TestApplication application;
-
- Actor parent = Actor::New();
- Actor first = Actor::New();
- Actor second = Actor::New();
-
- parent.Add(first);
- first.Add(second);
-
- Actor found = parent.FindChildById( 100000 );
- DALI_TEST_CHECK( !found );
-
- found = parent.FindChildById( parent.GetId() );
- DALI_TEST_CHECK( found == parent );
-
- found = parent.FindChildById( first.GetId() );
- DALI_TEST_CHECK( found == first );
-
- found = parent.FindChildById( second.GetId() );
- DALI_TEST_CHECK( found == second );
- END_TEST;
-}
-
-int UtcDaliActorHitTest(void)
+int UtcDaliActorHitTest(void)
{
struct HitTestData
{
// connect to its touch signal
actor.TouchedSignal().Connect(TestCallback);
- Dali::TouchPoint point( 0, TouchPoint::Down, hitTestData[index]->mTouchPoint.x, hitTestData[index]->mTouchPoint.y );
+ Dali::Integration::Point point;
+ point.SetState( PointState::DOWN );
+ point.SetScreenPosition( Vector2( hitTestData[index]->mTouchPoint.x, hitTestData[index]->mTouchPoint.y ) );
Dali::Integration::TouchEvent event;
event.AddPoint( point );
DALI_TEST_CHECK( DrawMode::NORMAL == a.GetDrawMode() ); // Ensure overlay is off by default
- a.SetDrawMode( DrawMode::OVERLAY );
+ a.SetDrawMode( DrawMode::OVERLAY_2D );
app.SendNotification();
app.Render(1);
- DALI_TEST_CHECK( DrawMode::OVERLAY == a.GetDrawMode() ); // Check Actor is overlay
+ DALI_TEST_CHECK( DrawMode::OVERLAY_2D == a.GetDrawMode() ); // Check Actor is overlay
a.SetDrawMode( DrawMode::STENCIL );
app.SendNotification();
ids.push_back( 10 ); // third rendered actor
app.GetGlAbstraction().SetNextTextureIds( ids );
- BitmapImage imageA = BitmapImage::New(16, 16);
- BitmapImage imageB = BitmapImage::New(16, 16);
- BitmapImage imageC = BitmapImage::New(16, 16);
- ImageActor a = ImageActor::New( imageA );
- ImageActor b = ImageActor::New( imageB );
- ImageActor c = ImageActor::New( imageC );
+ BufferImage imageA = BufferImage::New(16, 16);
+ BufferImage imageB = BufferImage::New(16, 16);
+ BufferImage imageC = BufferImage::New(16, 16);
+ Actor a = CreateRenderableActor( imageA );
+ Actor b = CreateRenderableActor( imageB );
+ Actor c = CreateRenderableActor( imageC );
// Render a,b,c as regular non-overlays. so order will be:
// a (8)
// b (9)
// c (10)
// a (8)
- a.SetDrawMode( DrawMode::OVERLAY );
+ a.SetDrawMode( DrawMode::OVERLAY_2D );
app.GetGlAbstraction().ClearBoundTextures();
app.SendNotification();
END_TEST;
}
-
-int UtcDaliActorSetDrawModeOverlayHitTest(void)
-{
- TestApplication app;
- tet_infoline(" UtcDaliActorSetDrawModeOverlayHitTest");
-
- BitmapImage imageA = BitmapImage::New(16, 16);
- BitmapImage imageB = BitmapImage::New(16, 16);
- ImageActor a = ImageActor::New( imageA );
- ImageActor b = ImageActor::New( imageB );
-
- // Render a,b as regular non-overlays. so order will be:
- Stage::GetCurrent().Add(a);
- Stage::GetCurrent().Add(b);
-
- a.SetSize(Vector2(100.0f, 100.0f));
- b.SetSize(Vector2(100.0f, 100.0f));
-
- // position b overlapping a. (regular non-overlays)
- // hit test at point 'x'
- // --------
- // | |
- // | a |
- // | --------
- // | |x |
- // | | |
- // ----| |
- // | b |
- // | |
- // --------
- // note: b is on top, because it's Z position is higher.
- a.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
- b.SetPosition(Vector3(50.0f, 50.0f, 1.0f));
-
- // connect to their touch signals
- a.TouchedSignal().Connect(TestCallback);
- b.TouchedSignal().Connect(TestCallback2);
-
- a.SetDrawMode( DrawMode::NORMAL );
- b.SetDrawMode( DrawMode::NORMAL );
- SimulateTouchForSetOverlayHitTest(app);
-
- DALI_TEST_CHECK( gTouchCallBackCalled == false );
- DALI_TEST_CHECK( gTouchCallBack2Called == true );
- // Make Actor a an overlay.
- // --------
- // | |
- // | a |
- // | |----
- // | x | |
- // | | |
- // -------- |
- // | b |
- // | |
- // --------
- // note: a is on top, because it is an overlay.
- a.SetDrawMode( DrawMode::OVERLAY );
- b.SetDrawMode( DrawMode::NORMAL );
- SimulateTouchForSetOverlayHitTest(app);
-
- DALI_TEST_CHECK( gTouchCallBackCalled == true );
- DALI_TEST_CHECK( gTouchCallBack2Called == false );
- // Make both Actors as overlays
- // --------
- // | |
- // | a |
- // | --------
- // | |x |
- // | | |
- // ----| |
- // | b |
- // | |
- // --------
- // note: b is on top, because it is the 2nd child in the hierarchy.
- a.SetDrawMode( DrawMode::OVERLAY );
- b.SetDrawMode( DrawMode::OVERLAY );
- SimulateTouchForSetOverlayHitTest(app);
-
- DALI_TEST_CHECK( gTouchCallBackCalled == false );
- DALI_TEST_CHECK( gTouchCallBack2Called == true );
- END_TEST;
-}
-
int UtcDaliActorGetCurrentWorldMatrix(void)
{
TestApplication app;
Quaternion parentRotation(rotationAngle, Vector3::ZAXIS);
Vector3 parentScale( 1.0f, 2.0f, 3.0f );
parent.SetPosition( parentPosition );
- parent.SetRotation( parentRotation );
+ parent.SetOrientation( parentRotation );
parent.SetScale( parentScale );
Stage::GetCurrent().Add( parent );
Quaternion childRotation( childRotationAngle, Vector3::YAXIS );
Vector3 childScale( 2.0f, 2.0f, 2.0f );
child.SetPosition( childPosition );
- child.SetRotation( childRotation );
+ child.SetOrientation( childRotation );
child.SetScale( childScale );
parent.Add( child );
- // The actors should not have a world matrix yet
- DALI_TEST_EQUALS( parent.GetCurrentWorldMatrix(), Matrix::IDENTITY, 0.001, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldMatrix(), Matrix::IDENTITY, 0.001, TEST_LOCATION );
-
app.SendNotification();
app.Render(0);
app.Render();
Matrix parentMatrix(false);
parentMatrix.SetTransformComponents(parentScale, parentRotation, parentPosition);
- Vector3 childWorldPosition = parentPosition + parentRotation * parentScale * childPosition;
- Quaternion childWorldRotation = parentRotation * childRotation;
- Vector3 childWorldScale = parentScale * childScale;
+ Matrix childMatrix(false);
+ childMatrix.SetTransformComponents( childScale, childRotation, childPosition );
+ //Child matrix should be the composition of child and parent
Matrix childWorldMatrix(false);
- childWorldMatrix.SetTransformComponents(childWorldScale, childWorldRotation, childWorldPosition);
+ Matrix::Multiply( childWorldMatrix, childMatrix, parentMatrix);
DALI_TEST_EQUALS( parent.GetCurrentWorldMatrix(), parentMatrix, 0.001, TEST_LOCATION );
DALI_TEST_EQUALS( child.GetCurrentWorldMatrix(), childWorldMatrix, 0.001, TEST_LOCATION );
Quaternion parentRotation(rotationAngle, Vector3::ZAXIS);
Vector3 parentScale( 1.0f, 2.0f, 3.0f );
parent.SetPosition( parentPosition );
- parent.SetRotation( parentRotation );
+ parent.SetOrientation( parentRotation );
parent.SetScale( parentScale );
Stage::GetCurrent().Add( parent );
Actor child = Actor::New();
child.SetParentOrigin(ParentOrigin::CENTER);
- Constraint posConstraint = Constraint::New<Vector3>( Actor::POSITION, Source( parent, Actor::WORLD_MATRIX), PositionComponentConstraint() );
- child.ApplyConstraint(posConstraint);
+ Constraint posConstraint = Constraint::New<Vector3>( child, Actor::Property::POSITION, PositionComponentConstraint() );
+ posConstraint.AddSource( Source( parent, Actor::Property::WORLD_MATRIX ) );
+ posConstraint.Apply();
Stage::GetCurrent().Add( child );
- // The actors should not have a world matrix yet
- DALI_TEST_EQUALS( parent.GetCurrentWorldMatrix(), Matrix::IDENTITY, 0.001, TEST_LOCATION );
- DALI_TEST_EQUALS( child.GetCurrentWorldMatrix(), Matrix::IDENTITY, 0.001, TEST_LOCATION );
-
app.SendNotification();
app.Render(0);
app.Render();
END_TEST;
}
+int UtcDaliActorConstrainedToOrientation(void)
+{
+ TestApplication app;
+ tet_infoline(" UtcDaliActorConstrainedToOrientation");
+
+ Actor parent = Actor::New();
+ parent.SetParentOrigin(ParentOrigin::CENTER);
+ parent.SetAnchorPoint(AnchorPoint::CENTER);
+ Vector3 parentPosition( 10.0f, 20.0f, 30.0f);
+ Radian rotationAngle(Degree(85.0f));
+ Quaternion parentRotation(rotationAngle, Vector3::ZAXIS);
+ Vector3 parentScale( 1.0f, 2.0f, 3.0f );
+ parent.SetPosition( parentPosition );
+ parent.SetOrientation( parentRotation );
+ parent.SetScale( parentScale );
+ Stage::GetCurrent().Add( parent );
+
+ Actor child = Actor::New();
+ child.SetParentOrigin(ParentOrigin::CENTER);
+ Constraint posConstraint = Constraint::New<Quaternion>( child, Actor::Property::ORIENTATION, OrientationComponentConstraint() );
+ posConstraint.AddSource( Source( parent, Actor::Property::ORIENTATION ) );
+ posConstraint.Apply();
+
+ Stage::GetCurrent().Add( child );
+
+ app.SendNotification();
+ app.Render(0);
+ app.Render();
+ app.SendNotification();
+
+ DALI_TEST_EQUALS( child.GetCurrentOrientation(), parent.GetCurrentOrientation(), 0.001, TEST_LOCATION );
+ END_TEST;
+}
+
int UtcDaliActorUnparent(void)
{
TestApplication app;
tet_infoline(" UtcDaliActorSetGetOverlay");
Actor parent = Actor::New();
- parent.SetDrawMode(DrawMode::OVERLAY );
- DALI_TEST_CHECK( parent.GetDrawMode() == DrawMode::OVERLAY );
+ parent.SetDrawMode(DrawMode::OVERLAY_2D );
+ DALI_TEST_CHECK( parent.GetDrawMode() == DrawMode::OVERLAY_2D );
END_TEST;
}
-// Current Dynamics functions are crashing, so testing these sections are futile
-
-int UtcDaliActorDynamics(void)
-{
- DALI_TEST_CHECK( true );
- END_TEST;
-}
-
int UtcDaliActorCreateDestroy(void)
{
Actor* actor = new Actor;
const PropertyStringIndex PROPERTY_TABLE[] =
{
- { "parent-origin", Actor::PARENT_ORIGIN, Property::VECTOR3 },
- { "parent-origin-x", Actor::PARENT_ORIGIN_X, Property::FLOAT },
- { "parent-origin-y", Actor::PARENT_ORIGIN_Y, Property::FLOAT },
- { "parent-origin-z", Actor::PARENT_ORIGIN_Z, Property::FLOAT },
- { "anchor-point", Actor::ANCHOR_POINT, Property::VECTOR3 },
- { "anchor-point-x", Actor::ANCHOR_POINT_X, Property::FLOAT },
- { "anchor-point-y", Actor::ANCHOR_POINT_Y, Property::FLOAT },
- { "anchor-point-z", Actor::ANCHOR_POINT_Z, Property::FLOAT },
- { "size", Actor::SIZE, Property::VECTOR3 },
- { "size-width", Actor::SIZE_WIDTH, Property::FLOAT },
- { "size-height", Actor::SIZE_HEIGHT, Property::FLOAT },
- { "size-depth", Actor::SIZE_DEPTH, Property::FLOAT },
- { "position", Actor::POSITION, Property::VECTOR3 },
- { "position-x", Actor::POSITION_X, Property::FLOAT },
- { "position-y", Actor::POSITION_Y, Property::FLOAT },
- { "position-z", Actor::POSITION_Z, Property::FLOAT },
- { "world-position", Actor::WORLD_POSITION, Property::VECTOR3 },
- { "world-position-x", Actor::WORLD_POSITION_X, Property::FLOAT },
- { "world-position-y", Actor::WORLD_POSITION_Y, Property::FLOAT },
- { "world-position-z", Actor::WORLD_POSITION_Z, Property::FLOAT },
- { "rotation", Actor::ROTATION, Property::ROTATION },
- { "world-rotation", Actor::WORLD_ROTATION, Property::ROTATION },
- { "scale", Actor::SCALE, Property::VECTOR3 },
- { "scale-x", Actor::SCALE_X, Property::FLOAT },
- { "scale-y", Actor::SCALE_Y, Property::FLOAT },
- { "scale-z", Actor::SCALE_Z, Property::FLOAT },
- { "world-scale", Actor::WORLD_SCALE, Property::VECTOR3 },
- { "visible", Actor::VISIBLE, Property::BOOLEAN },
- { "color", Actor::COLOR, Property::VECTOR4 },
- { "color-red", Actor::COLOR_RED, Property::FLOAT },
- { "color-green", Actor::COLOR_GREEN, Property::FLOAT },
- { "color-blue", Actor::COLOR_BLUE, Property::FLOAT },
- { "color-alpha", Actor::COLOR_ALPHA, Property::FLOAT },
- { "world-color", Actor::WORLD_COLOR, Property::VECTOR4 },
- { "world-matrix", Actor::WORLD_MATRIX, Property::MATRIX },
- { "name", Actor::NAME, Property::STRING },
- { "sensitive", Actor::SENSITIVE, Property::BOOLEAN },
- { "leave-required", Actor::LEAVE_REQUIRED, Property::BOOLEAN },
- { "inherit-rotation", Actor::INHERIT_ROTATION, Property::BOOLEAN },
- { "inherit-scale", Actor::INHERIT_SCALE, Property::BOOLEAN },
- { "color-mode", Actor::COLOR_MODE, Property::STRING },
- { "position-inheritance", Actor::POSITION_INHERITANCE, Property::STRING },
- { "draw-mode", Actor::DRAW_MODE, Property::STRING },
+ { "parentOrigin", Actor::Property::PARENT_ORIGIN, Property::VECTOR3 },
+ { "parentOriginX", Actor::Property::PARENT_ORIGIN_X, Property::FLOAT },
+ { "parentOriginY", Actor::Property::PARENT_ORIGIN_Y, Property::FLOAT },
+ { "parentOriginZ", Actor::Property::PARENT_ORIGIN_Z, Property::FLOAT },
+ { "anchorPoint", Actor::Property::ANCHOR_POINT, Property::VECTOR3 },
+ { "anchorPointX", Actor::Property::ANCHOR_POINT_X, Property::FLOAT },
+ { "anchorPointY", Actor::Property::ANCHOR_POINT_Y, Property::FLOAT },
+ { "anchorPointZ", Actor::Property::ANCHOR_POINT_Z, Property::FLOAT },
+ { "size", Actor::Property::SIZE, Property::VECTOR3 },
+ { "sizeWidth", Actor::Property::SIZE_WIDTH, Property::FLOAT },
+ { "sizeHeight", Actor::Property::SIZE_HEIGHT, Property::FLOAT },
+ { "sizeDepth", Actor::Property::SIZE_DEPTH, Property::FLOAT },
+ { "position", Actor::Property::POSITION, Property::VECTOR3 },
+ { "positionX", Actor::Property::POSITION_X, Property::FLOAT },
+ { "positionY", Actor::Property::POSITION_Y, Property::FLOAT },
+ { "positionZ", Actor::Property::POSITION_Z, Property::FLOAT },
+ { "worldPosition", Actor::Property::WORLD_POSITION, Property::VECTOR3 },
+ { "worldPositionX", Actor::Property::WORLD_POSITION_X, Property::FLOAT },
+ { "worldPositionY", Actor::Property::WORLD_POSITION_Y, Property::FLOAT },
+ { "worldPositionZ", Actor::Property::WORLD_POSITION_Z, Property::FLOAT },
+ { "orientation", Actor::Property::ORIENTATION, Property::ROTATION },
+ { "worldOrientation", Actor::Property::WORLD_ORIENTATION, Property::ROTATION },
+ { "scale", Actor::Property::SCALE, Property::VECTOR3 },
+ { "scaleX", Actor::Property::SCALE_X, Property::FLOAT },
+ { "scaleY", Actor::Property::SCALE_Y, Property::FLOAT },
+ { "scaleZ", Actor::Property::SCALE_Z, Property::FLOAT },
+ { "worldScale", Actor::Property::WORLD_SCALE, Property::VECTOR3 },
+ { "visible", Actor::Property::VISIBLE, Property::BOOLEAN },
+ { "color", Actor::Property::COLOR, Property::VECTOR4 },
+ { "colorRed", Actor::Property::COLOR_RED, Property::FLOAT },
+ { "colorGreen", Actor::Property::COLOR_GREEN, Property::FLOAT },
+ { "colorBlue", Actor::Property::COLOR_BLUE, Property::FLOAT },
+ { "colorAlpha", Actor::Property::COLOR_ALPHA, Property::FLOAT },
+ { "worldColor", Actor::Property::WORLD_COLOR, Property::VECTOR4 },
+ { "worldMatrix", Actor::Property::WORLD_MATRIX, Property::MATRIX },
+ { "name", Actor::Property::NAME, Property::STRING },
+ { "sensitive", Actor::Property::SENSITIVE, Property::BOOLEAN },
+ { "leaveRequired", Actor::Property::LEAVE_REQUIRED, Property::BOOLEAN },
+ { "inheritOrientation", Actor::Property::INHERIT_ORIENTATION, Property::BOOLEAN },
+ { "inheritScale", Actor::Property::INHERIT_SCALE, Property::BOOLEAN },
+ { "colorMode", Actor::Property::COLOR_MODE, Property::STRING },
+ { "positionInheritance", Actor::Property::POSITION_INHERITANCE, Property::STRING },
+ { "drawMode", Actor::Property::DRAW_MODE, Property::STRING },
+ { "sizeModeFactor", Actor::Property::SIZE_MODE_FACTOR, Property::VECTOR3 },
+ { "widthResizePolicy", Actor::Property::WIDTH_RESIZE_POLICY, Property::STRING },
+ { "heightResizePolicy", Actor::Property::HEIGHT_RESIZE_POLICY, Property::STRING },
+ { "sizeScalePolicy", Actor::Property::SIZE_SCALE_POLICY, Property::STRING },
+ { "widthForHeight", Actor::Property::WIDTH_FOR_HEIGHT, Property::BOOLEAN },
+ { "heightForWidth", Actor::Property::HEIGHT_FOR_WIDTH, Property::BOOLEAN },
+ { "padding", Actor::Property::PADDING, Property::VECTOR4 },
+ { "minimumSize", Actor::Property::MINIMUM_SIZE, Property::VECTOR2 },
+ { "maximumSize", Actor::Property::MAXIMUM_SIZE, Property::VECTOR2 },
};
const unsigned int PROPERTY_TABLE_COUNT = sizeof( PROPERTY_TABLE ) / sizeof( PROPERTY_TABLE[0] );
} // unnamed namespace
}
END_TEST;
}
+
+int UtcDaliRelayoutProperties_ResizePolicies(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ // Defaults
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::WIDTH_RESIZE_POLICY ).Get< std::string >(), "USE_NATURAL_SIZE", TEST_LOCATION );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::HEIGHT_RESIZE_POLICY ).Get< std::string >(), "USE_NATURAL_SIZE", TEST_LOCATION );
+
+ // Set resize policy for all dimensions
+ actor.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
+ for( unsigned int i = 0; i < Dimension::DIMENSION_COUNT; ++i)
+ {
+ DALI_TEST_EQUALS( actor.GetResizePolicy( static_cast< Dimension::Type >( 1 << i ) ), ResizePolicy::USE_NATURAL_SIZE, TEST_LOCATION );
+ }
+
+ // Set individual dimensions
+ const char* const widthPolicy = "FILL_TO_PARENT";
+ const char* const heightPolicy = "FIXED";
+
+ actor.SetProperty( Actor::Property::WIDTH_RESIZE_POLICY, widthPolicy );
+ actor.SetProperty( Actor::Property::HEIGHT_RESIZE_POLICY, heightPolicy );
+
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::WIDTH_RESIZE_POLICY ).Get< std::string >(), widthPolicy, TEST_LOCATION );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::HEIGHT_RESIZE_POLICY ).Get< std::string >(), heightPolicy, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliRelayoutProperties_SizeScalePolicy(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ // Defaults
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::SIZE_SCALE_POLICY ).Get< std::string >(), "USE_SIZE_SET", TEST_LOCATION );
+ DALI_TEST_EQUALS( actor.GetSizeScalePolicy(), SizeScalePolicy::USE_SIZE_SET, TEST_LOCATION );
+
+ SizeScalePolicy::Type policy = SizeScalePolicy::FILL_WITH_ASPECT_RATIO;
+ actor.SetSizeScalePolicy( policy );
+ DALI_TEST_EQUALS( actor.GetSizeScalePolicy(), policy, TEST_LOCATION );
+
+ // Set
+ const char* const policy1 = "FIT_WITH_ASPECT_RATIO";
+ const char* const policy2 = "FILL_WITH_ASPECT_RATIO";
+
+ actor.SetProperty( Actor::Property::SIZE_SCALE_POLICY, policy1 );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::SIZE_SCALE_POLICY ).Get< std::string >(), policy1, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::SIZE_SCALE_POLICY, policy2 );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::SIZE_SCALE_POLICY ).Get< std::string >(), policy2, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliRelayoutProperties_SizeModeFactor(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ // Defaults
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::SIZE_MODE_FACTOR ).Get< Vector3 >(), Vector3( 1.0f, 1.0f, 1.0f ), TEST_LOCATION );
+ DALI_TEST_EQUALS( actor.GetSizeModeFactor(), Vector3( 1.0f, 1.0f, 1.0f ), TEST_LOCATION );
+
+ Vector3 sizeMode( 1.0f, 2.0f, 3.0f );
+ actor.SetSizeModeFactor( sizeMode );
+ DALI_TEST_EQUALS( actor.GetSizeModeFactor(), sizeMode, TEST_LOCATION );
+
+ // Set
+ Vector3 sizeMode1( 2.0f, 3.0f, 4.0f );
+
+ actor.SetProperty( Actor::Property::SIZE_MODE_FACTOR, sizeMode1 );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::SIZE_MODE_FACTOR ).Get< Vector3 >(), sizeMode1, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliRelayoutProperties_DimensionDependency(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ // Defaults
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::WIDTH_FOR_HEIGHT ).Get< bool >(), false, TEST_LOCATION );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::HEIGHT_FOR_WIDTH ).Get< bool >(), false, TEST_LOCATION );
+
+ // Set
+ actor.SetProperty( Actor::Property::WIDTH_FOR_HEIGHT, true );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::WIDTH_FOR_HEIGHT ).Get< bool >(), true, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::HEIGHT_FOR_WIDTH, true );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::HEIGHT_FOR_WIDTH ).Get< bool >(), true, TEST_LOCATION );
+
+ // Test setting another resize policy
+ actor.SetProperty( Actor::Property::WIDTH_RESIZE_POLICY, "FIXED" );
+ DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::WIDTH_FOR_HEIGHT ).Get< bool >(), false, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliRelayoutProperties_Padding(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ // Data
+ Vector4 padding( 1.0f, 2.0f, 3.0f, 4.0f );
+
+ // PADDING
+ actor.SetProperty( Actor::Property::PADDING, padding );
+ Vector4 paddingResult = actor.GetProperty( Actor::Property::PADDING ).Get< Vector4 >();
+
+ DALI_TEST_EQUALS( paddingResult, padding, Math::MACHINE_EPSILON_0, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliRelayoutProperties_MinimumMaximumSize(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ // Data
+ Vector2 minSize( 1.0f, 2.0f );
+
+ actor.SetProperty( Actor::Property::MINIMUM_SIZE, minSize );
+ Vector2 resultMin = actor.GetProperty( Actor::Property::MINIMUM_SIZE ).Get< Vector2 >();
+
+ DALI_TEST_EQUALS( resultMin, minSize, Math::MACHINE_EPSILON_0, TEST_LOCATION );
+
+ Vector2 maxSize( 3.0f, 4.0f );
+
+ actor.SetProperty( Actor::Property::MAXIMUM_SIZE, maxSize );
+ Vector2 resultMax = actor.GetProperty( Actor::Property::MAXIMUM_SIZE ).Get< Vector2 >();
+
+ DALI_TEST_EQUALS( resultMax, maxSize, Math::MACHINE_EPSILON_0, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorGetHeightForWidth(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ DALI_TEST_EQUALS( actor.GetHeightForWidth( 1.0f ), 1.0f, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorGetWidthForHeight(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ DALI_TEST_EQUALS( actor.GetWidthForHeight( 1.0f ), 1.0f, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorGetRelayoutSize(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ // Add actor to stage
+ Stage::GetCurrent().Add( actor );
+
+ DALI_TEST_EQUALS( actor.GetRelayoutSize( Dimension::WIDTH ), 0.0f, TEST_LOCATION );
+
+ actor.SetResizePolicy( ResizePolicy::FIXED, Dimension::WIDTH );
+ actor.SetSize( Vector2( 1.0f, 0.0f ) );
+
+ // Flush the queue and render once
+ app.SendNotification();
+ app.Render();
+
+ DALI_TEST_EQUALS( actor.GetRelayoutSize( Dimension::WIDTH ), 1.0f, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorSetPadding(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ Padding padding;
+ actor.GetPadding( padding );
+
+ DALI_TEST_EQUALS( padding.left, 0.0f, TEST_LOCATION );
+ DALI_TEST_EQUALS( padding.right, 0.0f, TEST_LOCATION );
+ DALI_TEST_EQUALS( padding.bottom, 0.0f, TEST_LOCATION );
+ DALI_TEST_EQUALS( padding.top, 0.0f, TEST_LOCATION );
+
+ Padding padding2( 1.0f, 2.0f, 3.0f, 4.0f );
+ actor.SetPadding( padding2 );
+
+ actor.GetPadding( padding );
+
+ DALI_TEST_EQUALS( padding.left, padding2.left, TEST_LOCATION );
+ DALI_TEST_EQUALS( padding.right, padding2.right, TEST_LOCATION );
+ DALI_TEST_EQUALS( padding.bottom, padding2.bottom, TEST_LOCATION );
+ DALI_TEST_EQUALS( padding.top, padding2.top, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorSetMinimumSize(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ Vector2 size = actor.GetMinimumSize();
+
+ DALI_TEST_EQUALS( size.width, 0.0f, TEST_LOCATION );
+ DALI_TEST_EQUALS( size.height, 0.0f, TEST_LOCATION );
+
+ Vector2 size2( 1.0f, 2.0f );
+ actor.SetMinimumSize( size2 );
+
+ size = actor.GetMinimumSize();
+
+ DALI_TEST_EQUALS( size.width, size2.width, TEST_LOCATION );
+ DALI_TEST_EQUALS( size.height, size2.height, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorSetMaximumSize(void)
+{
+ TestApplication app;
+
+ Actor actor = Actor::New();
+
+ Vector2 size = actor.GetMaximumSize();
+
+ DALI_TEST_EQUALS( size.width, FLT_MAX, TEST_LOCATION );
+ DALI_TEST_EQUALS( size.height, FLT_MAX, TEST_LOCATION );
+
+ Vector2 size2( 1.0f, 2.0f );
+ actor.SetMaximumSize( size2 );
+
+ size = actor.GetMaximumSize();
+
+ DALI_TEST_EQUALS( size.width, size2.width, TEST_LOCATION );
+ DALI_TEST_EQUALS( size.height, size2.height, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorOnRelayoutSignal(void)
+{
+ tet_infoline("Testing Dali::Actor::OnRelayoutSignal()");
+
+ TestApplication application;
+
+ // Clean test data
+ gOnRelayoutCallBackCalled = false;
+ gActorNamesRelayout.clear();
+
+ Actor actor = Actor::New();
+ actor.SetName( "actor" );
+ actor.OnRelayoutSignal().Connect( OnRelayoutCallback );
+
+ // Sanity check
+ DALI_TEST_CHECK( ! gOnRelayoutCallBackCalled );
+
+ // Add actor to stage
+ Stage::GetCurrent().Add( actor );
+
+ actor.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
+ actor.SetSize( Vector2( 1.0f, 2.0 ) );
+
+ // Flush the queue and render once
+ application.SendNotification();
+ application.Render();
+
+ // OnRelayout emitted
+ DALI_TEST_EQUALS( gOnRelayoutCallBackCalled, true, TEST_LOCATION );
+ DALI_TEST_EQUALS( "actor", gActorNamesRelayout[ 0 ], TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorGetHierachyDepth(void)
+{
+ TestApplication application;
+ tet_infoline("Testing Dali::Actor::GetHierarchyDepth()");
+
+
+ /* Build tree of actors:
+ *
+ * Depth
+ *
+ * A (parent) 1
+ * / \
+ * B C 2`
+ * / \ \
+ * D E F 3
+ *
+ * GetHierarchyDepth should return 1 for A, 2 for B and C, and 3 for D, E and F.
+ */
+ Stage stage( Stage::GetCurrent() );
+
+ Actor actorA = Actor::New();
+ Actor actorB = Actor::New();
+ Actor actorC = Actor::New();
+ Actor actorD = Actor::New();
+ Actor actorE = Actor::New();
+ Actor actorF = Actor::New();
+
+ //Test that root actor has depth equal 0
+ DALI_TEST_EQUALS( 0, stage.GetRootLayer().GetHierarchyDepth(), TEST_LOCATION );
+
+ //Test actors return depth -1 when not connected to the tree
+ DALI_TEST_EQUALS( -1, actorA.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorB.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorC.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorD.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorE.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorF.GetHierarchyDepth(), TEST_LOCATION );
+
+ //Create the hierarchy
+ stage.Add( actorA );
+ actorA.Add( actorB );
+ actorA.Add( actorC );
+ actorB.Add( actorD );
+ actorB.Add( actorE );
+ actorC.Add( actorF );
+
+ //Test actors return correct depth
+ DALI_TEST_EQUALS( 1, actorA.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 2, actorB.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 2, actorC.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 3, actorD.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 3, actorE.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 3, actorF.GetHierarchyDepth(), TEST_LOCATION );
+
+ //Removing actorB from the hierarchy. actorB, actorD and actorE should now have depth equal -1
+ actorA.Remove( actorB );
+
+ DALI_TEST_EQUALS( -1, actorB.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorD.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorE.GetHierarchyDepth(), TEST_LOCATION );
+
+ //Removing actorA from the stage. All actors should have depth equal -1
+ stage.Remove( actorA );
+
+ DALI_TEST_EQUALS( -1, actorA.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorB.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorC.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorD.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorE.GetHierarchyDepth(), TEST_LOCATION );
+ DALI_TEST_EQUALS( -1, actorF.GetHierarchyDepth(), TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorAnchorPointPropertyAsString(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "TOP_LEFT" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::TOP_LEFT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "TOP_CENTER" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::TOP_CENTER, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "TOP_RIGHT" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::TOP_RIGHT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "CENTER_LEFT" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::CENTER_LEFT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "CENTER" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::CENTER, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "CENTER_RIGHT" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::CENTER_RIGHT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "BOTTOM_LEFT" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::BOTTOM_LEFT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "BOTTOM_CENTER" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::BOTTOM_CENTER, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "BOTTOM_RIGHT" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::BOTTOM_RIGHT, TEST_LOCATION );
+
+ // Invalid should not change anything
+ actor.SetProperty( Actor::Property::ANCHOR_POINT, "INVALID_ARG" );
+ DALI_TEST_EQUALS( actor.GetCurrentAnchorPoint(), ParentOrigin::BOTTOM_RIGHT, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorParentOriginPropertyAsString(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "TOP_LEFT" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::TOP_LEFT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "TOP_CENTER" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::TOP_CENTER, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "TOP_RIGHT" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::TOP_RIGHT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "CENTER_LEFT" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::CENTER_LEFT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "CENTER" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::CENTER, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "CENTER_RIGHT" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::CENTER_RIGHT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "BOTTOM_LEFT" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::BOTTOM_LEFT, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "BOTTOM_CENTER" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::BOTTOM_CENTER, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "BOTTOM_RIGHT" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::BOTTOM_RIGHT, TEST_LOCATION );
+
+ // Invalid should not change anything
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, "INVALID_ARG" );
+ DALI_TEST_EQUALS( actor.GetCurrentParentOrigin(), ParentOrigin::BOTTOM_RIGHT, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorColorModePropertyAsString(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ actor.SetProperty( Actor::Property::COLOR_MODE, "USE_OWN_COLOR" );
+ DALI_TEST_EQUALS( actor.GetColorMode(), USE_OWN_COLOR, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::COLOR_MODE, "USE_PARENT_COLOR" );
+ DALI_TEST_EQUALS( actor.GetColorMode(), USE_PARENT_COLOR, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::COLOR_MODE, "USE_OWN_MULTIPLY_PARENT_COLOR" );
+ DALI_TEST_EQUALS( actor.GetColorMode(), USE_OWN_MULTIPLY_PARENT_COLOR, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::COLOR_MODE, "USE_OWN_MULTIPLY_PARENT_ALPHA" );
+ DALI_TEST_EQUALS( actor.GetColorMode(), USE_OWN_MULTIPLY_PARENT_ALPHA, TEST_LOCATION );
+
+ // Invalid should not change anything
+ actor.SetProperty( Actor::Property::COLOR_MODE, "INVALID_ARG" );
+ DALI_TEST_EQUALS( actor.GetColorMode(), USE_OWN_MULTIPLY_PARENT_ALPHA, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorPositionInheritancePropertyAsString(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ actor.SetProperty( Actor::Property::POSITION_INHERITANCE, "INHERIT_PARENT_POSITION" );
+ DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), INHERIT_PARENT_POSITION, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::POSITION_INHERITANCE, "USE_PARENT_POSITION" );
+ DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), USE_PARENT_POSITION, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::POSITION_INHERITANCE, "USE_PARENT_POSITION_PLUS_LOCAL_POSITION" );
+ DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), USE_PARENT_POSITION_PLUS_LOCAL_POSITION, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::POSITION_INHERITANCE, "DONT_INHERIT_POSITION" );
+ DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), DONT_INHERIT_POSITION, TEST_LOCATION );
+
+ // Invalid should not change anything
+ actor.SetProperty( Actor::Property::POSITION_INHERITANCE, "INVALID_ARG" );
+ DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), DONT_INHERIT_POSITION, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliActorDrawModePropertyAsString(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ actor.SetProperty( Actor::Property::DRAW_MODE, "NORMAL" );
+ DALI_TEST_EQUALS( actor.GetDrawMode(), DrawMode::NORMAL, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::DRAW_MODE, "OVERLAY_2D" );
+ DALI_TEST_EQUALS( actor.GetDrawMode(), DrawMode::OVERLAY_2D, TEST_LOCATION );
+
+ actor.SetProperty( Actor::Property::DRAW_MODE, "STENCIL" );
+ DALI_TEST_EQUALS( actor.GetDrawMode(), DrawMode::STENCIL, TEST_LOCATION );
+
+ // Invalid should not change anything
+ actor.SetProperty( Actor::Property::DRAW_MODE, "INVALID_ARG" );
+ DALI_TEST_EQUALS( actor.GetDrawMode(), DrawMode::STENCIL, TEST_LOCATION );
+
+ END_TEST;
+}