X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Text-TextSpannable.cpp;h=6af7bb09373cb5a80f55e72552264ef4ba7b1043;hb=c9f39669fbf768680ef3665b5048214077ff7c23;hp=1143326f150926ef88bb42cfb5bcf1f8a48acb83;hpb=9c0cbda5b2ec3a3355f006177fb839ac83823a1f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-TextSpannable.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-TextSpannable.cpp index 1143326..6af7bb0 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-TextSpannable.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-TextSpannable.cpp @@ -37,6 +37,10 @@ #include #include #include +#include +#include +#include +#include using namespace Dali; using namespace Toolkit; @@ -90,6 +94,60 @@ Text::SpannableString CreateSpannableStringForUnderlineSpan() return spannableString; } +Text::SpannableString CreateSpannableStringForCharacterSpacing() +{ + Text::SpannableString spannableString = Text::SpannableString::New("Hello World"); + DALI_TEST_CHECK(spannableString); + + auto isCharacterSpacingSpan = spannableString.AttachSpan( + Text::CharacterSpacingSpan::New(5.2f), + Text::Range::New(5u, 7u)); + DALI_TEST_CHECK(isCharacterSpacingSpan); + + return spannableString; +} + +Text::SpannableString CreateSpannableStringForBoldSpan() +{ + Text::SpannableString spannableString = Text::SpannableString::New("Hello"); + DALI_TEST_CHECK(spannableString); + + auto boldspan = Dali::Toolkit::Text::BoldSpan::New(); + auto isBoldSpan = spannableString.AttachSpan(boldspan,Dali::Toolkit::Text::Range::New(0u, 3u)); + DALI_TEST_CHECK(isBoldSpan); + + return spannableString; + +} + +Text::SpannableString CreateSpannableStringForItalicSpan() +{ + Text::SpannableString spannableString = Text::SpannableString::New("Hello"); + DALI_TEST_CHECK(spannableString); + + auto isAddedItalic = spannableString.AttachSpan( + Text::ItalicSpan::New(), + Text::Range::New(0u, 3u)); + DALI_TEST_CHECK(isAddedItalic); + + return spannableString; +} + +Text::SpannableString CreateSpannableStringForBackgroundColorSpan() +{ + + Text::SpannableString spannableString = Text::SpannableString::New("Hello مرحبا"); + + DALI_TEST_CHECK(spannableString); + + auto isAddedGreen = spannableString.AttachSpan( + Text::BackgroundColorSpan::New(Color::GREEN), + Text::Range::New(5u, 7u)); + DALI_TEST_CHECK(isAddedGreen); + + return spannableString; +} + void CheckColorIndices(const Text::ColorIndex* const colorIndicesBuffer, uint32_t numberOfIndices, std::vector indicesToCheck, @@ -362,4 +420,106 @@ int UtcDaliToolkitTextLabelSetSpannedText_UnderlineSpan(void) DALI_TEST_CHECK(underlineRuns[0].properties == expectedProperties); END_TEST; -} \ No newline at end of file +} + +int UtcDaliToolkitTextLabelSetSpannedText_CharacterSpacingSpan(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliToolkitTextLabelSetSpannedText_CharacterSpacingSpan"); + + TextLabel textLabel = TextLabel::New(); + DALI_TEST_CHECK(textLabel); + application.GetScene().Add(textLabel); + + Text::SpannableString spannableString = CreateSpannableStringForCharacterSpacing(); + Text::SetSpannedText(textLabel, spannableString); + + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextLabel& labelImpl = GetImpl(textLabel); + const Vector characterSpacing = labelImpl.GetTextController()->GetTextModel()->GetCharacterSpacingGlyphRuns(); + DALI_TEST_EQUALS(1, characterSpacing.Count(), TEST_LOCATION); + END_TEST; +} + +int UtcDaliToolkitTextLabelSetSpannedText_BoldSpan(void) +{ + ToolkitTestApplication application; + + tet_infoline("UtcDaliToolkitTextLabelSetSpannedText_BoldSpan"); + + TextLabel textLabel = TextLabel::New(); + + DALI_TEST_CHECK(textLabel); + + application.GetScene().Add(textLabel); + + Text::SpannableString spannableString = CreateSpannableStringForBoldSpan(); + Text::SetSpannedText(textLabel, spannableString); + + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextLabel& labelImpl = GetImpl(textLabel); + + const Vector& validFonts = labelImpl.GetTextController()->GetTextModel()->GetFontRuns(); + + DALI_TEST_EQUALS(validFonts.Count(), 2, TEST_LOCATION); + DALI_TEST_EQUALS(validFonts[0].characterRun.characterIndex,0, TEST_LOCATION); + DALI_TEST_EQUALS(validFonts[0].characterRun.GetEndCharacterIndex(),3, TEST_LOCATION); + DALI_TEST_EQUALS(validFonts[0].isBoldRequired, true, TEST_LOCATION); + END_TEST; +} + +int UtcDaliToolkitTextLabelSetSpannedText_ItalicSpan(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliToolkitTextLabelSetSpannedText_ItalicSpan"); + + TextLabel textLabel = TextLabel::New(); + DALI_TEST_CHECK(textLabel); + + application.GetScene().Add(textLabel); + + Text::SpannableString spannableString = CreateSpannableStringForItalicSpan(); + + Text::SetSpannedText(textLabel, spannableString); + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextLabel& labelImpl = GetImpl(textLabel); + const Vector& validFontsItalic = labelImpl.GetTextController()->GetTextModel()->GetFontRuns(); + + DALI_TEST_EQUALS(validFontsItalic.Count(), 2, TEST_LOCATION); + DALI_TEST_EQUALS(validFontsItalic[0].characterRun.characterIndex, 0, TEST_LOCATION); + DALI_TEST_EQUALS(validFontsItalic[0].characterRun.GetEndCharacterIndex(), 3, TEST_LOCATION); + DALI_TEST_EQUALS(validFontsItalic[0].isItalicRequired, true, TEST_LOCATION); + END_TEST; +} + +int UtcDaliToolkitTextLabelSetSpannedText_BackgroundColorSpan(void) +{ + + ToolkitTestApplication application; + tet_infoline("UtcDaliToolkitTextLabelSetSpannedText_BackgroundColorSpan"); + + TextLabel textLabel = TextLabel::New(); + DALI_TEST_CHECK(textLabel); + + application.GetScene().Add(textLabel); + + Text::SpannableString spannableString = CreateSpannableStringForBackgroundColorSpan(); + Text::SetSpannedText(textLabel, spannableString); + + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextLabel& labelImpl = GetImpl(textLabel); + const Text::ColorIndex* const backgroundColorIndicesBuffer = labelImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices(); + + CheckColorIndices(backgroundColorIndicesBuffer, 4u, {0u, 5u, 7u, 10u}, {0u, 1u, 1u, 0u}); + + END_TEST; +} +