X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-TextLabel-internal.cpp;h=5af84d4de5bbd7293ca3fdbd4ffd929ccc980d91;hb=aea5add7a82f4bd507d31526074238f2b641fcd8;hp=b72dcb42415d01ce9e7fec1c056e88dae223ae88;hpb=5247947358fb8bd9a1b27a6f0f347d6836b6e4f0;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp old mode 100755 new mode 100644 index b72dcb4..5af84d4 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 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,17 +15,17 @@ * */ -#include #include +#include #include #include #include -#include -#include #include #include +#include +#include using namespace Dali; using namespace Toolkit; @@ -38,36 +38,35 @@ int UtcDaliTextLabelMarkupUnderline(void) TextLabel textLabel = TextLabel::New(); - application.GetScene().Add( textLabel ); + application.GetScene().Add(textLabel); - textLabel.SetProperty( TextLabel::Property::TEXT, "ABCEFGH" ); - textLabel.SetProperty( TextLabel ::Property::ENABLE_MARKUP, true ); + textLabel.SetProperty(TextLabel::Property::TEXT, "ABCEFGH"); + textLabel.SetProperty(TextLabel ::Property::ENABLE_MARKUP, true); application.SendNotification(); application.Render(); uint32_t expectedNumberOfUnderlinedGlyphs = 5u; - Toolkit::Internal::TextLabel& textLabelImpl = GetImpl( textLabel ); - const Text::Length numberOfUnderlineRuns = textLabelImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns(); + Toolkit::Internal::TextLabel& textLabelImpl = GetImpl(textLabel); + const Text::Length numberOfUnderlineRuns = textLabelImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns(); - DALI_TEST_EQUALS( numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION ); + DALI_TEST_EQUALS(numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION); Vector underlineRuns; underlineRuns.Resize(numberOfUnderlineRuns); textLabelImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns); //ABC are underlined - DALI_TEST_EQUALS( underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION); - DALI_TEST_EQUALS( underlineRuns[1u].glyphIndex, 1u, TEST_LOCATION); - DALI_TEST_EQUALS( underlineRuns[2u].glyphIndex, 2u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[1u].glyphIndex, 1u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[2u].glyphIndex, 2u, TEST_LOCATION); //GH are underlined - DALI_TEST_EQUALS( underlineRuns[3u].glyphIndex, 5u, TEST_LOCATION); - DALI_TEST_EQUALS( underlineRuns[4u].glyphIndex, 6u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[3u].glyphIndex, 5u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[4u].glyphIndex, 6u, TEST_LOCATION); END_TEST; - } int UtcDaliTextLabelBackgroundTag(void) @@ -76,27 +75,27 @@ int UtcDaliTextLabelBackgroundTag(void) tet_infoline("UtcDaliTextLabelBackgroundTag\n"); TextLabel label = TextLabel::New(); - DALI_TEST_CHECK( label ); + DALI_TEST_CHECK(label); - label.SetProperty( TextLabel ::Property::ENABLE_MARKUP, true ); - label.SetProperty( TextLabel::Property::TEXT, "He World" ); - application.GetScene().Add( label ); + label.SetProperty(TextLabel ::Property::ENABLE_MARKUP, true); + label.SetProperty(TextLabel::Property::TEXT, "He World"); + application.GetScene().Add(label); application.SendNotification(); application.Render(); - Toolkit::Internal::TextLabel& labelImpl = GetImpl( label ); - const ColorIndex* const backgroundColorIndicesBuffer = labelImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices(); + Toolkit::Internal::TextLabel& labelImpl = GetImpl(label); + const ColorIndex* const backgroundColorIndicesBuffer = labelImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices(); - DALI_TEST_CHECK( backgroundColorIndicesBuffer ); + DALI_TEST_CHECK(backgroundColorIndicesBuffer); //default color - DALI_TEST_EQUALS( backgroundColorIndicesBuffer[0], 0u, TEST_LOCATION); + DALI_TEST_EQUALS(backgroundColorIndicesBuffer[0], 0u, TEST_LOCATION); //red color - DALI_TEST_EQUALS( backgroundColorIndicesBuffer[1], 1u, TEST_LOCATION); + DALI_TEST_EQUALS(backgroundColorIndicesBuffer[1], 1u, TEST_LOCATION); //yellow color - DALI_TEST_EQUALS( backgroundColorIndicesBuffer[7], 2u, TEST_LOCATION); + DALI_TEST_EQUALS(backgroundColorIndicesBuffer[7], 2u, TEST_LOCATION); END_TEST; } @@ -107,34 +106,33 @@ int UtcDaliToolkitTextlabelEllipsisInternalAPIs(void) tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs "); TextLabel textLabel = TextLabel::New(); - Toolkit::Internal::TextLabel& textLabelImpl = GetImpl( textLabel ); - const ModelInterface* const textModel = textLabelImpl.GetTextController()->GetTextModel(); - + Toolkit::Internal::TextLabel& textLabelImpl = GetImpl(textLabel); + const ModelInterface* const textModel = textLabelImpl.GetTextController()->GetTextModel(); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - ELLIPSIS Disabled"); textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS, false); - DALI_TEST_EQUALS( textLabel.GetProperty< bool >( DevelTextLabel::Property::ELLIPSIS ), false, TEST_LOCATION ); + DALI_TEST_EQUALS(textLabel.GetProperty(DevelTextLabel::Property::ELLIPSIS), false, TEST_LOCATION); DALI_TEST_CHECK(!(textModel->IsTextElideEnabled())); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - ELLIPSIS Enabled"); textLabel.SetProperty(DevelTextLabel::Property::ELLIPSIS, true); - DALI_TEST_EQUALS( textLabel.GetProperty< bool >( DevelTextLabel::Property::ELLIPSIS ), true, TEST_LOCATION ); + DALI_TEST_EQUALS(textLabel.GetProperty(DevelTextLabel::Property::ELLIPSIS), true, TEST_LOCATION); DALI_TEST_CHECK(textModel->IsTextElideEnabled()); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetStartIndexOfElidedGlyphs Default"); - DALI_TEST_EQUALS( textModel->GetStartIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(textModel->GetStartIndexOfElidedGlyphs(), 0u, TEST_LOCATION); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetEndIndexOfElidedGlyphs Default"); - DALI_TEST_EQUALS( textModel->GetEndIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(textModel->GetEndIndexOfElidedGlyphs(), 0u, TEST_LOCATION); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetFirstMiddleIndexOfElidedGlyphs Default"); - DALI_TEST_EQUALS( textModel->GetFirstMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(textModel->GetFirstMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetSecondMiddleIndexOfElidedGlyphs Default"); - DALI_TEST_EQUALS( textModel->GetSecondMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(textModel->GetSecondMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION); // Tests the rendering controller has been created. - TypesetterPtr typesetter = Typesetter::New( textModel ); + TypesetterPtr typesetter = Typesetter::New(textModel); DALI_TEST_CHECK(typesetter); // Tests the view model has been created. @@ -144,16 +142,16 @@ int UtcDaliToolkitTextlabelEllipsisInternalAPIs(void) DALI_TEST_CHECK(model->IsTextElideEnabled()); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetStartIndexOfElidedGlyphs ViewModel"); - DALI_TEST_EQUALS( model->GetStartIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(model->GetStartIndexOfElidedGlyphs(), 0u, TEST_LOCATION); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetEndIndexOfElidedGlyphs ViewModel"); - DALI_TEST_EQUALS( model->GetEndIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(model->GetEndIndexOfElidedGlyphs(), 0u, TEST_LOCATION); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetFirstMiddleIndexOfElidedGlyphs ViewModel"); - DALI_TEST_EQUALS( model->GetFirstMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(model->GetFirstMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION); tet_infoline(" UtcDaliToolkitTextlabelEllipsisInternalAPIs - GetSecondMiddleIndexOfElidedGlyphs ViewModel"); - DALI_TEST_EQUALS( model->GetSecondMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION ); + DALI_TEST_EQUALS(model->GetSecondMiddleIndexOfElidedGlyphs(), 0u, TEST_LOCATION); END_TEST; } @@ -163,17 +161,17 @@ int UtcDaliTextLabelTextWithSpan(void) tet_infoline("UtcDaliTextLabelTextWithSpan\n"); TextLabel label = TextLabel::New(); - DALI_TEST_CHECK( label ); + DALI_TEST_CHECK(label); - label.SetProperty( TextLabel ::Property::ENABLE_MARKUP, true ); - label.SetProperty( TextLabel::Property::TEXT, "Hello Span" ); - application.GetScene().Add( label ); + label.SetProperty(TextLabel ::Property::ENABLE_MARKUP, true); + label.SetProperty(TextLabel::Property::TEXT, "Hello Span"); + application.GetScene().Add(label); application.SendNotification(); application.Render(); Vector3 originalSize = label.GetNaturalSize(); - label.SetProperty( TextLabel::Property::TEXT, "Hello Span" ); + label.SetProperty(TextLabel::Property::TEXT, "Hello Span"); application.SendNotification(); application.Render(); @@ -182,41 +180,79 @@ int UtcDaliTextLabelTextWithSpan(void) DALI_TEST_GREATER(spanSize.width, originalSize.width, TEST_LOCATION); - Toolkit::Internal::TextLabel& labelImpl = GetImpl( label ); - const ColorIndex* const colorIndicesBuffer1 = labelImpl.GetTextController()->GetTextModel()->GetColorIndices(); + Toolkit::Internal::TextLabel& labelImpl = GetImpl(label); + const ColorIndex* const colorIndicesBuffer1 = labelImpl.GetTextController()->GetTextModel()->GetColorIndices(); - DALI_TEST_CHECK( colorIndicesBuffer1 ); + DALI_TEST_CHECK(colorIndicesBuffer1); //default color - DALI_TEST_EQUALS( colorIndicesBuffer1[0], 0u, TEST_LOCATION); + DALI_TEST_EQUALS(colorIndicesBuffer1[0], 0u, TEST_LOCATION); //span color - DALI_TEST_EQUALS( colorIndicesBuffer1[1], 1u, TEST_LOCATION); + DALI_TEST_EQUALS(colorIndicesBuffer1[1], 1u, TEST_LOCATION); //default color - DALI_TEST_EQUALS( colorIndicesBuffer1[6], 0u, TEST_LOCATION); - + DALI_TEST_EQUALS(colorIndicesBuffer1[6], 0u, TEST_LOCATION); - label.SetProperty( TextLabel::Property::TEXT, "Hello Span" ); + label.SetProperty(TextLabel::Property::TEXT, "Hello Span"); application.SendNotification(); application.Render(); const ColorIndex* const colorIndicesBuffer2 = labelImpl.GetTextController()->GetTextModel()->GetColorIndices(); - DALI_TEST_CHECK( colorIndicesBuffer2 ); + DALI_TEST_CHECK(colorIndicesBuffer2); //default color - DALI_TEST_EQUALS( colorIndicesBuffer2[0], 0u, TEST_LOCATION); + DALI_TEST_EQUALS(colorIndicesBuffer2[0], 0u, TEST_LOCATION); //default color - DALI_TEST_EQUALS( colorIndicesBuffer2[1], 0u, TEST_LOCATION); + DALI_TEST_EQUALS(colorIndicesBuffer2[1], 0u, TEST_LOCATION); //span color - DALI_TEST_EQUALS( colorIndicesBuffer2[6], 1u, TEST_LOCATION); + DALI_TEST_EQUALS(colorIndicesBuffer2[6], 1u, TEST_LOCATION); //default color - DALI_TEST_EQUALS( colorIndicesBuffer2[7], 0u, TEST_LOCATION); + DALI_TEST_EQUALS(colorIndicesBuffer2[7], 0u, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliTextLabelMarkupStrikethrough(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextLabelMarkupStrikethrough "); + + TextLabel textLabel = TextLabel::New(); + + application.GetScene().Add(textLabel); + + textLabel.SetProperty(TextLabel::Property::TEXT, "ABCEFGH"); + textLabel.SetProperty(TextLabel ::Property::ENABLE_MARKUP, true); + + application.SendNotification(); + application.Render(); + + uint32_t expectedNumberOfStrikethroughGlyphs = 2u; + + Toolkit::Internal::TextLabel& textLabelImpl = GetImpl(textLabel); + const Text::Length numberOfStrikethroughRuns = textLabelImpl.GetTextController()->GetTextModel()->GetNumberOfStrikethroughRuns(); + + DALI_TEST_EQUALS(numberOfStrikethroughRuns, expectedNumberOfStrikethroughGlyphs, TEST_LOCATION); + + Vector strikethroughRuns; + strikethroughRuns.Resize(numberOfStrikethroughRuns); + textLabelImpl.GetTextController()->GetTextModel()->GetStrikethroughRuns(strikethroughRuns.Begin(), 0u, numberOfStrikethroughRuns); + + //ABC have strikethrough + DALI_TEST_EQUALS(strikethroughRuns[0u].glyphRun.glyphIndex, 0u, TEST_LOCATION); + DALI_TEST_EQUALS(strikethroughRuns[0u].glyphRun.numberOfGlyphs, 3u, TEST_LOCATION); + DALI_TEST_CHECK(!strikethroughRuns[0u].isColorSet); + + //GH have strikethrough + DALI_TEST_EQUALS(strikethroughRuns[1u].glyphRun.glyphIndex, 5u, TEST_LOCATION); + DALI_TEST_EQUALS(strikethroughRuns[1u].glyphRun.numberOfGlyphs, 2u, TEST_LOCATION); + DALI_TEST_CHECK(strikethroughRuns[1u].isColorSet); END_TEST; }