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=4c1e449d76f4ff4017d3a0927cefeee7dd442a71;hp=aa2ca31f83af109288476eb0ffc07212c739f18c;hb=8177827cf40d243367b4c92ea8d5e3c40d42f3ae;hpb=00c549366e07db37a58ae6940abbae462d1061ea diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp index aa2ca31..4c1e449 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp @@ -21,6 +21,7 @@ #include #include +#include using namespace Dali; using namespace Toolkit; @@ -64,9 +65,13 @@ const char* const PROPERTY_NAME_SHADOW = "shadow"; const char* const PROPERTY_NAME_EMBOSS = "emboss"; const char* const PROPERTY_NAME_OUTLINE = "outline"; +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 int DEFAULT_RENDERING_BACKEND = Dali::Toolkit::Text::DEFAULT_RENDERING_BACKEND; const std::string DEFAULT_FONT_DIR( "/resources/fonts" ); -const unsigned int EMOJI_FONT_SIZE = 3968u; +const unsigned int EMOJI_FONT_SIZE = 3840u; // 60 * 64 bool DaliTestCheckMaps( const Property::Map& fontStyleMapGet, const Property::Map& fontStyleMapSet ) { @@ -203,6 +208,9 @@ int UtcDaliToolkitTextLabelGetPropertyP(void) DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_SHADOW ) == TextLabel::Property::SHADOW ); DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_EMBOSS ) == TextLabel::Property::EMBOSS ); DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_OUTLINE ) == TextLabel::Property::OUTLINE ); + DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_PIXEL_SIZE ) == DevelTextLabel::Property::PIXEL_SIZE ); + DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_ELLIPSIS ) == DevelTextLabel::Property::ELLIPSIS ); + DALI_TEST_CHECK( label.GetPropertyIndex( PROPERTY_NAME_AUTO_SCROLL_LOOP_DELAY ) == DevelTextLabel::Property::AUTO_SCROLL_LOOP_DELAY ); END_TEST; } @@ -243,11 +251,11 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) fontStyleMapSet.Insert( "weight", "thin" ); fontStyleMapSet.Insert( "width", "expanded" ); fontStyleMapSet.Insert( "slant", "oblique" ); + const std::string strFontStyle = "{\"weight\":\"thin\",\"width\":\"expanded\",\"slant\":\"oblique\"}"; label.SetProperty( TextLabel::Property::FONT_STYLE, "{\"weight\":\"thin\",\"width\":\"expanded\",\"slant\":\"oblique\"}" ); - fontStyleMapGet = label.GetProperty( TextLabel::Property::FONT_STYLE ); - DALI_TEST_EQUALS( fontStyleMapGet.Count(), fontStyleMapSet.Count(), TEST_LOCATION ); - DALI_TEST_EQUALS( DaliTestCheckMaps( fontStyleMapGet, fontStyleMapSet ), true, TEST_LOCATION ); + std::string getFontStyle = label.GetProperty( TextLabel::Property::FONT_STYLE ); + DALI_TEST_EQUALS( getFontStyle, strFontStyle, TEST_LOCATION ); 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 ); @@ -341,6 +349,10 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) const int SCROLL_SPEED = 80; const int SCROLL_LOOPS = 4; const float SCROLL_GAP = 50.0f; + const float SCROLL_LOOP_DELAY = 0.3f; + const std::string STOP_IMMEDIATE = std::string( "IMMEDIATE" ); + const std::string STOP_FINISH_LOOP = std::string( "FINISH_LOOP" ); + label.SetProperty( TextLabel::Property::MULTI_LINE, false ); // Autoscroll only supported in single line DALI_TEST_CHECK( !label.GetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL ) ); label.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true ); @@ -351,6 +363,16 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) DALI_TEST_EQUALS( SCROLL_LOOPS, label.GetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT ), TEST_LOCATION ); label.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, SCROLL_GAP ); DALI_TEST_EQUALS( SCROLL_GAP, label.GetProperty( TextLabel::Property::AUTO_SCROLL_GAP ), TEST_LOCATION ); + label.SetProperty(DevelTextLabel::Property::AUTO_SCROLL_LOOP_DELAY, SCROLL_LOOP_DELAY ); + DALI_TEST_EQUALS( SCROLL_LOOP_DELAY, label.GetProperty( DevelTextLabel::Property::AUTO_SCROLL_LOOP_DELAY ), TEST_LOCATION ); + + //Check autoscroll stop type property + label.SetProperty( DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE, DevelTextLabel::AutoScrollStopMode::IMMEDIATE ); + DALI_TEST_EQUALS( STOP_IMMEDIATE, label.GetProperty( DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE ), TEST_LOCATION ); + + label.SetProperty( DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE, DevelTextLabel::AutoScrollStopMode::FINISH_LOOP ); + DALI_TEST_EQUALS( STOP_FINISH_LOOP, label.GetProperty( DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE ), TEST_LOCATION ); + // Check the line spacing property DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::LINE_SPACING ), 0.0f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); @@ -415,6 +437,15 @@ int UtcDaliToolkitTextLabelSetPropertyP(void) label.SetProperty( TextLabel::Property::OUTLINE, "Outline properties" ); DALI_TEST_EQUALS( label.GetProperty( TextLabel::Property::OUTLINE ), std::string("Outline properties"), TEST_LOCATION ); + // Check the pixel size of font + label.SetProperty( DevelTextLabel::Property::PIXEL_SIZE, 20.f ); + DALI_TEST_EQUALS( label.GetProperty( DevelTextLabel::Property::PIXEL_SIZE ), 20.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION ); + + // Check the ellipsis property + DALI_TEST_CHECK( !label.GetProperty( DevelTextLabel::Property::ELLIPSIS ) ); + label.SetProperty( DevelTextLabel::Property::ELLIPSIS, true ); + DALI_TEST_CHECK( label.GetProperty( DevelTextLabel::Property::ELLIPSIS ) ); + END_TEST; } @@ -486,15 +517,34 @@ int UtcDaliToolkitTextLabelLanguagesP(void) application.SendNotification(); application.Render(); + END_TEST; +} + +int UtcDaliToolkitTextLabelEmojisP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextLabelLanguagesP"); + TextLabel label = TextLabel::New(); + DALI_TEST_CHECK( label ); + + Stage::GetCurrent().Add( label ); + TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get(); char* pathNamePtr = get_current_dir_name(); const std::string pathName( pathNamePtr ); free( pathNamePtr ); - fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenColorEmoji.ttf", EMOJI_FONT_SIZE ); + TextAbstraction::FontDescription fontDescription; + fontDescription.path = pathName + DEFAULT_FONT_DIR + "/tizen/BreezeColorEmoji.ttf"; + fontDescription.family = "BreezeColorEmoji"; + fontDescription.width = TextAbstraction::FontWidth::NONE; + fontDescription.weight = TextAbstraction::FontWeight::NORMAL; + fontDescription.slant = TextAbstraction::FontSlant::NONE; + + fontClient.GetFontId( fontDescription, EMOJI_FONT_SIZE ); - const std::string emojis = "\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84"; + const std::string emojis = "\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84"; label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true ); label.SetProperty( TextLabel::Property::TEXT, emojis ); @@ -508,23 +558,97 @@ int UtcDaliToolkitTextlabelScrollingP(void) { ToolkitTestApplication application; tet_infoline(" UtcDaliToolkitTextLabelScrollingP"); + TextLabel labelImmediate = TextLabel::New("Some text to scroll"); + TextLabel labelFinished = TextLabel::New("Some text to scroll"); + + DALI_TEST_CHECK( labelImmediate ); + DALI_TEST_CHECK( labelFinished ); + // Avoid a crash when core load gl resources. + application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); + Stage::GetCurrent().Add( labelImmediate ); + // Turn on all the effects + labelImmediate.SetProperty( TextLabel::Property::MULTI_LINE, false ); + labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f ); + labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 ); + labelImmediate.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); + labelImmediate.SetProperty( DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE, DevelTextLabel::AutoScrollStopMode::IMMEDIATE ); + + Stage::GetCurrent().Add( labelFinished ); + // Turn on all the effects + labelFinished.SetProperty( TextLabel::Property::MULTI_LINE, false ); + labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f ); + labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 ); + labelFinished.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); + labelFinished.SetProperty( DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE, DevelTextLabel::AutoScrollStopMode::FINISH_LOOP ); + + + + try + { + // Render some text with the shared atlas backend + labelImmediate.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true ); + labelFinished.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true ); + application.SendNotification(); + application.Render(); + + labelImmediate.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false ); + labelFinished.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, false ); + application.SendNotification(); + application.Render(); + + } + catch( ... ) + { + tet_result(TET_FAIL); + } + + END_TEST; +} + +int UtcDaliToolkitTextlabelScrollingInterruptedP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelScrollingInterruptedP"); TextLabel label = TextLabel::New("Some text to scroll"); DALI_TEST_CHECK( label ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); Stage::GetCurrent().Add( label ); + label.SetSize( 360.0f, 20.f ); // Turn on all the effects label.SetProperty( TextLabel::Property::MULTI_LINE, false ); label.SetProperty( TextLabel::Property::AUTO_SCROLL_GAP, 50.0f ); label.SetProperty( TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3 ); label.SetProperty( TextLabel::Property::AUTO_SCROLL_SPEED, 80.0f ); + // Render the text. + application.SendNotification(); + application.Render(); + + unsigned int actorCount1 = label.GetChildCount(); + tet_printf("Initial actor count is(%d)\n", actorCount1 ); + try { // Render some text with the shared atlas backend label.SetProperty( TextLabel::Property::ENABLE_AUTO_SCROLL, true ); application.SendNotification(); + application.Render(2000); + + unsigned int actorCount1 = label.GetChildCount(); + tet_printf("Actor count after scrolling is(%d)\n", actorCount1 ); + + label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED ); + + // Render the text. + application.SendNotification(); application.Render(); + + unsigned int actorCount2 = label.GetChildCount(); + tet_printf("After changing color the actor count is(%d)\n", actorCount2 ); + + DALI_TEST_EQUALS( actorCount1, actorCount2, TEST_LOCATION ); + } catch( ... ) {