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-Layouting.cpp;h=6e8cc16f76178276707e48d709f95e2449567716;hp=28ada5a33a693a2d7cf11c42454da771ebc7e653;hb=57974024e1401e657866df3afabf53676a5892b6;hpb=d2db3f27c61198d52ae7095f80a48ffedf859b65 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp index 28ada5a..6e8cc16 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp @@ -2788,19 +2788,21 @@ int UtcDaliLayouting_LayoutGroup01(void) DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, 600 ); hbox.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); + DevelControl::SetLayoutingRequired( hbox, true ); hbox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); // LinearLayout will eventually do this internally. - tet_infoline("Add a control without SetLayout being called"); + tet_infoline("Add a control without SetLayout being called but with layout required set true"); auto control = Control::New(); control.SetName("Control1"); + DevelControl::SetLayoutingRequired( control, true ); 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 @@ -2826,17 +2828,18 @@ int UtcDaliLayouting_LayoutGroup02(void) // Create a parent layout auto hbox = Control::New(); auto hboxLayout = LinearLayout::New(); + DevelControl::SetLayout( hbox, hboxLayout ); 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"); + tet_infoline("Add a control without SetLayout being called but with layout required set true"); auto control = Control::New(); control.SetName("Control1"); + DevelControl::SetLayoutingRequired( control, true ); hbox.Add( control ); control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); @@ -2874,7 +2877,7 @@ int UtcDaliLayouting_LayoutGroup02(void) int UtcDaliLayouting_LayoutGroup03(void) { ToolkitTestApplication application; - tet_infoline("UtcDaliLayouting_LayoutGroup03 - Test control witha LayoutGroup as a leaf"); + tet_infoline("UtcDaliLayouting_LayoutGroup03 - Test control with a LayoutGroup as a leaf"); Control rootControl; SetupRootLayoutControl( rootControl ); @@ -2882,9 +2885,47 @@ int UtcDaliLayouting_LayoutGroup03(void) // Create a parent layout auto hbox = Control::New(); auto hboxLayout = LinearLayout::New(); + DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetName( "HBox"); rootControl.Add( hbox ); + 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_LayoutGroup04(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliLayouting_LayoutGroup04 - Test control with a LayoutGroup as a leaf and with SetLayotRequired = true"); + + Control rootControl; + SetupRootLayoutControl( rootControl ); + + // Create a parent layout + auto hbox = Control::New(); + auto hboxLayout = LinearLayout::New(); DevelControl::SetLayout( hbox, hboxLayout ); + hbox.SetName( "HBox"); + rootControl.Add( hbox ); 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. @@ -2893,6 +2934,7 @@ int UtcDaliLayouting_LayoutGroup03(void) auto control = Control::New(); control.SetName("Control1"); + DevelControl::SetLayoutingRequired( control, true ); hbox.Add( control ); control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::MATCH_PARENT ); control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, 100 ); @@ -2908,6 +2950,44 @@ int UtcDaliLayouting_LayoutGroup03(void) END_TEST; } +int UtcDaliLayouting_IsLayoutingRequired(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliLayouting_IsLayoutingRequired - Test setting the SetLayoutRequired and then check if flag was set"); + + Control rootControl; + SetupRootLayoutControl( rootControl ); + + // Create a parent layout + auto hbox = Control::New(); + auto hboxLayout = LinearLayout::New(); + DevelControl::SetLayout( hbox, hboxLayout ); + hbox.SetName( "HBox"); + rootControl.Add( hbox ); + 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"); + DALI_TEST_EQUALS( DevelControl::IsLayoutingRequired( control ), false, TEST_LOCATION ); + DevelControl::SetLayoutingRequired( control, true ); + 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( DevelControl::IsLayoutingRequired( control ), true, TEST_LOCATION ); + + END_TEST; +} + int UtcDaliLayouting_LayoutGroupWithPadding01(void) { ToolkitTestApplication application; @@ -2930,6 +3010,7 @@ int UtcDaliLayouting_LayoutGroupWithPadding01(void) auto control = Control::New(); control.SetName("Control1"); + DevelControl::SetLayoutingRequired( control, true ); hbox.Add( control ); control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); @@ -2977,6 +3058,7 @@ int UtcDaliLayouting_LayoutGroupWithChildMargin01(void) auto control = Control::New(); control.SetName("Control1"); + DevelControl::SetLayoutingRequired( control, true ); hbox.Add( control ); control.SetProperty( LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); control.SetProperty( LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::WRAP_CONTENT );