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-Accessibility-Controls.cpp;h=8b543400741607c00ba176e1b0ada252c067244f;hp=9243a0b59ee1bd88dcb78420ac784e43d5da15af;hb=HEAD;hpb=646440beeb663fc5efcccadeba73dd46016ed1b3 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 9243a0b..8b54340 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 @@ -1,10 +1,17 @@ -#include #include +#include #include +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include #include @@ -23,6 +30,107 @@ void utc_dali_accessibility_controls_cleanup(void) DBusWrapper::Install({}); } +int UtcDaliControlAccessibileGet01(void) +{ + ToolkitTestApplication application; + + auto control = Control::New(); + auto accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(control)); + DALI_TEST_CHECK(accessible); + + END_TEST; +} + +int UtcDaliControlAccessibileGet02(void) +{ + ToolkitTestApplication application; + + auto control = Control::New(); + + // Default is true. + DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION); + DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION); + + DevelControl::EnableCreateAccessible(control, false); + DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), false, TEST_LOCATION); + auto accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(control)); + + // Check that we don't create accessible yet. + DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION); + DALI_TEST_CHECK(!accessible); + + DevelControl::EnableCreateAccessible(control, true); + DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION); + accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(control)); + DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), true, TEST_LOCATION); + DALI_TEST_CHECK(accessible); + + DevelControl::EnableCreateAccessible(control, false); + DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), false, TEST_LOCATION); + accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(control)); + + // Check that we got created accessible well. + DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), true, TEST_LOCATION); + DALI_TEST_CHECK(accessible); + + END_TEST; +} + +int UtcDaliControlAccessibileBlockAccessibleCreation(void) +{ + ToolkitTestApplication application; + + auto control = Control::New(); + + // Default is true. + DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION); + DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION); + + DevelControl::EnableCreateAccessible(control, false); + DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), false, TEST_LOCATION); + + try + { + // Should not throw exception even if accessible is not created. + DALI_TEST_EQUALS(DevelControl::ClearAccessibilityHighlight(control), false, TEST_LOCATION); + DALI_TEST_EQUALS(DevelControl::GrabAccessibilityHighlight(control), false, TEST_LOCATION); + + DevelControl::GetAccessibilityStates(control); + DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, false); + DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, true); + DALI_TEST_CHECK(true); + } + catch(...) + { + DALI_TEST_CHECK(false); + } + + // Check that we don't create accessible yet. + DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION); + + // Dummy function call - for line coverage + DevelControl::EnableCreateAccessible(control, true); + DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION); + DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION); + + try + { + // Should not throw exception even if accessible is not created. + DevelControl::ClearAccessibilityHighlight(control); + DevelControl::GrabAccessibilityHighlight(control); + DevelControl::GetAccessibilityStates(control); + DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, false); + DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, true); + DALI_TEST_CHECK(true); + } + catch(...) + { + DALI_TEST_CHECK(false); + } + + END_TEST; +} + int UtcDaliControlPropertyAccessibilityTranslationDomain(void) { ToolkitTestApplication application; @@ -30,13 +138,13 @@ 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 ); + control.SetProperty(accessibility_translation_domain, "translation_domain_test_1"); + DALI_TEST_EQUALS("translation_domain_test_1", control.GetProperty(accessibility_translation_domain).Get(), TEST_LOCATION); - control.SetProperty( accessibility_translation_domain, "translation_domain_test_2" ); - DALI_TEST_EQUALS( "translation_domain_test_2" , control.GetProperty( accessibility_translation_domain ).Get< std::string >(), TEST_LOCATION ); + control.SetProperty(accessibility_translation_domain, "translation_domain_test_2"); + DALI_TEST_EQUALS("translation_domain_test_2", control.GetProperty(accessibility_translation_domain).Get(), TEST_LOCATION); END_TEST; } @@ -46,13 +154,13 @@ int UtcDaliControlPropertyAccessibilityTranslationDomain(void) int UtcDaliControlAccessibilityHighlight(void) { ToolkitTestApplication application; - auto controla = Control::New(); - auto controlb = Control::New(); + auto controla = Control::New(); + auto controlb = Control::New(); - DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION ); - DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION ); - DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION ); - DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION ); + DALI_TEST_EQUALS(false, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION); + DALI_TEST_EQUALS(false, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION); + DALI_TEST_EQUALS(false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION); + DALI_TEST_EQUALS(false, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION); END_TEST; } @@ -63,11 +171,11 @@ int UtcDaliAccessibilityToolBarConstructor(void) ToolkitTestApplication application; auto toolbar = ToolBar::New(); - DALI_TEST_CHECK( toolbar ); + DALI_TEST_CHECK(toolbar); - auto accessible = Dali::Accessibility::Accessible::Get( toolbar ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(toolbar); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION); END_TEST; } @@ -77,11 +185,11 @@ int UtcDaliAccessibilityPushButtonConstructor(void) ToolkitTestApplication application; auto pushbutton = PushButton::New(); - DALI_TEST_CHECK( pushbutton ); + DALI_TEST_CHECK(pushbutton); - auto accessible = Dali::Accessibility::Accessible::Get( pushbutton ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PUSH_BUTTON, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(pushbutton); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::PUSH_BUTTON, TEST_LOCATION); END_TEST; } @@ -91,30 +199,40 @@ int UtcDaliAccessibilityPushButtonStates(void) ToolkitTestApplication application; auto pushbutton = PushButton::New(); - DALI_TEST_CHECK( pushbutton ); + DALI_TEST_CHECK(pushbutton); - auto accessible = Dali::Accessibility::Accessible::Get( pushbutton ); - DALI_TEST_CHECK( accessible ); + auto accessible = Dali::Accessibility::Accessible::Get(pushbutton); + DALI_TEST_CHECK(accessible); - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); /* add to scene and remove from scene to touch AccessibilityDeregister */ - application.GetScene().Add( pushbutton ); + application.GetScene().Add(pushbutton); auto states = accessible->GetStates(); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), false, TEST_LOCATION ); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::PRESSED]), false, TEST_LOCATION); // auto button = dynamic_cast( accessible ) ; - pushbutton.SetProperty( Toolkit::Button::Property::TOGGLABLE, true ); - pushbutton.SetProperty( Toolkit::Button::Property::SELECTED, true ); + pushbutton.SetProperty(Toolkit::Button::Property::TOGGLABLE, true); + pushbutton.SetProperty(Toolkit::Button::Property::SELECTED, true); states = accessible->GetStates(); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), true, TEST_LOCATION ); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::PRESSED]), true, TEST_LOCATION); + + // Grab highlite now. + auto i = dynamic_cast(accessible); + DALI_TEST_CHECK(i); + i->GrabHighlight(); + + pushbutton.SetProperty(Toolkit::Button::Property::SELECTED, false); + + states = accessible->GetStates(); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::PRESSED]), false, TEST_LOCATION); /* add to scene and remove from scene to touch AccessibilityDeregister */ - application.GetScene().Remove( pushbutton ); + application.GetScene().Remove(pushbutton); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -125,11 +243,56 @@ int UtcDaliAccessibilityToggleButtonConstructor(void) ToolkitTestApplication application; auto togglebutton = ToggleButton::New(); - DALI_TEST_CHECK( togglebutton ); + DALI_TEST_CHECK(togglebutton); + + auto accessible = Dali::Accessibility::Accessible::Get(togglebutton); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TOGGLE_BUTTON, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliAccessibilityToggleButtonStates(void) +{ + ToolkitTestApplication application; + + auto togglebutton = ToggleButton::New(); + DALI_TEST_CHECK(togglebutton); + + auto accessible = Dali::Accessibility::Accessible::Get(togglebutton); + DALI_TEST_CHECK(accessible); + + Dali::Accessibility::TestEnableSC(true); + + /* add to scene and remove from scene to touch AccessibilityDeregister */ + application.GetScene().Add(togglebutton); + + auto states = accessible->GetStates(); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), false, TEST_LOCATION); + + // auto button = dynamic_cast( accessible ) ; + togglebutton.SetProperty(Toolkit::Button::Property::TOGGLABLE, true); + togglebutton.SetProperty(Toolkit::Button::Property::SELECTED, true); + + states = accessible->GetStates(); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), true, TEST_LOCATION); + + // Grab highlite now. + auto i = dynamic_cast(accessible); + DALI_TEST_CHECK(i); + i->GrabHighlight(); + + togglebutton.SetProperty(Toolkit::Button::Property::SELECTED, false); + + states = accessible->GetStates(); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), false, TEST_LOCATION); + + /* add to scene and remove from scene to touch AccessibilityDeregister */ + application.GetScene().Remove(togglebutton); - auto accessible = Dali::Accessibility::Accessible::Get( togglebutton ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOGGLE_BUTTON, TEST_LOCATION ); + Dali::Accessibility::TestEnableSC(false); + + END_TEST; END_TEST; } @@ -139,12 +302,12 @@ int UtcDaliAccessibilityTextSelectionPopupConstructor(void) { ToolkitTestApplication application; - auto textselectionpopup = TextSelectionPopup::New( NULL ); - DALI_TEST_CHECK( textselectionpopup ); + auto textselectionpopup = TextSelectionPopup::New(NULL); + DALI_TEST_CHECK(textselectionpopup); - auto accessible = Dali::Accessibility::Accessible::Get( textselectionpopup ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(textselectionpopup); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION); END_TEST; } @@ -154,11 +317,11 @@ int UtcDaliAccessibilityAlignmentConstructor(void) ToolkitTestApplication application; auto alignment = Alignment::New(); - DALI_TEST_CHECK( alignment ); + DALI_TEST_CHECK(alignment); - auto accessible = Dali::Accessibility::Accessible::Get( alignment ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(alignment); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } @@ -168,22 +331,36 @@ int UtcDaliAccessibilityRadioButtonStates(void) ToolkitTestApplication application; auto radiobutton = RadioButton::New(); - DALI_TEST_CHECK( radiobutton ); + DALI_TEST_CHECK(radiobutton); - auto accessible = Dali::Accessibility::Accessible::Get( radiobutton ); - DALI_TEST_CHECK( accessible ); + auto accessible = Dali::Accessibility::Accessible::Get(radiobutton); + DALI_TEST_CHECK(accessible); + + Dali::Accessibility::TestEnableSC(true); - Dali::Accessibility::TestEnableSC( true ); + application.GetScene().Add(radiobutton); auto states = accessible->GetStates(); - DALI_TEST_CHECK( states ); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION ); - radiobutton.SetProperty( Toolkit::RadioButton::Property::SELECTED, true ); + DALI_TEST_CHECK(states); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), false, TEST_LOCATION); + radiobutton.SetProperty(Toolkit::RadioButton::Property::SELECTED, true); states = accessible->GetStates(); - DALI_TEST_CHECK( states ); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION ); + DALI_TEST_CHECK(states); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), true, TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + // Grab highlite now. + auto i = dynamic_cast(accessible); + DALI_TEST_CHECK(i); + i->GrabHighlight(); + + radiobutton.SetProperty(Toolkit::RadioButton::Property::SELECTED, false); + states = accessible->GetStates(); + DALI_TEST_CHECK(states); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), false, TEST_LOCATION); + + application.GetScene().Remove(radiobutton); + + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -193,11 +370,11 @@ int UtcDaliAccessibilityFlexContainerConstructor(void) ToolkitTestApplication application; auto flexcontainer = FlexContainer::New(); - DALI_TEST_CHECK( flexcontainer ); + DALI_TEST_CHECK(flexcontainer); - auto accessible = Dali::Accessibility::Accessible::Get( flexcontainer ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(flexcontainer); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } @@ -207,20 +384,33 @@ int UtcDaliAccessibilityCheckBoxButton(void) ToolkitTestApplication application; auto checkboxbutton = CheckBoxButton::New(); - DALI_TEST_CHECK( checkboxbutton ); + DALI_TEST_CHECK(checkboxbutton); + + auto accessible = Dali::Accessibility::Accessible::Get(checkboxbutton); + DALI_TEST_CHECK(accessible); - auto accessible = Dali::Accessibility::Accessible::Get( checkboxbutton ); - DALI_TEST_CHECK( accessible ); + Dali::Accessibility::TestEnableSC(true); - Dali::Accessibility::TestEnableSC( true ); + application.GetScene().Add(checkboxbutton); auto states = accessible->GetStates(); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION ); - checkboxbutton.SetProperty( Toolkit::CheckBoxButton::Property::SELECTED, true ); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), false, TEST_LOCATION); + checkboxbutton.SetProperty(Toolkit::CheckBoxButton::Property::SELECTED, true); states = accessible->GetStates(); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION ); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), true, TEST_LOCATION); + + // Grab highlite now. + auto i = dynamic_cast(accessible); + DALI_TEST_CHECK(i); + i->GrabHighlight(); + + checkboxbutton.SetProperty(Toolkit::CheckBoxButton::Property::SELECTED, false); + states = accessible->GetStates(); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::CHECKED]), false, TEST_LOCATION); + + application.GetScene().Remove(checkboxbutton); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -231,11 +421,11 @@ int UtcDaliAccessibilityTextSelectionConstructor(void) ToolkitTestApplication application; auto textselectiontoolbar = TextSelectionToolbar::New(); - DALI_TEST_CHECK( textselectiontoolbar ); + DALI_TEST_CHECK(textselectiontoolbar); - auto accessible = Dali::Accessibility::Accessible::Get( textselectiontoolbar ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(textselectiontoolbar); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION); END_TEST; } @@ -250,43 +440,43 @@ int UtcDaliAccessibilityManager(void) Dali::Accessibility::TestEnableSC(true); auto accessmanager = new Dali::Toolkit::Internal::AccessibilityManager; - auto actor = Control::New(); + auto actor = Control::New(); - const std::string name = "Name"; + 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 ); + 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 ); + 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 ); + 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->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 ); + 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 ); + 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 ); + 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 ); + DALI_TEST_EQUALS(accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION); accessmanager->SetCurrentFocusActor({}); accessmanager->Reset(); @@ -294,15 +484,15 @@ int UtcDaliAccessibilityManager(void) accessmanager->MoveFocusForward(); accessmanager->GetCurrentFocusGroup(); - DALI_TEST_EQUALS( accessmanager->IsFocusGroup(actor), false, TEST_LOCATION ); + 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 ); + 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(vector.x, 0.0f, TEST_LOCATION); + DALI_TEST_EQUALS(vector.y, 0.0f, TEST_LOCATION); accessmanager->SetFocusIndicatorActor(Dali::Actor{}); accessmanager->GetFocusIndicatorActor(); @@ -317,11 +507,11 @@ int UtcDaliAccessibilityModel3dViewConstructor(void) ToolkitTestApplication application; auto model3dview = Model3dView::New(); - DALI_TEST_CHECK( model3dview ); + DALI_TEST_CHECK(model3dview); - auto accessible = Dali::Accessibility::Accessible::Get( model3dview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(model3dview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION); END_TEST; } @@ -331,13 +521,13 @@ int UtcDaliAccessibilityEffectsViewConstructor(void) { ToolkitTestApplication application; - auto etype = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW; - auto effectsview = EffectsView::New( etype ); - DALI_TEST_CHECK( effectsview ); + auto etype = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW; + auto effectsview = EffectsView::New(etype); + DALI_TEST_CHECK(effectsview); - auto accessible = Dali::Accessibility::Accessible::Get( effectsview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(effectsview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } @@ -347,12 +537,12 @@ int UtcDaliAccessibilitySuperBlurViewConstructor(void) { ToolkitTestApplication application; - auto superblurview = SuperBlurView::New( 1 ); - DALI_TEST_CHECK( superblurview ); + auto superblurview = SuperBlurView::New(1); + DALI_TEST_CHECK(superblurview); - auto accessible = Dali::Accessibility::Accessible::Get( superblurview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(superblurview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } @@ -362,11 +552,11 @@ int UtcDaliAccessibilityImageViewConstructor(void) ToolkitTestApplication application; auto imageview = ImageView::New(); - DALI_TEST_CHECK( imageview ); + DALI_TEST_CHECK(imageview); - auto accessible = Dali::Accessibility::Accessible::Get( imageview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(imageview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION); END_TEST; } @@ -375,9 +565,8 @@ int UtcDaliAccessibilityImageViewConstructor(void) class TestPageFactory : public PageFactory { public: - - TestPageFactory( bool returnValidTexture = true ) - : mValidTexture( returnValidTexture ) + TestPageFactory(bool returnValidTexture = true) + : mValidTexture(returnValidTexture) { mTotalPageNumber = 100; } @@ -396,18 +585,18 @@ public: * @param[in] pageId The ID of the page to create. * @return An image, or an empty handle if the ID is out of range. */ - virtual Texture NewPage( unsigned int pageId ) + virtual Texture NewPage(unsigned int pageId) { - if( mValidTexture ) + if(mValidTexture) { - return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 ); + return Texture::New(Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100); } return Texture(); // empty handle } private: - unsigned int mTotalPageNumber; - bool mValidTexture; + unsigned int mTotalPageNumber; + bool mValidTexture; }; #include @@ -415,14 +604,14 @@ int UtcDaliAccessibilityPageTurnViewConstructor(void) { ToolkitTestApplication application; - auto testpagefactory = TestPageFactory(); - auto vector2 = Vector2( 1.0, 1.0 ); - auto pageturnlandscapeview = PageTurnLandscapeView::New( testpagefactory, vector2 ); - DALI_TEST_CHECK( pageturnlandscapeview ); + auto testpagefactory = TestPageFactory(); + auto vector2 = Vector2(1.0, 1.0); + auto pageturnlandscapeview = PageTurnLandscapeView::New(testpagefactory, vector2); + DALI_TEST_CHECK(pageturnlandscapeview); - auto accessible = Dali::Accessibility::Accessible::Get( pageturnlandscapeview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PAGE_TAB_LIST, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(pageturnlandscapeview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::PAGE_TAB_LIST, TEST_LOCATION); END_TEST; } @@ -432,11 +621,11 @@ int UtcDaliAccessibilityGaussianBlurViewConstructor(void) ToolkitTestApplication application; auto gaussianblurview = GaussianBlurView::New(); - DALI_TEST_CHECK( gaussianblurview ); + DALI_TEST_CHECK(gaussianblurview); - auto accessible = Dali::Accessibility::Accessible::Get( gaussianblurview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(gaussianblurview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } @@ -446,27 +635,27 @@ int UtcDaliAccessibilityShadowViewConstructor(void) ToolkitTestApplication application; auto shadowview = ShadowView::New(); - DALI_TEST_CHECK( shadowview ); + DALI_TEST_CHECK(shadowview); - auto accessible = Dali::Accessibility::Accessible::Get( shadowview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(shadowview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } -#include #include +#include int UtcDaliAccessibilityScrollableConstructor(void) { ToolkitTestApplication application; auto scrollview = ScrollView::New(); - DALI_TEST_CHECK( scrollview ); + DALI_TEST_CHECK(scrollview); - auto accessible = Dali::Accessibility::Accessible::Get( scrollview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::SCROLL_PANE, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(scrollview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::SCROLL_PANE, TEST_LOCATION); END_TEST; } @@ -477,11 +666,11 @@ int UtcDaliAccessibilityMagnifierConstructor(void) ToolkitTestApplication application; auto magnifier = Magnifier::New(); - DALI_TEST_CHECK( magnifier ); + DALI_TEST_CHECK(magnifier); - auto accessible = Dali::Accessibility::Accessible::Get( magnifier ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(magnifier); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } @@ -490,12 +679,12 @@ int UtcDaliAccessibilityTableViewConstructor(void) { ToolkitTestApplication application; - auto tableview = TableView::New( 10, 10 ); - DALI_TEST_CHECK( tableview ); + auto tableview = TableView::New(10, 10); + DALI_TEST_CHECK(tableview); - auto accessible = Dali::Accessibility::Accessible::Get( tableview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(tableview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION); END_TEST; } @@ -506,58 +695,101 @@ int UtcDaliAccessibilityBloomViewConstructor(void) ToolkitTestApplication application; auto bloomview = BloomView::New(); - DALI_TEST_CHECK( bloomview ); + DALI_TEST_CHECK(bloomview); - auto accessible = Dali::Accessibility::Accessible::Get( bloomview ); - DALI_TEST_CHECK( accessible ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION ); + auto accessible = Dali::Accessibility::Accessible::Get(bloomview); + DALI_TEST_CHECK(accessible); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION); END_TEST; } +#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(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; auto textfield = TextField::New(); - DALI_TEST_CHECK( textfield ); + DALI_TEST_CHECK(textfield); - textfield.SetProperty(Actor::Property::NAME, "test" ); - DALI_TEST_EQUALS( textfield.GetProperty(Actor::Property::NAME), "test", TEST_LOCATION ); + textfield.SetProperty(Actor::Property::NAME, "test"); + DALI_TEST_EQUALS(textfield.GetProperty(Actor::Property::NAME), "test", TEST_LOCATION); - auto accessible = Dali::Accessibility::Accessible::Get( textfield ); - DALI_TEST_CHECK( accessible ); + auto accessible = Dali::Accessibility::Accessible::Get(textfield); + DALI_TEST_CHECK(accessible); - DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION ); + DALI_TEST_EQUALS(accessible->GetName(), "", TEST_LOCATION); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION); auto states = accessible->GetStates(); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION ); - - Dali::Accessibility::TestEnableSC( true ); - - textfield.SetProperty( Toolkit::TextField::Property::TEXT, "test" ); - 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->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 ); - DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION ); - DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION ); - DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION ); - DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION ); - DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION ); - - 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->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION ); - DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION ); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::EDITABLE]), true, TEST_LOCATION); + + Dali::Accessibility::TestEnableSC(true); + + textfield.SetProperty(Toolkit::TextField::Property::TEXT, "test"); + auto text = dynamic_cast(accessible); + DALI_TEST_CHECK(text); + DALI_TEST_EQUALS(text->GetText(0, 10), "", 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(accessible); + DALI_TEST_CHECK(editabletext); + DALI_TEST_EQUALS(editabletext->CopyText(3, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->CopyText(1, 3), true, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->CutText(3, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->CutText(1, 3), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 1), "t", TEST_LOCATION); + + 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->SetRangeOfSelection(1, 0, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(text->RemoveSelection(1), false, TEST_LOCATION); + + // Insert into empty field + DALI_TEST_EQUALS(editabletext->SetTextContents(""), true, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->InsertText(1, "xyz"), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->InsertText(0, "abc"), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 3), "abc", TEST_LOCATION); + + // Append at end + DALI_TEST_EQUALS(editabletext->InsertText(3, "xyz"), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 6), "abcxyz", TEST_LOCATION); DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION); DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION); @@ -566,7 +798,52 @@ int UtcDaliAccessibilityTextField(void) DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION); DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + auto hypertext = dynamic_cast(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; } @@ -577,43 +854,53 @@ int UtcDaliAccessibilityTextEditor(void) ToolkitTestApplication application; auto texteditor = TextEditor::New(); - DALI_TEST_CHECK( texteditor ); + DALI_TEST_CHECK(texteditor); - texteditor.SetProperty(Actor::Property::NAME, "test" ); - DALI_TEST_EQUALS( texteditor.GetProperty(Actor::Property::NAME), "test", TEST_LOCATION ); + texteditor.SetProperty(Actor::Property::NAME, "test"); + DALI_TEST_EQUALS(texteditor.GetProperty(Actor::Property::NAME), "test", TEST_LOCATION); - auto accessible = Dali::Accessibility::Accessible::Get( texteditor ); - DALI_TEST_CHECK( accessible ); + auto accessible = Dali::Accessibility::Accessible::Get(texteditor); + DALI_TEST_CHECK(accessible); - DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION ); + DALI_TEST_EQUALS(accessible->GetName(), "", TEST_LOCATION); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION); auto states = accessible->GetStates(); - DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION ); - - Dali::Accessibility::TestEnableSC( true ); - - texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "test" ); - 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->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 ); - DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION ); - DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION ); - DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION ); - DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION ); - DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION ); - - 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->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION ); - DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION ); + DALI_TEST_EQUALS(static_cast(states[Accessibility::State::EDITABLE]), true, TEST_LOCATION); + + Dali::Accessibility::TestEnableSC(true); + + texteditor.SetProperty(Toolkit::TextEditor::Property::TEXT, "test"); + auto text = dynamic_cast(accessible); + DALI_TEST_CHECK(text); + DALI_TEST_EQUALS(text->GetText(0, 10), "", 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(accessible); + DALI_TEST_CHECK(editabletext); + DALI_TEST_EQUALS(editabletext->CopyText(3, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->CopyText(1, 3), true, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->CutText(3, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->CutText(1, 3), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 1), "t", TEST_LOCATION); + + 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->SetRangeOfSelection(1, 0, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(text->RemoveSelection(1), false, TEST_LOCATION); + + // Insert into empty field + DALI_TEST_EQUALS(editabletext->SetTextContents(""), true, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->InsertText(1, "xyz"), false, TEST_LOCATION); + DALI_TEST_EQUALS(editabletext->InsertText(0, "abc"), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 3), "abc", TEST_LOCATION); + + // Append at end + DALI_TEST_EQUALS(editabletext->InsertText(3, "xyz"), true, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetText(0, 6), "abcxyz", TEST_LOCATION); DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION); DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION); @@ -622,7 +909,52 @@ int UtcDaliAccessibilityTextEditor(void) DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION); DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + auto hypertext = dynamic_cast(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; } @@ -632,35 +964,80 @@ int UtcDaliAccessibilityTextLabel(void) ToolkitTestApplication application; auto textlabel = TextLabel::New(); - DALI_TEST_CHECK( textlabel ); + DALI_TEST_CHECK(textlabel); - textlabel.SetProperty(Actor::Property::NAME, "test" ); - DALI_TEST_EQUALS( textlabel.GetProperty(Actor::Property::NAME), "test", TEST_LOCATION ); + textlabel.SetProperty(Actor::Property::NAME, "test"); + DALI_TEST_EQUALS(textlabel.GetProperty(Actor::Property::NAME), "test", TEST_LOCATION); - auto accessible = Dali::Accessibility::Accessible::Get( textlabel ); - DALI_TEST_CHECK( accessible ); + auto accessible = Dali::Accessibility::Accessible::Get(textlabel); + DALI_TEST_CHECK(accessible); - DALI_TEST_EQUALS( accessible->GetName(), "test", TEST_LOCATION ); - DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION ); + DALI_TEST_EQUALS(accessible->GetName(), "test", TEST_LOCATION); + DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION); - Dali::Accessibility::TestEnableSC( true ); - - textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "test" ); - 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->GetText( 0, 4 ), "test", TEST_LOCATION ); - DALI_TEST_EQUALS( text->SetCursorOffset(0), false, TEST_LOCATION ); - DALI_TEST_EQUALS( text->GetCursorOffset(), 0, TEST_LOCATION ); + Dali::Accessibility::TestEnableSC(true); - 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->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION ); - DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION ); + textlabel.SetProperty(Toolkit::TextLabel::Property::TEXT, "test"); + auto text = dynamic_cast(accessible); + 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->SetCursorOffset(0), false, TEST_LOCATION); + DALI_TEST_EQUALS(text->GetCursorOffset(), 0, TEST_LOCATION); + + 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->SetRangeOfSelection(1, 0, 1), false, TEST_LOCATION); + DALI_TEST_EQUALS(text->RemoveSelection(1), false, TEST_LOCATION); + + auto hypertext = dynamic_cast(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 ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -671,12 +1048,12 @@ int UtcDaliAccessibilityNavigationViewConstructor(void) ToolkitTestApplication application; auto navigationview = NavigationView::New(); - DALI_TEST_CHECK( navigationview ); + DALI_TEST_CHECK(navigationview); - auto accessible = Dali::Accessibility::Accessible::Get( navigationview ); - DALI_TEST_CHECK( accessible ); + auto accessible = Dali::Accessibility::Accessible::Get(navigationview); + DALI_TEST_CHECK(accessible); - DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION ); + DALI_TEST_EQUALS(accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION); END_TEST; } @@ -686,12 +1063,12 @@ int UtcDaliAccessibilityVideoViewConstructor(void) ToolkitTestApplication application; auto videoview = VideoView::New(); - DALI_TEST_CHECK( videoview ); + DALI_TEST_CHECK(videoview); - auto accessible = Dali::Accessibility::Accessible::Get( videoview ); - DALI_TEST_CHECK( accessible ); + auto accessible = Dali::Accessibility::Accessible::Get(videoview); + DALI_TEST_CHECK(accessible); - DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION ); + DALI_TEST_EQUALS(accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION); END_TEST; }