1 #include <dali-toolkit-test-suite-utils.h>
2 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/accessibility-test-utils.h>
3 #include <dali-toolkit/dali-toolkit.h>
5 #include <dali-toolkit/devel-api/controls/control-devel.h>
6 #include <dali-toolkit/devel-api/controls/table-view/table-view.h>
7 #include <dali/devel-api/adaptor-framework/accessibility-bridge.h>
8 #include <dali/devel-api/atspi-interfaces/accessible.h>
9 #include <dali/devel-api/atspi-interfaces/action.h>
10 #include <dali/devel-api/atspi-interfaces/editable-text.h>
11 #include <dali/devel-api/atspi-interfaces/hyperlink.h>
12 #include <dali/devel-api/atspi-interfaces/hypertext.h>
13 #include <dali/devel-api/atspi-interfaces/text.h>
15 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
17 using namespace Dali::Toolkit;
19 void utc_dali_accessibility_controls_startup(void)
21 test_return_value = TET_UNDEF;
22 DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
25 void utc_dali_accessibility_controls_cleanup(void)
27 test_return_value = TET_PASS;
28 //DBusWrapper::Install({}) is a de-install
29 DBusWrapper::Install({});
32 int UtcDaliControlPropertyAccessibilityTranslationDomain(void)
34 ToolkitTestApplication application;
36 auto control = Control::New();
38 auto accessibility_translation_domain = DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN;
39 DALI_TEST_EQUALS("", control.GetProperty<std::string>(accessibility_translation_domain), TEST_LOCATION);
41 control.SetProperty( accessibility_translation_domain, "translation_domain_test_1" );
42 DALI_TEST_EQUALS( "translation_domain_test_1" , control.GetProperty( accessibility_translation_domain ).Get< std::string >(), TEST_LOCATION );
44 control.SetProperty( accessibility_translation_domain, "translation_domain_test_2" );
45 DALI_TEST_EQUALS( "translation_domain_test_2" , control.GetProperty( accessibility_translation_domain ).Get< std::string >(), TEST_LOCATION );
50 // This test shows that when the accessibility bridge is
51 // not up, there is no possibility to grab or clear highlight
52 int UtcDaliControlAccessibilityHighlight(void)
54 ToolkitTestApplication application;
55 auto controla = Control::New();
56 auto controlb = Control::New();
58 DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION );
59 DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION );
60 DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION );
61 DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION );
66 #include <dali-toolkit/devel-api/controls/tool-bar/tool-bar.h>
67 int UtcDaliAccessibilityToolBarConstructor(void)
69 ToolkitTestApplication application;
71 auto toolbar = ToolBar::New();
72 DALI_TEST_CHECK( toolbar );
74 auto accessible = Dali::Accessibility::Accessible::Get( toolbar );
75 DALI_TEST_CHECK( accessible );
76 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION );
81 int UtcDaliAccessibilityPushButtonConstructor(void)
83 ToolkitTestApplication application;
85 auto pushbutton = PushButton::New();
86 DALI_TEST_CHECK( pushbutton );
88 auto accessible = Dali::Accessibility::Accessible::Get( pushbutton );
89 DALI_TEST_CHECK( accessible );
90 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PUSH_BUTTON, TEST_LOCATION );
95 int UtcDaliAccessibilityPushButtonStates(void)
97 ToolkitTestApplication application;
99 auto pushbutton = PushButton::New();
100 DALI_TEST_CHECK( pushbutton );
102 auto accessible = Dali::Accessibility::Accessible::Get( pushbutton );
103 DALI_TEST_CHECK( accessible );
105 Dali::Accessibility::TestEnableSC( true );
107 /* add to scene and remove from scene to touch AccessibilityDeregister */
108 application.GetScene().Add( pushbutton );
110 auto states = accessible->GetStates();
111 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), false, TEST_LOCATION );
113 // auto button = dynamic_cast<Dali::Toolkit::Button* >( accessible ) ;
114 pushbutton.SetProperty( Toolkit::Button::Property::TOGGLABLE, true );
115 pushbutton.SetProperty( Toolkit::Button::Property::SELECTED, true );
117 states = accessible->GetStates();
118 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), true, TEST_LOCATION );
120 /* add to scene and remove from scene to touch AccessibilityDeregister */
121 application.GetScene().Remove( pushbutton );
123 Dali::Accessibility::TestEnableSC( false );
128 #include <dali-toolkit/devel-api/controls/buttons/toggle-button.h>
129 int UtcDaliAccessibilityToggleButtonConstructor(void)
131 ToolkitTestApplication application;
133 auto togglebutton = ToggleButton::New();
134 DALI_TEST_CHECK( togglebutton );
136 auto accessible = Dali::Accessibility::Accessible::Get( togglebutton );
137 DALI_TEST_CHECK( accessible );
138 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOGGLE_BUTTON, TEST_LOCATION );
143 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
144 int UtcDaliAccessibilityTextSelectionPopupConstructor(void)
146 ToolkitTestApplication application;
148 auto textselectionpopup = TextSelectionPopup::New( NULL );
149 DALI_TEST_CHECK( textselectionpopup );
151 auto accessible = Dali::Accessibility::Accessible::Get( textselectionpopup );
152 DALI_TEST_CHECK( accessible );
153 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION );
158 int UtcDaliAccessibilityAlignmentConstructor(void)
160 ToolkitTestApplication application;
162 auto alignment = Alignment::New();
163 DALI_TEST_CHECK( alignment );
165 auto accessible = Dali::Accessibility::Accessible::Get( alignment );
166 DALI_TEST_CHECK( accessible );
167 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
172 int UtcDaliAccessibilityRadioButtonStates(void)
174 ToolkitTestApplication application;
176 auto radiobutton = RadioButton::New();
177 DALI_TEST_CHECK( radiobutton );
179 auto accessible = Dali::Accessibility::Accessible::Get( radiobutton );
180 DALI_TEST_CHECK( accessible );
182 Dali::Accessibility::TestEnableSC( true );
184 auto states = accessible->GetStates();
185 DALI_TEST_CHECK( states );
186 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
187 radiobutton.SetProperty( Toolkit::RadioButton::Property::SELECTED, true );
188 states = accessible->GetStates();
189 DALI_TEST_CHECK( states );
190 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
192 Dali::Accessibility::TestEnableSC( false );
197 int UtcDaliAccessibilityFlexContainerConstructor(void)
199 ToolkitTestApplication application;
201 auto flexcontainer = FlexContainer::New();
202 DALI_TEST_CHECK( flexcontainer );
204 auto accessible = Dali::Accessibility::Accessible::Get( flexcontainer );
205 DALI_TEST_CHECK( accessible );
206 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
211 int UtcDaliAccessibilityCheckBoxButton(void)
213 ToolkitTestApplication application;
215 auto checkboxbutton = CheckBoxButton::New();
216 DALI_TEST_CHECK( checkboxbutton );
218 auto accessible = Dali::Accessibility::Accessible::Get( checkboxbutton );
219 DALI_TEST_CHECK( accessible );
221 Dali::Accessibility::TestEnableSC( true );
223 auto states = accessible->GetStates();
224 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
225 checkboxbutton.SetProperty( Toolkit::CheckBoxButton::Property::SELECTED, true );
226 states = accessible->GetStates();
227 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
229 Dali::Accessibility::TestEnableSC( false );
234 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h>
235 int UtcDaliAccessibilityTextSelectionConstructor(void)
237 ToolkitTestApplication application;
239 auto textselectiontoolbar = TextSelectionToolbar::New();
240 DALI_TEST_CHECK( textselectiontoolbar );
242 auto accessible = Dali::Accessibility::Accessible::Get( textselectiontoolbar );
243 DALI_TEST_CHECK( accessible );
244 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION );
249 #include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
250 int UtcDaliAccessibilityManager(void)
252 using attr = Toolkit::AccessibilityManager::AccessibilityAttribute;
254 ToolkitTestApplication application;
256 Dali::Accessibility::TestEnableSC(true);
258 auto accessmanager = new Dali::Toolkit::Internal::AccessibilityManager;
259 auto actor = Control::New();
261 const std::string name = "Name";
262 const std::string descr = "Description";
264 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL, name);
265 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL), name, TEST_LOCATION );
266 DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_NAME), name, TEST_LOCATION );
268 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT, "Whatever");
269 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT), "", TEST_LOCATION );
271 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE, "Whatever");
272 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE), "", TEST_LOCATION );
274 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT, descr);
275 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT), descr, TEST_LOCATION );
276 DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_DESCRIPTION), descr, TEST_LOCATION );
278 DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 0, TEST_LOCATION );
279 DALI_TEST_EQUALS( accessmanager->GenerateNewFocusOrder(), 1, TEST_LOCATION );
281 accessmanager->SetFocusOrder({}, 0);
282 accessmanager->SetFocusOrder(Control::New(), 1);
283 accessmanager->SetFocusOrder(actor, 2);
284 accessmanager->SetFocusOrder(Control::New(), 3);
286 DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 2, TEST_LOCATION );
287 DALI_TEST_EQUALS( accessmanager->GetActorByFocusOrder(2), actor, TEST_LOCATION );
289 accessmanager->SetCurrentFocusActor(actor);
290 DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
291 DALI_TEST_EQUALS( accessmanager->GetCurrentFocusOrder(), 2, TEST_LOCATION );
293 accessmanager->MoveFocusForward();
294 accessmanager->MoveFocusBackward();
295 DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
296 accessmanager->SetCurrentFocusActor({});
298 accessmanager->Reset();
299 accessmanager->MoveFocusBackward();
300 accessmanager->MoveFocusForward();
302 accessmanager->GetCurrentFocusGroup();
303 DALI_TEST_EQUALS( accessmanager->IsFocusGroup(actor), false, TEST_LOCATION );
304 accessmanager->GetFocusGroup(actor);
306 DALI_TEST_EQUALS( accessmanager->GetGroupMode(), false, TEST_LOCATION );
307 DALI_TEST_EQUALS( accessmanager->GetWrapMode(), true, TEST_LOCATION );
309 auto vector = accessmanager->GetReadPosition();
310 DALI_TEST_EQUALS( vector.x, 0.0f, TEST_LOCATION );
311 DALI_TEST_EQUALS( vector.y, 0.0f, TEST_LOCATION );
313 accessmanager->SetFocusIndicatorActor(Dali::Actor{});
314 accessmanager->GetFocusIndicatorActor();
316 Dali::Accessibility::TestEnableSC(false);
321 int UtcDaliAccessibilityModel3dViewConstructor(void)
323 ToolkitTestApplication application;
325 auto model3dview = Model3dView::New();
326 DALI_TEST_CHECK( model3dview );
328 auto accessible = Dali::Accessibility::Accessible::Get( model3dview );
329 DALI_TEST_CHECK( accessible );
330 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
335 #include <dali-toolkit/internal/controls/effects-view/effects-view-impl.h>
336 int UtcDaliAccessibilityEffectsViewConstructor(void)
338 ToolkitTestApplication application;
340 auto etype = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW;
341 auto effectsview = EffectsView::New( etype );
342 DALI_TEST_CHECK( effectsview );
344 auto accessible = Dali::Accessibility::Accessible::Get( effectsview );
345 DALI_TEST_CHECK( accessible );
346 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
351 #include <dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.h>
352 int UtcDaliAccessibilitySuperBlurViewConstructor(void)
354 ToolkitTestApplication application;
356 auto superblurview = SuperBlurView::New( 1 );
357 DALI_TEST_CHECK( superblurview );
359 auto accessible = Dali::Accessibility::Accessible::Get( superblurview );
360 DALI_TEST_CHECK( accessible );
361 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
366 int UtcDaliAccessibilityImageViewConstructor(void)
368 ToolkitTestApplication application;
370 auto imageview = ImageView::New();
371 DALI_TEST_CHECK( imageview );
373 auto accessible = Dali::Accessibility::Accessible::Get( imageview );
374 DALI_TEST_CHECK( accessible );
375 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
380 #include <dali-toolkit/devel-api/controls/page-turn-view/page-factory.h>
381 class TestPageFactory : public PageFactory
385 TestPageFactory( bool returnValidTexture = true )
386 : mValidTexture( returnValidTexture )
388 mTotalPageNumber = 100;
392 * Query the number of pages available from the factory.
393 * The maximum available page has an ID of GetNumberOfPages()-1.
395 virtual unsigned int GetNumberOfPages()
397 return mTotalPageNumber;
401 * Create an texture to represent a page content.
402 * @param[in] pageId The ID of the page to create.
403 * @return An image, or an empty handle if the ID is out of range.
405 virtual Texture NewPage( unsigned int pageId )
409 return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 );
411 return Texture(); // empty handle
415 unsigned int mTotalPageNumber;
419 #include <dali-toolkit/internal/controls/page-turn-view/page-turn-landscape-view-impl.h>
420 int UtcDaliAccessibilityPageTurnViewConstructor(void)
422 ToolkitTestApplication application;
424 auto testpagefactory = TestPageFactory();
425 auto vector2 = Vector2( 1.0, 1.0 );
426 auto pageturnlandscapeview = PageTurnLandscapeView::New( testpagefactory, vector2 );
427 DALI_TEST_CHECK( pageturnlandscapeview );
429 auto accessible = Dali::Accessibility::Accessible::Get( pageturnlandscapeview );
430 DALI_TEST_CHECK( accessible );
431 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PAGE_TAB_LIST, TEST_LOCATION );
436 int UtcDaliAccessibilityGaussianBlurViewConstructor(void)
438 ToolkitTestApplication application;
440 auto gaussianblurview = GaussianBlurView::New();
441 DALI_TEST_CHECK( gaussianblurview );
443 auto accessible = Dali::Accessibility::Accessible::Get( gaussianblurview );
444 DALI_TEST_CHECK( accessible );
445 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
450 int UtcDaliAccessibilityShadowViewConstructor(void)
452 ToolkitTestApplication application;
454 auto shadowview = ShadowView::New();
455 DALI_TEST_CHECK( shadowview );
457 auto accessible = Dali::Accessibility::Accessible::Get( shadowview );
458 DALI_TEST_CHECK( accessible );
459 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
464 #include <dali-toolkit/public-api/controls/control-impl.h>
465 #include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h>
466 int UtcDaliAccessibilityScrollableConstructor(void)
468 ToolkitTestApplication application;
470 auto scrollview = ScrollView::New();
471 DALI_TEST_CHECK( scrollview );
473 auto accessible = Dali::Accessibility::Accessible::Get( scrollview );
474 DALI_TEST_CHECK( accessible );
475 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::SCROLL_PANE, TEST_LOCATION );
480 #include <dali-toolkit/internal/controls/magnifier/magnifier-impl.h>
481 int UtcDaliAccessibilityMagnifierConstructor(void)
483 ToolkitTestApplication application;
485 auto magnifier = Magnifier::New();
486 DALI_TEST_CHECK( magnifier );
488 auto accessible = Dali::Accessibility::Accessible::Get( magnifier );
489 DALI_TEST_CHECK( accessible );
490 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
495 int UtcDaliAccessibilityTableViewConstructor(void)
497 ToolkitTestApplication application;
499 auto tableview = TableView::New( 10, 10 );
500 DALI_TEST_CHECK( tableview );
502 auto accessible = Dali::Accessibility::Accessible::Get( tableview );
503 DALI_TEST_CHECK( accessible );
504 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION );
509 #include <dali-toolkit/internal/controls/bloom-view/bloom-view-impl.h>
510 int UtcDaliAccessibilityBloomViewConstructor(void)
512 ToolkitTestApplication application;
514 auto bloomview = BloomView::New();
515 DALI_TEST_CHECK( bloomview );
517 auto accessible = Dali::Accessibility::Accessible::Get( bloomview );
518 DALI_TEST_CHECK( accessible );
519 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION );
524 #include <dali-toolkit/internal/controls/text-controls/text-field-impl.h>
525 #include <dali-toolkit/internal/controls/text-controls/text-anchor-impl.h>
526 int UtcDaliAccessibilityTextAnchor(void)
528 ToolkitTestApplication application;
530 auto textanchor = TextAnchor::New();
531 DALI_TEST_CHECK( textanchor );
533 auto textlabel = TextLabel::New();
534 DALI_TEST_CHECK( textlabel );
536 Dali::Accessibility::TestEnableSC( true );
538 textlabel.Add(textanchor);
539 auto accessible = Dali::Accessibility::Accessible::Get( textanchor );
540 DALI_TEST_CHECK( accessible );
541 auto hyperlink = dynamic_cast< Dali::Accessibility::Hyperlink* >( accessible );
542 DALI_TEST_CHECK( hyperlink );
543 textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "https://www.tizen.org" );
544 DALI_TEST_EQUALS( hyperlink->IsValid(), true, TEST_LOCATION );
545 auto action = dynamic_cast<Dali::Accessibility::Action*>( accessible );
546 // activation of valid hyperlink
547 DALI_TEST_CHECK( action->DoAction( "accessibilityActivated" ) );
548 // making hyperlink invalid
549 textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "" );
550 DALI_TEST_EQUALS( hyperlink->IsValid(), false, TEST_LOCATION );
551 DALI_TEST_CHECK( !action->DoAction( "accessibilityActivated" ) );
553 Dali::Accessibility::TestEnableSC( false );
558 int UtcDaliAccessibilityTextField(void)
560 ToolkitTestApplication application;
562 auto textfield = TextField::New();
563 DALI_TEST_CHECK( textfield );
565 textfield.SetProperty(Actor::Property::NAME, "test" );
566 DALI_TEST_EQUALS( textfield.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
568 auto accessible = Dali::Accessibility::Accessible::Get( textfield );
569 DALI_TEST_CHECK( accessible );
571 DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
572 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
573 auto states = accessible->GetStates();
574 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
576 Dali::Accessibility::TestEnableSC( true );
578 textfield.SetProperty( Toolkit::TextField::Property::TEXT, "test" );
579 auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
580 DALI_TEST_CHECK( text );
581 DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
582 DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
583 DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
584 DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
586 auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
587 DALI_TEST_CHECK( editabletext );
588 DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
589 DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
590 DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
591 DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
592 DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
594 auto range = text->GetRangeOfSelection( 1 );
595 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
596 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
597 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
598 DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
599 DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
601 DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
602 DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
603 DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
604 DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
605 DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
606 DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
608 auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
609 DALI_TEST_CHECK( hypertext );
610 // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
611 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
612 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
613 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
614 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
615 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
616 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
617 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
618 // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
619 textfield.SetProperty( Toolkit::TextField::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345" );
620 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
621 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
622 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
623 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
624 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
625 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
626 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
627 // text with the anchors markup and ENABLE_MARKUP property set to true
628 textfield.SetProperty( Toolkit::TextField::Property::ENABLE_MARKUP, true);
629 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
630 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
631 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
632 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
633 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
634 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
635 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
636 auto hyperlink = hypertext->GetLink( 0 );
637 DALI_TEST_CHECK ( hyperlink );
638 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
639 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
640 DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
641 DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
642 auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
643 DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
644 hyperlink = hypertext->GetLink( 1 );
645 DALI_TEST_CHECK ( hyperlink );
646 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
647 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
648 hyperlink = hypertext->GetLink( 2 );
649 DALI_TEST_CHECK ( hyperlink );
650 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
651 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
653 Dali::Accessibility::TestEnableSC( false );
658 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
659 int UtcDaliAccessibilityTextEditor(void)
661 ToolkitTestApplication application;
663 auto texteditor = TextEditor::New();
664 DALI_TEST_CHECK( texteditor );
666 texteditor.SetProperty(Actor::Property::NAME, "test" );
667 DALI_TEST_EQUALS( texteditor.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
669 auto accessible = Dali::Accessibility::Accessible::Get( texteditor );
670 DALI_TEST_CHECK( accessible );
672 DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
673 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
674 auto states = accessible->GetStates();
675 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
677 Dali::Accessibility::TestEnableSC( true );
679 texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "test" );
680 auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
681 DALI_TEST_CHECK( text );
682 DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
683 DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
684 DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
685 DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
687 auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
688 DALI_TEST_CHECK( editabletext );
689 DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
690 DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
691 DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
692 DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
693 DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
695 auto range = text->GetRangeOfSelection( 1 );
696 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
697 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
698 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
699 DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
700 DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
702 DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
703 DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
704 DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
705 DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
706 DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
707 DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
709 auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
710 DALI_TEST_CHECK( hypertext );
711 // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
712 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
713 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
714 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
715 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
716 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
717 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
718 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
719 // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
720 texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345" );
721 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
722 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
723 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
724 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
725 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
726 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
727 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
728 // text with the anchors markup and ENABLE_MARKUP property set to true
729 texteditor.SetProperty( Toolkit::TextEditor::Property::ENABLE_MARKUP, true);
730 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
731 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
732 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
733 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
734 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
735 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
736 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
737 auto hyperlink = hypertext->GetLink( 0 );
738 DALI_TEST_CHECK ( hyperlink );
739 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
740 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
741 DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
742 DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
743 auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
744 DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
745 hyperlink = hypertext->GetLink( 1 );
746 DALI_TEST_CHECK ( hyperlink );
747 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
748 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
749 hyperlink = hypertext->GetLink( 2 );
750 DALI_TEST_CHECK ( hyperlink );
751 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
752 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
754 Dali::Accessibility::TestEnableSC( false );
759 int UtcDaliAccessibilityTextLabel(void)
761 ToolkitTestApplication application;
763 auto textlabel = TextLabel::New();
764 DALI_TEST_CHECK( textlabel );
766 textlabel.SetProperty(Actor::Property::NAME, "test" );
767 DALI_TEST_EQUALS( textlabel.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
769 auto accessible = Dali::Accessibility::Accessible::Get( textlabel );
770 DALI_TEST_CHECK( accessible );
772 DALI_TEST_EQUALS( accessible->GetName(), "test", TEST_LOCATION );
773 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION );
775 Dali::Accessibility::TestEnableSC( true );
777 textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "test" );
778 auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
779 DALI_TEST_CHECK( text );
780 DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
781 DALI_TEST_EQUALS( text->GetText( 0, 4 ), "test", TEST_LOCATION );
782 DALI_TEST_EQUALS( text->SetCursorOffset(0), false, TEST_LOCATION );
783 DALI_TEST_EQUALS( text->GetCursorOffset(), 0, TEST_LOCATION );
785 auto range = text->GetRangeOfSelection( 1 );
786 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
787 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
788 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
789 DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
790 DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
792 auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
793 DALI_TEST_CHECK( hypertext );
794 // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
795 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
796 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
797 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
798 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
799 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
800 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
801 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
802 // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
803 textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345" );
804 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
805 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
806 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
807 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
808 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
809 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
810 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
811 // text with the anchors markup and ENABLE_MARKUP property set to true
812 textlabel.SetProperty( Toolkit::TextLabel::Property::ENABLE_MARKUP, true);
813 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
814 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
815 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
816 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
817 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
818 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
819 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
820 auto hyperlink = hypertext->GetLink( 0 );
821 DALI_TEST_CHECK ( hyperlink );
822 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
823 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
824 DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
825 DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
826 auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
827 DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
828 hyperlink = hypertext->GetLink( 1 );
829 DALI_TEST_CHECK ( hyperlink );
830 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
831 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
832 hyperlink = hypertext->GetLink( 2 );
833 DALI_TEST_CHECK ( hyperlink );
834 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
835 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
837 Dali::Accessibility::TestEnableSC( false );
842 #include <dali-toolkit/internal/controls/navigation-view/navigation-view-impl.h>
843 int UtcDaliAccessibilityNavigationViewConstructor(void)
845 ToolkitTestApplication application;
847 auto navigationview = NavigationView::New();
848 DALI_TEST_CHECK( navigationview );
850 auto accessible = Dali::Accessibility::Accessible::Get( navigationview );
851 DALI_TEST_CHECK( accessible );
853 DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION );
858 int UtcDaliAccessibilityVideoViewConstructor(void)
860 ToolkitTestApplication application;
862 auto videoview = VideoView::New();
863 DALI_TEST_CHECK( videoview );
865 auto accessible = Dali::Accessibility::Accessible::Get( videoview );
866 DALI_TEST_CHECK( accessible );
868 DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION );