[AT-SPI] Set default value of ReadingInfoTypes
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-Accessibility-Controls-BridgeUp.cpp
index 3acd294..fdd8f10 100644 (file)
@@ -4,6 +4,7 @@
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali/devel-api/adaptor-framework/accessibility.h>
 #include <dali/devel-api/adaptor-framework/accessibility-impl.h>
+#include <dali-toolkit/devel-api/controls/buttons/toggle-button.h>
 #include <dali-toolkit/devel-api/controls/control-devel.h>
 #include <dali-toolkit/devel-api/controls/popup/popup.h>
 #include <dali/devel-api/actors/actor-devel.h>
@@ -89,6 +90,7 @@ int UtcDaliControlAccessibilityName(void)
 
   DALI_TEST_EQUALS( "Accessibility_Name_With_Callback" , TestGetName( q->GetAddress()), TEST_LOCATION );
 
+  //TODO test emission of name change signal
   Dali::Accessibility::TestEnableSC( false );
 
   END_TEST;
@@ -120,6 +122,7 @@ int UtcDaliControlAccessibilityDescription(void)
 
   DALI_TEST_EQUALS( "Accessibility_Description_With_Callback" , TestGetDescription( q->GetAddress()), TEST_LOCATION );
 
+  //TODO test emission of description change signal
   Dali::Accessibility::TestEnableSC( false );
 
   END_TEST;
@@ -159,6 +162,67 @@ int UtcDaliControlAccessibilityRole(void)
   END_TEST;
 }
 
+int UtcDaliControlAccessibilityRoleToggleButton(void)
+{
+  ToolkitTestApplication application;
+
+  auto control = Dali::Toolkit::ToggleButton::New();
+  auto button = Dali::Accessibility::Role::TOGGLE_BUTTON;
+
+  control.SetProperty(Toolkit::ToggleButton::Property::TOOLTIPS,
+          Property::Array{"option1", "option2"});
+
+  Dali::Accessibility::TestEnableSC( true );
+
+  control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button );
+  auto q = Dali::Accessibility::Accessible::Get( control );
+
+  DALI_TEST_EQUALS( button , q->GetRole(), TEST_LOCATION);
+  DALI_TEST_EQUALS( "toggle button" , q->GetRoleName(), TEST_LOCATION );
+
+  Dali::Accessibility::States states = q->GetStates();
+  DALI_TEST_EQUALS( true , (bool)states[Dali::Accessibility::State::VISIBLE], TEST_LOCATION);
+
+  DALI_TEST_EQUALS( "option1", q->GetDescription(), TEST_LOCATION );
+
+  auto i = dynamic_cast<Dali::Accessibility::Component*>(q);
+  if (i)
+    i->GrabHighlight();
+
+  control.SetProperty( Toolkit::Button::Property::LABEL, "ToggleButton2" );
+  DALI_TEST_EQUALS( "ToggleButton2", TestGetName( q->GetAddress() ), TEST_LOCATION );
+
+  Dali::Accessibility::TestEnableSC( false );
+
+  END_TEST;
+}
+
+int UtcDaliControlAccessibilityButtonLabel(void)
+{
+  ToolkitTestApplication application;
+
+  auto control = Dali::Toolkit::PushButton::New();
+  auto button = Dali::Accessibility::Role::PUSH_BUTTON;
+
+  Dali::Accessibility::TestEnableSC( true );
+
+  control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button );
+
+  auto q = Dali::Accessibility::Accessible::Get( control );
+  auto i = dynamic_cast<Dali::Accessibility::Component*>(q);
+
+  if (i)
+    i->GrabHighlight();
+
+  control.SetProperty( Toolkit::Button::Property::LABEL, "Button2" );
+
+  DALI_TEST_EQUALS( "Button2" , TestGetName( q->GetAddress() ), TEST_LOCATION );
+
+  Dali::Accessibility::TestEnableSC( false );
+
+  END_TEST;
+}
+
 int UtcDaliControlAccessibilityState(void)
 {
   ToolkitTestApplication application;
@@ -180,10 +244,16 @@ int UtcDaliControlAccessibilityState(void)
 int UtcDaliControlAccessibilityModal(void)
 {
   ToolkitTestApplication application;
+
   auto control = Dali::Toolkit::Popup::New();
-  auto states = DevelControl::GetAccessibilityStates(control);
+  auto q = Dali::Accessibility::Accessible::Get( control );
 
-  DALI_TEST_CHECK( states[ Dali::Accessibility::State::MODAL ] );
+  Dali::Accessibility::TestEnableSC( true );
+
+  auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )};
+  DALI_TEST_CHECK( states_by_bridge[Dali::Accessibility::State::MODAL] );
+
+  Dali::Accessibility::TestEnableSC( false );
 
   END_TEST;
 }
@@ -196,6 +266,11 @@ int UtcDaliControlAccessibilityHighlightable(void)
   auto noneset = control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE );
   DALI_TEST_EQUALS( Property::NONE, noneset.GetType(), TEST_LOCATION );
 
+   // negative testcase - trying to set unconvertible value
+  control.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, "deadbeef" );
+  noneset = control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE );
+  DALI_TEST_EQUALS( Property::NONE, noneset.GetType(), TEST_LOCATION );
+
   auto q = Dali::Accessibility::Accessible::Get( control );
 
   Dali::Accessibility::TestEnableSC( true );
@@ -228,6 +303,7 @@ int UtcDaliControlAccessibilityHighlightBridgeUp(void)
 
   auto controla = Control::New();
   auto controlb = Control::New();
+  controla.Add(controlb);
 
   controla.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
   controlb.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
@@ -384,6 +460,22 @@ int UtcDaliControlReadingInfoType(void)
   auto control = Control::New();
 
   auto reading_info_type = DevelControl::GetAccessibilityReadingInfoType(control);
+
+  for ( auto i = 0u; i < 4; ++i)
+    DALI_TEST_CHECK ( reading_info_type[ static_cast< Dali::Accessibility::ReadingInfoType >( i ) ]);
+
+  reading_info_type[Dali::Accessibility::ReadingInfoType::DESCRIPTION] = false;
+  reading_info_type[Dali::Accessibility::ReadingInfoType::STATE] = false;
+  reading_info_type[Dali::Accessibility::ReadingInfoType::NAME] = false;
+  reading_info_type[Dali::Accessibility::ReadingInfoType::ROLE] = false;
+
+  DevelControl::SetAccessibilityReadingInfoType(control, reading_info_type);
+
+  reading_info_type = DevelControl::GetAccessibilityReadingInfoType(control);
+
+  for ( auto i = 0u; i < 4; ++i)
+    DALI_TEST_CHECK ( false == reading_info_type[ static_cast< Dali::Accessibility::ReadingInfoType >( i ) ]);
+
   reading_info_type[Dali::Accessibility::ReadingInfoType::DESCRIPTION] = true;
   reading_info_type[Dali::Accessibility::ReadingInfoType::STATE] = true;
   reading_info_type[Dali::Accessibility::ReadingInfoType::NAME] = true;
@@ -757,6 +849,9 @@ int UtcDaliAccessibilityDoAction(void)
   DALI_TEST_CHECK( b -> DoAction( actions[4] ) ); // ReadingStopped
   DALI_TEST_CHECK( b -> DoAction( actions[4] ) ); // ReadingStopped
 
+  // Negative test of calling action with not defined name
+  DALI_TEST_CHECK( !b -> DoAction( "undefined" ) );
+
   DevelControl::AccessibilityReadingSkippedSignal(control).Connect( [] () {
     actions_done[ 1 ] = true;
   } );
@@ -817,3 +912,28 @@ int UtcDaliAccessibilityDoAction(void)
 
   END_TEST;
 }
+
+void TestVoidCallback()
+{
+}
+
+int UtcDaliAccessibilitySignals(void)
+{
+  ToolkitTestApplication application;
+  ConnectionTracker connectionTracker;
+  Control control = Control::New();
+
+  DALI_TEST_CHECK( DevelControl::AccessibilityGetNameSignal(control).Empty() );
+  control.ConnectSignal( &connectionTracker, "getName", &TestVoidCallback );
+  DALI_TEST_CHECK( !DevelControl::AccessibilityGetNameSignal(control).Empty() );
+
+  DALI_TEST_CHECK( DevelControl::AccessibilityGetDescriptionSignal(control).Empty() );
+  control.ConnectSignal( &connectionTracker, "getDescription", &TestVoidCallback );
+  DALI_TEST_CHECK( !DevelControl::AccessibilityGetDescriptionSignal(control).Empty() );
+
+  DALI_TEST_CHECK( DevelControl::AccessibilityDoGestureSignal(control).Empty() );
+  control.ConnectSignal( &connectionTracker, "doGesture", &TestVoidCallback );
+  DALI_TEST_CHECK( !DevelControl::AccessibilityDoGestureSignal(control).Empty() );
+
+  END_TEST;
+}