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-impl.h>
9 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
11 using namespace Dali::Toolkit;
13 void utc_dali_accessibility_controls_startup(void)
15 test_return_value = TET_UNDEF;
16 DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
19 void utc_dali_accessibility_controls_cleanup(void)
21 test_return_value = TET_PASS;
22 //DBusWrapper::Install({}) is a de-install
23 DBusWrapper::Install({});
26 int UtcDaliControlPropertyAccessibilityTranslationDomain(void)
28 ToolkitTestApplication application;
30 auto control = Control::New();
32 auto accessibility_translation_domain = DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN;
33 DALI_TEST_EQUALS( Property::NONE , control.GetProperty( accessibility_translation_domain ).GetType(), TEST_LOCATION );
35 control.SetProperty( accessibility_translation_domain, "translation_domain_test_1" );
36 DALI_TEST_EQUALS( "translation_domain_test_1" , control.GetProperty( accessibility_translation_domain ).Get< std::string >(), TEST_LOCATION );
38 control.SetProperty( accessibility_translation_domain, "translation_domain_test_2" );
39 DALI_TEST_EQUALS( "translation_domain_test_2" , control.GetProperty( accessibility_translation_domain ).Get< std::string >(), TEST_LOCATION );
44 // This test shows that when the accessibility bridge is
45 // not up, there is no possibility to grab or clear highlight
46 int UtcDaliControlAccessibilityHighlight(void)
48 ToolkitTestApplication application;
49 auto controla = Control::New();
50 auto controlb = Control::New();
52 DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION );
53 DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION );
54 DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION );
55 DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION );
60 #include <dali-toolkit/devel-api/controls/tool-bar/tool-bar.h>
61 int UtcDaliAccessibilityToolBarConstructor(void)
63 ToolkitTestApplication application;
65 auto toolbar = ToolBar::New();
66 DALI_TEST_CHECK( toolbar );
68 auto accessible = Dali::Accessibility::Accessible::Get( toolbar );
69 DALI_TEST_CHECK( accessible );
70 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION );
75 int UtcDaliAccessibilityPushButtonConstructor(void)
77 ToolkitTestApplication application;
79 auto pushbutton = PushButton::New();
80 DALI_TEST_CHECK( pushbutton );
82 auto accessible = Dali::Accessibility::Accessible::Get( pushbutton );
83 DALI_TEST_CHECK( accessible );
84 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PUSH_BUTTON, TEST_LOCATION );
89 int UtcDaliAccessibilityPushButtonStates(void)
91 ToolkitTestApplication application;
93 auto pushbutton = PushButton::New();
94 DALI_TEST_CHECK( pushbutton );
96 auto accessible = Dali::Accessibility::Accessible::Get( pushbutton );
97 DALI_TEST_CHECK( accessible );
99 Dali::Accessibility::TestEnableSC( true );
101 /* add to scene and remove from scene to touch AccessibilityDeregister */
102 application.GetScene().Add( pushbutton );
104 auto states = accessible->GetStates();
105 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), false, TEST_LOCATION );
107 // auto button = dynamic_cast<Dali::Toolkit::Button* >( accessible ) ;
108 pushbutton.SetProperty( Toolkit::Button::Property::TOGGLABLE, true );
109 pushbutton.SetProperty( Toolkit::Button::Property::SELECTED, true );
111 states = accessible->GetStates();
112 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), true, TEST_LOCATION );
114 /* add to scene and remove from scene to touch AccessibilityDeregister */
115 application.GetScene().Remove( pushbutton );
117 Dali::Accessibility::TestEnableSC( false );
122 #include <dali-toolkit/devel-api/controls/buttons/toggle-button.h>
123 int UtcDaliAccessibilityToggleButtonConstructor(void)
125 ToolkitTestApplication application;
127 auto togglebutton = ToggleButton::New();
128 DALI_TEST_CHECK( togglebutton );
130 auto accessible = Dali::Accessibility::Accessible::Get( togglebutton );
131 DALI_TEST_CHECK( accessible );
132 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOGGLE_BUTTON, TEST_LOCATION );
137 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
138 int UtcDaliAccessibilityTextSelectionPopupConstructor(void)
140 ToolkitTestApplication application;
142 auto textselectionpopup = TextSelectionPopup::New( NULL );
143 DALI_TEST_CHECK( textselectionpopup );
145 auto accessible = Dali::Accessibility::Accessible::Get( textselectionpopup );
146 DALI_TEST_CHECK( accessible );
147 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION );
152 int UtcDaliAccessibilityAlignmentConstructor(void)
154 ToolkitTestApplication application;
156 auto alignment = Alignment::New();
157 DALI_TEST_CHECK( alignment );
159 auto accessible = Dali::Accessibility::Accessible::Get( alignment );
160 DALI_TEST_CHECK( accessible );
161 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
166 int UtcDaliAccessibilityRadioButtonStates(void)
168 ToolkitTestApplication application;
170 auto radiobutton = RadioButton::New();
171 DALI_TEST_CHECK( radiobutton );
173 auto accessible = Dali::Accessibility::Accessible::Get( radiobutton );
174 DALI_TEST_CHECK( accessible );
176 Dali::Accessibility::TestEnableSC( true );
178 auto states = accessible->GetStates();
179 DALI_TEST_CHECK( states );
180 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
181 radiobutton.SetProperty( Toolkit::RadioButton::Property::SELECTED, true );
182 states = accessible->GetStates();
183 DALI_TEST_CHECK( states );
184 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
186 Dali::Accessibility::TestEnableSC( false );
191 int UtcDaliAccessibilityFlexContainerConstructor(void)
193 ToolkitTestApplication application;
195 auto flexcontainer = FlexContainer::New();
196 DALI_TEST_CHECK( flexcontainer );
198 auto accessible = Dali::Accessibility::Accessible::Get( flexcontainer );
199 DALI_TEST_CHECK( accessible );
200 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
205 int UtcDaliAccessibilityCheckBoxButton(void)
207 ToolkitTestApplication application;
209 auto checkboxbutton = CheckBoxButton::New();
210 DALI_TEST_CHECK( checkboxbutton );
212 auto accessible = Dali::Accessibility::Accessible::Get( checkboxbutton );
213 DALI_TEST_CHECK( accessible );
215 Dali::Accessibility::TestEnableSC( true );
217 auto states = accessible->GetStates();
218 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
219 checkboxbutton.SetProperty( Toolkit::CheckBoxButton::Property::SELECTED, true );
220 states = accessible->GetStates();
221 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
223 Dali::Accessibility::TestEnableSC( false );
228 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h>
229 int UtcDaliAccessibilityTextSelectionConstructor(void)
231 ToolkitTestApplication application;
233 auto textselectiontoolbar = TextSelectionToolbar::New();
234 DALI_TEST_CHECK( textselectiontoolbar );
236 auto accessible = Dali::Accessibility::Accessible::Get( textselectiontoolbar );
237 DALI_TEST_CHECK( accessible );
238 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION );
243 #include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
244 int UtcDaliAccessibilityManager(void)
246 using attr = Toolkit::AccessibilityManager::AccessibilityAttribute;
248 ToolkitTestApplication application;
250 Dali::Accessibility::TestEnableSC(true);
252 auto accessmanager = new Dali::Toolkit::Internal::AccessibilityManager;
253 auto actor = Control::New();
255 const std::string name = "Name";
256 const std::string descr = "Description";
258 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL, name);
259 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL), name, TEST_LOCATION );
260 DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_NAME), name, TEST_LOCATION );
262 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT, "Whatever");
263 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT), "", TEST_LOCATION );
265 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE, "Whatever");
266 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE), "", TEST_LOCATION );
268 accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT, descr);
269 DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT), descr, TEST_LOCATION );
270 DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_DESCRIPTION), descr, TEST_LOCATION );
272 DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 0, TEST_LOCATION );
273 DALI_TEST_EQUALS( accessmanager->GenerateNewFocusOrder(), 1, TEST_LOCATION );
275 accessmanager->SetFocusOrder({}, 0);
276 accessmanager->SetFocusOrder(Control::New(), 1);
277 accessmanager->SetFocusOrder(actor, 2);
278 accessmanager->SetFocusOrder(Control::New(), 3);
280 DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 2, TEST_LOCATION );
281 DALI_TEST_EQUALS( accessmanager->GetActorByFocusOrder(2), actor, TEST_LOCATION );
283 accessmanager->SetCurrentFocusActor(actor);
284 DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
285 DALI_TEST_EQUALS( accessmanager->GetCurrentFocusOrder(), 2, TEST_LOCATION );
287 accessmanager->MoveFocusForward();
288 accessmanager->MoveFocusBackward();
289 DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
290 accessmanager->SetCurrentFocusActor({});
292 accessmanager->Reset();
293 accessmanager->MoveFocusBackward();
294 accessmanager->MoveFocusForward();
296 accessmanager->GetCurrentFocusGroup();
297 DALI_TEST_EQUALS( accessmanager->IsFocusGroup(actor), false, TEST_LOCATION );
298 accessmanager->GetFocusGroup(actor);
300 DALI_TEST_EQUALS( accessmanager->GetGroupMode(), false, TEST_LOCATION );
301 DALI_TEST_EQUALS( accessmanager->GetWrapMode(), true, TEST_LOCATION );
303 auto vector = accessmanager->GetReadPosition();
304 DALI_TEST_EQUALS( vector.x, 0.0f, TEST_LOCATION );
305 DALI_TEST_EQUALS( vector.y, 0.0f, TEST_LOCATION );
307 accessmanager->SetFocusIndicatorActor(Dali::Actor{});
308 accessmanager->GetFocusIndicatorActor();
310 Dali::Accessibility::TestEnableSC(false);
315 int UtcDaliAccessibilityModel3dViewConstructor(void)
317 ToolkitTestApplication application;
319 auto model3dview = Model3dView::New();
320 DALI_TEST_CHECK( model3dview );
322 auto accessible = Dali::Accessibility::Accessible::Get( model3dview );
323 DALI_TEST_CHECK( accessible );
324 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
329 #include <dali-toolkit/internal/controls/effects-view/effects-view-impl.h>
330 int UtcDaliAccessibilityEffectsViewConstructor(void)
332 ToolkitTestApplication application;
334 auto etype = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW;
335 auto effectsview = EffectsView::New( etype );
336 DALI_TEST_CHECK( effectsview );
338 auto accessible = Dali::Accessibility::Accessible::Get( effectsview );
339 DALI_TEST_CHECK( accessible );
340 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
345 #include <dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.h>
346 int UtcDaliAccessibilitySuperBlurViewConstructor(void)
348 ToolkitTestApplication application;
350 auto superblurview = SuperBlurView::New( 1 );
351 DALI_TEST_CHECK( superblurview );
353 auto accessible = Dali::Accessibility::Accessible::Get( superblurview );
354 DALI_TEST_CHECK( accessible );
355 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
360 int UtcDaliAccessibilityImageViewConstructor(void)
362 ToolkitTestApplication application;
364 auto imageview = ImageView::New();
365 DALI_TEST_CHECK( imageview );
367 auto accessible = Dali::Accessibility::Accessible::Get( imageview );
368 DALI_TEST_CHECK( accessible );
369 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
374 #include <dali-toolkit/devel-api/controls/page-turn-view/page-factory.h>
375 class TestPageFactory : public PageFactory
379 TestPageFactory( bool returnValidTexture = true )
380 : mValidTexture( returnValidTexture )
382 mTotalPageNumber = 100;
386 * Query the number of pages available from the factory.
387 * The maximum available page has an ID of GetNumberOfPages()-1.
389 virtual unsigned int GetNumberOfPages()
391 return mTotalPageNumber;
395 * Create an texture to represent a page content.
396 * @param[in] pageId The ID of the page to create.
397 * @return An image, or an empty handle if the ID is out of range.
399 virtual Texture NewPage( unsigned int pageId )
403 return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 );
405 return Texture(); // empty handle
409 unsigned int mTotalPageNumber;
413 #include <dali-toolkit/internal/controls/page-turn-view/page-turn-landscape-view-impl.h>
414 int UtcDaliAccessibilityPageTurnViewConstructor(void)
416 ToolkitTestApplication application;
418 auto testpagefactory = TestPageFactory();
419 auto vector2 = Vector2( 1.0, 1.0 );
420 auto pageturnlandscapeview = PageTurnLandscapeView::New( testpagefactory, vector2 );
421 DALI_TEST_CHECK( pageturnlandscapeview );
423 auto accessible = Dali::Accessibility::Accessible::Get( pageturnlandscapeview );
424 DALI_TEST_CHECK( accessible );
425 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PAGE_TAB_LIST, TEST_LOCATION );
430 int UtcDaliAccessibilityGaussianBlurViewConstructor(void)
432 ToolkitTestApplication application;
434 auto gaussianblurview = GaussianBlurView::New();
435 DALI_TEST_CHECK( gaussianblurview );
437 auto accessible = Dali::Accessibility::Accessible::Get( gaussianblurview );
438 DALI_TEST_CHECK( accessible );
439 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
444 int UtcDaliAccessibilityShadowViewConstructor(void)
446 ToolkitTestApplication application;
448 auto shadowview = ShadowView::New();
449 DALI_TEST_CHECK( shadowview );
451 auto accessible = Dali::Accessibility::Accessible::Get( shadowview );
452 DALI_TEST_CHECK( accessible );
453 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
458 #include <dali-toolkit/public-api/controls/control-impl.h>
459 #include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h>
460 int UtcDaliAccessibilityScrollableConstructor(void)
462 ToolkitTestApplication application;
464 auto scrollview = ScrollView::New();
465 DALI_TEST_CHECK( scrollview );
467 auto accessible = Dali::Accessibility::Accessible::Get( scrollview );
468 DALI_TEST_CHECK( accessible );
469 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::SCROLL_PANE, TEST_LOCATION );
474 #include <dali-toolkit/internal/controls/magnifier/magnifier-impl.h>
475 int UtcDaliAccessibilityMagnifierConstructor(void)
477 ToolkitTestApplication application;
479 auto magnifier = Magnifier::New();
480 DALI_TEST_CHECK( magnifier );
482 auto accessible = Dali::Accessibility::Accessible::Get( magnifier );
483 DALI_TEST_CHECK( accessible );
484 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
489 int UtcDaliAccessibilityTableViewConstructor(void)
491 ToolkitTestApplication application;
493 auto tableview = TableView::New( 10, 10 );
494 DALI_TEST_CHECK( tableview );
496 auto accessible = Dali::Accessibility::Accessible::Get( tableview );
497 DALI_TEST_CHECK( accessible );
498 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION );
503 #include <dali-toolkit/internal/controls/bloom-view/bloom-view-impl.h>
504 int UtcDaliAccessibilityBloomViewConstructor(void)
506 ToolkitTestApplication application;
508 auto bloomview = BloomView::New();
509 DALI_TEST_CHECK( bloomview );
511 auto accessible = Dali::Accessibility::Accessible::Get( bloomview );
512 DALI_TEST_CHECK( accessible );
513 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION );
518 #include <dali-toolkit/internal/controls/text-controls/text-field-impl.h>
519 #include <dali-toolkit/internal/controls/text-controls/text-anchor-impl.h>
520 int UtcDaliAccessibilityTextAnchor(void)
522 ToolkitTestApplication application;
524 auto textanchor = TextAnchor::New();
525 DALI_TEST_CHECK( textanchor );
527 auto textlabel = TextLabel::New();
528 DALI_TEST_CHECK( textlabel );
530 Dali::Accessibility::TestEnableSC( true );
532 textlabel.Add(textanchor);
533 auto accessible = Dali::Accessibility::Accessible::Get( textanchor );
534 DALI_TEST_CHECK( accessible );
535 auto hyperlink = dynamic_cast< Dali::Accessibility::Hyperlink* >( accessible );
536 DALI_TEST_CHECK( hyperlink );
537 textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "https://www.tizen.org" );
538 DALI_TEST_EQUALS( hyperlink->IsValid(), true, TEST_LOCATION );
539 auto action = dynamic_cast<Dali::Accessibility::Action*>( accessible );
540 // activation of valid hyperlink
541 DALI_TEST_CHECK( action->DoAction( "accessibilityActivated" ) );
542 // making hyperlink invalid
543 textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "" );
544 DALI_TEST_EQUALS( hyperlink->IsValid(), false, TEST_LOCATION );
545 DALI_TEST_CHECK( !action->DoAction( "accessibilityActivated" ) );
547 Dali::Accessibility::TestEnableSC( false );
552 int UtcDaliAccessibilityTextField(void)
554 ToolkitTestApplication application;
556 auto textfield = TextField::New();
557 DALI_TEST_CHECK( textfield );
559 textfield.SetProperty(Actor::Property::NAME, "test" );
560 DALI_TEST_EQUALS( textfield.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
562 auto accessible = Dali::Accessibility::Accessible::Get( textfield );
563 DALI_TEST_CHECK( accessible );
565 DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
566 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
567 auto states = accessible->GetStates();
568 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
570 Dali::Accessibility::TestEnableSC( true );
572 textfield.SetProperty( Toolkit::TextField::Property::TEXT, "test" );
573 auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
574 DALI_TEST_CHECK( text );
575 DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
576 DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
577 DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
578 DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
580 auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
581 DALI_TEST_CHECK( editabletext );
582 DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
583 DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
584 DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
585 DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
586 DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
588 auto range = text->GetRangeOfSelection( 1 );
589 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
590 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
591 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
592 DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
593 DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
595 DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
596 DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
597 DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
598 DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
599 DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
600 DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
602 auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
603 DALI_TEST_CHECK( hypertext );
604 // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
605 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
606 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
607 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
608 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
609 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
610 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
611 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
612 // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
613 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" );
614 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
615 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
616 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
617 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
618 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
619 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
620 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
621 // text with the anchors markup and ENABLE_MARKUP property set to true
622 textfield.SetProperty( Toolkit::TextField::Property::ENABLE_MARKUP, true);
623 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
624 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
625 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
626 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
627 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
628 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
629 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
630 auto hyperlink = hypertext->GetLink( 0 );
631 DALI_TEST_CHECK ( hyperlink );
632 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
633 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
634 DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
635 DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
636 auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
637 DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
638 hyperlink = hypertext->GetLink( 1 );
639 DALI_TEST_CHECK ( hyperlink );
640 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
641 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
642 hyperlink = hypertext->GetLink( 2 );
643 DALI_TEST_CHECK ( hyperlink );
644 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
645 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
647 Dali::Accessibility::TestEnableSC( false );
652 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
653 int UtcDaliAccessibilityTextEditor(void)
655 ToolkitTestApplication application;
657 auto texteditor = TextEditor::New();
658 DALI_TEST_CHECK( texteditor );
660 texteditor.SetProperty(Actor::Property::NAME, "test" );
661 DALI_TEST_EQUALS( texteditor.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
663 auto accessible = Dali::Accessibility::Accessible::Get( texteditor );
664 DALI_TEST_CHECK( accessible );
666 DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
667 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
668 auto states = accessible->GetStates();
669 DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
671 Dali::Accessibility::TestEnableSC( true );
673 texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "test" );
674 auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
675 DALI_TEST_CHECK( text );
676 DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
677 DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
678 DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
679 DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
681 auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
682 DALI_TEST_CHECK( editabletext );
683 DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
684 DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
685 DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
686 DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
687 DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
689 auto range = text->GetRangeOfSelection( 1 );
690 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
691 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
692 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
693 DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
694 DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
696 DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
697 DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
698 DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
699 DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
700 DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
701 DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
703 auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
704 DALI_TEST_CHECK( hypertext );
705 // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
706 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
707 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
708 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
709 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
710 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
711 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
712 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
713 // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
714 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" );
715 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
716 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
717 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
718 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
719 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
720 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
721 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
722 // text with the anchors markup and ENABLE_MARKUP property set to true
723 texteditor.SetProperty( Toolkit::TextEditor::Property::ENABLE_MARKUP, true);
724 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
725 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
726 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
727 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
728 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
729 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
730 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
731 auto hyperlink = hypertext->GetLink( 0 );
732 DALI_TEST_CHECK ( hyperlink );
733 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
734 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
735 DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
736 DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
737 auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
738 DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
739 hyperlink = hypertext->GetLink( 1 );
740 DALI_TEST_CHECK ( hyperlink );
741 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
742 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
743 hyperlink = hypertext->GetLink( 2 );
744 DALI_TEST_CHECK ( hyperlink );
745 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
746 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
748 Dali::Accessibility::TestEnableSC( false );
753 int UtcDaliAccessibilityTextLabel(void)
755 ToolkitTestApplication application;
757 auto textlabel = TextLabel::New();
758 DALI_TEST_CHECK( textlabel );
760 textlabel.SetProperty(Actor::Property::NAME, "test" );
761 DALI_TEST_EQUALS( textlabel.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
763 auto accessible = Dali::Accessibility::Accessible::Get( textlabel );
764 DALI_TEST_CHECK( accessible );
766 DALI_TEST_EQUALS( accessible->GetName(), "test", TEST_LOCATION );
767 DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION );
769 Dali::Accessibility::TestEnableSC( true );
771 textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "test" );
772 auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
773 DALI_TEST_CHECK( text );
774 DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
775 DALI_TEST_EQUALS( text->GetText( 0, 4 ), "test", TEST_LOCATION );
776 DALI_TEST_EQUALS( text->SetCursorOffset(0), false, TEST_LOCATION );
777 DALI_TEST_EQUALS( text->GetCursorOffset(), 0, TEST_LOCATION );
779 auto range = text->GetRangeOfSelection( 1 );
780 DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
781 DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
782 DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
783 DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
784 DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
786 auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
787 DALI_TEST_CHECK( hypertext );
788 // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
789 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
790 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
791 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
792 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
793 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
794 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
795 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
796 // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
797 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" );
798 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
799 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
800 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
801 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
802 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
803 DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
804 DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
805 // text with the anchors markup and ENABLE_MARKUP property set to true
806 textlabel.SetProperty( Toolkit::TextLabel::Property::ENABLE_MARKUP, true);
807 DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
808 DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
809 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
810 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
811 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
812 DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
813 DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
814 auto hyperlink = hypertext->GetLink( 0 );
815 DALI_TEST_CHECK ( hyperlink );
816 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
817 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
818 DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
819 DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
820 auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
821 DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
822 hyperlink = hypertext->GetLink( 1 );
823 DALI_TEST_CHECK ( hyperlink );
824 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
825 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
826 hyperlink = hypertext->GetLink( 2 );
827 DALI_TEST_CHECK ( hyperlink );
828 DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
829 DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
831 Dali::Accessibility::TestEnableSC( false );
836 #include <dali-toolkit/internal/controls/navigation-view/navigation-view-impl.h>
837 int UtcDaliAccessibilityNavigationViewConstructor(void)
839 ToolkitTestApplication application;
841 auto navigationview = NavigationView::New();
842 DALI_TEST_CHECK( navigationview );
844 auto accessible = Dali::Accessibility::Accessible::Get( navigationview );
845 DALI_TEST_CHECK( accessible );
847 DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION );
852 int UtcDaliAccessibilityVideoViewConstructor(void)
854 ToolkitTestApplication application;
856 auto videoview = VideoView::New();
857 DALI_TEST_CHECK( videoview );
859 auto accessible = Dali::Accessibility::Accessible::Get( videoview );
860 DALI_TEST_CHECK( accessible );
862 DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION );