X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-Layouting.cpp;h=0c1b9ef66e86ffbb759a473a107378ae3f74250e;hb=86b774172a9e35e8300a8edda1af625a4999d331;hp=28ada5a33a693a2d7cf11c42454da771ebc7e653;hpb=8198fa2d146a500db82212ea42f7ae624d27ae6d;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp index 28ada5a..0c1b9ef 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp @@ -35,9 +35,6 @@ using namespace Dali; using namespace Toolkit; -namespace -{ - void TestLayoutItemOrder( std::vector< Control >& controls, LayoutGroup& layoutGroup ) { for( auto&& iter : controls ) @@ -47,19 +44,6 @@ void TestLayoutItemOrder( std::vector< Control >& controls, LayoutGroup& layoutG } } -// Turns the given control into a Root layout control and adds it to the stage. -void SetupRootLayoutControl( Control& rootControl ) -{ - rootControl = Control::New(); - auto absoluteLayout = AbsoluteLayout::New(); - DevelControl::SetLayout( rootControl, absoluteLayout ); - rootControl.SetName( "RootAbsoluteLayout" ); - Stage stage = Stage::GetCurrent(); - stage.Add( rootControl ); -} - -} // unnamed namespace - void utc_dali_toolkit_layouting_startup(void) { test_return_value = TET_UNDEF; @@ -640,7 +624,6 @@ int UtcDaliLayouting_HboxLayout08(void) Control control1 = CreateLeafControl( 40, 40 ); rootControl.Add( control1 ); - auto hbox = Control::New(); auto hboxLayout = LinearLayout::New(); hboxLayout.SetOrientation( LinearLayout::Orientation::HORIZONTAL ); @@ -659,9 +642,7 @@ int UtcDaliLayouting_HboxLayout08(void) DALI_TEST_EQUALS( hboxLayout.IsLayoutAnimated(), false, TEST_LOCATION ); DALI_TEST_EQUALS( DevelControl::GetLayout( control2 ).IsLayoutAnimated(), false, TEST_LOCATION ); - tet_infoline(" Set hBoxLayout to animate"); hboxLayout.SetAnimateLayout( true ); - tet_infoline(" Set absoluteLayout not to animate"); absoluteLayout.SetAnimateLayout( false ); DALI_TEST_EQUALS( absoluteLayout.IsLayoutAnimated(), false, TEST_LOCATION ); @@ -2771,321 +2752,3 @@ int UtcDaliLayouting_SetLayoutOrder02(void) END_TEST; } - -int UtcDaliLayouting_LayoutGroup01(void) -{ - ToolkitTestApplication application; - tet_infoline("UtcDaliLayouting_LayoutGroup01 - Test adding a control to a layout then adding a TextLabel to that control"); - - Control rootControl; - SetupRootLayoutControl( rootControl ); - - // Create a parent layout - auto hbox = Control::New(); - auto hboxLayout = LinearLayout::New(); - hbox.SetName( "HBox"); - rootControl.Add( hbox ); - DevelControl::SetLayout( hbox, hboxLayout ); - hbox.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, 600 ); - hbox.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - hbox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); // LinearLayout will eventually do this internally. - - tet_infoline("Add a control without SetLayout being called"); - - auto control = Control::New(); - control.SetName("Control1"); - hbox.Add( control ); - control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::MATCH_PARENT ); - control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - - tet_infoline("Add a Textlabel to the control"); - auto textLabel = TextLabel::New("Test text"); - textLabel.SetName("TextLabel"); - control.Add( textLabel ); - - // Ensure layouting happens - application.SendNotification(); - application.Render(); - - tet_infoline("Test text is it's natural size"); - DALI_TEST_EQUALS( textLabel.GetProperty( Actor::Property::SIZE ), Vector3( 230.0f, 64.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - tet_infoline("Test control is width of it's parent and height of it's child"); - DALI_TEST_EQUALS( control.GetProperty( Actor::Property::SIZE ), Vector3( 600.0f, 64.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - END_TEST; -} - -int UtcDaliLayouting_LayoutGroup02(void) -{ - ToolkitTestApplication application; - tet_infoline("UtcDaliLayouting_LayoutGroup02 - Test control is the size of it's largest child"); - - Control rootControl; - SetupRootLayoutControl( rootControl ); - - // Create a parent layout - auto hbox = Control::New(); - auto hboxLayout = LinearLayout::New(); - hbox.SetName( "HBox"); - rootControl.Add( hbox ); - DevelControl::SetLayout( hbox, hboxLayout ); - hbox.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, 600 ); - hbox.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - hbox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); // LinearLayout will eventually do this internally. - - tet_infoline("Add a control without SetLayout being called"); - - auto control = Control::New(); - control.SetName("Control1"); - hbox.Add( control ); - control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - - tet_infoline("Add a Textlabel to the control"); - auto textLabel = TextLabel::New("Test text"); - textLabel.SetName("TextLabel"); - control.Add( textLabel ); - - tet_infoline("Add another Textlabel to the control"); - auto largeTextLabel = TextLabel::New("Test large text"); - largeTextLabel.SetName("TextLabel-Large"); - control.Add( largeTextLabel ); - - // Ensure layouting happens - application.SendNotification(); - application.Render(); - - tet_infoline("Test text is it's natural size"); - DALI_TEST_EQUALS( textLabel.GetProperty( Actor::Property::SIZE ), Vector3( 230.0f, 64.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - tet_infoline("Test text is centered in the control, the control is the size of the largest child"); - DALI_TEST_EQUALS( textLabel.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - tet_infoline("Test large text is it's natural size"); - DALI_TEST_EQUALS( largeTextLabel.GetProperty( Actor::Property::SIZE ), Vector3( 382.0f, 64.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - tet_infoline("Test text is aligned to start as is the size of the control"); - DALI_TEST_EQUALS( largeTextLabel.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - tet_infoline("Test control is width of it's parent and height of it's largest child"); - DALI_TEST_EQUALS( control.GetProperty( Actor::Property::SIZE ), Vector3( 382.0f, 64.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - END_TEST; -} - -int UtcDaliLayouting_LayoutGroup03(void) -{ - ToolkitTestApplication application; - tet_infoline("UtcDaliLayouting_LayoutGroup03 - Test control witha LayoutGroup as a leaf"); - - Control rootControl; - SetupRootLayoutControl( rootControl ); - - // Create a parent layout - auto hbox = Control::New(); - auto hboxLayout = LinearLayout::New(); - hbox.SetName( "HBox"); - rootControl.Add( hbox ); - DevelControl::SetLayout( hbox, hboxLayout ); - hbox.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, 600 ); - hbox.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - hbox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); // LinearLayout will eventually do this internally. - - tet_infoline("Add a control without SetLayout being called"); - - auto control = Control::New(); - control.SetName("Control1"); - hbox.Add( control ); - control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::MATCH_PARENT ); - control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, 100 ); - - // Ensure layouting happens - application.SendNotification(); - application.Render(); - - tet_infoline("Test control is width of it's parent and exact given height"); - DALI_TEST_EQUALS( control.GetProperty( Actor::Property::SIZE ), Vector3( 600.0f, 100.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( control.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - END_TEST; -} - -int UtcDaliLayouting_LayoutGroupWithPadding01(void) -{ - ToolkitTestApplication application; - tet_infoline("UtcDaliLayouting_LayoutGroupWithPadding01 - Test adding a control to a layout that has padding"); - - Control rootControl; - SetupRootLayoutControl( rootControl ); - - // Create a parent layout - auto hbox = Control::New(); - auto hboxLayout = LinearLayout::New(); - hbox.SetName( "HBox"); - rootControl.Add( hbox ); - DevelControl::SetLayout( hbox, hboxLayout ); - hbox.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, 600 ); - hbox.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - hbox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); // LinearLayout will eventually do this internally. - - tet_infoline("Add a control without SetLayout being called"); - - auto control = Control::New(); - control.SetName("Control1"); - hbox.Add( control ); - control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - - const Extents CONTROL_PADDING = Extents(5, 10, 20, 2 ); - tet_printf( "Adding Padding to control"); - control.SetProperty( Toolkit::Control::Property::PADDING, CONTROL_PADDING ); - - tet_infoline("Add a Textlabel to the control"); - auto textLabel = TextLabel::New("Test text"); - textLabel.SetName("TextLabel"); - control.Add( textLabel ); - - // Ensure layouting happens - application.SendNotification(); - application.Render(); - - tet_infoline("Test text is it's natural size"); - DALI_TEST_EQUALS( textLabel.GetProperty( Actor::Property::SIZE ), Vector3( 230.0f, 64.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - tet_infoline("Test control is size of it's child and control it's own padding"); - DALI_TEST_EQUALS( control.GetProperty( Actor::Property::SIZE ), Vector3( 245.0f, 86.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - END_TEST; -} - -int UtcDaliLayouting_LayoutGroupWithChildMargin01(void) -{ - ToolkitTestApplication application; - tet_infoline("UtcDaliLayouting_LayoutGroupWithChildMargin01 - Test adding a control with padding to a layout that has padding"); - - Control rootControl; - SetupRootLayoutControl( rootControl ); - - // Create a parent layout - auto hbox = Control::New(); - auto hboxLayout = LinearLayout::New(); - hbox.SetName( "HBox"); - rootControl.Add( hbox ); - DevelControl::SetLayout( hbox, hboxLayout ); - hbox.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, 600 ); - hbox.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - hbox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); // LinearLayout will eventually do this internally. - - tet_infoline("Add a control without SetLayout being called"); - - auto control = Control::New(); - control.SetName("Control1"); - hbox.Add( control ); - control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); - - const Extents CONTROL_PADDING = Extents(5, 10, 20, 2 ); - tet_printf( "Adding Padding to control"); - control.SetProperty( Toolkit::Control::Property::PADDING, CONTROL_PADDING ); - - tet_infoline("Add a Textlabel to the control"); - auto textLabel = TextLabel::New("Test text"); - const Extents CHILD_MARGIN = Extents( 10, 0, 5, 0 ); - textLabel.SetProperty( Toolkit::Control::Property::MARGIN, CHILD_MARGIN ); - textLabel.SetName("TextLabel"); - control.Add( textLabel ); - - // Ensure layouting happens - application.SendNotification(); - application.Render(); - - tet_infoline("Test text is it's natural size"); - DALI_TEST_EQUALS( textLabel.GetProperty( Actor::Property::SIZE ), Vector3( 230.0f, 64.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - tet_infoline("Test control is width of it's parent and height of it's child"); - DALI_TEST_EQUALS( control.GetProperty( Actor::Property::SIZE ), Vector3( 255.0f, 91.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - END_TEST; -} - -int UtcDaliLayouting_SetLayout(void) -{ - ToolkitTestApplication application; - tet_infoline(" UtcDaliLayouting_SetLayout - Test reusing layouts"); - - Control rootControl; - SetupRootLayoutControl( rootControl ); - - auto container = Control::New(); - auto horizontalLayout = LinearLayout::New(); - horizontalLayout.SetOrientation( LinearLayout::Orientation::HORIZONTAL ); - DevelControl::SetLayout( container, horizontalLayout ); - container.SetName( "Container" ); - rootControl.Add( container ); - - std::vector< Control > controls; - controls.push_back( CreateLeafControl( 40, 40 ) ); - controls.push_back( CreateLeafControl( 60, 60 ) ); - - for( auto&& iter : controls ) - { - container.Add( iter ); - } - - container.SetParentOrigin( ParentOrigin::CENTER ); - container.SetAnchorPoint( AnchorPoint::CENTER ); - - // Ensure layouting happens - application.SendNotification(); - application.Render(); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 10.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::POSITION ), Vector3( 40.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 60.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::SIZE ), Vector3( 40.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::SIZE ), Vector3( 60.0f, 60.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - // Change a layout - auto verticalLayout = LinearLayout::New(); - verticalLayout.SetOrientation( LinearLayout::Orientation::VERTICAL ); - DevelControl::SetLayout( container, verticalLayout ); - - application.SendNotification(); - application.Render(); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::SIZE ), Vector3( 60.0f, 100.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::SIZE ), Vector3( 40.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::SIZE ), Vector3( 60.0f, 60.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - // Second round - DevelControl::SetLayout( container, horizontalLayout ); - - application.SendNotification(); - application.Render(); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 10.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::POSITION ), Vector3( 40.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 60.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::SIZE ), Vector3( 40.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::SIZE ), Vector3( 60.0f, 60.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - // Change a layout - DevelControl::SetLayout( container, verticalLayout ); - - application.SendNotification(); - application.Render(); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - DALI_TEST_EQUALS( container.GetProperty( Actor::Property::SIZE ), Vector3( 60.0f, 100.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::SIZE ), Vector3( 40.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::SIZE ), Vector3( 60.0f, 60.0f, 0.0f ), 0.0001f, TEST_LOCATION ); - - END_TEST; -}