Merge "BorderlineColor allow Actor's OPACITY & MIX_COLOR" 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   /* add to scene and remove from scene to touch AccessibilityDeregister */
102   application.GetScene().Add( pushbutton );
103
104   auto states = accessible->GetStates();
105   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), false, TEST_LOCATION );
106
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 );
110
111   states = accessible->GetStates();
112   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), true, TEST_LOCATION );
113
114   /* add to scene and remove from scene to touch AccessibilityDeregister */
115   application.GetScene().Remove( pushbutton );
116
117   Dali::Accessibility::TestEnableSC( false );
118
119   END_TEST;
120 }
121
122 #include <dali-toolkit/devel-api/controls/buttons/toggle-button.h>
123 int UtcDaliAccessibilityToggleButtonConstructor(void)
124 {
125   ToolkitTestApplication application;
126
127   auto togglebutton = ToggleButton::New();
128   DALI_TEST_CHECK( togglebutton );
129
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 );
133
134   END_TEST;
135 }
136
137 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
138 int UtcDaliAccessibilityTextSelectionPopupConstructor(void)
139 {
140   ToolkitTestApplication application;
141
142   auto textselectionpopup = TextSelectionPopup::New( NULL );
143   DALI_TEST_CHECK( textselectionpopup );
144
145   auto accessible = Dali::Accessibility::Accessible::Get( textselectionpopup );
146   DALI_TEST_CHECK( accessible );
147   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION );
148
149   END_TEST;
150 }
151
152 int UtcDaliAccessibilityAlignmentConstructor(void)
153 {
154   ToolkitTestApplication application;
155
156   auto alignment = Alignment::New();
157   DALI_TEST_CHECK( alignment );
158
159   auto accessible = Dali::Accessibility::Accessible::Get( alignment );
160   DALI_TEST_CHECK( accessible );
161   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
162
163   END_TEST;
164 }
165
166 int UtcDaliAccessibilityRadioButtonStates(void)
167 {
168   ToolkitTestApplication application;
169
170   auto radiobutton = RadioButton::New();
171   DALI_TEST_CHECK( radiobutton );
172
173   auto accessible = Dali::Accessibility::Accessible::Get( radiobutton );
174   DALI_TEST_CHECK( accessible );
175
176   Dali::Accessibility::TestEnableSC( true );
177
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 );
185
186   Dali::Accessibility::TestEnableSC( false );
187
188   END_TEST;
189 }
190
191 int UtcDaliAccessibilityFlexContainerConstructor(void)
192 {
193   ToolkitTestApplication application;
194
195   auto flexcontainer = FlexContainer::New();
196   DALI_TEST_CHECK( flexcontainer );
197
198   auto accessible = Dali::Accessibility::Accessible::Get( flexcontainer );
199   DALI_TEST_CHECK( accessible );
200   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
201
202   END_TEST;
203 }
204
205 int UtcDaliAccessibilityCheckBoxButton(void)
206 {
207   ToolkitTestApplication application;
208
209   auto checkboxbutton = CheckBoxButton::New();
210   DALI_TEST_CHECK( checkboxbutton );
211
212   auto accessible = Dali::Accessibility::Accessible::Get( checkboxbutton );
213   DALI_TEST_CHECK( accessible );
214
215   Dali::Accessibility::TestEnableSC( true );
216
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 );
222
223   Dali::Accessibility::TestEnableSC( false );
224
225   END_TEST;
226 }
227
228 #include <dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h>
229 int UtcDaliAccessibilityTextSelectionConstructor(void)
230 {
231   ToolkitTestApplication application;
232
233   auto textselectiontoolbar = TextSelectionToolbar::New();
234   DALI_TEST_CHECK( textselectiontoolbar );
235
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 );
239
240   END_TEST;
241 }
242
243 #include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
244 int UtcDaliAccessibilityManager(void)
245 {
246   using attr = Toolkit::AccessibilityManager::AccessibilityAttribute;
247
248   ToolkitTestApplication application;
249
250   Dali::Accessibility::TestEnableSC(true);
251
252   auto accessmanager = new Dali::Toolkit::Internal::AccessibilityManager;
253   auto actor = Control::New();
254
255   const std::string name = "Name";
256   const std::string descr = "Description";
257
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 );
261
262   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT, "Whatever");
263   DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT), "", TEST_LOCATION );
264
265   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE, "Whatever");
266   DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE), "", TEST_LOCATION );
267
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 );
271
272   DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 0, TEST_LOCATION );
273   DALI_TEST_EQUALS( accessmanager->GenerateNewFocusOrder(), 1, TEST_LOCATION );
274
275   accessmanager->SetFocusOrder({}, 0);
276   accessmanager->SetFocusOrder(Control::New(), 1);
277   accessmanager->SetFocusOrder(actor, 2);
278   accessmanager->SetFocusOrder(Control::New(), 3);
279
280   DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 2, TEST_LOCATION );
281   DALI_TEST_EQUALS( accessmanager->GetActorByFocusOrder(2), actor, TEST_LOCATION );
282
283   accessmanager->SetCurrentFocusActor(actor);
284   DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
285   DALI_TEST_EQUALS( accessmanager->GetCurrentFocusOrder(), 2, TEST_LOCATION );
286
287   accessmanager->MoveFocusForward();
288   accessmanager->MoveFocusBackward();
289   DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
290   accessmanager->SetCurrentFocusActor({});
291
292   accessmanager->Reset();
293   accessmanager->MoveFocusBackward();
294   accessmanager->MoveFocusForward();
295
296   accessmanager->GetCurrentFocusGroup();
297   DALI_TEST_EQUALS( accessmanager->IsFocusGroup(actor), false, TEST_LOCATION );
298   accessmanager->GetFocusGroup(actor);
299
300   DALI_TEST_EQUALS( accessmanager->GetGroupMode(), false, TEST_LOCATION );
301   DALI_TEST_EQUALS( accessmanager->GetWrapMode(), true, TEST_LOCATION );
302
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 );
306
307   accessmanager->SetFocusIndicatorActor(Dali::Actor{});
308   accessmanager->GetFocusIndicatorActor();
309
310   Dali::Accessibility::TestEnableSC(false);
311
312   END_TEST;
313 }
314
315 int UtcDaliAccessibilityModel3dViewConstructor(void)
316 {
317   ToolkitTestApplication application;
318
319   auto model3dview = Model3dView::New();
320   DALI_TEST_CHECK( model3dview );
321
322   auto accessible = Dali::Accessibility::Accessible::Get( model3dview );
323   DALI_TEST_CHECK( accessible );
324   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
325
326   END_TEST;
327 }
328
329 #include <dali-toolkit/internal/controls/effects-view/effects-view-impl.h>
330 int UtcDaliAccessibilityEffectsViewConstructor(void)
331 {
332   ToolkitTestApplication application;
333
334   auto etype = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW;
335   auto effectsview = EffectsView::New( etype );
336   DALI_TEST_CHECK( effectsview );
337
338   auto accessible = Dali::Accessibility::Accessible::Get( effectsview );
339   DALI_TEST_CHECK( accessible );
340   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
341
342   END_TEST;
343 }
344
345 #include <dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.h>
346 int UtcDaliAccessibilitySuperBlurViewConstructor(void)
347 {
348   ToolkitTestApplication application;
349
350   auto superblurview = SuperBlurView::New( 1 );
351   DALI_TEST_CHECK( superblurview );
352
353   auto accessible = Dali::Accessibility::Accessible::Get( superblurview );
354   DALI_TEST_CHECK( accessible );
355   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
356
357   END_TEST;
358 }
359
360 int UtcDaliAccessibilityImageViewConstructor(void)
361 {
362   ToolkitTestApplication application;
363
364   auto imageview = ImageView::New();
365   DALI_TEST_CHECK( imageview );
366
367   auto accessible = Dali::Accessibility::Accessible::Get( imageview );
368   DALI_TEST_CHECK( accessible );
369   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
370
371   END_TEST;
372 }
373
374 #include <dali-toolkit/devel-api/controls/page-turn-view/page-factory.h>
375 class TestPageFactory : public PageFactory
376 {
377 public:
378
379   TestPageFactory( bool returnValidTexture = true )
380   : mValidTexture( returnValidTexture )
381   {
382     mTotalPageNumber = 100;
383   }
384
385   /**
386    * Query the number of pages available from the factory.
387    * The maximum available page has an ID of GetNumberOfPages()-1.
388    */
389   virtual unsigned int GetNumberOfPages()
390   {
391     return mTotalPageNumber;
392   }
393
394   /**
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.
398    */
399   virtual Texture NewPage( unsigned int pageId )
400   {
401     if( mValidTexture )
402     {
403       return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 );
404     }
405     return Texture(); // empty handle
406   }
407
408 private:
409   unsigned int            mTotalPageNumber;
410   bool                    mValidTexture;
411 };
412
413 #include <dali-toolkit/internal/controls/page-turn-view/page-turn-landscape-view-impl.h>
414 int UtcDaliAccessibilityPageTurnViewConstructor(void)
415 {
416   ToolkitTestApplication application;
417
418   auto testpagefactory = TestPageFactory();
419   auto vector2 = Vector2( 1.0, 1.0 );
420   auto pageturnlandscapeview = PageTurnLandscapeView::New( testpagefactory, vector2 );
421   DALI_TEST_CHECK( pageturnlandscapeview );
422
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 );
426
427   END_TEST;
428 }
429
430 int UtcDaliAccessibilityGaussianBlurViewConstructor(void)
431 {
432   ToolkitTestApplication application;
433
434   auto gaussianblurview = GaussianBlurView::New();
435   DALI_TEST_CHECK( gaussianblurview );
436
437   auto accessible = Dali::Accessibility::Accessible::Get( gaussianblurview );
438   DALI_TEST_CHECK( accessible );
439   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
440
441   END_TEST;
442 }
443
444 int UtcDaliAccessibilityShadowViewConstructor(void)
445 {
446   ToolkitTestApplication application;
447
448   auto shadowview = ShadowView::New();
449   DALI_TEST_CHECK( shadowview );
450
451   auto accessible = Dali::Accessibility::Accessible::Get( shadowview );
452   DALI_TEST_CHECK( accessible );
453   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
454
455   END_TEST;
456 }
457
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)
461 {
462   ToolkitTestApplication application;
463
464   auto scrollview = ScrollView::New();
465   DALI_TEST_CHECK( scrollview );
466
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 );
470
471   END_TEST;
472 }
473
474 #include <dali-toolkit/internal/controls/magnifier/magnifier-impl.h>
475 int UtcDaliAccessibilityMagnifierConstructor(void)
476 {
477   ToolkitTestApplication application;
478
479   auto magnifier = Magnifier::New();
480   DALI_TEST_CHECK( magnifier );
481
482   auto accessible = Dali::Accessibility::Accessible::Get( magnifier );
483   DALI_TEST_CHECK( accessible );
484   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
485
486   END_TEST;
487 }
488
489 int UtcDaliAccessibilityTableViewConstructor(void)
490 {
491   ToolkitTestApplication application;
492
493   auto tableview = TableView::New( 10, 10 );
494   DALI_TEST_CHECK( tableview );
495
496   auto accessible = Dali::Accessibility::Accessible::Get( tableview );
497   DALI_TEST_CHECK( accessible );
498   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION );
499
500   END_TEST;
501 }
502
503 #include <dali-toolkit/internal/controls/bloom-view/bloom-view-impl.h>
504 int UtcDaliAccessibilityBloomViewConstructor(void)
505 {
506   ToolkitTestApplication application;
507
508   auto bloomview = BloomView::New();
509   DALI_TEST_CHECK( bloomview );
510
511   auto accessible = Dali::Accessibility::Accessible::Get( bloomview );
512   DALI_TEST_CHECK( accessible );
513   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION );
514
515   END_TEST;
516 }
517
518 #include <dali-toolkit/internal/controls/text-controls/text-field-impl.h>
519 int UtcDaliAccessibilityTextField(void)
520 {
521   ToolkitTestApplication application;
522
523   auto textfield = TextField::New();
524   DALI_TEST_CHECK( textfield );
525
526   textfield.SetProperty(Actor::Property::NAME, "test" );
527   DALI_TEST_EQUALS( textfield.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
528
529   auto accessible = Dali::Accessibility::Accessible::Get( textfield );
530   DALI_TEST_CHECK( accessible );
531
532   DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
533   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
534   auto states = accessible->GetStates();
535   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
536
537   Dali::Accessibility::TestEnableSC( true );
538
539   textfield.SetProperty( Toolkit::TextField::Property::TEXT, "test" );
540   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
541   DALI_TEST_CHECK( text );
542   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
543   DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
544   DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
545   DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
546
547   auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
548   DALI_TEST_CHECK( editabletext );
549   DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
550   DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
551   DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
552   DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
553   DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
554
555   auto range = text->GetRangeOfSelection( 1 );
556   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
557   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
558   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
559   DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
560   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
561
562   DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
563   DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
564   DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
565   DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
566   DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
567   DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
568
569   Dali::Accessibility::TestEnableSC( false );
570
571   END_TEST;
572 }
573
574 #include <dali-toolkit/internal/controls/text-controls/text-editor-impl.h>
575 int UtcDaliAccessibilityTextEditor(void)
576 {
577   ToolkitTestApplication application;
578
579   auto texteditor = TextEditor::New();
580   DALI_TEST_CHECK( texteditor );
581
582   texteditor.SetProperty(Actor::Property::NAME, "test" );
583   DALI_TEST_EQUALS( texteditor.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
584
585   auto accessible = Dali::Accessibility::Accessible::Get( texteditor );
586   DALI_TEST_CHECK( accessible );
587
588   DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
589   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
590   auto states = accessible->GetStates();
591   DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
592
593   Dali::Accessibility::TestEnableSC( true );
594
595   texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "test" );
596   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
597   DALI_TEST_CHECK( text );
598   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
599   DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
600   DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
601   DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
602
603   auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
604   DALI_TEST_CHECK( editabletext );
605   DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
606   DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
607   DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
608   DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
609   DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
610
611   auto range = text->GetRangeOfSelection( 1 );
612   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
613   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
614   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
615   DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
616   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
617
618   DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
619   DALI_TEST_EQUALS(editabletext->InsertText(1, "bc"), true, TEST_LOCATION);
620   DALI_TEST_EQUALS(text->GetText(0, 6), "abcdef", TEST_LOCATION);
621   DALI_TEST_EQUALS(editabletext->DeleteText(5, 1), false, TEST_LOCATION);
622   DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
623   DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
624
625   Dali::Accessibility::TestEnableSC( false );
626
627   END_TEST;
628 }
629
630 int UtcDaliAccessibilityTextLabel(void)
631 {
632   ToolkitTestApplication application;
633
634   auto textlabel = TextLabel::New();
635   DALI_TEST_CHECK( textlabel );
636
637   textlabel.SetProperty(Actor::Property::NAME, "test" );
638   DALI_TEST_EQUALS( textlabel.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
639
640   auto accessible = Dali::Accessibility::Accessible::Get( textlabel );
641   DALI_TEST_CHECK( accessible );
642
643   DALI_TEST_EQUALS( accessible->GetName(), "test", TEST_LOCATION );
644   DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION );
645
646   Dali::Accessibility::TestEnableSC( true );
647
648   textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "test" );
649   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
650   DALI_TEST_CHECK( text );
651   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
652   DALI_TEST_EQUALS( text->GetText( 0, 4 ), "test", TEST_LOCATION );
653   DALI_TEST_EQUALS( text->SetCursorOffset(0), false, TEST_LOCATION );
654   DALI_TEST_EQUALS( text->GetCursorOffset(), 0, TEST_LOCATION );
655
656   auto range = text->GetRangeOfSelection( 1 );
657   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
658   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
659   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
660   DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
661   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
662
663   Dali::Accessibility::TestEnableSC( false );
664
665   END_TEST;
666 }
667
668 #include <dali-toolkit/internal/controls/navigation-view/navigation-view-impl.h>
669 int UtcDaliAccessibilityNavigationViewConstructor(void)
670 {
671   ToolkitTestApplication application;
672
673   auto navigationview = NavigationView::New();
674   DALI_TEST_CHECK( navigationview );
675
676   auto accessible = Dali::Accessibility::Accessible::Get( navigationview );
677   DALI_TEST_CHECK( accessible );
678
679   DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION );
680
681   END_TEST;
682 }
683
684 int UtcDaliAccessibilityVideoViewConstructor(void)
685 {
686   ToolkitTestApplication application;
687
688   auto videoview = VideoView::New();
689   DALI_TEST_CHECK( videoview );
690
691   auto accessible = Dali::Accessibility::Accessible::Get( videoview );
692   DALI_TEST_CHECK( accessible );
693
694   DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION );
695
696   END_TEST;
697 }