/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
{
public:
- TestClass()
+ TestClass(Integration::Scene scene )
+ : mScene( scene )
{
}
void Initialize()
{
mActor = Actor::New();
- Stage::GetCurrent().Add( mActor );
+ mScene.Add( mActor );
mNotification = mActor.AddPropertyNotification( Actor::Property::POSITION_X, GreaterThanCondition(100.0f) );
mNotification.NotifySignal().Connect( this, &TestClass::OnPropertyNotify );
}
void Terminate()
{
- Stage::GetCurrent().Remove( mActor );
+ mScene.Remove( mActor );
mActor.Reset();
mNotification.Reset();
}
Actor mActor;
PropertyNotification mNotification;
+ Integration::Scene mScene;
};
END_TEST;
}
+int UtcDaliPropertyNotificationMoveConstructor(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ PropertyNotification notification = actor.AddPropertyNotification(Actor::Property::POSITION_X, GreaterThanCondition(100.0f));
+ DALI_TEST_CHECK( notification );
+ DALI_TEST_EQUALS( 2, notification.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+
+ PropertyNotification movedNotification = std::move( notification );
+ DALI_TEST_CHECK( movedNotification );
+
+ // Check that object is moved (not copied, so ref count keeps the same)
+ DALI_TEST_EQUALS( 2, movedNotification.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+ DALI_TEST_CHECK( !notification );
+
+ PropertyCondition condition = movedNotification.GetCondition();
+ DALI_TEST_CHECK( condition );
+ DALI_TEST_EQUALS( 2, condition.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 1, condition.GetArgumentCount(), TEST_LOCATION );
+
+ PropertyCondition movedCondition = std::move( condition );
+ DALI_TEST_CHECK( movedCondition );
+
+ // Check that object is moved (not copied, so ref count keeps the same)
+ DALI_TEST_EQUALS( 2, movedCondition.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 1, movedCondition.GetArgumentCount(), TEST_LOCATION );
+ DALI_TEST_CHECK( !condition );
+
+ END_TEST;
+}
+
+int UtcDaliPropertyNotificationMoveAssignment(void)
+{
+ TestApplication application;
+
+ Actor actor = Actor::New();
+
+ PropertyNotification notification = actor.AddPropertyNotification(Actor::Property::POSITION_X, GreaterThanCondition(100.0f));
+ DALI_TEST_CHECK( notification );
+ DALI_TEST_EQUALS( 2, notification.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+
+ PropertyNotification movedNotification;
+ movedNotification = std::move( notification );
+ DALI_TEST_CHECK( movedNotification );
+
+ // Check that object is moved (not copied, so ref count keeps the same)
+ DALI_TEST_EQUALS( 2, movedNotification.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+ DALI_TEST_CHECK( !notification );
+
+ PropertyCondition condition = movedNotification.GetCondition();
+ DALI_TEST_CHECK( condition );
+ DALI_TEST_EQUALS( 2, condition.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 1, condition.GetArgumentCount(), TEST_LOCATION );
+
+ PropertyCondition movedCondition;
+ movedCondition = std::move( condition );
+ DALI_TEST_CHECK( movedCondition );
+
+ // Check that object is moved (not copied, so ref count keeps the same)
+ DALI_TEST_EQUALS( 2, movedCondition.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+ DALI_TEST_EQUALS( 1, movedCondition.GetArgumentCount(), TEST_LOCATION );
+ DALI_TEST_CHECK( !condition );
+
+ END_TEST;
+}
+
int UtcDaliAddPropertyNotification(void)
{
TestApplication application; // Reset all test adapter return codes
{
TestApplication application; // Reset all test adapter return codes
- TestClass* object = new TestClass;
+ TestClass* object = new TestClass(application.GetScene());
object->Initialize();
application.Render(RENDER_FRAME_INTERVAL);
gCallBackCalled = false;
tet_infoline(" UtcDaliAddPropertyNotificationCallback - Forcing notification condition true, should receive a notification");
- object->mActor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ object->mActor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
application.Render(RENDER_FRAME_INTERVAL);
gCallBackCalled = false;
tet_infoline(" UtcDaliAddPropertyNotificationCallback - Forcing notification condition false, should not receive a notification");
- object->mActor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ object->mActor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
application.Render(RENDER_FRAME_INTERVAL);
gCallBackCalled = false;
tet_infoline(" UtcDaliAddPropertyNotificationCallback - Deleting notification and it's owning object, should not receive a notification");
- object->mActor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ object->mActor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
object->Terminate();
object->RemovePropertyNotification();
- object->mActor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ object->mActor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
application.Render(RENDER_FRAME_INTERVAL);
object->RemovePropertyNotifications();
- object->mActor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ object->mActor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
application.Render(RENDER_FRAME_INTERVAL);
PropertyNotification notification = actor.AddPropertyNotification(Actor::Property::POSITION_X,
GreaterThanCondition(100.0f));
- notification.SetNotifyMode(PropertyNotification::NotifyOnChanged);
+ notification.SetNotifyMode(PropertyNotification::NOTIFY_ON_CHANGED);
PropertyNotification::NotifyMode notifyMode = notification.GetNotifyMode();
- DALI_TEST_EQUALS( notifyMode, PropertyNotification::NotifyOnChanged, TEST_LOCATION );
+ DALI_TEST_EQUALS( notifyMode, PropertyNotification::NOTIFY_ON_CHANGED, TEST_LOCATION );
END_TEST;
}
PropertyNotification notification = actor.AddPropertyNotification(Actor::Property::POSITION_X,
GreaterThanCondition(100.0f));
- notification.SetNotifyMode(PropertyNotification::NotifyOnChanged);
+ notification.SetNotifyMode(PropertyNotification::NOTIFY_ON_CHANGED);
gCallBackCalled = false;
notification.NotifySignal().Connect( &TestCallback );
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
tet_infoline(" UtcDaliPropertyNotificationGreaterThan");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION_X, GreaterThanCondition(100.0f) );
notification.NotifySignal().Connect( &TestCallback );
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move right to satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move left to un-satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( !gCallBackCalled );
// Move right to satisfy condition again.
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
tet_infoline(" UtcDaliPropertyNotificationLessThan");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION_X, LessThanCondition(100.0f ) );
notification.NotifySignal().Connect( &TestCallback );
- actor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move left to satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move right to un-satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( !gCallBackCalled );
// Move left to satisfy condition again.
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
tet_infoline(" UtcDaliPropertyNotificationInside");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION_X, InsideCondition(100.0f, 200.0f) );
notification.NotifySignal().Connect( &TestCallback );
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move inside to satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(150.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(150.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move outside (right) to un-satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(300.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(300.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( !gCallBackCalled );
// Move inside to satisfy condition again.
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(150.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(150.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
tet_infoline(" UtcDaliPropertyNotificationOutside");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION_X, OutsideCondition(100.0f, 200.0f) );
notification.NotifySignal().Connect( &TestCallback );
- actor.SetPosition(Vector3(150.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(150.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move outside (left) to satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move inside to un-satisfy condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(150.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(150.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( !gCallBackCalled );
// Move outside (right) to satisfy condition again.
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(300.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(300.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
tet_infoline(" UtcDaliPropertyNotificationGreaterThan");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, GreaterThanCondition(100.0f) );
notification.NotifySignal().Connect( &TestCallback );
notification = actor.AddPropertyNotification( Actor::Property::COLOR, 3, GreaterThanCondition(0.5f) );
notification.NotifySignal().Connect( &TestCallback );
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move right to satisfy XAxis condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move down to satisfy YAxis condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(200.0f, 200.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 200.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move forward to satisfy ZAxis
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(200.0f, 200.0f, 200.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 200.0f, 200.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Change alpha Colour to satisfy w/alpha component condition
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 1.0f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 1.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
tet_infoline(" UtcDaliPropertyNotificationLessThan");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, LessThanCondition(-100.0f) );
notification.NotifySignal().Connect( &TestCallback );
notification = actor.AddPropertyNotification( Actor::Property::COLOR, 3, LessThanCondition(0.5f) );
notification.NotifySignal().Connect( &TestCallback );
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 1.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 1.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move left to satisfy XAxis condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(-200.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(-200.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move up to satisfy YAxis condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(-200.0f, -200.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(-200.0f, -200.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move back to satisfy ZAxis
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(-200.0f, -200.0f, -200.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(-200.0f, -200.0f, -200.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Change alpha Colour to satisfy w/alpha component condition
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
tet_infoline(" UtcDaliPropertyNotificationInside");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, InsideCondition(-100.0f, 100.0f) );
notification.NotifySignal().Connect( &TestCallback );
notification.NotifySignal().Connect( &TestCallback );
// set outside all conditions
- actor.SetPosition(Vector3(200.0f, 200.0f, 200.0f));
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 1.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 200.0f, 200.0f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 1.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move x to inside condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(0.0f, 200.0f, 200.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 200.0f, 200.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move y to inside condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(0.0f, 0.0f, 200.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 200.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move z to inside condition
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// change alpha to inside condition
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 0.5f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 0.5f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
tet_infoline(" UtcDaliPropertyNotificationOutside");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, OutsideCondition(-100.0f, 100.0f) );
notification.NotifySignal().Connect( &TestCallback );
notification.NotifySignal().Connect( &TestCallback );
// set inside all conditions
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 0.5f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 0.5f));
Wait(application, DEFAULT_WAIT_PERIOD);
// Move x to outside condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(200.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move y to outside condition
gCallBackCalled = false;
- actor.SetPosition(Vector3(200.0f, 200.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 200.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// Move z to outside condition
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetPosition(Vector3(200.0f, 200.0f, 200.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(200.0f, 200.0f, 200.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
// change alpha to outside condition
gCallBackCalled = false;
Wait(application, DEFAULT_WAIT_PERIOD);
- actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 1.0f));
+ actor.SetProperty( Actor::Property::COLOR,Vector4(0.0f, 0.0f, 0.0f, 1.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
END_TEST;
Actor actor = Actor::New();
PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::SIZE, StepCondition( 1.0f, 1.0f ) );
- notification.SetNotifyMode(PropertyNotification::NotifyOnChanged);
+ notification.SetNotifyMode(PropertyNotification::NOTIFY_ON_CHANGED);
gCallBackCalled = false;
notification.NotifySignal().Connect( &TestCallback );
- actor.SetSize(100.0f, 100.0f);
+ actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f) );
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
gCallBackCalled = false;
- actor.SetSize(200.0f, 200.0f);
+ actor.SetProperty( Actor::Property::SIZE, Vector2( 200.0f, 200.0f ) );
application.Render(RENDER_FRAME_INTERVAL);
application.SendNotification();
END_TEST;
}
-int UtcDaliPropertyNotificationStep(void)
+int UtcDaliPropertyNotificationStepVector4(void)
{
TestApplication application;
- tet_infoline(" UtcDaliPropertyNotificationStep");
+ tet_infoline(" UtcDaliPropertyNotificationStepVector4");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
+
+ const float step = 10.0f;
+ float initValue = 5.0f;
+
+ PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::COLOR, StepCondition(step * 2, 0.0f) );
+ notification.NotifySignal().Connect( &TestCallback );
+
+ actor.SetProperty( Actor::Property::COLOR, Vector4(initValue, 0.0f, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+
+ // test both directions
+ for( int i = 1 ; i < 10 ; )
+ {
+ // Move x to positive
+ gCallBackCalled = false;
+ actor.SetProperty( Actor::Property::COLOR, Vector4(initValue + (i++ * step), 0.0f, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( Actor::Property::COLOR, Vector4(initValue + (i++ * step), 0.0f, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( gCallBackCalled );
+ }
+
+ initValue = -5.0f;
+ actor.SetProperty( Actor::Property::COLOR, Vector4(initValue, 0.0f, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+
+ for( int i = 1 ; i < 10 ; )
+ {
+ // Move x to negative
+ gCallBackCalled = false;
+ actor.SetProperty( Actor::Property::COLOR, Vector4(initValue -(i++ * step), 0.0f, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( Actor::Property::COLOR, Vector4(initValue -(i++ * step), 0.0f, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( gCallBackCalled );
+ }
+ END_TEST;
+}
+
+int UtcDaliPropertyNotificationStepFloat(void)
+{
+ TestApplication application;
+ tet_infoline(" UtcDaliPropertyNotificationStepFloat");
+
+ Actor actor = Actor::New();
+ application.GetScene().Add(actor);
+
+ const float step = 10.0f;
+ float initValue = 5.0f;
- const float step = 100.0f;
// float
- PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, StepCondition(step, 50.0f) );
+ PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, StepCondition(step * 2, 0.0f) );
notification.NotifySignal().Connect( &TestCallback );
// set initial position
- actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(initValue, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
// test both directions
- for( int i = 1 ; i < 10 ; ++i )
+ for( int i = 1 ; i < 10 ; )
{
- // Move x to negative position
+ // Move x to positive
gCallBackCalled = false;
- actor.SetPosition(Vector3((i * step), 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(initValue + (i++ * step), 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( Actor::Property::POSITION, Vector3(initValue + (i++ * step), 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
}
- for( int i = 1 ; i < 10 ; ++i )
+ initValue = -5.0f;
+ actor.SetProperty( Actor::Property::POSITION, Vector3(initValue, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+
+ for( int i = 1 ; i < 10 ; )
+ {
+ // Move x to negative
+ gCallBackCalled = false;
+ actor.SetProperty( Actor::Property::POSITION, Vector3(initValue -(i++ * step), 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( Actor::Property::POSITION, Vector3(initValue -(i++ * step), 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( gCallBackCalled );
+ }
+ END_TEST;
+}
+
+int UtcDaliPropertyNotificationStepVector2(void)
+{
+ TestApplication application;
+ tet_infoline(" UtcDaliPropertyNotificationStepVector2");
+
+ Actor actor = Actor::New();
+ application.GetScene().Add(actor);
+
+ const float step = 10.0f;
+ float initValue = 5.0f;
+
+ Property::Index propertyIndex = actor.RegisterProperty( "testProperty", Vector2::ZERO );
+
+ PropertyNotification notification = actor.AddPropertyNotification( propertyIndex, StepCondition(step * 2, 0.0f) );
+ notification.NotifySignal().Connect( &TestCallback );
+
+ actor.SetProperty( propertyIndex, Vector2(initValue, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+
+ // test both directions
+ for( int i = 1 ; i < 10 ; )
+ {
+ // Move x to positive
+ gCallBackCalled = false;
+ actor.SetProperty( propertyIndex, Vector2(initValue + (i++ * step), 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( propertyIndex, Vector2(initValue + (i++ * step), 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( gCallBackCalled );
+ }
+
+ initValue = -5.0f;
+ actor.SetProperty( propertyIndex, Vector2(initValue, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+
+ for( int i = 1 ; i < 10 ; )
+ {
+ // Move x to negative
+ gCallBackCalled = false;
+ actor.SetProperty( propertyIndex, Vector2(initValue -(i++ * step), 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( propertyIndex, Vector2(initValue -(i++ * step), 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( gCallBackCalled );
+ }
+ END_TEST;
+}
+
+int UtcDaliPropertyNotificationStepVector3(void)
+{
+ TestApplication application;
+ tet_infoline(" UtcDaliPropertyNotificationStepVector3");
+
+ Actor actor = Actor::New();
+ application.GetScene().Add(actor);
+
+ const float step = 10.0f;
+ float initValue = 5.0f;
+
+ // float
+ PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, StepCondition(step * 2, 0.0f) );
+ notification.NotifySignal().Connect( &TestCallback );
+
+ // set initial position
+ actor.SetProperty( Actor::Property::POSITION, Vector3(initValue, 0.0f, 0.0f));
+ Wait(application, DEFAULT_WAIT_PERIOD);
+
+ // test both directions
+ for( int i = 1 ; i < 10 ; )
+ {
+ // Move x to positive position
+ gCallBackCalled = false;
+ actor.SetProperty( Actor::Property::POSITION, Vector3( initValue + (i++ * step), 0.0f, 0.0f) );
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( Actor::Property::POSITION, Vector3( initValue + (i++ * step), 0.0f, 0.0f) );
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( gCallBackCalled );
+ }
+
+ initValue = -5.0f;
+ actor.SetProperty( Actor::Property::POSITION, Vector3( initValue, 0.0f, 0.0f) );
+ Wait(application, DEFAULT_WAIT_PERIOD);
+
+ for( int i = 1 ; i < 10 ; )
{
// Move x to negative position
gCallBackCalled = false;
- actor.SetPosition(Vector3(-(i * step), 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3( initValue -(i++ * step), 0.0f, 0.0f) );
+ Wait(application, DEFAULT_WAIT_PERIOD);
+ DALI_TEST_CHECK( !gCallBackCalled );
+
+ actor.SetProperty( Actor::Property::POSITION, Vector3( initValue -(i++ * step), 0.0f, 0.0f) );
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
}
tet_infoline(" UtcDaliPropertyNotificationStep");
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
Dali::Vector<float> values;
notification.NotifySignal().Connect( &TestCallback );
// set initial position lower than first position in list
- actor.SetPosition(Vector3(values[0] - averageStep, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(values[0] - averageStep, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
for( unsigned int i = 0 ; i < values.Count() - 1 ; ++i )
gCallBackCalled = false;
// set position half way between the current values
float position = values[i] + (0.5f * (values[i + 1] - values[i]));
- actor.SetPosition(Vector3(position, 0.0f, 0.0f));
+ actor.SetProperty( Actor::Property::POSITION, Vector3(position, 0.0f, 0.0f));
Wait(application, DEFAULT_WAIT_PERIOD);
DALI_TEST_CHECK( gCallBackCalled );
}
TestApplication application; // Reset all test adapter return codes
Actor actor = Actor::New();
- Stage::GetCurrent().Add(actor);
+ application.GetScene().Add(actor);
// this should complete in first frame
PropertyNotification notification1 = actor.AddPropertyNotification( Actor::Property::POSITION_X, GreaterThanCondition(90.0f) );
notification1.NotifySignal().Connect( &TestCallback );
END_TEST;
}
+
+int UtcDaliPropertyConditionGetArgumentNegative(void)
+{
+ TestApplication application;
+ Dali::PropertyCondition instance;
+ instance.Reset();
+ try
+ {
+ unsigned long arg1(0u);
+ instance.GetArgument(arg1);
+ DALI_TEST_CHECK(false); // Should not get here
+ }
+ catch(...)
+ {
+ DALI_TEST_CHECK(true); // We expect an assert
+ }
+ END_TEST;
+}
+
+int UtcDaliPropertyConditionGetArgumentCountNegative(void)
+{
+ TestApplication application;
+ Dali::PropertyCondition instance;
+ instance.Reset();
+ try
+ {
+ instance.GetArgumentCount();
+ DALI_TEST_CHECK(false); // Should not get here
+ }
+ catch(...)
+ {
+ DALI_TEST_CHECK(true); // We expect an assert
+ }
+ END_TEST;
+}