X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Accessibility-Text.cpp;h=073138a61a633e1fa28c52593746fa6dda852bed;hb=6a219d0bbcfd016e24b5466d5fb1a666c92feae5;hp=6b77f00463e30e1feb868cb8f71ef23d961edffc;hpb=8e3fd25cab9b478aa0d0668d0a186b6fa93c10f6;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Text.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Text.cpp index 6b77f00..073138a 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Text.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Text.cpp @@ -23,6 +23,9 @@ #include #include +#include +#include +#include #include #include @@ -196,6 +199,59 @@ int utcDaliAccessibilityTextEditorRemoveSelection(void) END_TEST; } +int utcDaliAccessibilityTextEditorGetRangeExtents(void) +{ + ToolkitTestApplication application; + + auto editor = Dali::Toolkit::TextEditor::New(); + auto q = Dali::Accessibility::Accessible::Get( editor ); + auto x = dynamic_cast< Dali::Accessibility::Text* >( q ); + DALI_TEST_CHECK( x ); + + if( x ) + { + auto rangeExtents = x->GetRangeExtents( 0, 0, Dali::Accessibility::CoordinateType::WINDOW ); + DALI_TEST_EQUALS( (int)rangeExtents.x, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.y, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.width, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.height, 0, TEST_LOCATION ); + + application.GetScene().Add( editor ); + + editor.SetProperty( Toolkit::TextEditor::Property::POINT_SIZE, 7.f ); + editor.SetProperty( Actor::Property::SIZE, Vector2(200.f, 200.f) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "text editor test sentence" ); + + // Avoid a crash when core load gl resources. + application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE); + + // Render and notify + application.SendNotification(); + application.Render(); + + auto characterCount = x->GetCharacterCount(); + rangeExtents = x->GetRangeExtents( 0, characterCount, Dali::Accessibility::CoordinateType::WINDOW ); + + Vector positionList = Toolkit::DevelTextEditor::GetTextPosition(editor, 0, characterCount); + Vector sizeList = Toolkit::DevelTextEditor::GetTextSize(editor, 0, characterCount); + + DALI_TEST_EQUALS(positionList.Size() == sizeList.Size(), true, TEST_LOCATION); + + unsigned int sizeListSize = sizeList.Size(); + for(unsigned int i = 0; i < sizeListSize; i++) + { + DALI_TEST_EQUALS((int)positionList[i].x >= rangeExtents.x, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)positionList[i].y >= rangeExtents.y, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)sizeList[i].x <= rangeExtents.width, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)sizeList[i].y <= rangeExtents.height, true, TEST_LOCATION); + } + } + + END_TEST; +} + int utcDaliAccessibilityTextFieldGetName(void) { ToolkitTestApplication application; @@ -221,6 +277,20 @@ int utcDaliAccessibilityTextFieldGetText(void) DALI_TEST_EQUALS( x->GetText( 0, 0 ), "", TEST_LOCATION ); field.SetProperty( Toolkit::TextField::Property::TEXT, "exemplary_text" ); DALI_TEST_EQUALS( x->GetText( 0, 9 ), "exemplary", TEST_LOCATION ); + + Dali::Property::Map hiddenInputSettings; + hiddenInputSettings[ Toolkit::HiddenInput::Property::MODE ] = Toolkit::HiddenInput::Mode::HIDE_ALL; + + field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings ); + + DALI_TEST_EQUALS( x->GetName(), "", TEST_LOCATION ); + DALI_TEST_EQUALS( x->GetText( 0, 9 ), "*********", TEST_LOCATION ); + + hiddenInputSettings[ Toolkit::HiddenInput::Property::SUBSTITUTE_CHARACTER ] = 0x23; + field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings ); + + DALI_TEST_EQUALS( x->GetName(), "", TEST_LOCATION ); + DALI_TEST_EQUALS( x->GetText( 0, 9 ), "#########", TEST_LOCATION ); } END_TEST; @@ -294,6 +364,16 @@ int utcDaliAccessibilityTextFieldGetTextAtOffset(void) DALI_TEST_EQUALS( range.content, " test sentence", TEST_LOCATION ); DALI_TEST_EQUALS( range.startOffset, 25, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 39, TEST_LOCATION ); + + Dali::Property::Map hiddenInputSettings; + hiddenInputSettings[ Toolkit::HiddenInput::Property::MODE ] = Toolkit::HiddenInput::Mode::HIDE_ALL; + hiddenInputSettings[ Toolkit::HiddenInput::Property::SUBSTITUTE_CHARACTER ] = 0x23; + field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings ); + range = x->GetTextAtOffset( 8, Dali::Accessibility::TextBoundary::LINE ); + DALI_TEST_EQUALS( range.content, "", TEST_LOCATION ); + DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); + } END_TEST; @@ -321,6 +401,15 @@ int utcDaliAccessibilityTextFieldGetSetRangeOfSelection(void) DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION ); DALI_TEST_EQUALS( range.content, "plary", TEST_LOCATION ); + + Dali::Property::Map hiddenInputSettings; + hiddenInputSettings[ Toolkit::HiddenInput::Property::MODE ] = Toolkit::HiddenInput::Mode::HIDE_ALL; + field.SetProperty( Toolkit::TextField::Property::HIDDEN_INPUT_SETTINGS, hiddenInputSettings ); + + range = x->GetRangeOfSelection( 0 ); + DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION ); + DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION ); + DALI_TEST_EQUALS( range.content, "*****", TEST_LOCATION ); } END_TEST; @@ -354,6 +443,59 @@ int utcDaliAccessibilityTextFieldRemoveSelection(void) END_TEST; } +int utcDaliAccessibilityTextFieldGetRangeExtents(void) +{ + ToolkitTestApplication application; + + auto field = Dali::Toolkit::TextField::New(); + auto q = Dali::Accessibility::Accessible::Get( field ); + auto x = dynamic_cast< Dali::Accessibility::Text* >( q ); + DALI_TEST_CHECK( x ); + + if( x ) + { + auto rangeExtents = x->GetRangeExtents( 0, 0, Dali::Accessibility::CoordinateType::WINDOW ); + DALI_TEST_EQUALS( (int)rangeExtents.x, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.y, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.width, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.height, 0, TEST_LOCATION ); + + application.GetScene().Add( field ); + + field.SetProperty( Toolkit::TextField::Property::POINT_SIZE, 7.f ); + field.SetProperty( Actor::Property::SIZE, Vector2(200.f, 200.f) ); + field.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + field.SetProperty( Toolkit::TextField::Property::TEXT, "text field test sentence" ); + + // Avoid a crash when core load gl resources. + application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE); + + // Render and notify + application.SendNotification(); + application.Render(); + + auto characterCount = x->GetCharacterCount(); + rangeExtents = x->GetRangeExtents( 0, characterCount, Dali::Accessibility::CoordinateType::WINDOW ); + + Vector positionList = Toolkit::DevelTextField::GetTextPosition(field, 0, characterCount); + Vector sizeList = Toolkit::DevelTextField::GetTextSize(field, 0, characterCount); + + DALI_TEST_EQUALS(positionList.Size() == sizeList.Size(), true, TEST_LOCATION); + + unsigned int sizeListSize = sizeList.Size(); + for(unsigned int i = 0; i < sizeListSize; i++) + { + DALI_TEST_EQUALS((int)positionList[i].x >= rangeExtents.x, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)positionList[i].y >= rangeExtents.y, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)sizeList[i].x <= rangeExtents.width, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)sizeList[i].y <= rangeExtents.height, true, TEST_LOCATION); + } + } + + END_TEST; +} + int utcDaliAccessibilityTextLabelGetName(void) { ToolkitTestApplication application; @@ -484,3 +626,57 @@ int utcDaliAccessibilityTextLabelRemoveSelection( void ) END_TEST; } + +int utcDaliAccessibilityTextLabelGetRangeExtents(void) +{ + ToolkitTestApplication application; + + auto label = Dali::Toolkit::TextLabel::New(); + auto q = Dali::Accessibility::Accessible::Get( label ); + auto x = dynamic_cast< Dali::Accessibility::Text* >( q ); + DALI_TEST_CHECK( x ); + + if( x ) + { + auto rangeExtents = x->GetRangeExtents( 0, 0, Dali::Accessibility::CoordinateType::WINDOW ); + DALI_TEST_EQUALS( (int)rangeExtents.x, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.y, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.width, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( (int)rangeExtents.height, 0, TEST_LOCATION ); + + application.GetScene().Add( label ); + + label.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, 7.f ); + label.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true ); + label.SetProperty( Actor::Property::SIZE, Vector2(200.f, 200.f) ); + label.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + label.SetProperty( Toolkit::TextLabel::Property::TEXT, "text label\n test sentence" ); + + // Avoid a crash when core load gl resources. + application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE); + + // Render and notify + application.SendNotification(); + application.Render(); + + auto characterCount = x->GetCharacterCount(); + rangeExtents = x->GetRangeExtents( 0, characterCount, Dali::Accessibility::CoordinateType::WINDOW ); + + Vector positionList = Toolkit::DevelTextLabel::GetTextPosition(label, 0, characterCount); + Vector sizeList = Toolkit::DevelTextLabel::GetTextSize(label, 0, characterCount); + + DALI_TEST_EQUALS(positionList.Size() == sizeList.Size(), true, TEST_LOCATION); + + unsigned int sizeListSize = sizeList.Size(); + for(unsigned int i = 0; i < sizeListSize; i++) + { + DALI_TEST_EQUALS((int)positionList[i].x >= rangeExtents.x, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)positionList[i].y >= rangeExtents.y, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)sizeList[i].x <= rangeExtents.width, true, TEST_LOCATION); + DALI_TEST_EQUALS((int)sizeList[i].y <= rangeExtents.height, true, TEST_LOCATION); + } + } + + END_TEST; +}