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=4764ce1dc9edc7c08766e356c839278204369d73;hp=7bc4fe1549b69fee97b39f69d6f22728b97cdf3d;hpb=20abe349f228817dbaaa95609373896a3cabe921;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 7bc4fe1..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 @@ -141,7 +144,7 @@ int utcDaliAccessibilityTextEditorGetTextAtOffset(void) END_TEST; } -int utcDaliAccessibilityTextEditorGetSetSelection(void) +int utcDaliAccessibilityTextEditorGetSetRangeOfSelection(void) { ToolkitTestApplication application; @@ -151,14 +154,14 @@ int utcDaliAccessibilityTextEditorGetSetSelection(void) DALI_TEST_CHECK( x ); if( x ) { - auto range = x->GetSelection( 0 ); + auto range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.content, "", TEST_LOCATION ); - x->SetSelection( 0, 4, 9 ); + x->SetRangeOfSelection( 0, 4, 9 ); editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" ); - range = x->GetSelection( 0 ); + range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION ); @@ -178,17 +181,17 @@ int utcDaliAccessibilityTextEditorRemoveSelection(void) DALI_TEST_CHECK( x ); if( x ) { - auto range = x->GetSelection( 0 ); + auto range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); - x->SetSelection( 0, 4, 9 ); - range = x->GetSelection( 0 ); + x->SetRangeOfSelection( 0, 4, 9 ); + range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION ); x->RemoveSelection( 0 ); - range = x->GetSelection( 0 ); + range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); } @@ -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,12 +364,22 @@ 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; } -int utcDaliAccessibilityTextFieldGetSetSelection(void) +int utcDaliAccessibilityTextFieldGetSetRangeOfSelection(void) { ToolkitTestApplication application; @@ -309,18 +389,27 @@ int utcDaliAccessibilityTextFieldGetSetSelection(void) DALI_TEST_CHECK( x ); if( x ) { - auto range = x->GetSelection( 0 ); + auto range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.content, "", TEST_LOCATION ); - x->SetSelection( 0, 4, 9 ); + x->SetRangeOfSelection( 0, 4, 9 ); field.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" ); - range = x->GetSelection( 0 ); + 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, "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; @@ -336,17 +425,17 @@ int utcDaliAccessibilityTextFieldRemoveSelection(void) DALI_TEST_CHECK( x ); if( x ) { - auto range = x->GetSelection( 0 ); + auto range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); - x->SetSelection( 0, 4, 9 ); - range = x->GetSelection( 0 ); + x->SetRangeOfSelection( 0, 4, 9 ); + range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION ); x->RemoveSelection( 0 ); - range = x->GetSelection( 0 ); + range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); } @@ -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; @@ -467,20 +609,74 @@ int utcDaliAccessibilityTextLabelRemoveSelection( void ) DALI_TEST_CHECK( x ); if( x ) { - auto range = x->GetSelection( 0 ); + auto range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); - x->SetSelection( 0, 4, 9 ); - range = x->GetSelection( 0 ); + x->SetRangeOfSelection( 0, 4, 9 ); + range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION ); x->RemoveSelection( 0 ); - range = x->GetSelection( 0 ); + range = x->GetRangeOfSelection( 0 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); } 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; +}