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=6fe4af63a2461aa21bec550b5c48971051662dfb;hp=07c6fe4c8e236f966d5222b570fb130fe01ee58d;hb=670cb07df58286ca6f155c1b8e1455af948aac84;hpb=70fc16a3cea274c6c5c56e5dee0bd5347a6c9389 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp index 07c6fe4..6fe4af6 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp @@ -956,6 +956,9 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void) 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; @@ -969,6 +972,8 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void) // Register index with a color visual dummyImpl.RegisterVisual( index, placementActor, visual ); + DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); + DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); Property::Map newMap; newMap[Visual::Property::TYPE] = Visual::COLOR; @@ -980,6 +985,9 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void) // ReRegister with altered color visual dummyImpl.RegisterVisual( index, placementActor, visual ); + DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); + DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); + tet_result(TET_PASS); END_TEST; @@ -1008,10 +1016,14 @@ int UtcDaliControlImplRegisterVisaulThenReRegisterToSelf(void) // Register index with a color visual dummyImpl.RegisterVisual( index, placementActor, visual ); + DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); + DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); + // ReRegister to self dummyImpl.RegisterVisual( index, dummy, visual ); - tet_result(TET_PASS); + DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); + DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == dummy ); END_TEST; } @@ -1020,31 +1032,39 @@ int UtcDaliControlImplRegisterVisualToSelf(void) { ToolkitTestApplication application; - DummyControl dummy = DummyControl::New(); - DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); + Test::ObjectDestructionTracker objectDestructionTracker; - Property::Index index =1; - Actor placementActor = Actor::New(); + { + DummyControl dummy = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); + objectDestructionTracker.Start( dummy ); - Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); - Toolkit::Visual::Base visual; + Property::Index index = 1; + Actor placementActor = Actor::New(); - Property::Map map; - map[Visual::Property::TYPE] = Visual::COLOR; - map[ColorVisual::Property::MIX_COLOR] = Color::RED; + Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); + Toolkit::Visual::Base visual; - visual = visualFactory.CreateVisual( map ); - DALI_TEST_CHECK(visual); + Property::Map map; + map[Visual::Property::TYPE] = Visual::COLOR; + map[ColorVisual::Property::MIX_COLOR] = Color::RED; - // ReRegister to self - dummyImpl.RegisterVisual( index, dummy, visual ); + visual = visualFactory.CreateVisual( map ); + DALI_TEST_CHECK(visual); - tet_result(TET_PASS); + // Register to self + dummyImpl.RegisterVisual( index, dummy, 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 END_TEST; } - int UtcDaliControlImplRegisterTwoVisuals(void) { ToolkitTestApplication application; @@ -1077,11 +1097,16 @@ int UtcDaliControlImplRegisterTwoVisuals(void) newMap[ColorVisual::Property::MIX_COLOR] = Color::BLUE; secondVisual = visualFactory.CreateVisual( newMap ); + DALI_TEST_CHECK( secondVisual ); // ReRegister with altered color visual dummyImpl.RegisterVisual( index2, secondPlacementActor, secondVisual ); - tet_result(TET_PASS); + 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; } @@ -1109,10 +1134,226 @@ int UtcDaliControlImplRegisterUnregisterVisual(void) // Register index with a color visual dummyImpl.RegisterVisual( index, placementActor, visual ); + DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual ); + DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor ); + // Unregister visual dummyImpl.UnregisterVisual( index ); - tet_result(TET_PASS); + DALI_TEST_CHECK( !dummyImpl.GetVisual( index ) ); + DALI_TEST_CHECK( !dummyImpl.GetPlacementActor( index ) ); + + END_TEST; +} + +int UtcDaliControlImplRegisterDisabledVisual(void) +{ + ToolkitTestApplication application; + + DummyControl dummy = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); + + Property::Index TEST_PROPERTY =1; + + 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); + + // Register index with a color visual + dummyImpl.RegisterVisual( TEST_PROPERTY, dummy, visual, false ); + + DALI_TEST_CHECK( dummyImpl.GetVisual( TEST_PROPERTY ) == visual ); + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == false ); + + Stage::GetCurrent().Add(dummy); + + // Render and notify + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == false ); + + DALI_TEST_CHECK( dummy.OnStage() == true ); + + dummyImpl.EnableVisual( TEST_PROPERTY, true ); + + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == true ); END_TEST; } + +int UtcDaliControlImplDisableRegisteredVisual(void) +{ + ToolkitTestApplication application; + + DummyControl dummy = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); + + Property::Index TEST_PROPERTY =1; + + 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); + + // Register index with a color visual + dummyImpl.RegisterVisual( TEST_PROPERTY, dummy, visual ); + + Stage::GetCurrent().Add(dummy); + + // Render and notify + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == true); + + DALI_TEST_CHECK( dummy.OnStage() == true ); + + dummyImpl.EnableVisual( TEST_PROPERTY, false ); + + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == false ); + + END_TEST; +} + +int UtcDaliControlImplEnabledVisualParentRemovedFromStage(void) +{ + // Visual enabled but then parent removed from stage, test ensures visual/renderer are also removed from stage. + // Then adding parent back to stage should automatically put visual/renderer back + + ToolkitTestApplication application; + + DummyControl dummy = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); + + Property::Index TEST_PROPERTY =1; + + 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); + + // Register index with a color visual + dummyImpl.RegisterVisual( TEST_PROPERTY, dummy, visual, false ); + + Stage::GetCurrent().Add(dummy); + // Render and notify + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == false ); + DALI_TEST_CHECK( dummy.OnStage() == true ); + dummyImpl.EnableVisual( TEST_PROPERTY, true ); + + // Render and notify + application.SendNotification(); + application.Render(); + DALI_TEST_CHECK( dummy.GetRendererCount() == 1u ); + + // Remove control from stage, visual should be removed from stage too + Stage::GetCurrent().Remove(dummy); + // Render and notify + application.SendNotification(); + application.Render(); + DALI_TEST_CHECK( dummy.GetRendererCount() == 0u ); + + Stage::GetCurrent().Add(dummy); + // Render and notify + application.SendNotification(); + application.Render(); + DALI_TEST_CHECK( dummy.GetRendererCount() == 1u ); + + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY ) == true ); + + END_TEST; +} + +int UtcDaliControlImplRegisterTwoVisualsAndEnableOnlyOne(void) +{ + // Register 2 visuals and enable by default + // Disable 1 visual + // Remove control from stage then put it back + // Check that only 1 visual/renderer is staged. + + ToolkitTestApplication application; + + DummyControl dummy = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); + + Property::Index TEST_PROPERTY1 =1; + Property::Index TEST_PROPERTY2 =2; + + Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get(); + Toolkit::Visual::Base visual1; + Toolkit::Visual::Base visual2; + + Property::Map map; + map[Visual::Property::TYPE] = Visual::COLOR; + map[ColorVisual::Property::MIX_COLOR] = Color::RED; + + Property::Map map2; + map[Visual::Property::TYPE] = Visual::COLOR; + map[ColorVisual::Property::MIX_COLOR] = Color::BLUE; + + visual1 = visualFactory.CreateVisual( map ); + DALI_TEST_CHECK(visual1); + + visual2 = visualFactory.CreateVisual( map ); + DALI_TEST_CHECK(visual2); + + // Register index with a color visual + dummyImpl.RegisterVisual( TEST_PROPERTY1, dummy, visual1 ); + // Register second index with a color visual + dummyImpl.RegisterVisual( TEST_PROPERTY2, dummy, visual2 ); + + Stage::GetCurrent().Add(dummy); + // Render and notify + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( dummy.GetRendererCount() == 2u ); + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY1 ) == true ); + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY1 ) == true); + DALI_TEST_CHECK( dummy.OnStage() == true ); + dummyImpl.EnableVisual( TEST_PROPERTY2, false ); + + // Render and notify + application.SendNotification(); + application.Render(); + DALI_TEST_CHECK( dummy.GetRendererCount() == 1u ); + + // Remove control from stage, visual should be removed from stage too + Stage::GetCurrent().Remove(dummy); + // Render and notify + application.SendNotification(); + application.Render(); + DALI_TEST_CHECK( dummy.GetRendererCount() == 0u ); + + Stage::GetCurrent().Add(dummy); + // Render and notify + application.SendNotification(); + application.Render(); + DALI_TEST_CHECK( dummy.GetRendererCount() == 1u ); + + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY1 ) == true ); + DALI_TEST_CHECK( dummyImpl.IsVisualEnabled( TEST_PROPERTY2 ) == false ); + + END_TEST; +} +