X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Text-Layout.cpp;h=5f0885357e1ebe4f542394a8014cd99b4af5736a;hp=36ab916efb2557f7d7157b16ba1146b57d3b7e68;hb=bf830dcf9aa1a53392edb19948d1b4d1dc410a63;hpb=a632f8445619b331bc1cf1ae95b14d84a024a281 diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp index 36ab916..5f08853 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp @@ -24,7 +24,7 @@ #include #include #include -#include +#include using namespace Dali; using namespace Toolkit; @@ -51,7 +51,7 @@ struct LayoutTextData float* positions; unsigned int numberOfLines; LineRun* lines; - LayoutEngine::Layout layout; + Layout::Engine::Type layout; unsigned int startIndex; unsigned int numberOfGlyphs; bool ellipsis:1; @@ -152,24 +152,24 @@ bool LayoutTextTest( const LayoutTextData& data ) glyphPositions.Begin() + data.startIndex + data.numberOfGlyphs ); // 3) Layout - LayoutEngine engine; + Layout::Engine engine; engine.SetMetrics( metrics ); - engine.SetTextEllipsisEnabled( data.ellipsis ); engine.SetLayout( data.layout ); const Length totalNumberOfGlyphs = visualModel->mGlyphs.Count(); - LayoutParameters layoutParameters( data.textArea, - logicalModel->mText.Begin(), - logicalModel->mLineBreakInfo.Begin(), - logicalModel->mWordBreakInfo.Begin(), - ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL, - visualModel->mGlyphs.Begin(), - visualModel->mGlyphsToCharacters.Begin(), - visualModel->mCharactersPerGlyph.Begin(), - visualModel->mCharactersToGlyph.Begin(), - visualModel->mGlyphsPerCharacter.Begin(), - totalNumberOfGlyphs ); + Layout::Parameters layoutParameters( data.textArea, + logicalModel->mText.Begin(), + logicalModel->mLineBreakInfo.Begin(), + logicalModel->mWordBreakInfo.Begin(), + ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL, + visualModel->mGlyphs.Begin(), + visualModel->mGlyphsToCharacters.Begin(), + visualModel->mCharactersPerGlyph.Begin(), + visualModel->mCharactersToGlyph.Begin(), + visualModel->mGlyphsPerCharacter.Begin(), + totalNumberOfGlyphs, + Layout::HORIZONTAL_ALIGN_BEGIN ); layoutParameters.isLastNewParagraph = isLastNewParagraph; @@ -184,7 +184,8 @@ bool LayoutTextTest( const LayoutTextData& data ) const bool updated = engine.LayoutText( layoutParameters, glyphPositions, lines, - layoutSize ); + layoutSize, + data.ellipsis ); // 4) Compare the results. @@ -369,20 +370,21 @@ bool ReLayoutRightToLeftLinesTest( const ReLayoutRightToLeftLinesData& data ) metrics ); // 2) Call the ReLayoutRightToLeftLines() method. - LayoutEngine engine; + Layout::Engine engine; engine.SetMetrics( metrics ); - LayoutParameters layoutParameters( data.textArea, - logicalModel->mText.Begin(), - logicalModel->mLineBreakInfo.Begin(), - logicalModel->mWordBreakInfo.Begin(), - ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL, - visualModel->mGlyphs.Begin(), - visualModel->mGlyphsToCharacters.Begin(), - visualModel->mCharactersPerGlyph.Begin(), - visualModel->mCharactersToGlyph.Begin(), - visualModel->mGlyphsPerCharacter.Begin(), - visualModel->mGlyphs.Count() ); + Layout::Parameters layoutParameters( data.textArea, + logicalModel->mText.Begin(), + logicalModel->mLineBreakInfo.Begin(), + logicalModel->mWordBreakInfo.Begin(), + ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL, + visualModel->mGlyphs.Begin(), + visualModel->mGlyphsToCharacters.Begin(), + visualModel->mCharactersPerGlyph.Begin(), + visualModel->mCharactersToGlyph.Begin(), + visualModel->mGlyphsPerCharacter.Begin(), + visualModel->mGlyphs.Count(), + Layout::HORIZONTAL_ALIGN_BEGIN ); layoutParameters.numberOfBidirectionalInfoRuns = logicalModel->mBidirectionalLineInfo.Count(); layoutParameters.lineBidirectionalInfoRunsBuffer = logicalModel->mBidirectionalLineInfo.Begin(); @@ -424,17 +426,17 @@ bool ReLayoutRightToLeftLinesTest( const ReLayoutRightToLeftLinesData& data ) struct AlignData { - std::string description; - std::string text; - Size textArea; - unsigned int numberOfFonts; - FontDescriptionRun* fontDescriptions; - LayoutEngine::HorizontalAlignment horizontalAlignment; - LayoutEngine::VerticalAlignment verticalAlignment; - unsigned int startIndex; - unsigned int numberOfCharacters; - unsigned int numberOfLines; - float* lineOffsets; + std::string description; + std::string text; + Size textArea; + unsigned int numberOfFonts; + FontDescriptionRun* fontDescriptions; + Layout::HorizontalAlignment horizontalAlignment; + Layout::VerticalAlignment verticalAlignment; + unsigned int startIndex; + unsigned int numberOfCharacters; + unsigned int numberOfLines; + float* lineOffsets; }; bool AlignTest( const AlignData& data ) @@ -477,16 +479,16 @@ bool AlignTest( const AlignData& data ) metrics ); // Call the Align method. - LayoutEngine engine; + Layout::Engine engine; engine.SetMetrics( metrics ); - engine.SetHorizontalAlignment( data.horizontalAlignment ); - engine.SetVerticalAlignment( data.verticalAlignment ); - + float alignmentOffset = 0.f; engine.Align( data.textArea, data.startIndex, data.numberOfCharacters, - visualModel->mLines ); + data.horizontalAlignment, + visualModel->mLines, + alignmentOffset ); // Compare results. if( data.numberOfLines != visualModel->mLines.Count() ) @@ -556,61 +558,12 @@ int UtcDaliTextLayoutSetGetLayout(void) ToolkitTestApplication application; tet_infoline(" UtcDaliTextLayoutSetGetLayout"); - LayoutEngine engine; - - DALI_TEST_CHECK( LayoutEngine::SINGLE_LINE_BOX == engine.GetLayout() ); - - engine.SetLayout( LayoutEngine::MULTI_LINE_BOX ); - DALI_TEST_CHECK( LayoutEngine::MULTI_LINE_BOX == engine.GetLayout() ); - - tet_result(TET_PASS); - END_TEST; -} - -int UtcDaliTextLayoutSetGetTextEllipsisEnabled(void) -{ - ToolkitTestApplication application; - tet_infoline(" UtcDaliTextLayoutSetGetTextEllipsisEnabled"); - - LayoutEngine engine; - - DALI_TEST_CHECK( !engine.GetTextEllipsisEnabled() ); - - engine.SetTextEllipsisEnabled( true ); - DALI_TEST_CHECK( engine.GetTextEllipsisEnabled() ); - - tet_result(TET_PASS); - END_TEST; -} - -int UtcDaliTextLayoutSetGetHorizontalAlignment(void) -{ - ToolkitTestApplication application; - tet_infoline(" "); + Layout::Engine engine; - LayoutEngine engine; - - DALI_TEST_CHECK( LayoutEngine::HORIZONTAL_ALIGN_BEGIN == engine.GetHorizontalAlignment() ); - - engine.SetHorizontalAlignment( LayoutEngine::HORIZONTAL_ALIGN_END ); - DALI_TEST_CHECK( LayoutEngine::HORIZONTAL_ALIGN_END == engine.GetHorizontalAlignment() ); - - tet_result(TET_PASS); - END_TEST; -} - -int UtcDaliTextLayoutSetGetVerticalAlignment(void) -{ - ToolkitTestApplication application; - tet_infoline(" UtcDaliTextLayoutSetGetVerticalAlignment"); - - LayoutEngine engine; - - DALI_TEST_CHECK( LayoutEngine::VERTICAL_ALIGN_TOP == engine.GetVerticalAlignment() ); - - engine.SetVerticalAlignment( LayoutEngine::VERTICAL_ALIGN_TOP ); - DALI_TEST_CHECK( LayoutEngine::VERTICAL_ALIGN_TOP == engine.GetVerticalAlignment() ); + DALI_TEST_CHECK( Layout::Engine::SINGLE_LINE_BOX == engine.GetLayout() ); + engine.SetLayout( Layout::Engine::MULTI_LINE_BOX ); + DALI_TEST_CHECK( Layout::Engine::MULTI_LINE_BOX == engine.GetLayout() ); tet_result(TET_PASS); END_TEST; @@ -621,7 +574,7 @@ int UtcDaliTextLayoutSetGetCursorWidth(void) ToolkitTestApplication application; tet_infoline(" "); - LayoutEngine engine; + Layout::Engine engine; DALI_TEST_EQUALS( 1, engine.GetCursorWidth(), TEST_LOCATION ); @@ -651,7 +604,7 @@ int UtcDaliTextLayoutNoText(void) NULL, 0u, NULL, - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 0u, false, @@ -705,7 +658,7 @@ int UtcDaliTextLayoutSmallTextArea01(void) NULL, 0u, NULL, - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 11u, false, @@ -775,7 +728,7 @@ int UtcDaliTextLayoutSmallTextArea02(void) positions, 1u, lines.Begin(), - LayoutEngine::SINGLE_LINE_BOX, + Layout::Engine::SINGLE_LINE_BOX, 0u, 11u, false, @@ -918,7 +871,7 @@ int UtcDaliTextLayoutMultilineText01(void) positions, 5u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 48u, false, @@ -1126,7 +1079,7 @@ int UtcDaliTextLayoutMultilineText02(void) positions, 6u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 55u, false, @@ -1227,7 +1180,7 @@ int UtcDaliTextLayoutMultilineText03(void) positions, 3u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 29u, false, @@ -1313,7 +1266,7 @@ int UtcDaliTextLayoutMultilineText04(void) positions, 2u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 13u, false, @@ -1427,7 +1380,7 @@ int UtcDaliTextLayoutMultilineText05(void) positions, 2u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 17u, false, @@ -1983,7 +1936,7 @@ int UtcDaliTextUpdateLayout01(void) positions, 19u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 64u, false, @@ -2539,7 +2492,7 @@ int UtcDaliTextUpdateLayout02(void) positions, 19u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 64u, 64u, false, @@ -3095,7 +3048,7 @@ int UtcDaliTextUpdateLayout03(void) positions, 19u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 128u, 64u, false, @@ -3171,7 +3124,7 @@ int UtcDaliTextLayoutEllipsis01(void) positions, 1u, lines.Begin(), - LayoutEngine::SINGLE_LINE_BOX, + Layout::Engine::SINGLE_LINE_BOX, 0u, 51u, true, @@ -3247,7 +3200,7 @@ int UtcDaliTextLayoutEllipsis02(void) }; Size textArea( 100.f, 50.f ); - Size layoutSize( 100.f, 60.f ); + Size layoutSize( 100.f, 40.f ); LayoutTextData data = { @@ -3261,7 +3214,7 @@ int UtcDaliTextLayoutEllipsis02(void) positions, 2u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 51u, true, @@ -3403,7 +3356,7 @@ int UtcDaliTextLayoutEllipsis03(void) positions, 1u, lines.Begin(), - LayoutEngine::SINGLE_LINE_BOX, + Layout::Engine::SINGLE_LINE_BOX, 0u, 72u, true, @@ -3545,7 +3498,7 @@ int UtcDaliTextLayoutEllipsis04(void) }; Size textArea( 100.f, 50.f ); - Size layoutSize( 100.f, 60.f ); + Size layoutSize( 100.f, 40.f ); LayoutTextData data = { @@ -3559,7 +3512,7 @@ int UtcDaliTextLayoutEllipsis04(void) positions, 2u, lines.Begin(), - LayoutEngine::MULTI_LINE_BOX, + Layout::Engine::MULTI_LINE_BOX, 0u, 72u, true, @@ -3575,6 +3528,80 @@ int UtcDaliTextLayoutEllipsis04(void) END_TEST; } +int UtcDaliTextLayoutEllipsis05(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextLayoutEllipsis05"); + + const std::string fontLatin( "TizenSans" ); + + // Set a known font description + FontDescriptionRun fontDescriptionRun01; + fontDescriptionRun01.characterRun.characterIndex = 0u; + fontDescriptionRun01.characterRun.numberOfCharacters = 51u; + fontDescriptionRun01.familyLength = fontLatin.size(); + fontDescriptionRun01.familyName = new char[fontDescriptionRun01.familyLength]; + memcpy( fontDescriptionRun01.familyName, fontLatin.c_str(), fontDescriptionRun01.familyLength ); + fontDescriptionRun01.familyDefined = true; + fontDescriptionRun01.weightDefined = false; + fontDescriptionRun01.widthDefined = false; + fontDescriptionRun01.slantDefined = false; + fontDescriptionRun01.sizeDefined = false; + + Vector fontDescriptionRuns; + fontDescriptionRuns.PushBack( fontDescriptionRun01 ); + + struct LineRun line01 = + { + { 0u, 11u }, + { 0u, 11u }, + 80.f, + 15.f, + -5.f, + 0.f, + 0.f, + false, + true + }; + Vector lines; + lines.PushBack( line01 ); + + float positions[] = + { + 1.f, -12.f + }; + + Size textArea( 100.f, 19.f ); + Size layoutSize( 100.f, 20.f ); + + LayoutTextData data = + { + "Not enough height.", + "Hello world", + textArea, + 1u, + fontDescriptionRuns.Begin(), + layoutSize, + 1u, + positions, + 1u, + lines.Begin(), + Layout::Engine::MULTI_LINE_BOX, + 0u, + 11u, + true, + true + }; + + if( !LayoutTextTest( data ) ) + { + tet_result(TET_FAIL); + } + + tet_result(TET_PASS); + END_TEST; +} + int UtcDaliTextReorderLayout01(void) { ToolkitTestApplication application; @@ -4112,8 +4139,8 @@ int UtcDaliTextAlign01(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_BEGIN, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_BEGIN, + Layout::VERTICAL_ALIGN_TOP, 0u, 22u, 6u, @@ -4231,8 +4258,8 @@ int UtcDaliTextAlign02(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_BEGIN, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_BEGIN, + Layout::VERTICAL_ALIGN_TOP, 22u, 26u, 6u, @@ -4350,8 +4377,8 @@ int UtcDaliTextAlign03(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_BEGIN, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_BEGIN, + Layout::VERTICAL_ALIGN_TOP, 48u, 26u, 6u, @@ -4469,8 +4496,8 @@ int UtcDaliTextAlign04(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_CENTER, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_CENTER, + Layout::VERTICAL_ALIGN_TOP, 0u, 22u, 6u, @@ -4588,8 +4615,8 @@ int UtcDaliTextAlign05(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_CENTER, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_CENTER, + Layout::VERTICAL_ALIGN_TOP, 22u, 26u, 6u, @@ -4707,8 +4734,8 @@ int UtcDaliTextAlign06(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_CENTER, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_CENTER, + Layout::VERTICAL_ALIGN_TOP, 48u, 26u, 6u, @@ -4826,8 +4853,8 @@ int UtcDaliTextAlign07(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_END, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_END, + Layout::VERTICAL_ALIGN_TOP, 0u, 22u, 6u, @@ -4945,8 +4972,8 @@ int UtcDaliTextAlign08(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_END, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_END, + Layout::VERTICAL_ALIGN_TOP, 22u, 26u, 6u, @@ -5064,8 +5091,8 @@ int UtcDaliTextAlign09(void) textArea, 6u, fontDescriptionRuns.Begin(), - LayoutEngine::HORIZONTAL_ALIGN_END, - LayoutEngine::VERTICAL_ALIGN_TOP, + Layout::HORIZONTAL_ALIGN_END, + Layout::VERTICAL_ALIGN_TOP, 48u, 26u, 6u, @@ -5080,3 +5107,18 @@ int UtcDaliTextAlign09(void) tet_result(TET_PASS); END_TEST; } + +int UtcDaliTextLayoutSetGetDefaultLineSpacing(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextLayoutSetGetDefaultLineSpacing"); + + Layout::Engine engine; + DALI_TEST_EQUALS( 0.f, engine.GetDefaultLineSpacing(), Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + + engine.SetDefaultLineSpacing( 10.f ); + DALI_TEST_EQUALS( 10.f, engine.GetDefaultLineSpacing(), Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + + tet_result(TET_PASS); + END_TEST; +}