Merge changes I2df640e0,Ia1188305,I7fae506e,I7967a7cc,Ib0fdcdf4, ... into devel/master
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-Accessibility-Controls.cpp
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>
4
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>
8
9 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
10
11 using namespace Dali::Toolkit;
12
13 void utc_dali_accessibility_controls_startup(void)
14 {
15   test_return_value = TET_UNDEF;
16   DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
17 }
18
19 void utc_dali_accessibility_controls_cleanup(void)
20 {
21   test_return_value = TET_PASS;
22   //DBusWrapper::Install({}) is a de-install
23   DBusWrapper::Install({});
24 }
25
26 int UtcDaliControlPropertyAccessibilityTranslationDomain(void)
27 {
28   ToolkitTestApplication application;
29
30   auto control = Control::New();
31
32   auto accessibility_translation_domain = DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN;
33   DALI_TEST_EQUALS( Property::NONE , control.GetProperty( accessibility_translation_domain ).GetType(), TEST_LOCATION );
34
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 );
37
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 );
40
41   END_TEST;
42 }
43
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)
47 {
48   ToolkitTestApplication application;
49   auto controla = Control::New();
50   auto controlb = Control::New();
51
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 );
56
57   END_TEST;
58 }
59
60 #include <dali-toolkit/devel-api/controls/tool-bar/tool-bar.h>
61 int UtcDaliAccessibilityToolBarConstructor(void)
62 {
63   ToolkitTestApplication application;
64
65   auto toolbar = ToolBar::New();
66   DALI_TEST_CHECK( toolbar );
67
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 );
71
72   END_TEST;
73 }
74
75 int UtcDaliAccessibilityPushButtonConstructor(void)
76 {
77   ToolkitTestApplication application;
78
79   auto pushbutton = PushButton::New();
80   DALI_TEST_CHECK( pushbutton );
81
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 );
85
86   END_TEST;
87 }
88
89 int UtcDaliAccessibilityPushButtonStates(void)
90 {
91   ToolkitTestApplication application;
92
93   auto pushbutton = PushButton::New();
94   DALI_TEST_CHECK( pushbutton );
95
96   auto accessible = Dali::Accessibility::Accessible::Get( pushbutton );
97   DALI_TEST_CHECK( accessible );
98
99   Dali::Accessibility::TestEnableSC( true );
100
101   auto states = accessible->GetStates();
102   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), false, TEST_LOCATION );
103
104   // auto button = dynamic_cast<Dali::Toolkit::Button* >( accessible ) ;
105   pushbutton.SetProperty( Toolkit::Button::Property::TOGGLABLE, true );
106   pushbutton.SetProperty( Toolkit::Button::Property::SELECTED, true );
107
108   states = accessible->GetStates();
109   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), true, TEST_LOCATION );
110
111   Dali::Accessibility::TestEnableSC( false );
112
113   END_TEST;
114 }
115
116 #include <dali-toolkit/devel-api/controls/buttons/toggle-button.h>
117 int UtcDaliAccessibilityToggleButtonConstructor(void)
118 {
119   ToolkitTestApplication application;
120
121   auto togglebutton = ToggleButton::New();
122   DALI_TEST_CHECK( togglebutton );
123
124   auto accessible = Dali::Accessibility::Accessible::Get( togglebutton );
125   DALI_TEST_CHECK( accessible );
126   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOGGLE_BUTTON, TEST_LOCATION );
127
128   END_TEST;
129 }
130
131 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
132 int UtcDaliAccessibilityTextSelectionPopupConstructor(void)
133 {
134   ToolkitTestApplication application;
135
136   auto textselectionpopup = TextSelectionPopup::New( NULL );
137   DALI_TEST_CHECK( textselectionpopup );
138
139   auto accessible = Dali::Accessibility::Accessible::Get( textselectionpopup );
140   DALI_TEST_CHECK( accessible );
141   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION );
142
143   END_TEST;
144 }
145
146 int UtcDaliAccessibilityAlignmentConstructor(void)
147 {
148   ToolkitTestApplication application;
149
150   auto alignment = Alignment::New();
151   DALI_TEST_CHECK( alignment );
152
153   auto accessible = Dali::Accessibility::Accessible::Get( alignment );
154   DALI_TEST_CHECK( accessible );
155   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
156
157   END_TEST;
158 }
159
160 int UtcDaliAccessibilityRadioButtonStates(void)
161 {
162   ToolkitTestApplication application;
163
164   auto radiobutton = RadioButton::New();
165   DALI_TEST_CHECK( radiobutton );
166
167   auto accessible = Dali::Accessibility::Accessible::Get( radiobutton );
168   DALI_TEST_CHECK( accessible );
169
170   Dali::Accessibility::TestEnableSC( true );
171
172   auto states = accessible->GetStates();
173   DALI_TEST_CHECK( states );
174   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
175   radiobutton.SetProperty( Toolkit::RadioButton::Property::SELECTED, true );
176   states = accessible->GetStates();
177   DALI_TEST_CHECK( states );
178   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
179
180   Dali::Accessibility::TestEnableSC( false );
181
182   END_TEST;
183 }
184
185 int UtcDaliAccessibilityFlexContainerConstructor(void)
186 {
187   ToolkitTestApplication application;
188
189   auto flexcontainer = FlexContainer::New();
190   DALI_TEST_CHECK( flexcontainer );
191
192   auto accessible = Dali::Accessibility::Accessible::Get( flexcontainer );
193   DALI_TEST_CHECK( accessible );
194   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
195
196   END_TEST;
197 }
198
199 int UtcDaliAccessibilityCheckBoxButton(void)
200 {
201   ToolkitTestApplication application;
202
203   auto checkboxbutton = CheckBoxButton::New();
204   DALI_TEST_CHECK( checkboxbutton );
205
206   auto accessible = Dali::Accessibility::Accessible::Get( checkboxbutton );
207   DALI_TEST_CHECK( accessible );
208
209   Dali::Accessibility::TestEnableSC( true );
210
211   auto states = accessible->GetStates();
212   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
213   checkboxbutton.SetProperty( Toolkit::CheckBoxButton::Property::SELECTED, true );
214   states = accessible->GetStates();
215   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
216
217   Dali::Accessibility::TestEnableSC( false );
218
219   END_TEST;
220 }
221
222 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h>
223 int UtcDaliAccessibilityTextSelectionConstructor(void)
224 {
225   ToolkitTestApplication application;
226
227   auto textselectiontoolbar = TextSelectionToolbar::New();
228   DALI_TEST_CHECK( textselectiontoolbar );
229
230   auto accessible = Dali::Accessibility::Accessible::Get( textselectiontoolbar );
231   DALI_TEST_CHECK( accessible );
232   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION );
233
234   END_TEST;
235 }
236
237 #include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
238 int UtcDaliAccessibilityManager(void)
239 {
240   using attr = Toolkit::AccessibilityManager::AccessibilityAttribute;
241
242   ToolkitTestApplication application;
243
244   Dali::Accessibility::TestEnableSC(true);
245
246   auto accessmanager = new Dali::Toolkit::Internal::AccessibilityManager;
247   auto actor = Control::New();
248
249   const std::string name = "Name";
250   const std::string descr = "Description";
251
252   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL, name);
253   DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL), name, TEST_LOCATION );
254   DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_NAME), name, TEST_LOCATION );
255
256   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT, "Whatever");
257   DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT), "", TEST_LOCATION );
258
259   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE, "Whatever");
260   DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE), "", TEST_LOCATION );
261
262   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT, descr);
263   DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT), descr, TEST_LOCATION );
264   DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_DESCRIPTION), descr, TEST_LOCATION );
265
266   DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 0, TEST_LOCATION );
267   DALI_TEST_EQUALS( accessmanager->GenerateNewFocusOrder(), 1, TEST_LOCATION );
268
269   accessmanager->SetFocusOrder({}, 0);
270   accessmanager->SetFocusOrder(Control::New(), 1);
271   accessmanager->SetFocusOrder(actor, 2);
272   accessmanager->SetFocusOrder(Control::New(), 3);
273
274   DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 2, TEST_LOCATION );
275   DALI_TEST_EQUALS( accessmanager->GetActorByFocusOrder(2), actor, TEST_LOCATION );
276
277   accessmanager->SetCurrentFocusActor(actor);
278   DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
279   DALI_TEST_EQUALS( accessmanager->GetCurrentFocusOrder(), 2, TEST_LOCATION );
280
281   accessmanager->MoveFocusForward();
282   accessmanager->MoveFocusBackward();
283   DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
284   accessmanager->SetCurrentFocusActor({});
285
286   accessmanager->Reset();
287   accessmanager->MoveFocusBackward();
288   accessmanager->MoveFocusForward();
289
290   accessmanager->GetCurrentFocusGroup();
291   DALI_TEST_EQUALS( accessmanager->IsFocusGroup(actor), false, TEST_LOCATION );
292   accessmanager->GetFocusGroup(actor);
293
294   DALI_TEST_EQUALS( accessmanager->GetGroupMode(), false, TEST_LOCATION );
295   DALI_TEST_EQUALS( accessmanager->GetWrapMode(), true, TEST_LOCATION );
296
297   auto vector = accessmanager->GetReadPosition();
298   DALI_TEST_EQUALS( vector.x, 0.0f, TEST_LOCATION );
299   DALI_TEST_EQUALS( vector.y, 0.0f, TEST_LOCATION );
300
301   accessmanager->SetFocusIndicatorActor(Dali::Actor{});
302   accessmanager->GetFocusIndicatorActor();
303
304   Dali::Accessibility::TestEnableSC(false);
305
306   END_TEST;
307 }
308
309 int UtcDaliAccessibilityModel3dViewConstructor(void)
310 {
311   ToolkitTestApplication application;
312
313   auto model3dview = Model3dView::New();
314   DALI_TEST_CHECK( model3dview );
315
316   auto accessible = Dali::Accessibility::Accessible::Get( model3dview );
317   DALI_TEST_CHECK( accessible );
318   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
319
320   END_TEST;
321 }
322
323 #include <dali-toolkit/internal/controls/effects-view/effects-view-impl.h>
324 int UtcDaliAccessibilityEffectsViewConstructor(void)
325 {
326   ToolkitTestApplication application;
327
328   auto etype = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW;
329   auto effectsview = EffectsView::New( etype );
330   DALI_TEST_CHECK( effectsview );
331
332   auto accessible = Dali::Accessibility::Accessible::Get( effectsview );
333   DALI_TEST_CHECK( accessible );
334   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
335
336   END_TEST;
337 }
338
339 #include <dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.h>
340 int UtcDaliAccessibilitySuperBlurViewConstructor(void)
341 {
342   ToolkitTestApplication application;
343
344   auto superblurview = SuperBlurView::New( 1 );
345   DALI_TEST_CHECK( superblurview );
346
347   auto accessible = Dali::Accessibility::Accessible::Get( superblurview );
348   DALI_TEST_CHECK( accessible );
349   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
350
351   END_TEST;
352 }
353
354 int UtcDaliAccessibilityImageViewConstructor(void)
355 {
356   ToolkitTestApplication application;
357
358   auto imageview = ImageView::New();
359   DALI_TEST_CHECK( imageview );
360
361   auto accessible = Dali::Accessibility::Accessible::Get( imageview );
362   DALI_TEST_CHECK( accessible );
363   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
364
365   END_TEST;
366 }
367
368 #include <dali-toolkit/devel-api/controls/page-turn-view/page-factory.h>
369 class TestPageFactory : public PageFactory
370 {
371 public:
372
373   TestPageFactory( bool returnValidTexture = true )
374   : mValidTexture( returnValidTexture )
375   {
376     mTotalPageNumber = 100;
377   }
378
379   /**
380    * Query the number of pages available from the factory.
381    * The maximum available page has an ID of GetNumberOfPages()-1.
382    */
383   virtual unsigned int GetNumberOfPages()
384   {
385     return mTotalPageNumber;
386   }
387
388   /**
389    * Create an texture to represent a page content.
390    * @param[in] pageId The ID of the page to create.
391    * @return An image, or an empty handle if the ID is out of range.
392    */
393   virtual Texture NewPage( unsigned int pageId )
394   {
395     if( mValidTexture )
396     {
397       return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 );
398     }
399     return Texture(); // empty handle
400   }
401
402 private:
403   unsigned int            mTotalPageNumber;
404   bool                    mValidTexture;
405 };
406
407 #include <dali-toolkit/internal/controls/page-turn-view/page-turn-landscape-view-impl.h>
408 int UtcDaliAccessibilityPageTurnViewConstructor(void)
409 {
410   ToolkitTestApplication application;
411
412   auto testpagefactory = TestPageFactory();
413   auto vector2 = Vector2( 1.0, 1.0 );
414   auto pageturnlandscapeview = PageTurnLandscapeView::New( testpagefactory, vector2 );
415   DALI_TEST_CHECK( pageturnlandscapeview );
416
417   auto accessible = Dali::Accessibility::Accessible::Get( pageturnlandscapeview );
418   DALI_TEST_CHECK( accessible );
419   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PAGE_TAB_LIST, TEST_LOCATION );
420
421   END_TEST;
422 }
423
424 int UtcDaliAccessibilityGaussianBlurViewConstructor(void)
425 {
426   ToolkitTestApplication application;
427
428   auto gaussianblurview = GaussianBlurView::New();
429   DALI_TEST_CHECK( gaussianblurview );
430
431   auto accessible = Dali::Accessibility::Accessible::Get( gaussianblurview );
432   DALI_TEST_CHECK( accessible );
433   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
434
435   END_TEST;
436 }
437
438 int UtcDaliAccessibilityShadowViewConstructor(void)
439 {
440   ToolkitTestApplication application;
441
442   auto shadowview = ShadowView::New();
443   DALI_TEST_CHECK( shadowview );
444
445   auto accessible = Dali::Accessibility::Accessible::Get( shadowview );
446   DALI_TEST_CHECK( accessible );
447   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
448
449   END_TEST;
450 }
451
452 #include <dali-toolkit/public-api/controls/control-impl.h>
453 #include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h>
454 int UtcDaliAccessibilityScrollableConstructor(void)
455 {
456   ToolkitTestApplication application;
457
458   auto scrollview = ScrollView::New();
459   DALI_TEST_CHECK( scrollview );
460
461   auto accessible = Dali::Accessibility::Accessible::Get( scrollview );
462   DALI_TEST_CHECK( accessible );
463   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::SCROLL_PANE, TEST_LOCATION );
464
465   END_TEST;
466 }
467
468 #include <dali-toolkit/internal/controls/magnifier/magnifier-impl.h>
469 int UtcDaliAccessibilityMagnifierConstructor(void)
470 {
471   ToolkitTestApplication application;
472
473   auto magnifier = Magnifier::New();
474   DALI_TEST_CHECK( magnifier );
475
476   auto accessible = Dali::Accessibility::Accessible::Get( magnifier );
477   DALI_TEST_CHECK( accessible );
478   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
479
480   END_TEST;
481 }
482
483 int UtcDaliAccessibilityTableViewConstructor(void)
484 {
485   ToolkitTestApplication application;
486
487   auto tableview = TableView::New( 10, 10 );
488   DALI_TEST_CHECK( tableview );
489
490   auto accessible = Dali::Accessibility::Accessible::Get( tableview );
491   DALI_TEST_CHECK( accessible );
492   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION );
493
494   END_TEST;
495 }
496
497 #include <dali-toolkit/internal/controls/bloom-view/bloom-view-impl.h>
498 int UtcDaliAccessibilityBloomViewConstructor(void)
499 {
500   ToolkitTestApplication application;
501
502   auto bloomview = BloomView::New();
503   DALI_TEST_CHECK( bloomview );
504
505   auto accessible = Dali::Accessibility::Accessible::Get( bloomview );
506   DALI_TEST_CHECK( accessible );
507   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION );
508
509   END_TEST;
510 }
511
512 #include <dali-toolkit/internal/controls/text-controls/text-field-impl.h>
513 int UtcDaliAccessibilityTextField(void)
514 {
515   ToolkitTestApplication application;
516
517   auto textfield = TextField::New();
518   DALI_TEST_CHECK( textfield );
519
520   textfield.SetProperty(Actor::Property::NAME, "test" );
521   DALI_TEST_EQUALS( textfield.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
522
523   auto accessible = Dali::Accessibility::Accessible::Get( textfield );
524   DALI_TEST_CHECK( accessible );
525
526   DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
527   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
528   auto states = accessible->GetStates();
529   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
530
531   Dali::Accessibility::TestEnableSC( true );
532
533   textfield.SetProperty( Toolkit::TextField::Property::TEXT, "test" );
534   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
535   DALI_TEST_CHECK( text );
536   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
537   DALI_TEST_EQUALS( text->SetCaretOffset(100), false, TEST_LOCATION );
538   DALI_TEST_EQUALS( text->SetCaretOffset(2), true, TEST_LOCATION );
539   DALI_TEST_EQUALS( text->GetCaretOffset(), 2, TEST_LOCATION );
540
541   auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
542   DALI_TEST_CHECK( editabletext );
543   DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
544   DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
545   DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
546   DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
547   DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
548
549   auto range = text->GetSelection( 1 );
550   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
551   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
552   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
553   DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
554   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
555
556   Dali::Accessibility::TestEnableSC( false );
557
558   END_TEST;
559 }
560
561 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
562 int UtcDaliAccessibilityTextEditor(void)
563 {
564   ToolkitTestApplication application;
565
566   auto texteditor = TextEditor::New();
567   DALI_TEST_CHECK( texteditor );
568
569   texteditor.SetProperty(Actor::Property::NAME, "test" );
570   DALI_TEST_EQUALS( texteditor.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
571
572   auto accessible = Dali::Accessibility::Accessible::Get( texteditor );
573   DALI_TEST_CHECK( accessible );
574
575   DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
576   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
577   auto states = accessible->GetStates();
578   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
579
580   Dali::Accessibility::TestEnableSC( true );
581
582   texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "test" );
583   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
584   DALI_TEST_CHECK( text );
585   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
586   DALI_TEST_EQUALS( text->SetCaretOffset(100), false, TEST_LOCATION );
587   DALI_TEST_EQUALS( text->SetCaretOffset(2), true, TEST_LOCATION );
588   DALI_TEST_EQUALS( text->GetCaretOffset(), 2, TEST_LOCATION );
589
590   auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
591   DALI_TEST_CHECK( editabletext );
592   DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
593   DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
594   DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
595   DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
596   DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
597
598   auto range = text->GetSelection( 1 );
599   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
600   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
601   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
602   DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
603   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
604
605   Dali::Accessibility::TestEnableSC( false );
606
607   END_TEST;
608 }
609
610 int UtcDaliAccessibilityTextLabel(void)
611 {
612   ToolkitTestApplication application;
613
614   auto textlabel = TextLabel::New();
615   DALI_TEST_CHECK( textlabel );
616
617   textlabel.SetProperty(Actor::Property::NAME, "test" );
618   DALI_TEST_EQUALS( textlabel.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
619
620   auto accessible = Dali::Accessibility::Accessible::Get( textlabel );
621   DALI_TEST_CHECK( accessible );
622
623   DALI_TEST_EQUALS( accessible->GetName(), "test", TEST_LOCATION );
624   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION );
625
626   Dali::Accessibility::TestEnableSC( true );
627
628   textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "test" );
629   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
630   DALI_TEST_CHECK( text );
631   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
632   DALI_TEST_EQUALS( text->GetText( 0, 4 ), "test", TEST_LOCATION );
633   DALI_TEST_EQUALS( text->SetCaretOffset(0), false, TEST_LOCATION );
634   DALI_TEST_EQUALS( text->GetCaretOffset(), 0, TEST_LOCATION );
635
636   auto range = text->GetSelection( 1 );
637   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
638   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
639   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
640   DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
641   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
642
643   Dali::Accessibility::TestEnableSC( false );
644
645   END_TEST;
646 }
647
648 #include <dali-toolkit/internal/controls/navigation-view/navigation-view-impl.h>
649 int UtcDaliAccessibilityNavigationViewConstructor(void)
650 {
651   ToolkitTestApplication application;
652
653   auto navigationview = NavigationView::New();
654   DALI_TEST_CHECK( navigationview );
655
656   auto accessible = Dali::Accessibility::Accessible::Get( navigationview );
657   DALI_TEST_CHECK( accessible );
658
659   DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION );
660
661   END_TEST;
662 }
663
664 int UtcDaliAccessibilityVideoViewConstructor(void)
665 {
666   ToolkitTestApplication application;
667
668   auto videoview = VideoView::New();
669   DALI_TEST_CHECK( videoview );
670
671   auto accessible = Dali::Accessibility::Accessible::Get( videoview );
672   DALI_TEST_CHECK( accessible );
673
674   DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION );
675
676   END_TEST;
677 }