X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Text-TextSpannable.cpp;h=911e0d8a32bdd8fadfc1257172494cdd067b706f;hb=4c54a774d68f8491f82de8ff1da99aff3c773ad2;hp=1f710000ab6bf252629ddace57b86c7edf09f750;hpb=d4378fd369c6dc647f829baa717b5686ca454b0d;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 1f71000..911e0d8 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 @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -36,6 +37,8 @@ #include #include #include +#include +#include using namespace Dali; using namespace Toolkit; @@ -76,6 +79,45 @@ Text::SpannableString CreateSpannableStringForFontSpan() return spannableString; } +Text::SpannableString CreateSpannableStringForUnderlineSpan() +{ + Text::SpannableString spannableString = Text::SpannableString::New("Hello World"); + DALI_TEST_CHECK(spannableString); + + auto isAddedUnderlineSpan = spannableString.AttachSpan( + Text::UnderlineSpan::NewDashed(Color::GREEN, 5.0f, 2.0f, 3.0f), + Text::Range::New(5u, 7u)); + DALI_TEST_CHECK(isAddedUnderlineSpan); + + 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; + +} + void CheckColorIndices(const Text::ColorIndex* const colorIndicesBuffer, uint32_t numberOfIndices, std::vector indicesToCheck, @@ -302,4 +344,101 @@ int UtcDaliTextModelIsSpannedTextPlaced(void) tet_result(TET_PASS); END_TEST; +} + +int UtcDaliToolkitTextLabelSetSpannedText_UnderlineSpan(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextLabelSetSpannedText_UnderlineSpan "); + + Dali::Toolkit::Text::UnderlineStyleProperties expectedProperties = { + Text::Underline::DASHED, + Color::GREEN, + 5u, + 2u, + 3u, + true, + true, + true, + true, + true}; + + TextLabel textLabel = TextLabel::New(); + DALI_TEST_CHECK(textLabel); + application.GetScene().Add(textLabel); + + Text::SpannableString spannableString = CreateSpannableStringForUnderlineSpan(); + + Text::SetSpannedText(textLabel, spannableString); + + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextLabel& labelImpl = GetImpl(textLabel); + const Text::Length numberOfUnderlineRuns = labelImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns(); + + DALI_TEST_EQUALS(numberOfUnderlineRuns, 1u, TEST_LOCATION); + + Vector underlineRuns; + + underlineRuns.Resize(numberOfUnderlineRuns); + + labelImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns); + + DALI_TEST_EQUALS(underlineRuns[0].glyphRun.glyphIndex, 5u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[0].glyphRun.numberOfGlyphs, 3u, TEST_LOCATION); + DALI_TEST_CHECK(underlineRuns[0].properties == expectedProperties); + + END_TEST; +} + +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; } \ No newline at end of file