X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-TextLabel.cpp;h=57862f4ccdcf76557cb117265310d670c57ab7a9;hp=4fa21f8e5b2f357180fef94c67571f81670b4159;hb=7c81ee521e33d47e386d60eb7ccf07b98073542c;hpb=43ca048f4200d2f1d6e59c2163af59cd99a45b2e diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp old mode 100755 new mode 100644 index 4fa21f8..57862f4 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp @@ -29,6 +29,7 @@ #include #include #include +#include using namespace Dali; using namespace Toolkit; @@ -71,6 +72,7 @@ const char* const PROPERTY_NAME_BACKGROUND = "textBackground"; const char* const PROPERTY_NAME_PIXEL_SIZE = "pixelSize"; const char* const PROPERTY_NAME_ELLIPSIS = "ellipsis"; const char* const PROPERTY_NAME_AUTO_SCROLL_LOOP_DELAY = "autoScrollLoopDelay"; +const char* const PROPERTY_NAME_FONT_SIZE_SCALE = "fontSizeScale"; const std::string DEFAULT_FONT_DIR( "/resources/fonts" ); const unsigned int EMOJI_FONT_SIZE = 3840u; // 60 * 64 @@ -229,6 +231,23 @@ int UtcDaliToolkitTextLabelCopyConstructorP(void) END_TEST; } +int UtcDaliTextLabelMoveConstructor(void) +{ + ToolkitTestApplication application; + + TextLabel textLabel = TextLabel::New(); + textLabel.SetProperty( TextLabel::Property::TEXT, "Test" ); + DALI_TEST_CHECK( textLabel.GetProperty( TextLabel::Property::TEXT ) == "Test" ); + + TextLabel moved = std::move( textLabel ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( moved.GetProperty( TextLabel::Property::TEXT ) == "Test" ); + DALI_TEST_CHECK( !textLabel ); + + END_TEST; +} + int UtcDaliToolkitTextLabelAssignmentOperatorP(void) { ToolkitTestApplication application; @@ -242,6 +261,24 @@ int UtcDaliToolkitTextLabelAssignmentOperatorP(void) END_TEST; } +int UtcDaliTextLabelMoveAssignment(void) +{ + ToolkitTestApplication application; + + TextLabel textLabel = TextLabel::New(); + textLabel.SetProperty( TextLabel::Property::TEXT, "Test" ); + DALI_TEST_CHECK( textLabel.GetProperty( TextLabel::Property::TEXT ) == "Test" ); + + TextLabel moved; + moved = std::move( textLabel ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( moved.GetProperty( TextLabel::Property::TEXT ) == "Test" ); + DALI_TEST_CHECK( !textLabel ); + + END_TEST; +} + // Positive test case for a method int UtcDaliToolkitTextLabelGetPropertyP(void) { @@ -274,6 +311,7 @@ int UtcDaliToolkitTextLabelGetPropertyP(void) DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_PIXEL_SIZE ) == TextLabel::Property::PIXEL_SIZE ); DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ELLIPSIS ) == TextLabel::Property::ELLIPSIS ); DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_AUTO_SCROLL_LOOP_DELAY ) == TextLabel::Property::AUTO_SCROLL_LOOP_DELAY ); + DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_FONT_SIZE_SCALE ) == DevelTextLabel::Property::FONT_SIZE_SCALE ); END_TEST; } @@ -285,7 +323,7 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) TextLabel label = TextLabel::New(); DALI_TEST_CHECK( label ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); // Note - we can't check the defaults since the stylesheets are platform-specific label.SetProperty( DevelTextLabel::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS ); @@ -325,6 +363,10 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) label.SetProperty( TextLabel::Property::POINT_SIZE, 10.f ); DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::POINT_SIZE ), 10.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + label.SetProperty( DevelTextLabel::Property::FONT_SIZE_SCALE, 2.5f ); + DALI_TEST_EQUALS( label.GetProperty( DevelTextLabel::Property::FONT_SIZE_SCALE ), 2.5f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + label.SetProperty( DevelTextLabel::Property::FONT_SIZE_SCALE, 1.0f ); + // Reset font style. fontStyleMapSet.Clear(); fontStyleMapSet.Insert( "weight", "normal" ); @@ -659,7 +701,7 @@ int UtcDaliToolkitTextlabelAtlasRenderP(void) // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); // Turn on all the effects label.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); @@ -708,7 +750,7 @@ int UtcDaliToolkitTextLabelLanguagesP(void) TextLabel label = TextLabel::New(); DALI_TEST_CHECK( label ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); const std::string scripts( " привет мир, γειά σου Κόσμε, Hello world, مرحبا بالعالم, שלום עולם, " "բարեւ աշխարհը, მსოფლიოში, 안녕하세요, 你好世界, ひらがな, カタカナ, " @@ -733,7 +775,7 @@ int UtcDaliToolkitTextLabelEmojisP(void) TextLabel label = TextLabel::New(); DALI_TEST_CHECK( label ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get(); @@ -776,7 +818,7 @@ int UtcDaliToolkitTextlabelScrollingP(void) DALI_TEST_CHECK( labelFinished ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( labelImmediate ); + application.GetScene().Add( labelImmediate ); // Turn on all the effects labelImmediate.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f ); @@ -784,7 +826,7 @@ int UtcDaliToolkitTextlabelScrollingP(void) labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE ); - Stage::GetCurrent().Add( labelFinished ); + application.GetScene().Add( labelFinished ); // Turn on all the effects labelFinished.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f ); @@ -832,7 +874,7 @@ int UtcDaliToolkitTextlabelScrollingCenterAlignP(void) DALI_TEST_CHECK( labelLong ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( labelShort ); + application.GetScene().Add( labelShort ); // Turn on all the effects labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); @@ -841,7 +883,7 @@ int UtcDaliToolkitTextlabelScrollingCenterAlignP(void) labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE ); - Stage::GetCurrent().Add( labelLong ); + application.GetScene().Add( labelLong ); // Turn on all the effects labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); @@ -882,7 +924,7 @@ int UtcDaliToolkitTextlabelScrollingCenterAlignRTLP(void) DALI_TEST_CHECK( labelLong ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( labelShort ); + application.GetScene().Add( labelShort ); // Turn on all the effects labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); @@ -891,7 +933,7 @@ int UtcDaliToolkitTextlabelScrollingCenterAlignRTLP(void) labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE ); - Stage::GetCurrent().Add( labelLong ); + application.GetScene().Add( labelLong ); // Turn on all the effects labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); @@ -932,7 +974,7 @@ int UtcDaliToolkitTextlabelScrollingEndAlignP(void) DALI_TEST_CHECK( labelLong ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( labelShort ); + application.GetScene().Add( labelShort ); // Turn on all the effects labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" ); @@ -941,7 +983,7 @@ int UtcDaliToolkitTextlabelScrollingEndAlignP(void) labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE ); - Stage::GetCurrent().Add( labelLong ); + application.GetScene().Add( labelLong ); // Turn on all the effects labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" ); @@ -982,7 +1024,7 @@ int UtcDaliToolkitTextlabelScrollingEndAlignRTLP(void) DALI_TEST_CHECK( labelLong ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( labelShort ); + application.GetScene().Add( labelShort ); // Turn on all the effects labelShort.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelShort.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" ); @@ -991,7 +1033,7 @@ int UtcDaliToolkitTextlabelScrollingEndAlignRTLP(void) labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); labelShort.SetProperty( TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE ); - Stage::GetCurrent().Add( labelLong ); + application.GetScene().Add( labelLong ); // Turn on all the effects labelLong.SetProperty( TextLabel::Property::MULTI_LINE, false ); labelLong.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "END" ); @@ -1030,7 +1072,7 @@ int UtcDaliToolkitTextlabelScrollingInterruptedP(void) DALI_TEST_CHECK( label ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); label.SetProperty( Actor::Property::SIZE, Vector2( 360.0f, 20.f ) ); // Turn on all the effects label.SetProperty( TextLabel::Property::MULTI_LINE, false ); @@ -1083,7 +1125,7 @@ int UtcDaliToolkitTextlabelScrollingN(void) TextLabel label = TextLabel::New("Some text to scroll"); DALI_TEST_CHECK( label ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -1114,7 +1156,7 @@ int UtcDaliToolkitTextlabelScrollingWithEllipsis(void) TextLabel label = TextLabel::New("Some text to scroll"); DALI_TEST_CHECK( label ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -1162,7 +1204,7 @@ int UtcDaliToolkitTextlabelEllipsis(void) // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); // Turn on all the effects label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); @@ -1229,7 +1271,7 @@ int UtcDaliToolkitTextlabelTextWrapMode(void) //label.SetProperty( TextLabel::Property::POINT_SIZE, 18 ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); label.SetProperty( TextLabel::Property::LINE_WRAP_MODE, "WORD" ); DALI_TEST_EQUALS( label.GetProperty< int >( TextLabel::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::WORD ), TEST_LOCATION ); @@ -1302,7 +1344,7 @@ int UtcDaliToolkitTextLabelColorComponents(void) label.SetProperty( TextLabel::Property::TEXT, "Hello world Hello world" ); label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::BLUE ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); TraceCallStack& drawTrace = application.GetGlAbstraction().GetDrawTrace(); drawTrace.Enable( true ); @@ -1342,7 +1384,7 @@ int UtcDaliToolkitTextlabelTextStyle01(void) label.SetProperty( Actor::Property::SIZE, Vector2( 300.0f, 300.f ) ); label.SetProperty( TextLabel::Property::TEXT, "Hello world Hello world" ); label.SetProperty( TextLabel::Property::POINT_SIZE, 12 ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); Property::Map outlineMapSet; Property::Map outlineMapGet; @@ -1411,7 +1453,7 @@ int UtcDaliToolkitTextlabelMultiline(void) label.SetProperty( TextLabel::Property::TEXT, "Hello world Hello world Hello world Hello world Hello world Hello world" ); label.SetProperty( TextLabel::Property::POINT_SIZE, 20 ); label.SetProperty( TextLabel::Property::MULTI_LINE, false ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); application.SendNotification(); application.Render(); @@ -1441,7 +1483,7 @@ int UtcDaliToolkitTextlabelTextDirection(void) label.SetProperty( TextLabel::Property::TEXT, "Hello world" ); label.SetProperty( TextLabel::Property::POINT_SIZE, 20 ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); // Test LTR text DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::TEXT_DIRECTION ), static_cast< int >( Toolkit::DevelText::TextDirection::LEFT_TO_RIGHT ), TEST_LOCATION ); @@ -1472,7 +1514,7 @@ int UtcDaliToolkitTextlabelVerticalLineAlignment(void) label.SetProperty( TextLabel::Property::TEXT, "Hello world" ); label.SetProperty( TextLabel::Property::POINT_SIZE, 15 ); label.SetProperty( TextLabel::Property::LINE_SPACING, 12 ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); DALI_TEST_EQUALS( label.GetProperty< int >( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT ), static_cast< int >( Toolkit::DevelText::VerticalLineAlignment::TOP ), TEST_LOCATION ); label.SetProperty( DevelTextLabel::Property::VERTICAL_LINE_ALIGNMENT, DevelText::VerticalLineAlignment::MIDDLE ); @@ -1520,7 +1562,7 @@ int UtcDaliToolkitTextLabelBitmapFont(void) // The text has been laid out with the bitmap font if the natural size is the sum of all the width (322) and 34 height. DALI_TEST_EQUALS( label.GetNaturalSize(), Vector3(322.f, 34.f, 0.f), Math::MACHINE_EPSILON_1000, TEST_LOCATION ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); application.SendNotification(); application.Render(); @@ -1561,7 +1603,7 @@ int UtcDaliToolkitTextlabelTextFit(void) label.SetProperty( Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMapSet ); label.SetProperty( TextLabel::Property::POINT_SIZE, 120.f); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); application.SendNotification(); application.Render(); @@ -1617,7 +1659,7 @@ int UtcDaliToolkitTextlabelMaxTextureSet(void) label.SetProperty( TextLabel::Property::UNDERLINE, underlineMapSet ); label.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLUE ); - Stage::GetCurrent().Add( label ); + application.GetScene().Add( label ); application.SendNotification(); application.Render(); @@ -1631,3 +1673,57 @@ int UtcDaliToolkitTextlabelMaxTextureSet(void) END_TEST; } + +int UtcDaliToolkitTextlabelLastCharacterIndex(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelLastCharacterIndex"); + + Vector2 size( 300.0f, 100.0f ); + + Dali::Toolkit::DevelText::RendererParameters textParameters; + textParameters.text = "This is a sample text to get the last index."; + textParameters.layout = "multiLine"; + textParameters.fontSize = 20.f; + textParameters.textWidth = 300u; + textParameters.textHeight = 100u; + textParameters.ellipsisEnabled = true; + Dali::Property::Array indexArray = Dali::Toolkit::DevelText::GetLastCharacterIndex( textParameters ); + + DALI_TEST_CHECK( !indexArray.Empty() ); + DALI_TEST_EQUALS( indexArray.GetElementAt(0).Get(), 10, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliToolkitTextlabelFontSizeScale(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelFontSizeScale"); + + TextLabel label = TextLabel::New(); + label.SetProperty( TextLabel::Property::POINT_SIZE, 30.f ); + label.SetProperty( TextLabel::Property::TEXT, "Test" ); + Vector3 nonScaledSize = label.GetNaturalSize(); + + TextLabel labelScaled = TextLabel::New(); + labelScaled.SetProperty( TextLabel::Property::POINT_SIZE, 15.f ); + labelScaled.SetProperty( Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE, 2.f ); + labelScaled.SetProperty( TextLabel::Property::TEXT, "Test" ); + Vector3 scaledSize = labelScaled.GetNaturalSize(); + + DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION ); + + label.SetProperty( TextLabel::Property::PIXEL_SIZE, 30.f ); + label.SetProperty( TextLabel::Property::TEXT, "Test" ); + nonScaledSize = label.GetNaturalSize(); + + labelScaled.SetProperty( TextLabel::Property::PIXEL_SIZE, 15.f ); + labelScaled.SetProperty( Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE, 2.f ); + labelScaled.SetProperty( TextLabel::Property::TEXT, "Test" ); + scaledSize = labelScaled.GetNaturalSize(); + + DALI_TEST_EQUALS( nonScaledSize, scaledSize, TEST_LOCATION ); + + END_TEST; +}