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-TextEditor-internal.cpp;h=e5889984dd29c7134ec16db5da531a4921ef19e5;hp=ca724ff7678adb9a37f92c56d05539ef0e5e6b5e;hb=297612cc09fbe560a454742a52bfb3ed03a2655f;hpb=ac501f02feab8e2fb7e613f936d3d5a511603001 diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-TextEditor-internal.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-TextEditor-internal.cpp old mode 100755 new mode 100644 index ca724ff..e588998 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-TextEditor-internal.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-TextEditor-internal.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -15,15 +15,16 @@ * */ -#include #include +#include #include #include #include -#include +#include #include +#include using namespace Dali; using namespace Toolkit; @@ -32,20 +33,20 @@ using namespace Text; int UtcDaliTextEditorSelectText(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliTextEditorSelectText" ); + tet_infoline("UtcDaliTextEditorSelectText"); // Create a text editor TextEditor textEditor = TextEditor::New(); - textEditor.SetProperty( Actor::Property::SIZE, Vector2( 400.f, 60.f ) ); - textEditor.SetProperty( TextEditor::Property::TEXT, "Hello World" ); + textEditor.SetProperty(Actor::Property::SIZE, Vector2(400.f, 60.f)); + textEditor.SetProperty(TextEditor::Property::TEXT, "Hello World"); // Add the text editor to the stage - application.GetScene().Add( textEditor ); + application.GetScene().Add(textEditor); application.SendNotification(); application.Render(); - Toolkit::Internal::TextEditor& textEditorImpl = GetImpl( textEditor ); + Toolkit::Internal::TextEditor& textEditorImpl = GetImpl(textEditor); application.SendNotification(); application.Render(); @@ -57,7 +58,7 @@ int UtcDaliTextEditorSelectText(void) application.Render(); std::string selectedText = textEditorImpl.GetSelectedText(); - DALI_TEST_CHECK( selectedText == "Hello World" ); + DALI_TEST_CHECK(selectedText == "Hello World"); // Select None textEditorImpl.SelectNone(); @@ -66,7 +67,7 @@ int UtcDaliTextEditorSelectText(void) application.Render(); selectedText = textEditorImpl.GetSelectedText(); - DALI_TEST_CHECK( selectedText == "" ); + DALI_TEST_CHECK(selectedText == ""); END_TEST; } @@ -78,34 +79,261 @@ int UtcDaliTextEditorMarkupUnderline(void) TextEditor textEditor = TextEditor::New(); - application.GetScene().Add( textEditor ); + application.GetScene().Add(textEditor); - textEditor.SetProperty( TextEditor::Property::TEXT, "ABCEFGH" ); - textEditor.SetProperty( TextEditor ::Property::ENABLE_MARKUP, true ); + textEditor.SetProperty(TextEditor::Property::TEXT, "ABCEFGH"); + textEditor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true); application.SendNotification(); application.Render(); uint32_t expectedNumberOfUnderlinedGlyphs = 5u; - Toolkit::Internal::TextEditor& textEditorImpl = GetImpl( textEditor ); - const Text::Length numberOfUnderlineRuns = textEditorImpl.getController()->GetTextModel()->GetNumberOfUnderlineRuns(); + Toolkit::Internal::TextEditor& textEditorImpl = GetImpl(textEditor); + const Text::Length numberOfUnderlineRuns = textEditorImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns(); - DALI_TEST_EQUALS( numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION ); + DALI_TEST_EQUALS(numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION); Vector underlineRuns; underlineRuns.Resize(numberOfUnderlineRuns); - textEditorImpl.getController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns); + textEditorImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns); //ABC are underlined - DALI_TEST_EQUALS( underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION); - DALI_TEST_EQUALS( underlineRuns[1u].glyphIndex, 1u, TEST_LOCATION); - DALI_TEST_EQUALS( underlineRuns[2u].glyphIndex, 2u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[1u].glyphIndex, 1u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[2u].glyphIndex, 2u, TEST_LOCATION); //GH are underlined - DALI_TEST_EQUALS( underlineRuns[3u].glyphIndex, 5u, TEST_LOCATION); - DALI_TEST_EQUALS( underlineRuns[4u].glyphIndex, 6u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[3u].glyphIndex, 5u, TEST_LOCATION); + DALI_TEST_EQUALS(underlineRuns[4u].glyphIndex, 6u, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliTextEditorFontPointSizeLargerThanAtlas(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextEditorFontPointSizeLargerThanAtlas "); + + // Create a text editor + TextEditor textEditor = TextEditor::New(); + //Set size to avoid automatic eliding + textEditor.SetProperty(Actor::Property::SIZE, Vector2(1025, 1025)); + //Set very large font-size using point-size + textEditor.SetProperty(TextEditor::Property::POINT_SIZE, 1000); + //Specify font-family + textEditor.SetProperty(TextEditor::Property::FONT_FAMILY, "DejaVu Sans"); + //Set text to check if appear or not + textEditor.SetProperty(TextEditor::Property::TEXT, "A"); + + application.GetScene().Add(textEditor); + + application.SendNotification(); + application.Render(); + + //Check if Glyph is added to AtlasGlyphManger or not + int countAtlas = AtlasGlyphManager::Get().GetMetrics().mAtlasMetrics.mAtlasCount; + DALI_TEST_EQUALS(countAtlas, 1, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliTextEditorFontPointSizeLargerThanAtlasPlaceholderCase(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextEditorFontPointSizeLargerThanAtlasPlaceholderCase "); + + //Set Map of placeholder: text, font-family and point-size + Property::Map placeholderMapSet; + placeholderMapSet["text"] = "A"; + placeholderMapSet["fontFamily"] = "DejaVu Sans"; + placeholderMapSet["pixelSize"] = 1000.0f; + + // Create a text editor + TextEditor textEditor = TextEditor::New(); + //Set size to avoid automatic eliding + textEditor.SetProperty(Actor::Property::SIZE, Vector2(1025, 1025)); + //Set placeholder + textEditor.SetProperty(TextEditor::Property::PLACEHOLDER, placeholderMapSet); + + application.GetScene().Add(textEditor); + + application.SendNotification(); + application.Render(); + + //Check if Glyph is added to AtlasGlyphManger or not + int countAtlas = AtlasGlyphManager::Get().GetMetrics().mAtlasMetrics.mAtlasCount; + DALI_TEST_EQUALS(countAtlas, 1, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliTextEditorBackgroundTag(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliTextEditorBackgroundTag\n"); + + TextEditor editor = TextEditor::New(); + DALI_TEST_CHECK(editor); + + editor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true); + editor.SetProperty(TextEditor::Property::TEXT, "He World"); + application.GetScene().Add(editor); + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextEditor& editorImpl = GetImpl(editor); + const ColorIndex* const backgroundColorIndicesBuffer = editorImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices(); + + DALI_TEST_CHECK(backgroundColorIndicesBuffer); + + //default color + DALI_TEST_EQUALS(backgroundColorIndicesBuffer[0], 0u, TEST_LOCATION); + + //red color + DALI_TEST_EQUALS(backgroundColorIndicesBuffer[1], 1u, TEST_LOCATION); + + //yellow color + DALI_TEST_EQUALS(backgroundColorIndicesBuffer[7], 2u, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliTextEditorTextWithSpan(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliTextEditorTextWithSpan\n"); + + TextEditor editor = TextEditor::New(); + DALI_TEST_CHECK(editor); + + editor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true); + editor.SetProperty(TextEditor::Property::TEXT, "Hello Span"); + application.GetScene().Add(editor); + + application.SendNotification(); + application.Render(); + + Vector3 originalSize = editor.GetNaturalSize(); + editor.SetProperty(TextEditor::Property::TEXT, "Hello Span"); + + application.SendNotification(); + application.Render(); + + Vector3 spanSize = editor.GetNaturalSize(); + + DALI_TEST_GREATER(spanSize.width, originalSize.width, TEST_LOCATION); + + Toolkit::Internal::TextEditor& editorImpl = GetImpl(editor); + const ColorIndex* const colorIndicesBuffer1 = editorImpl.GetTextController()->GetTextModel()->GetColorIndices(); + + DALI_TEST_CHECK(colorIndicesBuffer1); + + //default color + DALI_TEST_EQUALS(colorIndicesBuffer1[0], 0u, TEST_LOCATION); + + //span color + DALI_TEST_EQUALS(colorIndicesBuffer1[1], 1u, TEST_LOCATION); + + //default color + DALI_TEST_EQUALS(colorIndicesBuffer1[6], 0u, TEST_LOCATION); + + editor.SetProperty(TextEditor::Property::TEXT, "Hello Span"); + + application.SendNotification(); + application.Render(); + + const ColorIndex* const colorIndicesBuffer2 = editorImpl.GetTextController()->GetTextModel()->GetColorIndices(); + + DALI_TEST_CHECK(colorIndicesBuffer2); + + //default color + DALI_TEST_EQUALS(colorIndicesBuffer2[0], 0u, TEST_LOCATION); + + //default color + DALI_TEST_EQUALS(colorIndicesBuffer2[1], 0u, TEST_LOCATION); + + //span color + DALI_TEST_EQUALS(colorIndicesBuffer2[6], 1u, TEST_LOCATION); + + //default color + DALI_TEST_EQUALS(colorIndicesBuffer2[7], 0u, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliTextEditorControlBackgroundColor(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextEditorControlBackgroundColor\n"); + + TextEditor editor = TextEditor::New(); + DALI_TEST_CHECK(editor); + + Vector4 backgroundColor; + + editor.SetProperty(TextEditor::Property::TEXT, "Background Color"); + application.GetScene().Add(editor); + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextEditor& editorImpl = GetImpl(editor); + ControllerPtr controller = editorImpl.GetTextController(); + Controller::Impl& controllerImpl = Controller::Impl::GetImplementation(*controller.Get()); + + // Default color is transparent + controllerImpl.mEditableControlInterface->GetControlBackgroundColor(backgroundColor); + DALI_TEST_EQUALS(backgroundColor, Color::TRANSPARENT, TEST_LOCATION); + + // Set background color to red + editor.SetBackgroundColor(Color::RED); + application.SendNotification(); + application.Render(); + + // Should be red + controllerImpl.mEditableControlInterface->GetControlBackgroundColor(backgroundColor); + DALI_TEST_EQUALS(backgroundColor, Color::RED, TEST_LOCATION); END_TEST; +} +int UtcDaliTextEditorTextPositionWithMinLineAndBigFont(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextEditorTextPositionWithMinLine "); + + TextEditor textEditor = TextEditor::New(); + + textEditor.SetProperty(TextEditor::Property::TEXT, "H\ni"); + textEditor.SetProperty(DevelTextEditor::Property::MIN_LINE_SIZE, 50); + textEditor.SetProperty(TextEditor ::Property::ENABLE_MARKUP, true); + + application.GetScene().Add(textEditor); + + application.SendNotification(); + application.Render(); + + Toolkit::Internal::TextEditor& textEditorImpl = GetImpl(textEditor); + Text::ViewInterface& view = textEditorImpl.GetTextController()->GetView(); + + Length numberOfGlyphs = view.GetNumberOfGlyphs(); + + DALI_TEST_EQUALS(numberOfGlyphs, 3u, Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + Vector glyphs; + glyphs.Resize(numberOfGlyphs); + + Vector positions; + positions.Resize(numberOfGlyphs); + + float alignmentOffset = 0u; + numberOfGlyphs = view.GetGlyphs(glyphs.Begin(), + positions.Begin(), + alignmentOffset, + 0u, + numberOfGlyphs); + + DALI_TEST_EQUALS(positions[2].y, 165.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION); + + END_TEST; } \ No newline at end of file