X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-LayoutingSettingAndRemoval.cpp;h=7e12c1c4e86c0c2d7a34105937c0c7b06115bffd;hb=fbac42bd903f8878efe9e5ecf3c8cca3f217acbb;hp=b55afd66aec1c694689445d31d57e7d0479ab521;hpb=fd7b0b94254cb9eef6c411007f9fb10cca71f40c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-LayoutingSettingAndRemoval.cpp b/automated-tests/src/dali-toolkit/utc-Dali-LayoutingSettingAndRemoval.cpp index b55afd6..7e12c1c 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-LayoutingSettingAndRemoval.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-LayoutingSettingAndRemoval.cpp @@ -233,4 +233,85 @@ int UtcDaliLayoutingSettingAndRemoval_RemoveLayoutFromHbox(void) DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::SIZE ), Vector3( 60.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); END_TEST; -} \ No newline at end of file +} + +int UtcDaliLayouting_SetLayoutAlreadyInUse(void) +{ + /* + 1 ControlA (LinearLayoutA) + 2 Add 3 children + + 3 ControlB (LinearLayoutA) + 4 Add 4 children + + Test number of children in each control/layout + + LinearLayoutA should now have 4 children + + ControlB should have 4 children too + ControlA should have 3 children. + + */ + + ToolkitTestApplication application; + tet_infoline(" UtcDaliLayouting_SetLayoutAlreadyInUse - Set layout belonging to controlA to controlB"); + + Stage stage = Stage::GetCurrent(); + + auto rootControl = Control::New(); + auto absoluteLayout = AbsoluteLayout::New(); + DevelControl::SetLayout( rootControl, absoluteLayout ); + rootControl.SetName( "AbsoluteLayout" ); + stage.Add( rootControl ); + + auto controlA = Control::New(); + auto hboxLayout = LinearLayout::New(); + controlA.SetName( "controlA"); + + rootControl.Add( controlA ); + + DevelControl::SetLayout( controlA, hboxLayout ); + + // Add child controls + std::vector< Control > controls; + controls.push_back( CreateLeafControl( 100, 100 ) ); // 0 + controls.push_back( CreateLeafControl( 100, 100 ) ); // 1 + controls.push_back( CreateLeafControl( 100, 100 ) ); // 2 + + for( auto&& iter : controls ) + { + controlA.Add( iter ); + } + + // Ensure layouting happens + application.SendNotification(); + application.Render(); + + tet_infoline("SetLayout to another control"); + + auto controlB = Control::New(); + controlB.SetName( "controlB"); + + std::vector< Control > moreControls; + moreControls.push_back( CreateLeafControl( 100, 100 ) ); // 0 + moreControls.push_back( CreateLeafControl( 100, 100 ) ); // 1 + moreControls.push_back( CreateLeafControl( 100, 100 ) ); // 3 + moreControls.push_back( CreateLeafControl( 100, 100 ) ); // 4 + + for( auto&& iter : moreControls ) + { + controlB.Add( iter ); + } + + DevelControl::SetLayout( controlB, hboxLayout ); // Set hboxLayout used by ControlA to ControlB + + // Ensure layouting happens + application.SendNotification(); + application.Render(); + + tet_infoline("Get number of children in each control's layout"); + DALI_TEST_EQUALS( ( LayoutGroup::DownCast( DevelControl::GetLayout( controlA ) ) ).GetChildCount(), 3 , TEST_LOCATION ); + DALI_TEST_EQUALS( ( LayoutGroup::DownCast( DevelControl::GetLayout( controlB ) ) ).GetChildCount(), 4 , TEST_LOCATION ); + + END_TEST; +}