Merge "[AT-SPI] Set default value of ReadingInfoTypes" into devel/master
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-Accessibility-Controls-BridgeUp.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 <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
4 #include <dali-toolkit/dali-toolkit.h>
5 #include <dali/devel-api/adaptor-framework/accessibility.h>
6 #include <dali/devel-api/adaptor-framework/accessibility-impl.h>
7 #include <dali-toolkit/devel-api/controls/buttons/toggle-button.h>
8 #include <dali-toolkit/devel-api/controls/control-devel.h>
9 #include <dali-toolkit/devel-api/controls/popup/popup.h>
10 #include <dali/devel-api/actors/actor-devel.h>
11 #include <dali/devel-api/common/stage.h>
12 #include <cstdlib>
13
14 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
15
16 using namespace Dali::Toolkit;
17
18 void utc_dali_accessibility_controls_bridge_up_startup(void)
19 {
20   test_return_value = TET_UNDEF;
21   DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
22 }
23
24 void utc_dali_accessibility_controls_bridge_up_cleanup(void)
25 {
26   test_return_value = TET_PASS;
27   //DBusWrapper::Install({}) is a de-install
28   DBusWrapper::Install({});
29 }
30
31 namespace Dali {
32   namespace Accessibility {
33     std::ostream & operator<< (std::ostream & stream, const Address & address)
34     {
35       stream << address.ToString();
36       return stream;
37     }
38   }
39 }
40
41 int UtcDaliControlAccessibilityRaiseBridge(void)
42 {
43   DALI_TEST_CHECK(!Accessibility::IsUp());
44
45   ToolkitTestApplication application;
46
47   Dali::Accessibility::TestEnableSC(true);
48
49   DALI_TEST_CHECK(Accessibility::IsUp());
50
51   // auto wr = static_cast<TestDBusWrapper*>(DBusWrapper::Installed());
52   // for(auto &a : wr->daliMethods) {
53   //   const char *mt;
54   //   if (std::get<3>(a.first) == MethodType::Method) mt = "MethodType::Method";
55   //   else if (std::get<3>(a.first) == MethodType::Getter) mt = "MethodType::Getter";
56   //   else if (std::get<3>(a.first) == MethodType::Setter) mt = "MethodType::Setter";
57   //   else assert(0);
58   //   printf("%s %s %s %s\n", std::get<0>(a.first).c_str(), std::get<1>(a.first).c_str(), std::get<2>(a.first).c_str(), mt);
59   // }
60
61   Dali::Accessibility::TestEnableSC(false);
62
63   DALI_TEST_CHECK(!Accessibility::IsUp());
64
65   END_TEST;
66 }
67
68 int UtcDaliControlAccessibilityName(void)
69 {
70   ToolkitTestApplication application;
71
72   auto control = Control::New();
73   Stage::GetCurrent().Add( control );
74
75   auto q = Dali::Accessibility::Accessible::Get( control );
76   DALI_TEST_CHECK( q );
77
78   DALI_TEST_EQUALS( "" , q->GetName(), TEST_LOCATION );
79
80   control.SetProperty( DevelControl::Property::ACCESSIBILITY_NAME, "Accessibility_Name" );
81   DALI_TEST_EQUALS( "Accessibility_Name" , q->GetName(), TEST_LOCATION );
82   DALI_TEST_EQUALS( control.GetProperty( DevelControl::Property::ACCESSIBILITY_NAME ).Get< std::string >() , "Accessibility_Name", TEST_LOCATION );
83
84   DevelControl::AccessibilityGetNameSignal(control).Connect( [] (std::string &accessibility_name) {
85     accessibility_name = "Accessibility_Name_With_Callback"; } );
86
87   DALI_TEST_EQUALS( "Accessibility_Name_With_Callback" , q->GetName(), TEST_LOCATION );
88
89   Dali::Accessibility::TestEnableSC(true);
90
91   DALI_TEST_EQUALS( "Accessibility_Name_With_Callback" , TestGetName( q->GetAddress()), TEST_LOCATION );
92
93   //TODO test emission of name change signal
94   Dali::Accessibility::TestEnableSC( false );
95
96   END_TEST;
97 }
98
99 int UtcDaliControlAccessibilityDescription(void)
100 {
101   ToolkitTestApplication application;
102
103   auto control = Control::New();
104
105   auto q = Dali::Accessibility::Accessible::Get( control );
106   DALI_TEST_CHECK( q );
107
108   DALI_TEST_EQUALS( "" , q->GetDescription(), TEST_LOCATION );
109
110   control.SetProperty( DevelControl::Property::ACCESSIBILITY_DESCRIPTION, "Accessibility_Description" );
111   DALI_TEST_EQUALS( "Accessibility_Description" , q->GetDescription(), TEST_LOCATION );
112
113   auto property = control.GetProperty( DevelControl::Property::ACCESSIBILITY_DESCRIPTION ).Get<std::string>();
114   DALI_TEST_EQUALS( "Accessibility_Description", property, TEST_LOCATION );
115
116   DevelControl::AccessibilityGetDescriptionSignal(control).Connect( [] (std::string &accessibility_description) {
117     accessibility_description = "Accessibility_Description_With_Callback"; } );
118
119   DALI_TEST_EQUALS( "Accessibility_Description_With_Callback" , q->GetDescription(), TEST_LOCATION );
120
121   Dali::Accessibility::TestEnableSC( true );
122
123   DALI_TEST_EQUALS( "Accessibility_Description_With_Callback" , TestGetDescription( q->GetAddress()), TEST_LOCATION );
124
125   //TODO test emission of description change signal
126   Dali::Accessibility::TestEnableSC( false );
127
128   END_TEST;
129 }
130
131 int UtcDaliControlAccessibilityRole(void)
132 {
133   ToolkitTestApplication application;
134
135   auto control = Control::New();
136   auto role_unknown = Dali::Accessibility::Role::UNKNOWN;
137   auto role_pushbutton = Dali::Accessibility::Role::PUSH_BUTTON;
138
139   DALI_TEST_EQUALS( role_unknown,control.GetProperty( DevelControl::Property::ACCESSIBILITY_ROLE ).Get< Dali::Accessibility::Role >(), TEST_LOCATION );
140
141   auto q = Dali::Accessibility::Accessible::Get( control );
142   DALI_TEST_EQUALS( role_unknown , q->GetRole(), TEST_LOCATION);
143   DALI_TEST_EQUALS( "unknown" , q->GetRoleName(), TEST_LOCATION );
144
145   Dali::Accessibility::TestEnableSC( true );
146   DALI_TEST_CHECK( q );
147   DALI_TEST_EQUALS( static_cast< uint32_t >( role_unknown ), TestGetRole( q->GetAddress() ), TEST_LOCATION );
148   DALI_TEST_EQUALS( "unknown" , TestGetRoleName( q->GetAddress() ), TEST_LOCATION );
149   DALI_TEST_EQUALS( "unknown" , TestGetLocalizedRoleName( q->GetAddress() ), TEST_LOCATION );
150
151   control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, role_pushbutton );
152
153   DALI_TEST_EQUALS( static_cast< uint32_t >( role_pushbutton ), TestGetRole( q->GetAddress() ), TEST_LOCATION );
154   DALI_TEST_EQUALS( "push button" ,TestGetRoleName( q->GetAddress() ), TEST_LOCATION );
155   DALI_TEST_EQUALS( "push button" , TestGetLocalizedRoleName( q->GetAddress() ), TEST_LOCATION );
156
157   Dali::Accessibility::TestEnableSC( false );
158
159   DALI_TEST_EQUALS( role_pushbutton , q->GetRole(), TEST_LOCATION);
160   DALI_TEST_EQUALS( "push button" , q->GetRoleName(), TEST_LOCATION );
161
162   END_TEST;
163 }
164
165 int UtcDaliControlAccessibilityRoleToggleButton(void)
166 {
167   ToolkitTestApplication application;
168
169   auto control = Dali::Toolkit::ToggleButton::New();
170   auto button = Dali::Accessibility::Role::TOGGLE_BUTTON;
171
172   control.SetProperty(Toolkit::ToggleButton::Property::TOOLTIPS,
173           Property::Array{"option1", "option2"});
174
175   Dali::Accessibility::TestEnableSC( true );
176
177   control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button );
178   auto q = Dali::Accessibility::Accessible::Get( control );
179
180   DALI_TEST_EQUALS( button , q->GetRole(), TEST_LOCATION);
181   DALI_TEST_EQUALS( "toggle button" , q->GetRoleName(), TEST_LOCATION );
182
183   Dali::Accessibility::States states = q->GetStates();
184   DALI_TEST_EQUALS( true , (bool)states[Dali::Accessibility::State::VISIBLE], TEST_LOCATION);
185
186   DALI_TEST_EQUALS( "option1", q->GetDescription(), TEST_LOCATION );
187
188   auto i = dynamic_cast<Dali::Accessibility::Component*>(q);
189   if (i)
190     i->GrabHighlight();
191
192   control.SetProperty( Toolkit::Button::Property::LABEL, "ToggleButton2" );
193   DALI_TEST_EQUALS( "ToggleButton2", TestGetName( q->GetAddress() ), TEST_LOCATION );
194
195   Dali::Accessibility::TestEnableSC( false );
196
197   END_TEST;
198 }
199
200 int UtcDaliControlAccessibilityButtonLabel(void)
201 {
202   ToolkitTestApplication application;
203
204   auto control = Dali::Toolkit::PushButton::New();
205   auto button = Dali::Accessibility::Role::PUSH_BUTTON;
206
207   Dali::Accessibility::TestEnableSC( true );
208
209   control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button );
210
211   auto q = Dali::Accessibility::Accessible::Get( control );
212   auto i = dynamic_cast<Dali::Accessibility::Component*>(q);
213
214   if (i)
215     i->GrabHighlight();
216
217   control.SetProperty( Toolkit::Button::Property::LABEL, "Button2" );
218
219   DALI_TEST_EQUALS( "Button2" , TestGetName( q->GetAddress() ), TEST_LOCATION );
220
221   Dali::Accessibility::TestEnableSC( false );
222
223   END_TEST;
224 }
225
226 int UtcDaliControlAccessibilityState(void)
227 {
228   ToolkitTestApplication application;
229
230   auto control = Control::New();
231   auto q = Dali::Accessibility::Accessible::Get( control );
232
233   Dali::Accessibility::TestEnableSC( true );
234
235   auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
236   auto states = DevelControl::GetAccessibilityStates(control);
237   DALI_TEST_CHECK( states_by_bridge == states );
238
239   Dali::Accessibility::TestEnableSC( false );
240
241   END_TEST;
242 }
243
244 int UtcDaliControlAccessibilityModal(void)
245 {
246   ToolkitTestApplication application;
247
248   auto control = Dali::Toolkit::Popup::New();
249   auto q = Dali::Accessibility::Accessible::Get( control );
250
251   Dali::Accessibility::TestEnableSC( true );
252
253   auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
254   DALI_TEST_CHECK( states_by_bridge[Dali::Accessibility::State::MODAL] );
255
256   Dali::Accessibility::TestEnableSC( false );
257
258   END_TEST;
259 }
260
261 int UtcDaliControlAccessibilityHighlightable(void)
262 {
263   ToolkitTestApplication application;
264   auto control = Control::New();
265
266   auto noneset = control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE );
267   DALI_TEST_EQUALS( Property::NONE, noneset.GetType(), TEST_LOCATION );
268
269    // negative testcase - trying to set unconvertible value
270   control.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, "deadbeef" );
271   noneset = control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE );
272   DALI_TEST_EQUALS( Property::NONE, noneset.GetType(), TEST_LOCATION );
273
274   auto q = Dali::Accessibility::Accessible::Get( control );
275
276   Dali::Accessibility::TestEnableSC( true );
277
278   auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
279   DALI_TEST_CHECK( !states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] );
280
281   control.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
282   DALI_TEST_EQUALS( Property::BOOLEAN, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).GetType(), TEST_LOCATION );
283   DALI_TEST_EQUALS( true, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).Get< bool >(), TEST_LOCATION );
284
285   states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
286   DALI_TEST_CHECK( states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] );
287
288   control.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, false );
289   DALI_TEST_EQUALS( Property::BOOLEAN, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).GetType(), TEST_LOCATION );
290   DALI_TEST_EQUALS( false, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).Get< bool >(), TEST_LOCATION );
291
292   states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
293   DALI_TEST_CHECK( !states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] );
294
295   Dali::Accessibility::TestEnableSC( false );
296
297   END_TEST;
298 }
299
300 int UtcDaliControlAccessibilityHighlightBridgeUp(void)
301 {
302   ToolkitTestApplication application;
303
304   auto controla = Control::New();
305   auto controlb = Control::New();
306   controla.Add(controlb);
307
308   controla.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
309   controlb.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
310
311   Dali::Accessibility::TestEnableSC( true );
312
313   auto accessible_a = Dali::Accessibility::Accessible::Get( controla );
314   auto accessible_b = Dali::Accessibility::Accessible::Get( controlb );
315
316   auto a = dynamic_cast<Dali::Accessibility::Component*>( accessible_a );
317   auto b = dynamic_cast<Dali::Accessibility::Component*>( accessible_b );
318
319   auto states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
320   auto states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
321
322   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
323   DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
324
325   DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION );
326
327   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
328   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
329
330   DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
331   DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
332
333   DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION );
334   DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION );
335
336   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
337   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
338
339   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
340   DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
341
342   DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION );
343
344   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
345   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
346
347   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
348   DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
349
350   DALI_TEST_EQUALS( true, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION );
351
352   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
353   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
354
355   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
356   DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
357
358   DALI_TEST_CHECK( TestGrabHighlight( a -> GetAddress() ) );
359
360   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
361   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
362
363   DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
364   DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
365
366   DALI_TEST_CHECK( TestGrabHighlight( b -> GetAddress() ) );
367
368   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
369   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
370
371   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
372   DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
373
374   DALI_TEST_CHECK( TestClearHighlight( b -> GetAddress() ) );
375
376   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
377   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
378
379   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
380   DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
381
382
383   Dali::Accessibility::TestEnableSC( false );
384
385   END_TEST;
386 }
387
388 int utcDaliAccessibilityControlAttributes(void)
389 {
390   ToolkitTestApplication application;
391   auto check_box_button = Toolkit::Control::New();
392
393   std::string value;
394
395
396   auto attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
397   auto attributes_map = attributes.GetMap();
398
399   auto position = attributes_map->Find( "access_key1" );
400   DALI_TEST_CHECK( !position );
401
402   DevelControl::AppendAccessibilityAttribute( check_box_button, "access_key1", "access_value1" );
403   attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
404   attributes_map = attributes.GetMap();
405
406   DALI_TEST_EQUALS( (attributes_map->Find( "access_key1" ))->Get<std::string>(), "access_value1", TEST_LOCATION );
407
408   DevelControl::AppendAccessibilityAttribute( check_box_button, "access_key2", "access_value2_a" );
409   attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
410   attributes_map = attributes.GetMap();
411
412   DALI_TEST_EQUALS( (attributes_map->Find( "access_key1" ))->Get<std::string>(), "access_value1", TEST_LOCATION );
413   DALI_TEST_EQUALS( (attributes_map->Find( "access_key2" ))->Get<std::string>(), "access_value2_a", TEST_LOCATION );
414
415   DevelControl::AppendAccessibilityAttribute( check_box_button, "access_key2", "access_value2_b" );
416   attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
417   attributes_map = attributes.GetMap();
418
419   DALI_TEST_EQUALS( (attributes_map->Find( "access_key2" ))->Get<std::string>(), "access_value2_b", TEST_LOCATION );
420
421   DevelControl::RemoveAccessibilityAttribute( check_box_button, "access_key2" );
422   attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
423   attributes_map = attributes.GetMap();
424
425   // In case when we are removing one of attributes the property is setting for NONE type.
426   DALI_TEST_EQUALS( (attributes_map->Find( "access_key2" ))->GetType(), Property::NONE, TEST_LOCATION );
427
428   Dali::Accessibility::TestEnableSC( true );
429
430   auto ptr = Dali::Accessibility::Accessible::Get( check_box_button );
431   auto attribute_map_bridge = TestGetAttributes( ptr->GetAddress() );
432   auto counter = 0u;
433   for (auto i = 0u; i<attributes_map->Count();++i)
434     if((attributes_map->GetValue(i)).GetType() != Property::NONE )
435       ++counter;
436
437   DALI_TEST_EQUALS( counter, attribute_map_bridge.size(), TEST_LOCATION );
438
439   for (auto it : attribute_map_bridge)
440     DALI_TEST_EQUALS( (attributes_map->Find( it.first ))->Get<std::string>(), it.second, TEST_LOCATION );
441
442   DevelControl::ClearAccessibilityAttributes(check_box_button);
443   attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
444   attributes_map = attributes.GetMap();
445
446   position = attributes_map->Find( "access_key1" );
447   DALI_TEST_CHECK( !position );
448
449   position = attributes_map->Find( "access_key2" );
450   DALI_TEST_CHECK( !position );
451
452   Dali::Accessibility::TestEnableSC( false );
453
454   END_TEST;
455 }
456
457 int UtcDaliControlReadingInfoType(void)
458 {
459   ToolkitTestApplication application;
460   auto control = Control::New();
461
462   auto reading_info_type = DevelControl::GetAccessibilityReadingInfoType(control);
463
464   for ( auto i = 0u; i < 4; ++i)
465     DALI_TEST_CHECK ( reading_info_type[ static_cast< Dali::Accessibility::ReadingInfoType >( i ) ]);
466
467   reading_info_type[Dali::Accessibility::ReadingInfoType::DESCRIPTION] = false;
468   reading_info_type[Dali::Accessibility::ReadingInfoType::STATE] = false;
469   reading_info_type[Dali::Accessibility::ReadingInfoType::NAME] = false;
470   reading_info_type[Dali::Accessibility::ReadingInfoType::ROLE] = false;
471
472   DevelControl::SetAccessibilityReadingInfoType(control, reading_info_type);
473
474   reading_info_type = DevelControl::GetAccessibilityReadingInfoType(control);
475
476   for ( auto i = 0u; i < 4; ++i)
477     DALI_TEST_CHECK ( false == reading_info_type[ static_cast< Dali::Accessibility::ReadingInfoType >( i ) ]);
478
479   reading_info_type[Dali::Accessibility::ReadingInfoType::DESCRIPTION] = true;
480   reading_info_type[Dali::Accessibility::ReadingInfoType::STATE] = true;
481   reading_info_type[Dali::Accessibility::ReadingInfoType::NAME] = true;
482   reading_info_type[Dali::Accessibility::ReadingInfoType::ROLE] = true;
483
484   DevelControl::SetAccessibilityReadingInfoType(control, reading_info_type);
485
486   auto q = control.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
487   auto z = q.GetMap();
488
489   DALI_TEST_EQUALS( (z->Find( "reading_info_type" ))->Get<std::string>(), "name|role|description|state", TEST_LOCATION );
490   reading_info_type = DevelControl::GetAccessibilityReadingInfoType(control);
491   for ( auto i = 0u; i < 4; ++i)
492     DALI_TEST_CHECK ( reading_info_type[ static_cast< Dali::Accessibility::ReadingInfoType >( i ) ]);
493
494   END_TEST;
495 }
496
497 int UtcDaliControlDoGesture(void)
498 {
499   ToolkitTestApplication application;
500   auto control = Control::New();
501   Dali::Accessibility::TestEnableSC( true );
502
503   auto accessible = Dali::Accessibility::Accessible::Get( control );
504   auto gesture_one = Dali::Accessibility::GestureInfo { Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 };
505   auto gesture_two = Dali::Accessibility::GestureInfo { Dali::Accessibility::Gesture::ONE_FINGER_FLICK_RIGHT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 };
506
507   DALI_TEST_CHECK( !accessible->DoGesture( gesture_one ) );
508   DALI_TEST_CHECK( !TestDoGesture( accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 ) );
509
510   DevelControl::AccessibilityDoGestureSignal(control).Connect( [] ( std::pair< Dali::Accessibility::GestureInfo, bool > &gesture ) {
511   if ( gesture.first.type == Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT )
512     gesture.second = true;
513   else
514     gesture.second = false;
515   } );
516
517   DALI_TEST_CHECK( accessible->DoGesture( gesture_one ) );
518   DALI_TEST_CHECK( TestDoGesture( accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 ) );
519
520   DALI_TEST_CHECK( !accessible->DoGesture( gesture_two ) );
521   DALI_TEST_CHECK( !TestDoGesture( accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_RIGHT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 ) );
522
523   Dali::Accessibility::TestEnableSC( false );
524
525   END_TEST;
526 }
527
528 int UtcDaliAccessibilityRelation(void)
529 {
530   ToolkitTestApplication application;
531   Dali::Accessibility::TestEnableSC( true );
532
533   auto rel = Accessibility::RelationType::FLOWS_TO;
534   auto number = static_cast< size_t >( rel );
535   auto control = Control::New();
536   auto destination1 = Control::New();
537   auto destination2 = Control::New();
538
539   DevelControl::AppendAccessibilityRelation( control, destination1, rel );
540   auto relations = DevelControl::GetAccessibilityRelations(control);
541   DALI_TEST_CHECK( relations[ number ].size() == 1 );
542
543   DevelControl::AppendAccessibilityRelation( control, destination2, rel );
544   relations = DevelControl::GetAccessibilityRelations(control);
545   DALI_TEST_CHECK( relations[ number ].size() == 2 );
546
547   auto accessible = Dali::Accessibility::Accessible::Get( control );
548   auto accessible_destination1 = Dali::Accessibility::Accessible::Get( destination1 );
549   auto accessible_destination2 = Dali::Accessibility::Accessible::Get( destination2 );
550   auto relationset = accessible->GetRelationSet();
551
552   DALI_TEST_CHECK( relationset[0].relationType == rel );
553   DALI_TEST_CHECK( relationset[0].targets[0] == accessible_destination1->GetAddress() || relationset[0].targets[1] == accessible_destination1->GetAddress() );
554   DALI_TEST_CHECK( relationset[0].targets[0] == accessible_destination2->GetAddress() || relationset[0].targets[1] == accessible_destination2->GetAddress() );
555
556   auto relationset_bridge = TestGetRelationSet( accessible -> GetAddress() );
557   DALI_TEST_CHECK( static_cast< uint32_t >( relationset[0].relationType ) == std::get<0>( relationset_bridge[0] ) );
558
559   DALI_TEST_CHECK( relationset[0].targets[0] == std::get<1>( relationset_bridge[0] )[0] || relationset[0].targets[1] == std::get<1>( relationset_bridge[0] )[0] );
560   DALI_TEST_CHECK( relationset[0].targets[0] == std::get<1>( relationset_bridge[0] )[1] || relationset[0].targets[1] == std::get<1>( relationset_bridge[0] )[1] );
561
562   DevelControl::RemoveAccessibilityRelation(control,destination2,rel);
563   relations = DevelControl::GetAccessibilityRelations(control);
564   DALI_TEST_CHECK( relations[ number ].size() == 1 );
565
566   DevelControl::ClearAccessibilityRelations(control);
567   relations = DevelControl::GetAccessibilityRelations(control);
568   DALI_TEST_CHECK( relations[ number ].size() == 0 );
569
570   Dali::Accessibility::TestEnableSC( false );
571
572   END_TEST;
573 }
574
575 int UtcDaliAccessibilityParentChildren(void)
576 {
577   ToolkitTestApplication application;
578   Dali::Accessibility::TestEnableSC( true );
579
580   auto parent = Control::New();
581   auto child_1 = Control::New();
582   auto child_2 = Control::New();
583
584   auto parent_accessible = Dali::Accessibility::Accessible::Get( parent );
585   auto child_1_accessible = Dali::Accessibility::Accessible::Get( child_1 );
586   auto child_2_accessible = Dali::Accessibility::Accessible::Get( child_2 );
587
588   auto children = TestGetChildren( parent_accessible -> GetAddress() );
589   DALI_TEST_EQUALS( children.size(), 0, TEST_LOCATION );
590
591   try
592   {
593     TestGetIndexInParent( child_1_accessible -> GetAddress() );
594     DALI_ABORT("Object has parent, test abort");
595   }
596   catch(TestDBusWrapper::error &){}
597
598   try
599   {
600     TestGetChildAtIndex( parent_accessible -> GetAddress(), -1 );
601     DALI_ABORT("Positive index, test abort");
602   }
603   catch(TestDBusWrapper::error &){}
604
605   DALI_TEST_EQUALS( parent_accessible -> GetChildCount(), 0, TEST_LOCATION );
606
607   try
608   {
609     child_1_accessible -> GetIndexInParent();
610     DALI_ABORT("Object has parent, test abort");
611   }
612   catch (Dali::DaliException &){}
613
614   parent.Add(child_1);
615   parent.Add(child_2);
616
617   children = TestGetChildren( parent_accessible -> GetAddress() );
618   DALI_TEST_EQUALS( children.size(), 2, TEST_LOCATION );
619
620   DALI_TEST_EQUALS( parent_accessible -> GetAddress(), TestGetParent( child_1_accessible -> GetAddress() ), TEST_LOCATION );
621   DALI_TEST_EQUALS( child_2_accessible -> GetAddress(), TestGetChildAtIndex( parent_accessible -> GetAddress(), TestGetIndexInParent( child_2_accessible -> GetAddress() ) ), TEST_LOCATION );
622
623   DALI_TEST_EQUALS( parent_accessible,  child_1_accessible -> GetParent(), TEST_LOCATION );
624   DALI_TEST_EQUALS( child_2_accessible, parent_accessible -> GetChildAtIndex( child_2_accessible -> GetIndexInParent() ) , TEST_LOCATION );
625
626   Dali::Accessibility::TestEnableSC( false );
627
628   END_TEST;
629 }
630
631 int UtcDaliAccessibilityGetLayer(void)
632 {
633   ToolkitTestApplication application;
634
635   Dali::Accessibility::TestEnableSC( true );
636
637   auto control = Control::New();
638   auto accessible_obj = Dali::Accessibility::Accessible::Get( control );
639   auto accessible_component = dynamic_cast<Dali::Accessibility::Component*>(accessible_obj);
640   DALI_TEST_CHECK( accessible_component );
641   DALI_TEST_EQUALS( Dali::Accessibility::ComponentLayer::WINDOW, accessible_component -> GetLayer(), TEST_LOCATION );
642   DALI_TEST_EQUALS( Dali::Accessibility::ComponentLayer::WINDOW, TestGetLayer( accessible_component -> GetAddress() ), TEST_LOCATION );
643
644   Dali::Accessibility::TestEnableSC( false );
645
646   END_TEST;
647 }
648
649 int UtcDaliAccessibilityGrabFocus(void)
650 {
651   ToolkitTestApplication application;
652
653   Dali::Accessibility::TestEnableSC( true );
654
655   auto controla = Control::New();
656   auto controlb = Control::New();
657
658   Stage::GetCurrent().Add( controla );
659   Stage::GetCurrent().Add( controlb );
660
661   controla.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
662   controlb.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
663
664   auto a = Dali::Accessibility::Accessible::Get( controla );
665   auto b = Dali::Accessibility::Accessible::Get( controlb );
666
667   auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
668   auto b_component = dynamic_cast<Dali::Accessibility::Component*>( b );
669
670   auto states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )};
671   auto states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )};
672
673   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] );
674   DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] );
675
676   DALI_TEST_CHECK( a_component -> GrabFocus() );
677
678   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )};
679   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )};
680
681   DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] );
682   DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] );
683
684   DALI_TEST_CHECK( TestGrabFocus( b_component -> GetAddress() ) );
685
686   states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )};
687   states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )};
688
689   DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] );
690   DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] );
691
692   Dali::Accessibility::TestEnableSC( false );
693
694   END_TEST;
695 }
696
697 int UtcDaliAccessibilityGetExtents(void)
698 {
699   ToolkitTestApplication application;
700
701   Dali::Accessibility::TestEnableSC( true );
702
703   auto control = Control::New();
704   Stage::GetCurrent().GetRootLayer().Add( control );
705
706   control.SetProperty(Actor::Property::POSITION, Vector3(10, 10, 100));
707   control.SetProperty(Actor::Property::SIZE, Vector2(10, 10));
708
709   application.SendNotification();
710   application.Render( 1 );
711
712   auto a = Dali::Accessibility::Accessible::Get( control );
713   auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
714
715   auto extents = a_component->GetExtents(Dali::Accessibility::CoordType::SCREEN);
716   DALI_TEST_EQUALS( extents.x, 5.0f, TEST_LOCATION );
717   DALI_TEST_EQUALS( extents.y, 5.0f, TEST_LOCATION );
718   DALI_TEST_EQUALS( extents.height, 10.0f, TEST_LOCATION );
719   DALI_TEST_EQUALS( extents.width, 10.0f, TEST_LOCATION );
720
721   auto bridge_extents = TestGetExtents( a_component -> GetAddress() );
722   DALI_TEST_EQUALS( std::get< 0 >( bridge_extents ), 5, TEST_LOCATION );
723   DALI_TEST_EQUALS( std::get< 1 >( bridge_extents ), 5, TEST_LOCATION );
724   DALI_TEST_EQUALS( std::get< 2 >( bridge_extents ), 10, TEST_LOCATION );
725   DALI_TEST_EQUALS( std::get< 3 >( bridge_extents ), 10, TEST_LOCATION );
726
727   control.SetProperty( Dali::DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
728   application.SendNotification();
729   application.Render( 1 );
730
731   extents = a_component->GetExtents(Dali::Accessibility::CoordType::SCREEN);
732   DALI_TEST_EQUALS( extents.x, 10.0f, TEST_LOCATION );
733   DALI_TEST_EQUALS( extents.y, 10.0f, TEST_LOCATION );
734   DALI_TEST_EQUALS( extents.height, 10.0f, TEST_LOCATION );
735   DALI_TEST_EQUALS( extents.width, 10.0f, TEST_LOCATION );
736
737   bridge_extents = TestGetExtents( a_component -> GetAddress() );
738   DALI_TEST_EQUALS( std::get< 0 >( bridge_extents ), 10, TEST_LOCATION );
739   DALI_TEST_EQUALS( std::get< 1 >( bridge_extents ), 10, TEST_LOCATION );
740   DALI_TEST_EQUALS( std::get< 2 >( bridge_extents ), 10, TEST_LOCATION );
741   DALI_TEST_EQUALS( std::get< 3 >( bridge_extents ), 10, TEST_LOCATION );
742
743   Dali::Accessibility::TestEnableSC( false );
744
745   END_TEST;
746 }
747
748 int UtcDaliAccessibilityGetAlpha(void)
749 {
750   ToolkitTestApplication application;
751
752   Dali::Accessibility::TestEnableSC( true );
753
754   auto control = Control::New();
755   auto a = Dali::Accessibility::Accessible::Get( control );
756   auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
757
758   DALI_TEST_EQUALS( 0.0, a_component -> GetAlpha(), TEST_LOCATION );
759   DALI_TEST_EQUALS( 0.0, TestGetAlpha( a_component -> GetAddress() ), TEST_LOCATION );
760
761   Dali::Accessibility::TestEnableSC( false );
762
763   END_TEST;
764 }
765
766 int UtcDaliAccessibilityGetMdiZOrder(void)
767 {
768   ToolkitTestApplication application;
769
770   Dali::Accessibility::TestEnableSC( true );
771
772   auto control = Control::New();
773   auto a = Dali::Accessibility::Accessible::Get( control );
774   auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
775
776   DALI_TEST_EQUALS( 0, static_cast< int >( a_component -> GetMdiZOrder() ), TEST_LOCATION );
777   DALI_TEST_EQUALS( 0, TestGetMdiZOrder( a_component -> GetAddress() ), TEST_LOCATION );
778
779   Dali::Accessibility::TestEnableSC( false );
780
781   END_TEST;
782 }
783
784 int UtcDaliAccessibilityAction(void)
785 {
786   ToolkitTestApplication application;
787
788   Dali::Accessibility::TestEnableSC( true );
789
790   auto control = Control::New( );
791   auto a = Dali::Accessibility::Accessible::Get( control );
792   auto b = dynamic_cast<Dali::Accessibility::Action*>( a );
793
794   std::vector< std::string > actions { "activate", "accessibilityActivated", "ReadingSkipped", "ReadingCancelled", "ReadingStopped", "ReadingPaused", "ReadingResumed", "show", "hide" };
795   auto count = b -> GetActionCount();
796
797   DALI_TEST_EQUALS( count, 9, TEST_LOCATION );
798
799   for (auto i = 0u; i<count; ++i)
800   {
801     DALI_TEST_CHECK( Dali::Accessibility::Find( actions, b -> GetActionName( i ) ) );
802     DALI_TEST_EQUALS( b -> GetActionName( i ), b -> GetLocalizedActionName( i ), TEST_LOCATION );
803     DALI_TEST_EQUALS( b -> GetActionDescription( i ), "", TEST_LOCATION );
804     DALI_TEST_EQUALS( b -> GetActionKeyBinding( i ), "", TEST_LOCATION );
805   }
806
807   // Empty strings should be returned for invalid indices
808   DALI_TEST_EQUALS(b->GetActionDescription(count), "", TEST_LOCATION);
809   DALI_TEST_EQUALS(b->GetActionName(count), "", TEST_LOCATION);
810   DALI_TEST_EQUALS(b->GetLocalizedActionName(count), "", TEST_LOCATION);
811   DALI_TEST_EQUALS(b->GetActionKeyBinding(count), "", TEST_LOCATION);
812
813   count = TestGetActionCount(b -> GetAddress());
814
815   DALI_TEST_EQUALS( count, 9, TEST_LOCATION );
816
817   for (auto i = 0u; i<count; ++i)
818   {
819     DALI_TEST_CHECK( Dali::Accessibility::Find( actions, TestGetActionName( b->GetAddress(), i ) ) );
820     DALI_TEST_EQUALS( TestGetActionName( b->GetAddress(), i ), TestGetLocalizedActionName( b->GetAddress(), i ), TEST_LOCATION );
821     DALI_TEST_EQUALS( TestGetActionDescription( b->GetAddress(), i ), "", TEST_LOCATION );
822     DALI_TEST_EQUALS( TestGetActionKeyBinding( b->GetAddress(), i ), "", TEST_LOCATION );
823   }
824
825   DALI_TEST_EQUALS(TestGetActionDescription(b->GetAddress(), count), "", TEST_LOCATION);
826   DALI_TEST_EQUALS(TestGetActionName(b->GetAddress(), count), "", TEST_LOCATION);
827   DALI_TEST_EQUALS(TestGetLocalizedActionName(b->GetAddress(), count), "", TEST_LOCATION);
828   DALI_TEST_EQUALS(TestGetActionKeyBinding(b->GetAddress(), count), "", TEST_LOCATION);
829
830   Dali::Accessibility::TestEnableSC( false );
831
832   END_TEST;
833 }
834
835 int UtcDaliAccessibilityDoAction(void)
836 {
837   ToolkitTestApplication application;
838
839   Dali::Accessibility::TestEnableSC( true );
840   thread_local std::vector< bool > actions_done { false, false, false, false, false, false };
841
842   auto control = Control::New(  );
843   auto a = Dali::Accessibility::Accessible::Get( control );
844   auto b = dynamic_cast<Dali::Accessibility::Action*>( a );
845   std::vector< std::string > actions { "activate", "accessibilityActivated", "ReadingSkipped", "ReadingCancelled", "ReadingStopped", "ReadingPaused", "ReadingResumed", "show", "hide" };
846
847   // Test calling action by name
848   DALI_TEST_CHECK( b -> DoAction( actions[2] ) ); // ReadingSkipped
849   DALI_TEST_CHECK( b -> DoAction( actions[4] ) ); // ReadingStopped
850   DALI_TEST_CHECK( b -> DoAction( actions[4] ) ); // ReadingStopped
851
852   // Negative test of calling action with not defined name
853   DALI_TEST_CHECK( !b -> DoAction( "undefined" ) );
854
855   DevelControl::AccessibilityReadingSkippedSignal(control).Connect( [] () {
856     actions_done[ 1 ] = true;
857   } );
858   DevelControl::AccessibilityReadingCancelledSignal(control).Connect( [] () {
859     actions_done[ 2 ] = true;
860   } );
861   DevelControl::AccessibilityReadingStoppedSignal(control).Connect( [] () {
862     actions_done[ 3 ] = true;
863   } );
864    DevelControl::AccessibilityReadingPausedSignal(control).Connect( [] () {
865     actions_done[ 4 ] = true;
866   } );
867    DevelControl::AccessibilityReadingResumedSignal(control).Connect( [] () {
868     actions_done[ 5 ] = true;
869   } );
870   DevelControl::AccessibilityActivateSignal(control).Connect( [] () {
871     actions_done[ 0 ] = true;
872   } );
873
874   // Test calling action by index
875   DALI_TEST_CHECK( b -> DoAction( 1 ) );
876   DALI_TEST_CHECK( b -> DoAction( 2 ) );
877   DALI_TEST_CHECK( b -> DoAction( 3 ) );
878   DALI_TEST_CHECK( b -> DoAction( 4 ) );
879   DALI_TEST_CHECK( b -> DoAction( 5 ) );
880   DALI_TEST_CHECK( b -> DoAction( 6 ) );
881
882   for ( auto i = 0u; i < actions_done.size(); ++i )
883     {
884       DALI_TEST_CHECK( actions_done[ i ] );
885       actions_done[ i ] = false;
886     }
887
888   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 1 ) );
889   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 2 ) );
890   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 3 ) );
891   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 4 ) );
892   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 5 ) );
893   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 6 ) );
894
895   for ( auto i = 0u; i < actions_done.size(); ++i )
896     {
897       DALI_TEST_CHECK( actions_done[ i ] );
898       actions_done[ i ] = false;
899     }
900
901   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 1 ] ) );
902   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 2 ] ) );
903   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 3 ] ) );
904   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 4 ] ) );
905   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 5 ] ) );
906   DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 6 ] ) );
907
908   for ( auto i = 0u; i < actions_done.size(); ++i )
909       DALI_TEST_CHECK( actions_done[ i ] );
910
911   Dali::Accessibility::TestEnableSC( false );
912
913   END_TEST;
914 }
915
916 void TestVoidCallback()
917 {
918 }
919
920 int UtcDaliAccessibilitySignals(void)
921 {
922   ToolkitTestApplication application;
923   ConnectionTracker connectionTracker;
924   Control control = Control::New();
925
926   DALI_TEST_CHECK( DevelControl::AccessibilityGetNameSignal(control).Empty() );
927   control.ConnectSignal( &connectionTracker, "getName", &TestVoidCallback );
928   DALI_TEST_CHECK( !DevelControl::AccessibilityGetNameSignal(control).Empty() );
929
930   DALI_TEST_CHECK( DevelControl::AccessibilityGetDescriptionSignal(control).Empty() );
931   control.ConnectSignal( &connectionTracker, "getDescription", &TestVoidCallback );
932   DALI_TEST_CHECK( !DevelControl::AccessibilityGetDescriptionSignal(control).Empty() );
933
934   DALI_TEST_CHECK( DevelControl::AccessibilityDoGestureSignal(control).Empty() );
935   control.ConnectSignal( &connectionTracker, "doGesture", &TestVoidCallback );
936   DALI_TEST_CHECK( !DevelControl::AccessibilityDoGestureSignal(control).Empty() );
937
938   END_TEST;
939 }