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-ControlImpl.cpp;h=615038590b5d7c14c957d53c1d25baa7939fc46f;hp=6fe4af63a2461aa21bec550b5c48971051662dfb;hb=5e351965bad7e1de2e94027548b022bac692603c;hpb=670cb07df58286ca6f155c1b8e1455af948aac84 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp index 6fe4af6..6150385 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -232,7 +232,7 @@ int UtcDaliControlImplOnGestureMethods(void) application.SendNotification(); application.Render(); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); dummyImpl.EnableGestureDetection( Gesture::Type(Gesture::Pinch | Gesture::Pan | Gesture::Tap | Gesture::LongPress) ); DALI_TEST_CHECK( dummyImpl.pinchCalled == false ); @@ -347,7 +347,7 @@ int UtcDaliControlImplChildAddAndRemove(void) { DummyControl dummy = DummyControl::New( true ); Stage::GetCurrent().Add(dummy); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); application.Render(); application.SendNotification(); @@ -406,7 +406,7 @@ int UtcDaliControlImplStageConnection(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); DALI_TEST_EQUALS( dummyImpl.stageConnectionCalled, false, TEST_LOCATION ); Stage::GetCurrent().Add(dummy); @@ -446,7 +446,7 @@ int UtcDaliControlImplSizeSetP(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); Stage::GetCurrent().Add(dummy); application.Render(); @@ -503,7 +503,7 @@ int UtcDaliControlImplSizeAnimation(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); Stage::GetCurrent().Add(dummy); @@ -550,7 +550,7 @@ int UtcDaliControlImplTouchEvent(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); dummy.SetSize( Vector2( 100.0f, 100.0f ) ); dummy.SetAnchorPoint(AnchorPoint::TOP_LEFT); @@ -606,7 +606,7 @@ int UtcDaliControlImplHoverEvent(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); dummy.SetSize( Vector2( 100.0f, 100.0f ) ); dummy.SetAnchorPoint(AnchorPoint::TOP_LEFT); @@ -665,7 +665,7 @@ int UtcDaliControlImplKeyEvent(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); Stage::GetCurrent().Add(dummy); dummy.SetKeyInputFocus(); @@ -709,7 +709,7 @@ int UtcDaliControlImplKeyInputFocusGained(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); Stage::GetCurrent().Add(dummy); @@ -739,7 +739,7 @@ int UtcDaliControlImplKeyInputFocusLost(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); Stage::GetCurrent().Add(dummy); @@ -761,7 +761,7 @@ int UtcDaliControlImplKeyInputFocusLost(void) dummy.SetKeyInputFocus(); dummy.ClearKeyInputFocus(); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); dummyImpl.IsKeyboardNavigationSupported(); dummyImpl.IsKeyboardFocusGroup(); @@ -803,7 +803,7 @@ int UtcDaliControlImplWheelEvent(void) { DummyControl dummy = DummyControl::New( true ); - DummyControlImplOverride& dummyImpl = static_cast(dummy.GetImplementation()); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); dummy.SetSize( Vector2( 100.0f, 100.0f ) ); dummy.SetAnchorPoint(AnchorPoint::TOP_LEFT); @@ -954,10 +954,8 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void) DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); Property::Index index =1; - Actor placementActor = Actor::New(); DALI_TEST_CHECK( !dummyImpl.GetVisual( index ) ); - DALI_TEST_CHECK( !dummyImpl.GetPlacementActor( index ) ); Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); Toolkit::Visual::Base visual; @@ -970,10 +968,9 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void) DALI_TEST_CHECK(visual); // Register index with a color visual - dummyImpl.RegisterVisual( index, placementActor, visual ); + dummyImpl.RegisterVisual( index, visual ); DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); Property::Map newMap; newMap[Visual::Property::TYPE] = Visual::COLOR; @@ -983,10 +980,9 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void) DALI_TEST_CHECK(visual); // ReRegister with altered color visual - dummyImpl.RegisterVisual( index, placementActor, visual ); + dummyImpl.RegisterVisual( index, visual ); DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); tet_result(TET_PASS); @@ -1001,7 +997,6 @@ int UtcDaliControlImplRegisterVisaulThenReRegisterToSelf(void) DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); Property::Index index =1; - Actor placementActor = Actor::New(); Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); Toolkit::Visual::Base visual; @@ -1014,16 +1009,14 @@ int UtcDaliControlImplRegisterVisaulThenReRegisterToSelf(void) DALI_TEST_CHECK(visual); // Register index with a color visual - dummyImpl.RegisterVisual( index, placementActor, visual ); + dummyImpl.RegisterVisual( index, visual ); DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); // ReRegister to self - dummyImpl.RegisterVisual( index, dummy, visual ); + dummyImpl.RegisterVisual( index, visual ); DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == dummy ); END_TEST; } @@ -1040,7 +1033,6 @@ int UtcDaliControlImplRegisterVisualToSelf(void) objectDestructionTracker.Start( dummy ); Property::Index index = 1; - Actor placementActor = Actor::New(); Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); Toolkit::Visual::Base visual; @@ -1053,11 +1045,10 @@ int UtcDaliControlImplRegisterVisualToSelf(void) DALI_TEST_CHECK(visual); // Register to self - dummyImpl.RegisterVisual( index, dummy, visual ); + dummyImpl.RegisterVisual( index, visual ); DALI_TEST_EQUALS( objectDestructionTracker.IsDestroyed(), false, TEST_LOCATION ); // Control not destroyed yet DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == dummy ); } DALI_TEST_EQUALS( objectDestructionTracker.IsDestroyed(), true, TEST_LOCATION ); // Should be destroyed @@ -1073,10 +1064,7 @@ int UtcDaliControlImplRegisterTwoVisuals(void) DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); Property::Index index =1; - Actor placementActor = Actor::New(); - Property::Index index2 =2; - Actor secondPlacementActor = Actor::New(); Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); Toolkit::Visual::Base visual; @@ -1090,7 +1078,7 @@ int UtcDaliControlImplRegisterTwoVisuals(void) DALI_TEST_CHECK(visual); // Register index with a color visual - dummyImpl.RegisterVisual( index, placementActor, visual ); + dummyImpl.RegisterVisual( index, visual ); Property::Map newMap; newMap[Visual::Property::TYPE] = Visual::COLOR; @@ -1100,13 +1088,10 @@ int UtcDaliControlImplRegisterTwoVisuals(void) DALI_TEST_CHECK( secondVisual ); // ReRegister with altered color visual - dummyImpl.RegisterVisual( index2, secondPlacementActor, secondVisual ); + dummyImpl.RegisterVisual( index2, secondVisual ); DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); - DALI_TEST_CHECK( dummyImpl.GetVisual( index2 ) == secondVisual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index2 ) == secondPlacementActor ); END_TEST; } @@ -1119,7 +1104,6 @@ int UtcDaliControlImplRegisterUnregisterVisual(void) DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); Property::Index index =1; - Actor placementActor = Actor::New(); Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); Toolkit::Visual::Base visual; @@ -1132,16 +1116,26 @@ int UtcDaliControlImplRegisterUnregisterVisual(void) DALI_TEST_CHECK(visual); // Register index with a color visual - dummyImpl.RegisterVisual( index, placementActor, visual ); + dummyImpl.RegisterVisual( index, visual ); + + tet_infoline( "Add control with visual to stage and check renderer count is 1" ); + Stage::GetCurrent().Add( dummy ); + application.SendNotification(); + application.Render(); DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); - DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); + DALI_TEST_EQUALS( dummy.GetRendererCount(), 1, TEST_LOCATION ); // Unregister visual dummyImpl.UnregisterVisual( index ); + tet_infoline( "Remove control with visual from stage and check renderer count is 0" ); + Stage::GetCurrent().Remove( dummy ); + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( dummy.GetRendererCount(), 0, TEST_LOCATION ); DALI_TEST_CHECK( !dummyImpl.GetVisual( index ) ); - DALI_TEST_CHECK( !dummyImpl.GetPlacementActor( index ) ); END_TEST; } @@ -1166,7 +1160,7 @@ int UtcDaliControlImplRegisterDisabledVisual(void) DALI_TEST_CHECK(visual); // Register index with a color visual - dummyImpl.RegisterVisual( TEST_PROPERTY, dummy, visual, false ); + dummyImpl.RegisterVisual( TEST_PROPERTY, visual, false ); DALI_TEST_CHECK( dummyImpl.GetVisual( TEST_PROPERTY ) == visual ); DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == false ); @@ -1208,7 +1202,7 @@ int UtcDaliControlImplDisableRegisteredVisual(void) DALI_TEST_CHECK(visual); // Register index with a color visual - dummyImpl.RegisterVisual( TEST_PROPERTY, dummy, visual ); + dummyImpl.RegisterVisual( TEST_PROPERTY, visual ); Stage::GetCurrent().Add(dummy); @@ -1250,7 +1244,7 @@ int UtcDaliControlImplEnabledVisualParentRemovedFromStage(void) DALI_TEST_CHECK(visual); // Register index with a color visual - dummyImpl.RegisterVisual( TEST_PROPERTY, dummy, visual, false ); + dummyImpl.RegisterVisual( TEST_PROPERTY, visual, false ); Stage::GetCurrent().Add(dummy); // Render and notify @@ -1318,9 +1312,9 @@ int UtcDaliControlImplRegisterTwoVisualsAndEnableOnlyOne(void) DALI_TEST_CHECK(visual2); // Register index with a color visual - dummyImpl.RegisterVisual( TEST_PROPERTY1, dummy, visual1 ); + dummyImpl.RegisterVisual( TEST_PROPERTY1, visual1 ); // Register second index with a color visual - dummyImpl.RegisterVisual( TEST_PROPERTY2, dummy, visual2 ); + dummyImpl.RegisterVisual( TEST_PROPERTY2, visual2 ); Stage::GetCurrent().Add(dummy); // Render and notify @@ -1356,4 +1350,69 @@ int UtcDaliControlImplRegisterTwoVisualsAndEnableOnlyOne(void) END_TEST; } +int UtcDaliControlImplAutoClippingWithVisuals(void) +{ + ToolkitTestApplication application; + + tet_infoline( "Test to ensure a renderer does NOT get added when we've already registered a visual which we haven't enabled" ); + + DummyControl control = DummyControl::New(); + DummyControlImpl& controlImpl = static_cast( control.GetImplementation() ); + + Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); + Toolkit::Visual::Base visual; + Property::Map map; + map[Visual::Property::TYPE] = Visual::COLOR; + map[ColorVisual::Property::MIX_COLOR] = Color::RED; + visual = visualFactory.CreateVisual( map ); + DALI_TEST_CHECK(visual); + controlImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual, false ); + + DALI_TEST_EQUALS( 0, control.GetRendererCount(), TEST_LOCATION ); + control.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN ); + + Stage::GetCurrent().Add( control ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( 0, control.GetRendererCount(), TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliControlImplAutoClippingWithVisualsAlreadyOnStage(void) +{ + ToolkitTestApplication application; + + tet_infoline( "Test to ensure a renderer does NOT get added when we've already registered a visual which we haven't enabled and we're already on the stage" ); + + DummyControl control = DummyControl::New(); + DummyControlImpl& controlImpl = static_cast( control.GetImplementation() ); + + Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); + Toolkit::Visual::Base visual; + Property::Map map; + map[Visual::Property::TYPE] = Visual::COLOR; + map[ColorVisual::Property::MIX_COLOR] = Color::RED; + visual = visualFactory.CreateVisual( map ); + DALI_TEST_CHECK(visual); + controlImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual, false ); + + DALI_TEST_EQUALS( 0, control.GetRendererCount(), TEST_LOCATION ); + + Stage::GetCurrent().Add( control ); + + application.SendNotification(); + application.Render(); + + control.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( 0, control.GetRendererCount(), TEST_LOCATION ); + + END_TEST; +}