+ application.SendNotification();
+ application.Render();
+
+ const uint32_t expectedNumberOfUnderlineRuns = 2u;
+
+ Toolkit::Internal::TextEditor& textEditorImpl = GetImpl(textEditor);
+ const Text::Length numberOfUnderlineRuns = textEditorImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns();
+
+ DALI_TEST_EQUALS(numberOfUnderlineRuns, expectedNumberOfUnderlineRuns, TEST_LOCATION);
+
+ Vector<UnderlinedGlyphRun> underlineRuns;
+ underlineRuns.Resize(numberOfUnderlineRuns);
+ textEditorImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
+
+ struct DataOfCase
+ {
+ std::string title;
+ GlyphIndex glyphIndex;
+ Length numberOfGlyphs;
+ UnderlineStyleProperties properties;
+ };
+ DataOfCase data[] =
+ {
+ //Outter
+ {"<u height='5.0f' color='green' >AB<u color='blue' >XYZ</u>CDE</u>",
+ 5u,
+ 8u,
+ {
+ Text::Underline::SOLID,
+ Color::GREEN,
+ 5u,
+ 1u,
+ 2u,
+ false,
+ true,
+ true,
+ false,
+ false,
+ }},
+
+ //Inner
+ {"<u color='blue' >XYZ</u>",
+ 7u,
+ 3u,
+ {
+ Text::Underline::SOLID,
+ Color::BLUE,
+ 5u,
+ 1u,
+ 2u,
+ false,
+ true,
+ true,
+ false,
+ false,
+ }},
+
+ };
+
+ for(uint32_t i = 0; i < expectedNumberOfUnderlineRuns; i++)
+ {
+ tet_infoline(data[i].title.c_str());
+ DALI_TEST_EQUALS(underlineRuns[i].glyphRun.glyphIndex, data[i].glyphIndex, TEST_LOCATION);
+ DALI_TEST_EQUALS(underlineRuns[i].glyphRun.numberOfGlyphs, data[i].numberOfGlyphs, TEST_LOCATION);
+ DALI_TEST_CHECK(data[i].properties == underlineRuns[i].properties);