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=ecefef74d42a89c39211085a7f40629c046e3461;hp=884079e4ee2845fab3fd11c3dc8bc7f5ec5b1d21;hb=3feac03362a8bb2d90a8b3e5defe9d2d704d2d3c;hpb=c01b6a044893962dbc4ec47aeca60bf3b5d09766 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp index 884079e..ecefef7 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -72,10 +72,40 @@ 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 +static bool gAnchorClickedCallBackCalled; +static bool gAnchorClickedCallBackNotCalled; + +struct CallbackFunctor +{ + CallbackFunctor(bool* callbackFlag) + : mCallbackFlag( callbackFlag ) + { + } + + void operator()() + { + *mCallbackFlag = true; + } + bool* mCallbackFlag; +}; + +static void TestAnchorClickedCallback(TextLabel control, const char* href, unsigned int hrefLength) +{ + tet_infoline(" TestAnchorClickedCallback"); + + gAnchorClickedCallBackNotCalled = false; + + if (!strcmp(href, "https://www.tizen.org") && hrefLength == strlen(href)) + { + gAnchorClickedCallBackCalled = true; + } +} + bool DaliTestCheckMaps( const Property::Map& mapGet, const Property::Map& mapSet, const std::vector& indexConversionTable = std::vector() ) { const Property::Map::SizeType size = mapGet.Count(); @@ -230,6 +260,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; @@ -243,6 +290,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) { @@ -275,6 +340,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; } @@ -326,6 +392,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" ); @@ -1653,4 +1723,82 @@ int UtcDaliToolkitTextlabelLastCharacterIndex(void) DALI_TEST_EQUALS( indexArray.GetElementAt(0).Get(), 10, TEST_LOCATION ); END_TEST; -} \ No newline at end of file +} + +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; +} + +// Positive test for the anchorClicked signal. +int UtcDaliToolkitTextlabelAnchorClicked(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextlabelAnchorClicked"); + TextLabel label = TextLabel::New(); + DALI_TEST_CHECK(label); + + application.GetScene().Add(label); + + // connect to the anchor clicked signal. + ConnectionTracker* testTracker = new ConnectionTracker(); + DevelTextLabel::AnchorClickedSignal(label).Connect(&TestAnchorClickedCallback); + bool anchorClickedSignal = false; + label.ConnectSignal(testTracker, "anchorClicked", CallbackFunctor(&anchorClickedSignal)); + + gAnchorClickedCallBackCalled = false; + label.SetProperty(TextLabel::Property::TEXT, "TIZEN"); + label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true); + label.SetProperty(Actor::Property::SIZE, Vector2(100.f, 50.f)); + label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); + label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + + application.SendNotification(); + application.Render(); + + // Create a tap event to touch the text label. + TestGenerateTap(application, 5.0f, 25.0f); + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK(gAnchorClickedCallBackCalled); + DALI_TEST_CHECK(anchorClickedSignal); + + + gAnchorClickedCallBackNotCalled = true; + // Tap the outside of anchor, callback should not be called. + TestGenerateTap(application, 150.f, 100.f); + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK(gAnchorClickedCallBackNotCalled); + + END_TEST; +}