X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-TextLabel.cpp;h=4fa21f8e5b2f357180fef94c67571f81670b4159;hb=HEAD;hp=1aecd89f92fb84afb179f4990f635e461cdf9f72;hpb=ee3cc0da8dbf399532ae1f36b85cc1aeb02c940d;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp index 1aecd89..2784930 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 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. @@ -76,7 +76,17 @@ const char* const PROPERTY_NAME_AUTO_SCROLL_LOOP_DELAY = "autoScrollLoopDelay"; const char* const PROPERTY_NAME_FONT_SIZE_SCALE = "fontSizeScale"; const char* const PROPERTY_NAME_ENABLE_FONT_SIZE_SCALE = "enableFontSizeScale"; -const char* const PROPERTY_NAME_ELLIPSIS_POSITION = "ellipsisPosition"; +const char* const PROPERTY_NAME_ELLIPSIS_POSITION = "ellipsisPosition"; +const char* const PROPERTY_NAME_ANCHOR_COLOR = "anchorColor"; +const char* const PROPERTY_NAME_ANCHOR_CLICKED_COLOR = "anchorClickedColor"; + +const char* const PROPERTY_NAME_REMOVE_FRONT_INSET = "removeFrontInset"; +const char* const PROPERTY_NAME_REMOVE_BACK_INSET = "removeBackInset"; +const char* const PROPERTY_NAME_REMOVE_CUTOUT = "cutout"; + +const char* const PROPERTY_NAME_RENDER_MODE = "renderMode"; +const char* const PROPERTY_NAME_MANUAL_RENDERED = "manualRendered"; +const char* const PROPERTY_NAME_ASYNC_LINE_COUNT = "asyncLineCount"; const std::string DEFAULT_FONT_DIR("/resources/fonts"); const unsigned int EMOJI_FONT_SIZE = 3840u; // 60 * 64 @@ -356,6 +366,14 @@ int UtcDaliToolkitTextLabelGetPropertyP(void) DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ENABLE_FONT_SIZE_SCALE) == DevelTextLabel::Property::ENABLE_FONT_SIZE_SCALE); DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ELLIPSIS_POSITION) == DevelTextLabel::Property::ELLIPSIS_POSITION); DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_STRIKETHROUGH) == DevelTextLabel::Property::STRIKETHROUGH); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ANCHOR_COLOR) == DevelTextLabel::Property::ANCHOR_COLOR); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ANCHOR_CLICKED_COLOR) == DevelTextLabel::Property::ANCHOR_CLICKED_COLOR); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_REMOVE_FRONT_INSET) == DevelTextLabel::Property::REMOVE_FRONT_INSET); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_REMOVE_BACK_INSET) == DevelTextLabel::Property::REMOVE_BACK_INSET); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_REMOVE_CUTOUT) == DevelTextLabel::Property::CUTOUT); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_RENDER_MODE) == DevelTextLabel::Property::RENDER_MODE); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_MANUAL_RENDERED) == DevelTextLabel::Property::MANUAL_RENDERED); + DALI_TEST_CHECK(label.GetPropertyIndex(PROPERTY_NAME_ASYNC_LINE_COUNT) == DevelTextLabel::Property::ASYNC_LINE_COUNT); END_TEST; } @@ -464,6 +482,13 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::BLUE); DALI_TEST_EQUALS(label.GetProperty(TextLabel::Property::TEXT_COLOR), Color::BLUE, TEST_LOCATION); + // Check that anchor color can be properly set + label.SetProperty(DevelTextLabel::Property::ANCHOR_COLOR, Color::BLUE); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::ANCHOR_COLOR), Color::BLUE, TEST_LOCATION); + + label.SetProperty(DevelTextLabel::Property::ANCHOR_CLICKED_COLOR, Color::RED); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::ANCHOR_CLICKED_COLOR), Color::RED, TEST_LOCATION); + Property::Map strikethroughMapSet; Property::Map strikethroughMapGet; @@ -936,6 +961,8 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) outlineMapSet["color"] = Color::RED; outlineMapSet["width"] = 2.0f; + outlineMapSet["offset"] = Vector2(2.0f, 2.0f); + outlineMapSet["blurRadius"] = 3.0f; label.SetProperty(TextLabel::Property::OUTLINE, outlineMapSet); outlineMapGet = label.GetProperty(TextLabel::Property::OUTLINE); @@ -945,11 +972,14 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) outlineMapSet.Clear(); outlineMapSet[Toolkit::DevelText::Outline::Property::COLOR] = Color::BLUE; outlineMapSet[Toolkit::DevelText::Outline::Property::WIDTH] = 3.0f; + outlineMapSet[Toolkit::DevelText::Outline::Property::OFFSET] = Vector2(3.0f, 3.0f); + outlineMapSet[Toolkit::DevelText::Outline::Property::BLUR_RADIUS] = 4.0f; + label.SetProperty(TextLabel::Property::OUTLINE, outlineMapSet); outlineMapGet = label.GetProperty(TextLabel::Property::OUTLINE); DALI_TEST_EQUALS(outlineMapGet.Count(), outlineMapSet.Count(), TEST_LOCATION); - std::vector outlineIndicesConversionTable = {"color", "width"}; + std::vector outlineIndicesConversionTable = {"color", "width", "offset", "blurRadius"}; DALI_TEST_EQUALS(DaliTestCheckMaps(outlineMapGet, outlineMapSet, outlineIndicesConversionTable), true, TEST_LOCATION); // Check the background property @@ -1008,6 +1038,43 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) application.SendNotification(); application.Render(); + // Check Remove Front/Back Inset Property + DALI_TEST_CHECK(!label.GetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET)); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + DALI_TEST_CHECK(label.GetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET)); + + DALI_TEST_CHECK(!label.GetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET)); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); + DALI_TEST_CHECK(label.GetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET)); + + application.SendNotification(); + application.Render(); + + // Check cutout Property + DALI_TEST_CHECK(!label.GetProperty(DevelTextLabel::Property::CUTOUT)); + label.SetProperty(DevelTextLabel::Property::CUTOUT, true); + DALI_TEST_CHECK(label.GetProperty(DevelTextLabel::Property::CUTOUT)); + + application.SendNotification(); + application.Render(); + + // Check render mode property + label.SetProperty(DevelTextLabel::Property::RENDER_MODE, DevelTextLabel::Render::SYNC); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::RENDER_MODE), static_cast(DevelTextLabel::Render::SYNC), TEST_LOCATION); + + label.SetProperty(DevelTextLabel::Property::RENDER_MODE, DevelTextLabel::Render::ASYNC_AUTO); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::RENDER_MODE), static_cast(DevelTextLabel::Render::ASYNC_AUTO), TEST_LOCATION); + + label.SetProperty(DevelTextLabel::Property::RENDER_MODE, DevelTextLabel::Render::ASYNC_MANUAL); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::RENDER_MODE), static_cast(DevelTextLabel::Render::ASYNC_MANUAL), TEST_LOCATION); + + // Invalid index + label.SetProperty(DevelTextLabel::Property::RENDER_MODE, 3); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::RENDER_MODE), static_cast(DevelTextLabel::Render::SYNC), TEST_LOCATION); + + application.SendNotification(); + application.Render(); + END_TEST; } @@ -1665,6 +1732,8 @@ int UtcDaliToolkitTextlabelTextWrapMode(void) TextLabel label = TextLabel::New(); label.SetProperty(Actor::Property::SIZE, Vector2(300.0f, 300.f)); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); label.SetProperty(TextLabel::Property::TEXT, "Hello world Hello world"); label.SetProperty(TextLabel::Property::MULTI_LINE, true); @@ -1761,6 +1830,16 @@ int UtcDaliToolkitTextLabelColorComponents(void) DALI_TEST_EQUALS(drawTrace.FindMethod("DrawArrays"), false, TEST_LOCATION); // Rendering should be skipped + label.SetProperty(DevelTextLabel::Property::CUTOUT, true); + + drawTrace.Reset(); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS(drawTrace.FindMethod("DrawArrays"), true, TEST_LOCATION); // When cutout is enabled, should not be skipped + + label.SetProperty(DevelTextLabel::Property::CUTOUT, false); label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::RED); drawTrace.Reset(); @@ -1789,6 +1868,8 @@ int UtcDaliToolkitTextlabelTextStyle01(void) outlineMapSet["color"] = Color::BLUE; outlineMapSet["width"] = 2.0f; + outlineMapSet["offset"] = "2 2"; + outlineMapSet["blurRadius"] = "3"; label.SetProperty(TextLabel::Property::OUTLINE, outlineMapSet); application.SendNotification(); @@ -1988,6 +2069,8 @@ int UtcDaliToolkitTextlabelTextFit(void) TextLabel label = TextLabel::New(); Vector2 size(460.0f, 100.0f); label.SetProperty(Actor::Property::SIZE, size); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); label.SetProperty(TextLabel::Property::TEXT, "Hello world"); // connect to the text git changed signal. @@ -2013,7 +2096,7 @@ int UtcDaliToolkitTextlabelTextFit(void) application.SendNotification(); application.Render(); - const Vector3 EXPECTED_NATURAL_SIZE(450.0f, 96.0f, 0.0f); + const Vector3 EXPECTED_NATURAL_SIZE(448.0f, 96.0f, 0.0f); DALI_TEST_EQUALS(EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION); DALI_TEST_CHECK(gTextFitChangedCallBackCalled); @@ -2044,6 +2127,8 @@ int UtcDaliToolkitTextlabelTextFitStressTest(void) TextLabel label = TextLabel::New(); Vector2 size(460.0f, 100.0f); label.SetProperty(Actor::Property::SIZE, size); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); label.SetProperty(TextLabel::Property::TEXT, "Hello world"); // connect to the text git changed signal. @@ -2069,7 +2154,7 @@ int UtcDaliToolkitTextlabelTextFitStressTest(void) application.SendNotification(); application.Render(); - const Vector3 EXPECTED_NATURAL_SIZE(450.0f, 96.0f, 0.0f); + const Vector3 EXPECTED_NATURAL_SIZE(448.0f, 96.0f, 0.0f); DALI_TEST_EQUALS(EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION); DALI_TEST_CHECK(gTextFitChangedCallBackCalled); @@ -2078,6 +2163,158 @@ int UtcDaliToolkitTextlabelTextFitStressTest(void) END_TEST; } +int UtcDaliToolkitTextlabelFastTextFitStressTest(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelFastTextFitStressTest"); + TextLabel label = TextLabel::New(); + label.SetProperty(TextLabel::Property::TEXT, "Hello world"); + label.SetProperty(TextLabel::Property::POINT_SIZE, 120.f); + + // connect to the text git changed signal. + ConnectionTracker* testTracker = new ConnectionTracker(); + DevelTextLabel::TextFitChangedSignal(label).Connect(&TestTextFitChangedCallback); + bool textFitChangedSignal = false; + label.ConnectSignal(testTracker, "textFitChanged", CallbackFunctor(&textFitChangedSignal)); + gTextFitChangedCallBackCalled = false; + + application.GetScene().Add(label); + + // check text label width at range [100, 299] + for(int i=100; i<300; i++) + { + Vector2 size((float)i, 200.f); + label.SetProperty(Actor::Property::SIZE, size); + + // check point size with veryvery big range + Property::Map textFitMapSet; + textFitMapSet["enable"] = true; + textFitMapSet["minSize"] = 10.f; + textFitMapSet["maxSize"] = 10000.f; + textFitMapSet["stepSize"] = -1.0f; + textFitMapSet["fontSizeType"] = "pointSize"; + + label.SetProperty(Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMapSet); + + application.SendNotification(); + application.Render(); + } + + DALI_TEST_CHECK(gTextFitChangedCallBackCalled); + DALI_TEST_CHECK(textFitChangedSignal); + + END_TEST; +} + +int UtcDaliToolkitTextlabelTextFitMultiLine(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelTextFitMultiLine"); + TextLabel label = TextLabel::New(); + Vector2 size(500.0f, 100.0f); + label.SetProperty(Actor::Property::SIZE, size); + label.SetProperty(TextLabel::Property::TEXT, "Hello world\nHello world"); + label.SetProperty(TextLabel::Property::MULTI_LINE, true); + + // connect to the text git changed signal. + ConnectionTracker* testTracker = new ConnectionTracker(); + DevelTextLabel::TextFitChangedSignal(label).Connect(&TestTextFitChangedCallback); + bool textFitChangedSignal = false; + label.ConnectSignal(testTracker, "textFitChanged", CallbackFunctor(&textFitChangedSignal)); + gTextFitChangedCallBackCalled = false; + + Property::Map textFitMapSet; + textFitMapSet["enable"] = true; + textFitMapSet["minSize"] = 10.f; + textFitMapSet["maxSize"] = 100.f; + textFitMapSet["stepSize"] = -1.0f; + textFitMapSet["fontSizeType"] = "pointSize"; + + label.SetProperty(Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMapSet); + label.SetProperty(TextLabel::Property::POINT_SIZE, 120.f); + + application.GetScene().Add(label); + + application.SendNotification(); + application.Render(); + + float textFitFontSize = (label.GetProperty(Dali::Toolkit::DevelTextLabel::Property::TEXT_FIT).Get())["fontSize"].Get(); + DALI_TEST_EQUALS(textFitFontSize, 14.f, TEST_LOCATION); + + DALI_TEST_CHECK(gTextFitChangedCallBackCalled); + DALI_TEST_CHECK(textFitChangedSignal); + + END_TEST; +} + +int UtcDaliToolkitTextlabelTextFitArray(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelTextFitArray"); + TextLabel label = TextLabel::New(); + Vector2 size(300.0f, 80.0f); + label.SetProperty(Actor::Property::SIZE, size); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); + label.SetProperty(TextLabel::Property::TEXT, "A Quick Brown Fox Jumps Over The Lazy Dog"); + label.SetProperty(DevelTextLabel::Property::MIN_LINE_SIZE, 80.f); + label.SetProperty(TextLabel::Property::POINT_SIZE, 10.f); + application.GetScene().Add(label); + + // make sorted options. + std::vector fitOptions; + fitOptions.push_back(DevelTextLabel::FitOption(10, 12)); + fitOptions.push_back(DevelTextLabel::FitOption(8, 10)); + fitOptions.push_back(DevelTextLabel::FitOption(6, 8)); + fitOptions.push_back(DevelTextLabel::FitOption(4, 6)); + fitOptions.push_back(DevelTextLabel::FitOption(20, 22)); + fitOptions.push_back(DevelTextLabel::FitOption(22, 24)); + fitOptions.push_back(DevelTextLabel::FitOption(12, 14)); + + DevelTextLabel::SetTextFitArray(label, true, fitOptions); + + application.SendNotification(); + application.Render(); + + bool enable = Dali::Toolkit::DevelTextLabel::IsTextFitArrayEnabled(label); + DALI_TEST_EQUALS(true, enable, TEST_LOCATION); + + std::vector getFitOptions = Dali::Toolkit::DevelTextLabel::GetTextFitArray(label); + size_t numberOfFitOptions = getFitOptions.size(); + DALI_TEST_EQUALS(7u, numberOfFitOptions, TEST_LOCATION); + + const Vector3 EXPECTED_NATURAL_SIZE(276.0f, 16.0f, 0.0f); + DALI_TEST_EQUALS(EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION); + + std::vector emptyFitOptions; + DevelTextLabel::SetTextFitArray(label, false, emptyFitOptions); + + application.SendNotification(); + application.Render(); + + enable = Dali::Toolkit::DevelTextLabel::IsTextFitArrayEnabled(label); + DALI_TEST_EQUALS(false, enable, TEST_LOCATION); + + const Vector3 EXPECTED_NATURAL_SIZE_DISABLE(690.0f, 80.0f, 0.0f); + DALI_TEST_EQUALS(EXPECTED_NATURAL_SIZE_DISABLE, label.GetNaturalSize(), TEST_LOCATION); + + // make unsorted options. + std::vector unorderedFitOptions; + unorderedFitOptions.push_back(DevelTextLabel::FitOption(4, 6)); + unorderedFitOptions.push_back(DevelTextLabel::FitOption(6, 8)); + unorderedFitOptions.push_back(DevelTextLabel::FitOption(8, 10)); + unorderedFitOptions.push_back(DevelTextLabel::FitOption(10, 8)); + + DevelTextLabel::SetTextFitArray(label, true, unorderedFitOptions); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS(EXPECTED_NATURAL_SIZE, label.GetNaturalSize(), TEST_LOCATION); + + END_TEST; +} + int UtcDaliToolkitTextlabelMaxTextureSet(void) { ToolkitTestApplication application; @@ -2374,6 +2611,56 @@ int UtcDaliToolkitTextlabelFontSizeScale(void) END_TEST; } +int UtcDaliToolkitTextlabelAnchorColor(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelAnchorColor"); + TextLabel label = TextLabel::New(); + DALI_TEST_CHECK(label); + + application.GetScene().Add(label); + + // connect to the anchor clicked signal. + ConnectionTracker* testTracker = new ConnectionTracker(); + DevelTextLabel::AnchorClickedSignal(label).Connect(&TestAnchorClickedCallback); + bool anchorClickedSignal = false; + label.ConnectSignal(testTracker, "anchorClicked", CallbackFunctor(&anchorClickedSignal)); + + gAnchorClickedCallBackCalled = false; + label.SetProperty(TextLabel::Property::TEXT, "TIZEN"); + label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true); + label.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f)); + label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); + label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + + // Check that anchor color can be properly set + label.SetProperty(DevelTextLabel::Property::ANCHOR_COLOR, Color::BLUE); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::ANCHOR_COLOR), Color::BLUE, TEST_LOCATION); + + label.SetProperty(DevelTextLabel::Property::ANCHOR_CLICKED_COLOR, Color::RED); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::ANCHOR_CLICKED_COLOR), Color::RED, TEST_LOCATION); + + application.SendNotification(); + application.Render(); + + // Create a tap event to touch the text label. + TestGenerateTap(application, 5.0f, 25.0f, 100); + application.SendNotification(); + application.Render(); + + // Update clicked color + label.SetProperty(DevelTextLabel::Property::ANCHOR_CLICKED_COLOR, Color::BLUE); + DALI_TEST_EQUALS(label.GetProperty(DevelTextLabel::Property::ANCHOR_CLICKED_COLOR), Color::BLUE, TEST_LOCATION); + + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK(gAnchorClickedCallBackCalled); + DALI_TEST_CHECK(anchorClickedSignal); + + END_TEST; +} + // Positive test for the anchorClicked signal. int UtcDaliToolkitTextlabelAnchorClicked(void) { @@ -2419,7 +2706,7 @@ int UtcDaliToolkitTextlabelAnchorClicked(void) // sets anchor text label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true); - label.SetProperty(TextLabel::Property::TEXT, "TIZEN"); + label.SetProperty(TextLabel::Property::TEXT, "TIZEN"); label.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f)); label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); @@ -2491,6 +2778,8 @@ int UtcDaliTextLabelHyphenWrapMode(void) label.SetProperty(Actor::Property::SIZE, Vector2(150.0f, 300.f)); label.SetProperty(TextLabel::Property::POINT_SIZE, 12.f); label.SetProperty(TextLabel::Property::MULTI_LINE, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); application.GetScene().Add(label); application.SendNotification(); application.Render(); @@ -2586,8 +2875,9 @@ int utcDaliTextLabelGeometryRTL(void) label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true); label.SetProperty(TextLabel::Property::MULTI_LINE, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); label.SetProperty(TextLabel::Property::TEXT, "line1 \nline2\nline 3\nالاخيرالسطر"); - // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE); @@ -2608,16 +2898,16 @@ int utcDaliTextLabelGeometryRTL(void) Vector expectedSizes; Vector expectedPositions; - expectedPositions.PushBack(Vector2(24, 0)); - expectedSizes.PushBack(Vector2(33, 25)); + expectedPositions.PushBack(Vector2(25, 0)); + expectedSizes.PushBack(Vector2(34, 25)); expectedPositions.PushBack(Vector2(-1, 25)); - expectedSizes.PushBack(Vector2(52, 25)); + expectedSizes.PushBack(Vector2(53, 25)); expectedPositions.PushBack(Vector2(-1, 50)); - expectedSizes.PushBack(Vector2(59, 25)); + expectedSizes.PushBack(Vector2(60, 25)); - expectedPositions.PushBack(Vector2(73, 75)); + expectedPositions.PushBack(Vector2(75, 75)); expectedSizes.PushBack(Vector2(37, 25)); TestTextGeometryUtils::CheckGeometryResult(positionsList, sizeList, expectedPositions, expectedSizes); @@ -2663,7 +2953,7 @@ int utcDaliTextLabelGeometryGlyphMiddle(void) Vector expectedPositions; expectedPositions.PushBack(Vector2(6, 0)); - expectedSizes.PushBack(Vector2(124, 25)); + expectedSizes.PushBack(Vector2(125, 25)); TestTextGeometryUtils::CheckGeometryResult(positionsList, sizeList, expectedPositions, expectedSizes); @@ -2685,6 +2975,8 @@ int utcDaliTextLabelGeometryOneGlyph(void) label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_FRONT_INSET, true); + label.SetProperty(DevelTextLabel::Property::REMOVE_BACK_INSET, true); label.SetProperty(TextLabel::Property::TEXT, "H"); // Avoid a crash when core load gl resources. @@ -3113,4 +3405,42 @@ int utcDaliTextLabelGetTextBoundingRectangle(void) TestTextGeometryUtils::CheckRectGeometryResult(textBoundingRectangle, expectedTextBoundingRectangle); END_TEST; +} + +int utcDaliTextLabelRemoveFrontInset(void) +{ + ToolkitTestApplication application; + tet_infoline(" utcDaliTextLabelRemoveFrontInset"); + + TextLabel label = TextLabel::New(); + DALI_TEST_CHECK(label); + + application.GetScene().Add(label); + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK(!DevelTextLabel::IsRemoveFrontInset(label)); // default value is false. + DevelTextLabel::SetRemoveFrontInset(label, true); + DALI_TEST_CHECK(DevelTextLabel::IsRemoveFrontInset(label)); + + END_TEST; +} + +int utcDaliTextLabelRemoveBackInset(void) +{ + ToolkitTestApplication application; + tet_infoline(" utcDaliTextLabelRemoveBackInset"); + + TextLabel label = TextLabel::New(); + DALI_TEST_CHECK(label); + + application.GetScene().Add(label); + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK(!DevelTextLabel::IsRemoveBackInset(label)); // default value is false. + DevelTextLabel::SetRemoveBackInset(label, true); + DALI_TEST_CHECK(DevelTextLabel::IsRemoveBackInset(label)); + + END_TEST; } \ No newline at end of file