X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-Control.cpp;h=ddca23fbcf90469d13dd1a58b7483fa0491a83ff;hp=0af28c3a0ae20a5b8242999543b52e7c41494fd6;hb=8901f407590f82db060dd1bb388dd80209356035;hpb=26a3b93400d9b9de81db36cbe4cea39f51940d10 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Control.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Control.cpp index 0af28c3..ddca23f 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Control.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Control.cpp @@ -142,7 +142,7 @@ int UtcDaliControlRegister(void) ToolkitTestApplication application; // Ensure the object is registered after creation - ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry(); + ObjectRegistry registry = application.GetCore().GetObjectRegistry(); DALI_TEST_CHECK( registry ); gObjectCreatedCallBackCalled = false; @@ -181,6 +181,43 @@ int UtcDaliControlCopyAndAssignment(void) END_TEST; } +int UtcDaliControlMoveConstructor(void) +{ + ToolkitTestApplication application; + + Control control = Control::New(); + DALI_TEST_EQUALS( 1, control.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + control.SetProperty( Actor::Property::SENSITIVE, false ); + DALI_TEST_CHECK( false == control.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + + Control moved = std::move( control ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + DALI_TEST_CHECK( !control ); + + END_TEST; +} + +int UtcDaliControlMoveAssignment(void) +{ + ToolkitTestApplication application; + + Control control = Control::New(); + DALI_TEST_EQUALS( 1, control.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + control.SetProperty( Actor::Property::SENSITIVE, false ); + DALI_TEST_CHECK( false == control.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + + Control moved; + moved = std::move( control ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) ); + DALI_TEST_CHECK( !control ); + + END_TEST; +} + int UtcDaliControlDownCast(void) { ToolkitTestApplication application; @@ -369,7 +406,7 @@ int UtcDaliControlSignalConnectDisconnect(void) DummyControl dummy = DummyControlImpl::New(); Actor actor = Actor::New(); - DALI_TEST_EQUALS( actor.OnStageSignal().GetConnectionCount(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS( actor.OnSceneSignal().GetConnectionCount(), 0u, TEST_LOCATION ); Toolkit::Internal::Control& control = Toolkit::Internal::GetImplementation( dummy ); DummyControlImpl* dummyImpl = dynamic_cast(&control); @@ -379,16 +416,16 @@ int UtcDaliControlSignalConnectDisconnect(void) END_TEST; } - actor.OnStageSignal().Connect( dummyImpl, &DummyControlImpl::CustomSlot1 ); - DALI_TEST_EQUALS( actor.OnStageSignal().GetConnectionCount(), 1u, TEST_LOCATION ); + actor.OnSceneSignal().Connect( dummyImpl, &DummyControlImpl::CustomSlot1 ); + DALI_TEST_EQUALS( actor.OnSceneSignal().GetConnectionCount(), 1u, TEST_LOCATION ); DALI_TEST_EQUALS( dummyImpl->mCustomSlot1Called, false, TEST_LOCATION ); application.GetScene().Add( actor ); DALI_TEST_EQUALS( dummyImpl->mCustomSlot1Called, true, TEST_LOCATION ); dummyImpl->mCustomSlot1Called = false; - actor.OnStageSignal().Disconnect( dummyImpl, &DummyControlImpl::CustomSlot1 ); - DALI_TEST_EQUALS( actor.OnStageSignal().GetConnectionCount(), 0u, TEST_LOCATION ); + actor.OnSceneSignal().Disconnect( dummyImpl, &DummyControlImpl::CustomSlot1 ); + DALI_TEST_EQUALS( actor.OnSceneSignal().GetConnectionCount(), 0u, TEST_LOCATION ); application.GetScene().Remove( actor ); application.GetScene().Add( actor ); DALI_TEST_EQUALS( dummyImpl->mCustomSlot1Called, false, TEST_LOCATION ); @@ -413,8 +450,8 @@ int UtcDaliControlSignalAutomaticDisconnect(void) END_TEST; } - actor.OnStageSignal().Connect( dummyImpl, &DummyControlImpl::CustomSlot1 ); - DALI_TEST_EQUALS( actor.OnStageSignal().GetConnectionCount(), 1u, TEST_LOCATION ); + actor.OnSceneSignal().Connect( dummyImpl, &DummyControlImpl::CustomSlot1 ); + DALI_TEST_EQUALS( actor.OnSceneSignal().GetConnectionCount(), 1u, TEST_LOCATION ); DALI_TEST_EQUALS( dummyImpl->mCustomSlot1Called, false, TEST_LOCATION ); application.GetScene().Add( actor ); @@ -423,7 +460,7 @@ int UtcDaliControlSignalAutomaticDisconnect(void) } // dummyControl automatically disconnects - DALI_TEST_EQUALS( actor.OnStageSignal().GetConnectionCount(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS( actor.OnSceneSignal().GetConnectionCount(), 0u, TEST_LOCATION ); const Vector3 ignoredSize( 20, 20, 0 ); actor.SetProperty( Actor::Property::SIZE, ignoredSize ); @@ -512,6 +549,18 @@ int UtcDaliControlBackgroundColorRendererCount(void) DALI_TEST_EQUALS( control.GetRendererCount(), 1u, TEST_LOCATION ); DALI_TEST_EQUALS( GetControlBackgroundColor( control ), semiTransparent, TEST_LOCATION ); + Renderer renderer = control.GetRendererAt( 0 ); + DALI_TEST_CHECK( renderer ); + + tet_infoline( "Set semi transparent alpha with positive RGB values, renderer should not be changed" ); + const Vector4 newColor( 1.0f, 1.0f, 0.5f, 0.5f ); + control.SetBackgroundColor( newColor ); + application.SendNotification(); + application.Render(); + DALI_TEST_EQUALS( control.GetRendererCount(), 1u, TEST_LOCATION ); + DALI_TEST_EQUALS( GetControlBackgroundColor( control ), newColor, TEST_LOCATION ); + DALI_TEST_EQUALS( renderer, control.GetRendererAt( 0 ), TEST_LOCATION ); + tet_infoline( "Set transparent, ensure no renderers are created" ); control.SetBackgroundColor( Color::TRANSPARENT ); application.SendNotification(); @@ -1195,3 +1244,28 @@ int UtcDaliControlDoActionWhenNotStage(void) END_TEST; } + +int UtcDaliControlStopObservingVisual(void) +{ + ToolkitTestApplication application; + tet_infoline( "Test to stop observing a visual when a control is destroyed" ); + + Control control = Control::New(); + control[Actor::Property::SIZE] = Vector2( 200.f, 200.f ); + control[Control::Property::BACKGROUND] = "invalid.svg"; + + application.GetScene().Add( control ); + + application.SendNotification(); + application.Render(); + + // Delete control + control.Unparent(); + control.Reset(); + + // SVG rasterization may be finished after the control is deleted. + // Ensure it doesn't cause a crash. + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + END_TEST; +}