X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Accessibility-Controls.cpp;h=df21268c55d83b036571de789266d5ca473d6a22;hb=e443d5fbefaabaf421aebf83a0350ea98380a4eb;hp=43c3707abaa6193a9294fdb17f1f4ac41be9b9af;hpb=cb36eef8199cd838f5123efc500106c52bbc4d98;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls.cpp index 43c3707..df21268 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls.cpp @@ -4,22 +4,29 @@ #include #include -#include +#include +#include +#include +#include +#include +#include +#include -using namespace Dali::Toolkit; +#include -//using DBusWrapper = Dali::Accessibility::DBusWrapper; // FIXME +using namespace Dali::Toolkit; void utc_dali_accessibility_controls_startup(void) { test_return_value = TET_UNDEF; + DBusWrapper::Install(std::unique_ptr(new TestDBusWrapper)); } void utc_dali_accessibility_controls_cleanup(void) { test_return_value = TET_PASS; //DBusWrapper::Install({}) is a de-install - //DBusWrapper::Install({}); // FIXME + DBusWrapper::Install({}); } int UtcDaliControlPropertyAccessibilityTranslationDomain(void) @@ -29,7 +36,7 @@ int UtcDaliControlPropertyAccessibilityTranslationDomain(void) auto control = Control::New(); auto accessibility_translation_domain = DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN; - DALI_TEST_EQUALS( Property::NONE , control.GetProperty( accessibility_translation_domain ).GetType(), TEST_LOCATION ); + DALI_TEST_EQUALS("", control.GetProperty(accessibility_translation_domain), TEST_LOCATION); control.SetProperty( accessibility_translation_domain, "translation_domain_test_1" ); DALI_TEST_EQUALS( "translation_domain_test_1" , control.GetProperty( accessibility_translation_domain ).Get< std::string >(), TEST_LOCATION ); @@ -97,6 +104,9 @@ int UtcDaliAccessibilityPushButtonStates(void) Dali::Accessibility::TestEnableSC( true ); + /* add to scene and remove from scene to touch AccessibilityDeregister */ + application.GetScene().Add( pushbutton ); + auto states = accessible->GetStates(); DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), false, TEST_LOCATION ); @@ -107,6 +117,9 @@ int UtcDaliAccessibilityPushButtonStates(void) states = accessible->GetStates(); DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), true, TEST_LOCATION ); + /* add to scene and remove from scene to touch AccessibilityDeregister */ + application.GetScene().Remove( pushbutton ); + Dali::Accessibility::TestEnableSC( false ); END_TEST; @@ -236,30 +249,72 @@ int UtcDaliAccessibilityTextSelectionConstructor(void) #include int UtcDaliAccessibilityManager(void) { + using attr = Toolkit::AccessibilityManager::AccessibilityAttribute; + ToolkitTestApplication application; + Dali::Accessibility::TestEnableSC(true); + auto accessmanager = new Dali::Toolkit::Internal::AccessibilityManager; - auto actor = Dali::Actor::New(); - - auto str = accessmanager->GetAccessibilityAttribute( actor, Toolkit::AccessibilityManager::AccessibilityAttribute::ACCESSIBILITY_LABEL ); - DALI_TEST_EQUALS( str, "", TEST_LOCATION ); - DALI_TEST_EQUALS( accessmanager->GetFocusOrder( actor ), 0, TEST_LOCATION ); - DALI_TEST_EQUALS( accessmanager->GenerateNewFocusOrder(), 0, TEST_LOCATION ); - accessmanager->GetActorByFocusOrder( 0 ); - accessmanager->GetCurrentFocusActor(); + auto actor = Control::New(); + + const std::string name = "Name"; + const std::string descr = "Description"; + + accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL, name); + DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL), name, TEST_LOCATION ); + DALI_TEST_EQUALS( actor.GetProperty(DevelControl::Property::ACCESSIBILITY_NAME), name, TEST_LOCATION ); + + accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT, "Whatever"); + DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT), "", TEST_LOCATION ); + + accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE, "Whatever"); + DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE), "", TEST_LOCATION ); + + accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT, descr); + DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT), descr, TEST_LOCATION ); + DALI_TEST_EQUALS( actor.GetProperty(DevelControl::Property::ACCESSIBILITY_DESCRIPTION), descr, TEST_LOCATION ); + + DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( accessmanager->GenerateNewFocusOrder(), 1, TEST_LOCATION ); + + accessmanager->SetFocusOrder({}, 0); + accessmanager->SetFocusOrder(Control::New(), 1); + accessmanager->SetFocusOrder(actor, 2); + accessmanager->SetFocusOrder(Control::New(), 3); + + DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 2, TEST_LOCATION ); + DALI_TEST_EQUALS( accessmanager->GetActorByFocusOrder(2), actor, TEST_LOCATION ); + + accessmanager->SetCurrentFocusActor(actor); + DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION ); + DALI_TEST_EQUALS( accessmanager->GetCurrentFocusOrder(), 2, TEST_LOCATION ); + + accessmanager->MoveFocusForward(); + accessmanager->MoveFocusBackward(); + DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION ); + accessmanager->SetCurrentFocusActor({}); + + accessmanager->Reset(); + accessmanager->MoveFocusBackward(); + accessmanager->MoveFocusForward(); + accessmanager->GetCurrentFocusGroup(); - DALI_TEST_EQUALS( accessmanager->GetCurrentFocusOrder(), 0, TEST_LOCATION ); - DALI_TEST_EQUALS( accessmanager->MoveFocusForward(), false, TEST_LOCATION ); - DALI_TEST_EQUALS( accessmanager->MoveFocusBackward(), false, TEST_LOCATION ); - DALI_TEST_EQUALS( accessmanager->IsFocusGroup( actor ), false, TEST_LOCATION ); - accessmanager->GetFocusGroup( actor ); + DALI_TEST_EQUALS( accessmanager->IsFocusGroup(actor), false, TEST_LOCATION ); + accessmanager->GetFocusGroup(actor); + + DALI_TEST_EQUALS( accessmanager->GetGroupMode(), false, TEST_LOCATION ); + DALI_TEST_EQUALS( accessmanager->GetWrapMode(), true, TEST_LOCATION ); + auto vector = accessmanager->GetReadPosition(); DALI_TEST_EQUALS( vector.x, 0.0f, TEST_LOCATION ); DALI_TEST_EQUALS( vector.y, 0.0f, TEST_LOCATION ); - DALI_TEST_EQUALS( accessmanager->GetGroupMode(), false, TEST_LOCATION ); - DALI_TEST_EQUALS( accessmanager->GetWrapMode(), false, TEST_LOCATION ); + + accessmanager->SetFocusIndicatorActor(Dali::Actor{}); accessmanager->GetFocusIndicatorActor(); + Dali::Accessibility::TestEnableSC(false); + END_TEST; } @@ -467,6 +522,39 @@ int UtcDaliAccessibilityBloomViewConstructor(void) } #include +#include +int UtcDaliAccessibilityTextAnchor(void) +{ + ToolkitTestApplication application; + + auto textanchor = TextAnchor::New(); + DALI_TEST_CHECK( textanchor ); + + auto textlabel = TextLabel::New(); + DALI_TEST_CHECK( textlabel ); + + Dali::Accessibility::TestEnableSC( true ); + + textlabel.Add(textanchor); + auto accessible = Dali::Accessibility::Accessible::Get( textanchor ); + DALI_TEST_CHECK( accessible ); + auto hyperlink = dynamic_cast< Dali::Accessibility::Hyperlink* >( accessible ); + DALI_TEST_CHECK( hyperlink ); + textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "https://www.tizen.org" ); + DALI_TEST_EQUALS( hyperlink->IsValid(), true, TEST_LOCATION ); + auto action = dynamic_cast( accessible ); + // activation of valid hyperlink + DALI_TEST_CHECK( action->DoAction( "accessibilityActivated" ) ); + // making hyperlink invalid + textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "" ); + DALI_TEST_EQUALS( hyperlink->IsValid(), false, TEST_LOCATION ); + DALI_TEST_CHECK( !action->DoAction( "accessibilityActivated" ) ); + + Dali::Accessibility::TestEnableSC( false ); + + END_TEST; +} + int UtcDaliAccessibilityTextField(void) { ToolkitTestApplication application; @@ -491,9 +579,9 @@ int UtcDaliAccessibilityTextField(void) auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible ); DALI_TEST_CHECK( text ); DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetCaretOffset(100), false, TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetCaretOffset(2), true, TEST_LOCATION ); - DALI_TEST_EQUALS( text->GetCaretOffset(), 2, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION ); + DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION ); auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible ); DALI_TEST_CHECK( editabletext ); @@ -503,13 +591,65 @@ int UtcDaliAccessibilityTextField(void) DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION ); DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION ); - auto range = text->GetSelection( 1 ); + auto range = text->GetRangeOfSelection( 1 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.content, "", TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION ); DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION ); + DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION); + + auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible ); + DALI_TEST_CHECK( hypertext ); + // text without the anchors markup and ENABLE_MARKUP property set (by default) to false + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION ); + // text with the anchors markup and ENABLE_MARKUP property set (by default) to false + textfield.SetProperty( Toolkit::TextField::Property::TEXT, "12345anchor112345veryveryveryveryveryveryveryverylonganchor212345anchor312345" ); + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION ); + // text with the anchors markup and ENABLE_MARKUP property set to true + textfield.SetProperty( Toolkit::TextField::Property::ENABLE_MARKUP, true); + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + auto hyperlink = hypertext->GetLink( 0 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION ); + auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 ); + DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION ); + hyperlink = hypertext->GetLink( 1 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION ); + hyperlink = hypertext->GetLink( 2 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION ); + Dali::Accessibility::TestEnableSC( false ); END_TEST; @@ -540,9 +680,9 @@ int UtcDaliAccessibilityTextEditor(void) auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible ); DALI_TEST_CHECK( text ); DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetCaretOffset(100), false, TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetCaretOffset(2), true, TEST_LOCATION ); - DALI_TEST_EQUALS( text->GetCaretOffset(), 2, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION ); + DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION ); auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible ); DALI_TEST_CHECK( editabletext ); @@ -552,13 +692,65 @@ int UtcDaliAccessibilityTextEditor(void) DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION ); DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION ); - auto range = text->GetSelection( 1 ); + auto range = text->GetRangeOfSelection( 1 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.content, "", TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION ); DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION ); + DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION); + + auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible ); + DALI_TEST_CHECK( hypertext ); + // text without the anchors markup and ENABLE_MARKUP property set (by default) to false + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION ); + // text with the anchors markup and ENABLE_MARKUP property set (by default) to false + texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "12345anchor112345veryveryveryveryveryveryveryverylonganchor212345anchor312345" ); + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION ); + // text with the anchors markup and ENABLE_MARKUP property set to true + texteditor.SetProperty( Toolkit::TextEditor::Property::ENABLE_MARKUP, true); + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + auto hyperlink = hypertext->GetLink( 0 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION ); + auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 ); + DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION ); + hyperlink = hypertext->GetLink( 1 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION ); + hyperlink = hypertext->GetLink( 2 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION ); + Dali::Accessibility::TestEnableSC( false ); END_TEST; @@ -577,7 +769,7 @@ int UtcDaliAccessibilityTextLabel(void) auto accessible = Dali::Accessibility::Accessible::Get( textlabel ); DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION ); + DALI_TEST_EQUALS( accessible->GetName(), "test", TEST_LOCATION ); DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION ); Dali::Accessibility::TestEnableSC( true ); @@ -587,16 +779,61 @@ int UtcDaliAccessibilityTextLabel(void) DALI_TEST_CHECK( text ); DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION ); DALI_TEST_EQUALS( text->GetText( 0, 4 ), "test", TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetCaretOffset(0), false, TEST_LOCATION ); - DALI_TEST_EQUALS( text->GetCaretOffset(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetCursorOffset(0), false, TEST_LOCATION ); + DALI_TEST_EQUALS( text->GetCursorOffset(), 0, TEST_LOCATION ); - auto range = text->GetSelection( 1 ); + auto range = text->GetRangeOfSelection( 1 ); DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION ); DALI_TEST_EQUALS( range.content, "", TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION ); + DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION ); DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION ); + auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible ); + DALI_TEST_CHECK( hypertext ); + // text without the anchors markup and ENABLE_MARKUP property set (by default) to false + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION ); + // text with the anchors markup and ENABLE_MARKUP property set (by default) to false + textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "12345anchor112345veryveryveryveryveryveryveryverylonganchor212345anchor312345" ); + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION ); + // text with the anchors markup and ENABLE_MARKUP property set to true + textlabel.SetProperty( Toolkit::TextLabel::Property::ENABLE_MARKUP, true); + DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION ); + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index + DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index + DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION ); + auto hyperlink = hypertext->GetLink( 0 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION ); + auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 ); + DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION ); + hyperlink = hypertext->GetLink( 1 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION ); + hyperlink = hypertext->GetLink( 2 ); + DALI_TEST_CHECK ( hyperlink ); + DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION ); + DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION ); + Dali::Accessibility::TestEnableSC( false ); END_TEST;