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-CheckBoxButton.cpp;h=799a069cc207f56b3c68921634fb50fdf1ae903c;hp=f0169006b8af8f9abe8b2d6f6eddd100bcc9e35c;hb=HEAD;hpb=af70c4c72ccbf2f680bd43f67888224f97a361eb diff --git a/automated-tests/src/dali-toolkit/utc-Dali-CheckBoxButton.cpp b/automated-tests/src/dali-toolkit/utc-Dali-CheckBoxButton.cpp index f016900..abce046 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-CheckBoxButton.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-CheckBoxButton.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -15,50 +15,49 @@ * */ -#include #include +#include + #include #include +#include +#include + using namespace Dali; using namespace Toolkit; namespace { - static bool gCheckBoxButtonState = false; -bool CheckBoxButtonClicked( Button button, bool state ) +bool CheckBoxButtonClicked(Button button) { - gCheckBoxButtonState = state; + gCheckBoxButtonState = button.GetProperty(button.GetPropertyIndex("selected")); return true; } +static const char* TEST_IMAGE_ONE = TEST_RESOURCE_DIR "/gallery-small-1.jpg"; +const Vector2 TEST_IMAGE_SIZE = Vector2(66.0f, 66.0f); - -Image CreateSolidColorImage( const Vector4& color, unsigned int width, unsigned int height ) +static std::string GetButtonText(Button button) { - BitmapImage imageData = BitmapImage::New( width, height, Pixel::RGBA8888 ); + Property::Value value = button.GetProperty(Toolkit::Button::Property::LABEL); - // Create the image - PixelBuffer* pixbuf = imageData.GetBuffer(); - unsigned int size = width * height; + Property::Map* labelProperty = value.GetMap(); - for( size_t i = 0; i < size; i++ ) - { - pixbuf[i*4+0] = 0xFF * color.r; - pixbuf[i*4+1] = 0xFF * color.g; - pixbuf[i*4+2] = 0xFF * color.b; - pixbuf[i*4+3] = 0xFF * color.a; - } + std::string textLabel; - imageData.Update(); + if(labelProperty) + { + Property::Value* value = labelProperty->Find(Toolkit::TextVisual::Property::TEXT); + value->Get(textLabel); + } - return imageData; + return textLabel; } } // namespace - void checkbox_button_startup(void) { test_return_value = TET_UNDEF; @@ -69,143 +68,360 @@ void checkbox_button_cleanup(void) test_return_value = TET_PASS; } -int UtcDaliCheckBoxButtonSetGetChecked(void) +int UtcDaliCheckBoxButtonConstructorP(void) +{ + ToolkitTestApplication application; + + CheckBoxButton checkBox; + + DALI_TEST_CHECK(!checkBox); + END_TEST; +} + +int UtcDaliCheckBoxButtonCopyConstructorP(void) +{ + ToolkitTestApplication application; + + // Initialize an object, ref count == 1 + CheckBoxButton checkBox = CheckBoxButton::New(); + + CheckBoxButton copy(checkBox); + DALI_TEST_CHECK(copy); + END_TEST; +} + +int UtcDaliCheckBoxButtonMoveConstructor(void) +{ + ToolkitTestApplication application; + + CheckBoxButton button = CheckBoxButton::New(); + DALI_TEST_EQUALS(1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION); + DALI_TEST_EQUALS(button.GetProperty(Button::Property::TOGGLABLE), true, TEST_LOCATION); + button.SetProperty(Button::Property::TOGGLABLE, false); + DALI_TEST_EQUALS(button.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); + + CheckBoxButton moved = std::move(button); + DALI_TEST_CHECK(moved); + DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION); + DALI_TEST_EQUALS(moved.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); + DALI_TEST_CHECK(!button); + + END_TEST; +} + +int UtcDaliCheckBoxButtonAssignmentOperatorP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliCheckBoxButtonSetGetChecked"); + + CheckBoxButton checkBox = CheckBoxButton::New(); + + CheckBoxButton copy(checkBox); + DALI_TEST_CHECK(copy); + + DALI_TEST_CHECK(checkBox == copy); + END_TEST; +} + +int UtcDaliCheckBoxButtonMoveAssignment(void) +{ + ToolkitTestApplication application; + + CheckBoxButton button = CheckBoxButton::New(); + DALI_TEST_EQUALS(1, button.GetBaseObject().ReferenceCount(), TEST_LOCATION); + DALI_TEST_EQUALS(button.GetProperty(Button::Property::TOGGLABLE), true, TEST_LOCATION); + button.SetProperty(Button::Property::TOGGLABLE, false); + DALI_TEST_EQUALS(button.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); + + CheckBoxButton moved; + moved = std::move(button); + DALI_TEST_CHECK(moved); + DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION); + DALI_TEST_EQUALS(moved.GetProperty(Button::Property::TOGGLABLE), false, TEST_LOCATION); + DALI_TEST_CHECK(!button); + + END_TEST; +} + +int UtcDaliCheckBoxButtonNewP(void) +{ + ToolkitTestApplication application; + + CheckBoxButton checkBox = CheckBoxButton::New(); + + DALI_TEST_CHECK(checkBox); + END_TEST; +} + +int UtcDaliCheckBoxButtonDownCastP(void) +{ + ToolkitTestApplication application; + + CheckBoxButton checkBox = CheckBoxButton::New(); + + BaseHandle object(checkBox); + + CheckBoxButton checkBox2 = CheckBoxButton::DownCast(object); + DALI_TEST_CHECK(checkBox2); + + CheckBoxButton checkBox3 = DownCast(object); + DALI_TEST_CHECK(checkBox3); + END_TEST; +} + +int UtcDaliCheckBoxButtonDownCastN(void) +{ + ToolkitTestApplication application; + + BaseHandle unInitializedObject; + + CheckBoxButton checkBox1 = CheckBoxButton::DownCast(unInitializedObject); + DALI_TEST_CHECK(!checkBox1); + + CheckBoxButton checkBox2 = DownCast(unInitializedObject); + DALI_TEST_CHECK(!checkBox2); + END_TEST; +} + +int UtcDaliCheckBoxButtonSelectedPropertyP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliCheckBoxButtonSetGetSelected"); CheckBoxButton checkBoxButton = CheckBoxButton::New(); - checkBoxButton.StateChangedSignal().Connect( &CheckBoxButtonClicked ); + checkBoxButton.StateChangedSignal().Connect(&CheckBoxButtonClicked); // global var used to check if CheckBoxButtonClicked is called; gCheckBoxButtonState = false; - checkBoxButton.SetChecked( true ); + checkBoxButton.SetProperty(checkBoxButton.GetPropertyIndex("selected"), true); - DALI_TEST_CHECK( checkBoxButton.IsChecked() ); - DALI_TEST_CHECK( gCheckBoxButtonState ); + DALI_TEST_EQUALS(checkBoxButton.GetProperty(checkBoxButton.GetPropertyIndex("selected")), true, TEST_LOCATION); + DALI_TEST_CHECK(gCheckBoxButtonState); - checkBoxButton.SetChecked( false ); + checkBoxButton.SetProperty(checkBoxButton.GetPropertyIndex("selected"), false); - DALI_TEST_CHECK( !checkBoxButton.IsChecked() ); - DALI_TEST_CHECK( !gCheckBoxButtonState ); + DALI_TEST_EQUALS(checkBoxButton.GetProperty(checkBoxButton.GetPropertyIndex("selected")), false, TEST_LOCATION); + DALI_TEST_CHECK(!gCheckBoxButtonState); - checkBoxButton.SetChecked( true ); + checkBoxButton.SetProperty(checkBoxButton.GetPropertyIndex("selected"), true); - DALI_TEST_CHECK( checkBoxButton.IsChecked() ); - DALI_TEST_CHECK( gCheckBoxButtonState ); + DALI_TEST_EQUALS(checkBoxButton.GetProperty(checkBoxButton.GetPropertyIndex("selected")), true, TEST_LOCATION); + DALI_TEST_CHECK(gCheckBoxButtonState); END_TEST; } -int UtcDaliCheckBoxButtonSetImages(void) +int UtcDaliCheckBoxSetLabelP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliCheckBoxButtonSetImages"); - Actor imageActor; + CheckBoxButton checkBox = CheckBoxButton::New(); - Image image01 = CreateSolidColorImage( Color::RED, 10, 10 ); - ImageActor imageActor01 = CreateSolidColorActor( Color::RED ); - imageActor01.SetSize( 20, 20 ); + Property::Map propertyMap; - Image image02 = CreateSolidColorImage( Color::RED, 30, 30 ); - ImageActor imageActor02 = CreateSolidColorActor( Color::RED ); - imageActor02.SetSize( 40, 40 ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT) + .Add(Toolkit::TextVisual::Property::TEXT, "activate") + .Add(Toolkit::TextVisual::Property::POINT_SIZE, 15.0f); - Image image03 = CreateSolidColorImage( Color::RED, 50, 50 ); - ImageActor imageActor03 = CreateSolidColorActor( Color::RED ); - imageActor03.SetSize( 60, 60 ); + checkBox.SetProperty(checkBox.GetPropertyIndex("label"), propertyMap); - Image image04 = CreateSolidColorImage( Color::RED, 70, 70 ); - ImageActor imageActor04 = CreateSolidColorActor( Color::RED ); - imageActor04.SetSize( 80, 80 ); + DALI_TEST_EQUALS(GetButtonText(checkBox), "activate", TEST_LOCATION); + END_TEST; +} - Vector3 size; - CheckBoxButton checkBoxButton = CheckBoxButton::New(); +int UtcDaliCheckBoxSetDisabledPropertyP(void) +{ + ToolkitTestApplication application; + + CheckBoxButton checkBox = CheckBoxButton::New(); + application.GetScene().Add(checkBox); + + checkBox.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); + checkBox.SetProperty(checkBox.GetPropertyIndex("disabledUnselectedBackgroundVisual"), "Image.jpg"); application.SendNotification(); application.Render(); - // Just check if check box button size changes when a bigger image is set. + Property::Map propertyMap; - checkBoxButton.SetBackgroundImage( image01 ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT) + .Add(Toolkit::TextVisual::Property::TEXT, "activate") + .Add(Toolkit::TextVisual::Property::POINT_SIZE, 15.0f); - application.SendNotification(); - application.Render(); + checkBox.SetProperty(checkBox.GetPropertyIndex("disabled"), true); + checkBox.SetProperty(checkBox.GetPropertyIndex("label"), propertyMap); + + DALI_TEST_EQUALS(checkBox.GetProperty(checkBox.GetPropertyIndex("disabled")), true, TEST_LOCATION); + DALI_TEST_EQUALS(GetButtonText(checkBox), "activate", TEST_LOCATION); + + END_TEST; +} - size = checkBoxButton.GetBackgroundImage().GetCurrentSize(); +int UtcDaliCheckBoxSettingDisabled(void) +{ + ToolkitTestApplication application; - DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION ); + CheckBoxButton checkBox = CheckBoxButton::New(); - checkBoxButton.SetBackgroundImage( imageActor01 ); + checkBox.SetProperty(checkBox.GetPropertyIndex("disabled"), true); + DALI_TEST_CHECK(checkBox.GetProperty(checkBox.GetPropertyIndex("disabled"))); - application.SendNotification(); - application.Render(); + checkBox.SetProperty(checkBox.GetPropertyIndex("disabled"), false); - size = checkBoxButton.GetBackgroundImage().GetCurrentSize(); + DALI_TEST_CHECK(!checkBox.GetProperty(checkBox.GetPropertyIndex("disabled"))); - DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION ); + END_TEST; +} - checkBoxButton.SetCheckedImage( image02 ); +int UtcDaliCheckBoxSetLabelPadding(void) +{ + tet_infoline("UtcDaliCheckBoxSetLabelPadding\n"); + + ToolkitTestApplication application; + + CheckBoxButton checkBox = CheckBoxButton::New(); + + Property::Map propertyMap; + + propertyMap.Add(Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT) + .Add(Toolkit::TextVisual::Property::TEXT, "activate") + .Add(Toolkit::TextVisual::Property::POINT_SIZE, 15.0f); + + checkBox.SetProperty(Toolkit::Button::Property::LABEL, propertyMap); application.SendNotification(); application.Render(); - size = checkBoxButton.GetCheckedImage().GetCurrentSize(); - - DALI_TEST_EQUALS( size.width, 30.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 30.f, TEST_LOCATION ); + Vector3 orginalSize = checkBox.GetNaturalSize(); - checkBoxButton.SetCheckedImage( imageActor02 ); + checkBox.SetProperty(Toolkit::DevelButton::Property::LABEL_PADDING, Vector4(10.0f, 10.0f, 10.0f, 10.0f)); application.SendNotification(); application.Render(); - size = checkBoxButton.GetCheckedImage().GetCurrentSize(); + Vector3 paddingAddedSize = checkBox.GetNaturalSize(); + + DALI_TEST_EQUALS(checkBox.GetProperty(Toolkit::DevelButton::Property::LABEL_PADDING), Vector4(10.0f, 10.0f, 10.0f, 10.0f), Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + tet_infoline("Comparing original size of button with just text and button size with text and padding\n"); + + DALI_TEST_EQUALS(orginalSize.width + 10.0f + 10.0f, paddingAddedSize.width, Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + DALI_TEST_EQUALS(orginalSize.height + 10.0f + 10.0f, paddingAddedSize.height, Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliCheckBoxSetForegroundPadding(void) +{ + tet_infoline("UtcDaliCheckBoxSetForegroundPadding\n"); + + ToolkitTestApplication application; + + CheckBoxButton checkBox = CheckBoxButton::New(); + + Property::Map propertyMap; - DALI_TEST_EQUALS( size.width, 40.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 40.f, TEST_LOCATION ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT) + .Add(Toolkit::TextVisual::Property::TEXT, "activate") + .Add(Toolkit::TextVisual::Property::POINT_SIZE, 15.0f); - checkBoxButton.SetDisabledBackgroundImage( image03 ); + checkBox.SetProperty(Toolkit::Button::Property::LABEL, propertyMap); + checkBox.SetProperty(Toolkit::DevelButton::Property::LABEL_PADDING, Vector4(5.0f, 5.0f, 5.0f, 5.0f)); application.SendNotification(); application.Render(); - size = checkBoxButton.GetDisabledBackgroundImage().GetCurrentSize(); + tet_printf("Button RelayoutSize with text(%f,%f)\n", checkBox.GetNaturalSize().width, checkBox.GetNaturalSize().height); - DALI_TEST_EQUALS( size.width, 50.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 50.f, TEST_LOCATION ); + TestPlatformAbstraction& platform = application.GetPlatform(); + platform.SetClosestImageSize(TEST_IMAGE_SIZE); - checkBoxButton.SetDisabledBackgroundImage( imageActor03 ); + checkBox.SetProperty(Toolkit::Button::Property::UNSELECTED_VISUAL, TEST_IMAGE_ONE); + checkBox.SetProperty(Toolkit::Button::Property::SELECTED_VISUAL, TEST_IMAGE_ONE); application.SendNotification(); application.Render(); - size = checkBoxButton.GetDisabledBackgroundImage().GetCurrentSize(); + Vector3 preVisualPaddingSize = checkBox.GetNaturalSize(); - DALI_TEST_EQUALS( size.width, 60.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 60.f, TEST_LOCATION ); + tet_printf("Button RelayoutSize with text and icon (%f,%f)\n", checkBox.GetNaturalSize().width, checkBox.GetNaturalSize().height); - checkBoxButton.SetDisabledCheckedImage( image04 ); + checkBox.SetProperty(Toolkit::DevelButton::Property::VISUAL_PADDING, Vector4(25.0f, 25.0f, 25.0f, 25.0f)); application.SendNotification(); application.Render(); - size = checkBoxButton.GetDisabledCheckedImage().GetCurrentSize(); + Vector3 paddingAddedSize = checkBox.GetNaturalSize(); + + tet_printf("Button RelayoutSize with text, icon and padding (%f,%f)\n", checkBox.GetNaturalSize().width, checkBox.GetNaturalSize().height); + + DALI_TEST_EQUALS(checkBox.GetProperty(Toolkit::DevelButton::Property::VISUAL_PADDING), Vector4(25.0f, 25.0f, 25.0f, 25.0f), Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + tet_infoline("Comparing original size of button before adding padding to visual foreground\n"); + + DALI_TEST_GREATER(paddingAddedSize.width, preVisualPaddingSize.width, TEST_LOCATION); + + tet_infoline("Text and Visual are side by side, visual height and padding must be greater than text height and padding for this test\n"); + + DALI_TEST_GREATER(paddingAddedSize.height, preVisualPaddingSize.height, TEST_LOCATION); - DALI_TEST_EQUALS( size.width, 70.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 70.f, TEST_LOCATION ); + END_TEST; +} + +// Deprecated API Tests - checkBoxButton.SetDisabledCheckedImage( imageActor04 ); +int UtcDaliCheckBoxButtonSetGetSelected(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliCheckBoxButtonSetGetSelected"); + + CheckBoxButton checkBoxButton = CheckBoxButton::New(); + checkBoxButton.StateChangedSignal().Connect(&CheckBoxButtonClicked); + + // global var used to check if CheckBoxButtonClicked is called; + gCheckBoxButtonState = false; + + checkBoxButton.SetProperty(Button::Property::SELECTED, true); + + DALI_TEST_EQUALS(checkBoxButton.GetProperty(Button::Property::SELECTED).Get(), true, TEST_LOCATION); + DALI_TEST_CHECK(gCheckBoxButtonState); + + checkBoxButton.SetProperty(Button::Property::SELECTED, false); + + DALI_TEST_EQUALS(checkBoxButton.GetProperty(Button::Property::SELECTED).Get(), false, TEST_LOCATION); + DALI_TEST_CHECK(!gCheckBoxButtonState); + + checkBoxButton.SetProperty(Button::Property::SELECTED, true); + + DALI_TEST_EQUALS(checkBoxButton.GetProperty(Button::Property::SELECTED).Get(), true, TEST_LOCATION); + DALI_TEST_CHECK(gCheckBoxButtonState); + END_TEST; +} + +int UtcDaliCheckBoxSetLabelDisabledP(void) +{ + ToolkitTestApplication application; + + CheckBoxButton checkBox = CheckBoxButton::New(); + application.GetScene().Add(checkBox); + + checkBox.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); + checkBox.SetProperty(Button::Property::DISABLED_UNSELECTED_VISUAL, "Image.jpg"); application.SendNotification(); application.Render(); - size = checkBoxButton.GetDisabledCheckedImage().GetCurrentSize(); + Property::Map propertyMap; + + propertyMap.Add(Toolkit::Visual::Property::TYPE, Toolkit::Visual::TEXT) + .Add(Toolkit::TextVisual::Property::TEXT, "activate") + .Add(Toolkit::TextVisual::Property::POINT_SIZE, 15.0f); + + checkBox.SetProperty(checkBox.GetPropertyIndex("disabled"), true); + checkBox.SetProperty(checkBox.GetPropertyIndex("label"), propertyMap); + + DALI_TEST_CHECK(checkBox.GetProperty(checkBox.GetPropertyIndex("disabled"))); + DALI_TEST_EQUALS(GetButtonText(checkBox), "activate", TEST_LOCATION); - DALI_TEST_EQUALS( size.width, 80.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 80.f, TEST_LOCATION ); END_TEST; }