{
return CreateBufferImage(4, 4, Color::WHITE);
}
-
-namespace Test
-{
-
-struct ObjectDestructionFunctor
-{
- // Create a ObjectDestructionFunctor passing in a Dali::RefObject* to be monitored and a bool variable.
- // Create ObjectRegistry instance and connect to the ObjectDestroyedSignal passing in the above functor for the callback.
- // Get the ObjectPointer (Actor::GetObjectPtr) of the Actor to be checked for destruction and assign it to the Dali::RefObject*
- // Check the bool variable which would be true when object destroyed.
- ObjectDestructionFunctor( Dali::RefObject* objectPtr, bool& refObjectDestroyed )
- : refObjectPointerToCheck( objectPtr ),
- refObjectDestroyedBoolean( refObjectDestroyed )
- {
- refObjectDestroyed = false;
- }
-
- void operator()( const Dali::RefObject* objectPointer )
- {
- if ( refObjectPointerToCheck == objectPointer )
- {
- refObjectDestroyedBoolean = true;
- }
- }
-
- Dali::RefObject* refObjectPointerToCheck;
- bool& refObjectDestroyedBoolean;
-};
-
-ObjectDestructionTracker::ObjectDestructionTracker()
- :mRefObjectDestroyed( false)
-{
-}
-
-void ObjectDestructionTracker::Start( Actor actor )
-{
- ObjectDestructionFunctor destructionFunctor( actor.GetObjectPtr(), mRefObjectDestroyed );
-
- ObjectRegistry objectRegistry = Stage::GetCurrent().GetObjectRegistry();
- objectRegistry.ObjectDestroyedSignal().Connect( this, destructionFunctor );
-}
-
-bool ObjectDestructionTracker::IsDestroyed()
-{
- return mRefObjectDestroyed;
-}
-
-} // namespace Test
BufferImage CreateBufferImage();
BufferImage CreateBufferImage(int width, int height, const Vector4& color);
-// Test namespace to prevent pollution of Dali namespace, add Test helper functions here
-namespace Test
-{
-/**
- * @brief
- *
- * Helper to check object destruction occurred
- * 1) In main part of code create an ObjectDestructionTracker
- * 2) Within sub section of main create object Actor test and call Start with Actor to test for destruction
- * 3) Perform code which is expected to destroy Actor
- * 4) Back in main part of code use IsDestroyed() to test if Actor was destroyed
- */
-class ObjectDestructionTracker : public ConnectionTracker
-{
-public:
-
- /**
- * @brief Call in main part of code
- */
- ObjectDestructionTracker();
-
- /**
- * @brief Call in sub bock of code where the Actor being checked is still alive.
- *
- * @param[in] actor Actor to be checked for destruction
- */
- void Start( Actor actor );
-
- /**
- * @brief Call to check if Actor alive or destroyed.
- *
- * @return bool true if Actor was destroyed
- */
- bool IsDestroyed();
-
-private:
- bool mRefObjectDestroyed;
-};
-
-} // namespace Test
-
#endif // __DALI_TEST_SUITE_UTILS_H__