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>
14 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dbus-wrapper.h>
16 using namespace Dali::Toolkit;
18 void utc_dali_accessibility_controls_bridge_up_startup(void)
20 test_return_value = TET_UNDEF;
21 DBusWrapper::Install(std::unique_ptr<DBusWrapper>(new TestDBusWrapper));
24 void utc_dali_accessibility_controls_bridge_up_cleanup(void)
26 test_return_value = TET_PASS;
27 //DBusWrapper::Install({}) is a de-install
28 DBusWrapper::Install({});
32 namespace Accessibility {
33 std::ostream & operator<< (std::ostream & stream, const Address & address)
35 stream << address.ToString();
41 int UtcDaliControlAccessibilityRaiseBridge(void)
43 DALI_TEST_CHECK(!Accessibility::IsUp());
45 ToolkitTestApplication application;
47 Dali::Accessibility::TestEnableSC(true);
49 DALI_TEST_CHECK(Accessibility::IsUp());
51 // auto wr = static_cast<TestDBusWrapper*>(DBusWrapper::Installed());
52 // for(auto &a : wr->daliMethods) {
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";
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);
61 Dali::Accessibility::TestEnableSC(false);
63 DALI_TEST_CHECK(!Accessibility::IsUp());
68 int UtcDaliControlAccessibilityName(void)
70 ToolkitTestApplication application;
72 auto control = Control::New();
73 Stage::GetCurrent().Add( control );
75 auto q = Dali::Accessibility::Accessible::Get( control );
78 DALI_TEST_EQUALS( "" , q->GetName(), TEST_LOCATION );
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 );
84 DevelControl::AccessibilityGetNameSignal(control).Connect( [] (std::string &accessibility_name) {
85 accessibility_name = "Accessibility_Name_With_Callback"; } );
87 DALI_TEST_EQUALS( "Accessibility_Name_With_Callback" , q->GetName(), TEST_LOCATION );
89 Dali::Accessibility::TestEnableSC(true);
91 DALI_TEST_EQUALS( "Accessibility_Name_With_Callback" , TestGetName( q->GetAddress()), TEST_LOCATION );
93 //TODO test emission of name change signal
94 Dali::Accessibility::TestEnableSC( false );
99 int UtcDaliControlAccessibilityDescription(void)
101 ToolkitTestApplication application;
103 auto control = Control::New();
105 auto q = Dali::Accessibility::Accessible::Get( control );
106 DALI_TEST_CHECK( q );
108 DALI_TEST_EQUALS( "" , q->GetDescription(), TEST_LOCATION );
110 control.SetProperty( DevelControl::Property::ACCESSIBILITY_DESCRIPTION, "Accessibility_Description" );
111 DALI_TEST_EQUALS( "Accessibility_Description" , q->GetDescription(), TEST_LOCATION );
113 auto property = control.GetProperty( DevelControl::Property::ACCESSIBILITY_DESCRIPTION ).Get<std::string>();
114 DALI_TEST_EQUALS( "Accessibility_Description", property, TEST_LOCATION );
116 DevelControl::AccessibilityGetDescriptionSignal(control).Connect( [] (std::string &accessibility_description) {
117 accessibility_description = "Accessibility_Description_With_Callback"; } );
119 DALI_TEST_EQUALS( "Accessibility_Description_With_Callback" , q->GetDescription(), TEST_LOCATION );
121 Dali::Accessibility::TestEnableSC( true );
123 DALI_TEST_EQUALS( "Accessibility_Description_With_Callback" , TestGetDescription( q->GetAddress()), TEST_LOCATION );
125 //TODO test emission of description change signal
126 Dali::Accessibility::TestEnableSC( false );
131 int UtcDaliControlAccessibilityRole(void)
133 ToolkitTestApplication application;
135 auto control = Control::New();
136 auto role_unknown = Dali::Accessibility::Role::UNKNOWN;
137 auto role_pushbutton = Dali::Accessibility::Role::PUSH_BUTTON;
139 DALI_TEST_EQUALS( role_unknown,control.GetProperty( DevelControl::Property::ACCESSIBILITY_ROLE ).Get< Dali::Accessibility::Role >(), TEST_LOCATION );
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 );
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 );
151 control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, role_pushbutton );
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 );
157 Dali::Accessibility::TestEnableSC( false );
159 DALI_TEST_EQUALS( role_pushbutton , q->GetRole(), TEST_LOCATION);
160 DALI_TEST_EQUALS( "push button" , q->GetRoleName(), TEST_LOCATION );
165 int UtcDaliControlAccessibilityRoleToggleButton(void)
167 ToolkitTestApplication application;
169 auto control = Dali::Toolkit::ToggleButton::New();
170 auto button = Dali::Accessibility::Role::TOGGLE_BUTTON;
172 control.SetProperty(Toolkit::ToggleButton::Property::TOOLTIPS,
173 Property::Array{"option1", "option2"});
175 Dali::Accessibility::TestEnableSC( true );
177 control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button );
178 auto q = Dali::Accessibility::Accessible::Get( control );
180 DALI_TEST_EQUALS( button , q->GetRole(), TEST_LOCATION);
181 DALI_TEST_EQUALS( "toggle button" , q->GetRoleName(), TEST_LOCATION );
183 Dali::Accessibility::States states = q->GetStates();
184 DALI_TEST_EQUALS( true , (bool)states[Dali::Accessibility::State::VISIBLE], TEST_LOCATION);
186 DALI_TEST_EQUALS( "option1", q->GetDescription(), TEST_LOCATION );
188 auto i = dynamic_cast<Dali::Accessibility::Component*>(q);
192 control.SetProperty( Toolkit::Button::Property::LABEL, "ToggleButton2" );
193 DALI_TEST_EQUALS( "ToggleButton2", TestGetName( q->GetAddress() ), TEST_LOCATION );
195 Dali::Accessibility::TestEnableSC( false );
200 int UtcDaliControlAccessibilityButtonLabel(void)
202 ToolkitTestApplication application;
204 auto control = Dali::Toolkit::PushButton::New();
205 auto button = Dali::Accessibility::Role::PUSH_BUTTON;
207 Dali::Accessibility::TestEnableSC( true );
209 control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button );
211 auto q = Dali::Accessibility::Accessible::Get( control );
212 auto i = dynamic_cast<Dali::Accessibility::Component*>(q);
217 control.SetProperty( Toolkit::Button::Property::LABEL, "Button2" );
219 DALI_TEST_EQUALS( "Button2" , TestGetName( q->GetAddress() ), TEST_LOCATION );
221 Dali::Accessibility::TestEnableSC( false );
226 int UtcDaliControlAccessibilityState(void)
228 ToolkitTestApplication application;
230 auto control = Control::New();
231 auto q = Dali::Accessibility::Accessible::Get( control );
233 Dali::Accessibility::TestEnableSC( true );
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 );
239 Dali::Accessibility::TestEnableSC( false );
244 int UtcDaliControlAccessibilityModal(void)
246 ToolkitTestApplication application;
248 auto control = Dali::Toolkit::Popup::New();
249 auto q = Dali::Accessibility::Accessible::Get( control );
251 Dali::Accessibility::TestEnableSC( true );
253 auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
254 DALI_TEST_CHECK( states_by_bridge[Dali::Accessibility::State::MODAL] );
256 Dali::Accessibility::TestEnableSC( false );
261 int UtcDaliControlAccessibilityHighlightable(void)
263 ToolkitTestApplication application;
264 auto control = Control::New();
266 auto noneset = control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE );
267 DALI_TEST_EQUALS( Property::NONE, noneset.GetType(), TEST_LOCATION );
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 );
274 auto q = Dali::Accessibility::Accessible::Get( control );
276 Dali::Accessibility::TestEnableSC( true );
278 auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
279 DALI_TEST_CHECK( !states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] );
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 );
285 states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
286 DALI_TEST_CHECK( states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] );
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 );
292 states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
293 DALI_TEST_CHECK( !states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] );
295 Dali::Accessibility::TestEnableSC( false );
300 int UtcDaliControlAccessibilityHighlightBridgeUp(void)
302 ToolkitTestApplication application;
304 auto controla = Control::New();
305 auto controlb = Control::New();
306 controla.Add(controlb);
308 controla.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
309 controlb.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
311 Dali::Accessibility::TestEnableSC( true );
313 auto accessible_a = Dali::Accessibility::Accessible::Get( controla );
314 auto accessible_b = Dali::Accessibility::Accessible::Get( controlb );
316 auto a = dynamic_cast<Dali::Accessibility::Component*>( accessible_a );
317 auto b = dynamic_cast<Dali::Accessibility::Component*>( accessible_b );
319 auto states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
320 auto states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
322 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
323 DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
325 DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION );
327 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
328 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
330 DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
331 DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
333 DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION );
334 DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION );
336 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
337 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
339 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
340 DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
342 DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION );
344 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
345 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
347 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
348 DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
350 DALI_TEST_EQUALS( true, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION );
352 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
353 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
355 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
356 DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
358 DALI_TEST_CHECK( TestGrabHighlight( a -> GetAddress() ) );
360 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
361 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
363 DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
364 DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
366 DALI_TEST_CHECK( TestGrabHighlight( b -> GetAddress() ) );
368 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
369 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
371 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
372 DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
374 DALI_TEST_CHECK( TestClearHighlight( b -> GetAddress() ) );
376 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )};
377 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )};
379 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] );
380 DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] );
383 Dali::Accessibility::TestEnableSC( false );
388 int utcDaliAccessibilityControlAttributes(void)
390 ToolkitTestApplication application;
391 auto check_box_button = Toolkit::Control::New();
396 auto attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
397 auto attributes_map = attributes.GetMap();
399 auto position = attributes_map->Find( "access_key1" );
400 DALI_TEST_CHECK( !position );
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();
406 DALI_TEST_EQUALS( (attributes_map->Find( "access_key1" ))->Get<std::string>(), "access_value1", TEST_LOCATION );
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();
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 );
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();
419 DALI_TEST_EQUALS( (attributes_map->Find( "access_key2" ))->Get<std::string>(), "access_value2_b", TEST_LOCATION );
421 DevelControl::RemoveAccessibilityAttribute( check_box_button, "access_key2" );
422 attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
423 attributes_map = attributes.GetMap();
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 );
428 Dali::Accessibility::TestEnableSC( true );
430 auto ptr = Dali::Accessibility::Accessible::Get( check_box_button );
431 auto attribute_map_bridge = TestGetAttributes( ptr->GetAddress() );
433 for (auto i = 0u; i<attributes_map->Count();++i)
434 if((attributes_map->GetValue(i)).GetType() != Property::NONE )
437 DALI_TEST_EQUALS( counter, attribute_map_bridge.size(), TEST_LOCATION );
439 for (auto it : attribute_map_bridge)
440 DALI_TEST_EQUALS( (attributes_map->Find( it.first ))->Get<std::string>(), it.second, TEST_LOCATION );
442 DevelControl::ClearAccessibilityAttributes(check_box_button);
443 attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
444 attributes_map = attributes.GetMap();
446 position = attributes_map->Find( "access_key1" );
447 DALI_TEST_CHECK( !position );
449 position = attributes_map->Find( "access_key2" );
450 DALI_TEST_CHECK( !position );
452 Dali::Accessibility::TestEnableSC( false );
457 int UtcDaliControlReadingInfoType(void)
459 ToolkitTestApplication application;
460 auto control = Control::New();
462 auto reading_info_type = DevelControl::GetAccessibilityReadingInfoType(control);
464 for ( auto i = 0u; i < 4; ++i)
465 DALI_TEST_CHECK ( reading_info_type[ static_cast< Dali::Accessibility::ReadingInfoType >( i ) ]);
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;
472 DevelControl::SetAccessibilityReadingInfoType(control, reading_info_type);
474 reading_info_type = DevelControl::GetAccessibilityReadingInfoType(control);
476 for ( auto i = 0u; i < 4; ++i)
477 DALI_TEST_CHECK ( false == reading_info_type[ static_cast< Dali::Accessibility::ReadingInfoType >( i ) ]);
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;
484 DevelControl::SetAccessibilityReadingInfoType(control, reading_info_type);
486 auto q = control.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES );
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 ) ]);
497 int UtcDaliControlDoGesture(void)
499 ToolkitTestApplication application;
500 auto control = Control::New();
501 Dali::Accessibility::TestEnableSC( true );
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 };
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 ) );
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;
514 gesture.second = false;
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 ) );
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 ) );
523 Dali::Accessibility::TestEnableSC( false );
528 int UtcDaliAccessibilityRelation(void)
530 ToolkitTestApplication application;
531 Dali::Accessibility::TestEnableSC( true );
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();
539 DevelControl::AppendAccessibilityRelation( control, destination1, rel );
540 auto relations = DevelControl::GetAccessibilityRelations(control);
541 DALI_TEST_CHECK( relations[ number ].size() == 1 );
543 DevelControl::AppendAccessibilityRelation( control, destination2, rel );
544 relations = DevelControl::GetAccessibilityRelations(control);
545 DALI_TEST_CHECK( relations[ number ].size() == 2 );
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();
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() );
556 auto relationset_bridge = TestGetRelationSet( accessible -> GetAddress() );
557 DALI_TEST_CHECK( static_cast< uint32_t >( relationset[0].relationType ) == std::get<0>( relationset_bridge[0] ) );
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] );
562 DevelControl::RemoveAccessibilityRelation(control,destination2,rel);
563 relations = DevelControl::GetAccessibilityRelations(control);
564 DALI_TEST_CHECK( relations[ number ].size() == 1 );
566 DevelControl::ClearAccessibilityRelations(control);
567 relations = DevelControl::GetAccessibilityRelations(control);
568 DALI_TEST_CHECK( relations[ number ].size() == 0 );
570 Dali::Accessibility::TestEnableSC( false );
575 int UtcDaliAccessibilityParentChildren(void)
577 ToolkitTestApplication application;
578 Dali::Accessibility::TestEnableSC( true );
580 auto parent = Control::New();
581 auto child_1 = Control::New();
582 auto child_2 = Control::New();
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 );
588 auto children = TestGetChildren( parent_accessible -> GetAddress() );
589 DALI_TEST_EQUALS( children.size(), 0, TEST_LOCATION );
593 TestGetIndexInParent( child_1_accessible -> GetAddress() );
594 DALI_ABORT("Object has parent, test abort");
596 catch(TestDBusWrapper::error &){}
600 TestGetChildAtIndex( parent_accessible -> GetAddress(), -1 );
601 DALI_ABORT("Positive index, test abort");
603 catch(TestDBusWrapper::error &){}
605 DALI_TEST_EQUALS( parent_accessible -> GetChildCount(), 0, TEST_LOCATION );
609 child_1_accessible -> GetIndexInParent();
610 DALI_ABORT("Object has parent, test abort");
612 catch (Dali::DaliException &){}
617 children = TestGetChildren( parent_accessible -> GetAddress() );
618 DALI_TEST_EQUALS( children.size(), 2, TEST_LOCATION );
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 );
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 );
626 Dali::Accessibility::TestEnableSC( false );
631 int UtcDaliAccessibilityGetLayer(void)
633 ToolkitTestApplication application;
635 Dali::Accessibility::TestEnableSC( true );
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 );
644 Dali::Accessibility::TestEnableSC( false );
649 int UtcDaliAccessibilityGrabFocus(void)
651 ToolkitTestApplication application;
653 Dali::Accessibility::TestEnableSC( true );
655 auto controla = Control::New();
656 auto controlb = Control::New();
658 Stage::GetCurrent().Add( controla );
659 Stage::GetCurrent().Add( controlb );
661 controla.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
662 controlb.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
664 auto a = Dali::Accessibility::Accessible::Get( controla );
665 auto b = Dali::Accessibility::Accessible::Get( controlb );
667 auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
668 auto b_component = dynamic_cast<Dali::Accessibility::Component*>( b );
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() )};
673 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] );
674 DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] );
676 DALI_TEST_CHECK( a_component -> GrabFocus() );
678 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )};
679 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )};
681 DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] );
682 DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] );
684 DALI_TEST_CHECK( TestGrabFocus( b_component -> GetAddress() ) );
686 states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )};
687 states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )};
689 DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] );
690 DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] );
692 Dali::Accessibility::TestEnableSC( false );
697 int UtcDaliAccessibilityGetExtents(void)
699 ToolkitTestApplication application;
701 Dali::Accessibility::TestEnableSC( true );
703 auto control = Control::New();
704 Stage::GetCurrent().GetRootLayer().Add( control );
706 control.SetProperty(Actor::Property::POSITION, Vector3(10, 10, 100));
707 control.SetProperty(Actor::Property::SIZE, Vector2(10, 10));
709 application.SendNotification();
710 application.Render( 1 );
712 auto a = Dali::Accessibility::Accessible::Get( control );
713 auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
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 );
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 );
727 control.SetProperty( Dali::DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
728 application.SendNotification();
729 application.Render( 1 );
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 );
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 );
743 Dali::Accessibility::TestEnableSC( false );
748 int UtcDaliAccessibilityGetAlpha(void)
750 ToolkitTestApplication application;
752 Dali::Accessibility::TestEnableSC( true );
754 auto control = Control::New();
755 auto a = Dali::Accessibility::Accessible::Get( control );
756 auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
758 DALI_TEST_EQUALS( 0.0, a_component -> GetAlpha(), TEST_LOCATION );
759 DALI_TEST_EQUALS( 0.0, TestGetAlpha( a_component -> GetAddress() ), TEST_LOCATION );
761 Dali::Accessibility::TestEnableSC( false );
766 int UtcDaliAccessibilityGetMdiZOrder(void)
768 ToolkitTestApplication application;
770 Dali::Accessibility::TestEnableSC( true );
772 auto control = Control::New();
773 auto a = Dali::Accessibility::Accessible::Get( control );
774 auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
776 DALI_TEST_EQUALS( 0, static_cast< int >( a_component -> GetMdiZOrder() ), TEST_LOCATION );
777 DALI_TEST_EQUALS( 0, TestGetMdiZOrder( a_component -> GetAddress() ), TEST_LOCATION );
779 Dali::Accessibility::TestEnableSC( false );
784 int UtcDaliAccessibilityAction(void)
786 ToolkitTestApplication application;
788 Dali::Accessibility::TestEnableSC( true );
790 auto control = Control::New( );
791 auto a = Dali::Accessibility::Accessible::Get( control );
792 auto b = dynamic_cast<Dali::Accessibility::Action*>( a );
794 std::vector< std::string > actions { "activate", "accessibilityActivated", "ReadingSkipped", "ReadingCancelled", "ReadingStopped", "ReadingPaused", "ReadingResumed", "show", "hide" };
795 auto count = b -> GetActionCount();
797 DALI_TEST_EQUALS( count, 9, TEST_LOCATION );
799 for (auto i = 0u; i<count; ++i)
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 );
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);
813 count = TestGetActionCount(b -> GetAddress());
815 DALI_TEST_EQUALS( count, 9, TEST_LOCATION );
817 for (auto i = 0u; i<count; ++i)
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 );
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);
830 Dali::Accessibility::TestEnableSC( false );
835 int UtcDaliAccessibilityDoAction(void)
837 ToolkitTestApplication application;
839 Dali::Accessibility::TestEnableSC( true );
840 thread_local std::vector< bool > actions_done { false, false, false, false, false, false };
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" };
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
852 // Negative test of calling action with not defined name
853 DALI_TEST_CHECK( !b -> DoAction( "undefined" ) );
855 DevelControl::AccessibilityReadingSkippedSignal(control).Connect( [] () {
856 actions_done[ 1 ] = true;
858 DevelControl::AccessibilityReadingCancelledSignal(control).Connect( [] () {
859 actions_done[ 2 ] = true;
861 DevelControl::AccessibilityReadingStoppedSignal(control).Connect( [] () {
862 actions_done[ 3 ] = true;
864 DevelControl::AccessibilityReadingPausedSignal(control).Connect( [] () {
865 actions_done[ 4 ] = true;
867 DevelControl::AccessibilityReadingResumedSignal(control).Connect( [] () {
868 actions_done[ 5 ] = true;
870 DevelControl::AccessibilityActivateSignal(control).Connect( [] () {
871 actions_done[ 0 ] = true;
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 ) );
882 for ( auto i = 0u; i < actions_done.size(); ++i )
884 DALI_TEST_CHECK( actions_done[ i ] );
885 actions_done[ i ] = false;
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 ) );
895 for ( auto i = 0u; i < actions_done.size(); ++i )
897 DALI_TEST_CHECK( actions_done[ i ] );
898 actions_done[ i ] = false;
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 ] ) );
908 for ( auto i = 0u; i < actions_done.size(); ++i )
909 DALI_TEST_CHECK( actions_done[ i ] );
911 Dali::Accessibility::TestEnableSC( false );
916 void TestVoidCallback()
920 int UtcDaliAccessibilitySignals(void)
922 ToolkitTestApplication application;
923 ConnectionTracker connectionTracker;
924 Control control = Control::New();
926 DALI_TEST_CHECK( DevelControl::AccessibilityGetNameSignal(control).Empty() );
927 control.ConnectSignal( &connectionTracker, "getName", &TestVoidCallback );
928 DALI_TEST_CHECK( !DevelControl::AccessibilityGetNameSignal(control).Empty() );
930 DALI_TEST_CHECK( DevelControl::AccessibilityGetDescriptionSignal(control).Empty() );
931 control.ConnectSignal( &connectionTracker, "getDescription", &TestVoidCallback );
932 DALI_TEST_CHECK( !DevelControl::AccessibilityGetDescriptionSignal(control).Empty() );
934 DALI_TEST_CHECK( DevelControl::AccessibilityDoGestureSignal(control).Empty() );
935 control.ConnectSignal( &connectionTracker, "doGesture", &TestVoidCallback );
936 DALI_TEST_CHECK( !DevelControl::AccessibilityDoGestureSignal(control).Empty() );
941 static void Wait(ToolkitTestApplication& application)
943 application.SendNotification();
944 application.Render(16);
947 int UtcDaliAccessibilityScrollToChildScrollView(void)
949 ToolkitTestApplication application;
950 Dali::Accessibility::TestEnableSC( true );
952 ScrollView scrollView = ScrollView::New();
953 application.GetScene().Add( scrollView );
955 PushButton actorA = PushButton::New();
956 const Dali::Vector3 positionA = Vector3(100.0f, 400.0f, 0.0f);
957 actorA.SetProperty( Dali::Actor::Property::POSITION, positionA );
958 scrollView.Add(actorA);
960 PushButton actorB = PushButton::New();
961 const Dali::Vector3 positionB = Vector3(500.0f, 200.0f, 0.0f);
962 actorB.SetProperty( Dali::Actor::Property::POSITION, positionB );
963 scrollView.Add(actorB);
967 auto* accessibleParent = dynamic_cast<DevelControl::AccessibleImpl*>(Dali::Accessibility::Accessible::Get(scrollView));
968 DALI_TEST_CHECK(accessibleParent);
969 auto* accessibleA = dynamic_cast<DevelControl::AccessibleImpl*>(Dali::Accessibility::Accessible::Get(actorA));
970 DALI_TEST_CHECK(accessibleA);
971 auto* accessibleB = dynamic_cast<DevelControl::AccessibleImpl*>(Dali::Accessibility::Accessible::Get(actorB));
972 DALI_TEST_CHECK(accessibleB);
974 accessibleA->GrabHighlight(); // == scrollView.ScrollTo(actorA)
976 accessibleB->GrabHighlight(); // == scrollView.ScrollTo(actorB)
979 Dali::Accessibility::TestEnableSC( false );
984 class TestItemFactory : public ItemFactory
991 unsigned int GetNumberOfItems() override
996 Dali::Actor NewItem(unsigned int itemId) override
998 return TextLabel::New(std::to_string(itemId));
1003 int UtcDaliAccessibilityScrollToChildItemView(void)
1005 ToolkitTestApplication application;
1006 Dali::Accessibility::TestEnableSC( true );
1008 TestItemFactory factory;
1009 ItemView view = ItemView::New(factory);
1010 Dali::Vector3 vec(480.0f, 800.0f, 0.0f);
1011 ItemLayoutPtr layout = DefaultItemLayout::New( DefaultItemLayout::DEPTH );
1013 view.AddLayout(*layout);
1014 view.SetProperty( Actor::Property::SIZE, vec );
1016 application.GetScene().Add(view);
1017 layout->SetOrientation(ControlOrientation::Down);
1018 view.ActivateLayout(0, vec, 0.0f);
1022 auto* accessibleParent = dynamic_cast<DevelControl::AccessibleImpl*>(Dali::Accessibility::Accessible::Get(view));
1023 DALI_TEST_CHECK(accessibleParent);
1024 auto* accessibleA = dynamic_cast<DevelControl::AccessibleImpl*>(Dali::Accessibility::Accessible::Get(view.GetItem(0)));
1025 DALI_TEST_CHECK(accessibleA);
1026 auto* accessibleB = dynamic_cast<DevelControl::AccessibleImpl*>(Dali::Accessibility::Accessible::Get(view.GetItem(1)));
1027 DALI_TEST_CHECK(accessibleB);
1029 accessibleA->GrabHighlight(); // == view.ScrollToItem(view.GetItemId(actorA))
1031 accessibleB->GrabHighlight(); // == view.ScrollToItem(view.GetItemId(actorB))
1034 Dali::Accessibility::TestEnableSC( false );
1038 int UtcDaliAccessibilityScrollToChildNonScrollable(void)
1040 ToolkitTestApplication application;
1041 Dali::Accessibility::TestEnableSC( true );
1043 TextLabel label = TextLabel::New("123");
1045 auto* accessible = dynamic_cast<DevelControl::AccessibleImpl*>(Dali::Accessibility::Accessible::Get(label));
1046 DALI_TEST_CHECK(accessible);
1048 DALI_TEST_EQUALS(accessible->IsScrollable(), false, TEST_LOCATION);
1049 DALI_TEST_EQUALS(accessible->ScrollToChild({}), false, TEST_LOCATION);
1051 Dali::Accessibility::TestEnableSC( false );