X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Accessibility-Controls-BridgeUp.cpp;h=0b1ec0e1fece3e77e9502be67565150837925ca9;hp=6d47f06a3392691fafc89b17eebccb6c2532bec9;hb=HEAD;hpb=bc2c6d28fe9649c0353e5d8b8f2245f4011f9744 diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls-BridgeUp.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls-BridgeUp.cpp index 6d47f06..ad2fba7 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls-BridgeUp.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls-BridgeUp.cpp @@ -1,13 +1,19 @@ -#include #include #include +#include #include -#include -#include #include #include #include +#include +#include #include +#include +#include +#include +#include +#include +#include #include #include @@ -28,15 +34,17 @@ void utc_dali_accessibility_controls_bridge_up_cleanup(void) DBusWrapper::Install({}); } -namespace Dali { - namespace Accessibility { - std::ostream & operator<< (std::ostream & stream, const Address & address) - { - stream << address.ToString(); - return stream; - } - } +namespace Dali +{ +namespace Accessibility +{ +std::ostream& operator<<(std::ostream& stream, const Address& address) +{ + stream << address.ToString(); + return stream; } +} // namespace Accessibility +} // namespace Dali int UtcDaliControlAccessibilityRaiseBridge(void) { @@ -70,28 +78,40 @@ int UtcDaliControlAccessibilityName(void) ToolkitTestApplication application; auto control = Control::New(); - Stage::GetCurrent().Add( control ); + Stage::GetCurrent().Add(control); + + auto q = Dali::Accessibility::Accessible::Get(control); + DALI_TEST_CHECK(q); - auto q = Dali::Accessibility::Accessible::Get( control ); - DALI_TEST_CHECK( q ); + DALI_TEST_EQUALS("", q->GetName(), TEST_LOCATION); - DALI_TEST_EQUALS( "" , q->GetName(), TEST_LOCATION ); + control.SetProperty(DevelControl::Property::ACCESSIBILITY_NAME, "Accessibility_Name"); + DALI_TEST_EQUALS("Accessibility_Name", q->GetName(), TEST_LOCATION); + DALI_TEST_EQUALS(control.GetProperty(DevelControl::Property::ACCESSIBILITY_NAME).Get(), "Accessibility_Name", TEST_LOCATION); - control.SetProperty( DevelControl::Property::ACCESSIBILITY_NAME, "Accessibility_Name" ); - DALI_TEST_EQUALS( "Accessibility_Name" , q->GetName(), TEST_LOCATION ); - DALI_TEST_EQUALS( control.GetProperty( DevelControl::Property::ACCESSIBILITY_NAME ).Get< std::string >() , "Accessibility_Name", TEST_LOCATION ); + auto nameChangeCallback = [](std::string& accessibilityName) { accessibilityName = "Accessibility_Name_With_Callback"; }; - DevelControl::AccessibilityGetNameSignal(control).Connect( [] (std::string &accessibility_name) { - accessibility_name = "Accessibility_Name_With_Callback"; } ); + DevelControl::AccessibilityGetNameSignal(control).Connect(nameChangeCallback); - DALI_TEST_EQUALS( "Accessibility_Name_With_Callback" , q->GetName(), TEST_LOCATION ); + DALI_TEST_EQUALS("Accessibility_Name_With_Callback", q->GetName(), TEST_LOCATION); Dali::Accessibility::TestEnableSC(true); - DALI_TEST_EQUALS( "Accessibility_Name_With_Callback" , TestGetName( q->GetAddress()), TEST_LOCATION ); + DALI_TEST_EQUALS("Accessibility_Name_With_Callback", TestGetName(q->GetAddress()), TEST_LOCATION); + + DevelControl::AccessibilityGetNameSignal(control).Disconnect(nameChangeCallback); + + auto i = dynamic_cast(q); + + DALI_TEST_CHECK(i); + i->GrabHighlight(); + + control.SetProperty(DevelControl::Property::ACCESSIBILITY_NAME, "Changed_Accessiblity_Name"); + DALI_TEST_EQUALS("Changed_Accessiblity_Name", q->GetName(), TEST_LOCATION); + DALI_TEST_EQUALS(control.GetProperty(DevelControl::Property::ACCESSIBILITY_NAME).Get(), "Changed_Accessiblity_Name", TEST_LOCATION); //TODO test emission of name change signal - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -102,28 +122,40 @@ int UtcDaliControlAccessibilityDescription(void) auto control = Control::New(); - auto q = Dali::Accessibility::Accessible::Get( control ); - DALI_TEST_CHECK( q ); + auto q = Dali::Accessibility::Accessible::Get(control); + DALI_TEST_CHECK(q); + + DALI_TEST_EQUALS("", q->GetDescription(), TEST_LOCATION); + + control.SetProperty(DevelControl::Property::ACCESSIBILITY_DESCRIPTION, "Accessibility_Description"); + DALI_TEST_EQUALS("Accessibility_Description", q->GetDescription(), TEST_LOCATION); + + auto property = control.GetProperty(DevelControl::Property::ACCESSIBILITY_DESCRIPTION).Get(); + DALI_TEST_EQUALS("Accessibility_Description", property, TEST_LOCATION); - DALI_TEST_EQUALS( "" , q->GetDescription(), TEST_LOCATION ); + auto descriptionChangeCallback = [](std::string& accessibilityDescription) { accessibilityDescription = "Accessibility_Description_With_Callback"; }; - control.SetProperty( DevelControl::Property::ACCESSIBILITY_DESCRIPTION, "Accessibility_Description" ); - DALI_TEST_EQUALS( "Accessibility_Description" , q->GetDescription(), TEST_LOCATION ); + DevelControl::AccessibilityGetDescriptionSignal(control).Connect(descriptionChangeCallback); - auto property = control.GetProperty( DevelControl::Property::ACCESSIBILITY_DESCRIPTION ).Get(); - DALI_TEST_EQUALS( "Accessibility_Description", property, TEST_LOCATION ); + DALI_TEST_EQUALS("Accessibility_Description_With_Callback", q->GetDescription(), TEST_LOCATION); - DevelControl::AccessibilityGetDescriptionSignal(control).Connect( [] (std::string &accessibility_description) { - accessibility_description = "Accessibility_Description_With_Callback"; } ); + Dali::Accessibility::TestEnableSC(true); + + DALI_TEST_EQUALS("Accessibility_Description_With_Callback", TestGetDescription(q->GetAddress()), TEST_LOCATION); + + DevelControl::AccessibilityGetDescriptionSignal(control).Disconnect(descriptionChangeCallback); - DALI_TEST_EQUALS( "Accessibility_Description_With_Callback" , q->GetDescription(), TEST_LOCATION ); + auto i = dynamic_cast(q); - Dali::Accessibility::TestEnableSC( true ); + DALI_TEST_CHECK(i); + i->GrabHighlight(); - DALI_TEST_EQUALS( "Accessibility_Description_With_Callback" , TestGetDescription( q->GetAddress()), TEST_LOCATION ); + control.SetProperty(DevelControl::Property::ACCESSIBILITY_DESCRIPTION, "Changed_Accessiblity_Description"); + DALI_TEST_EQUALS("Changed_Accessiblity_Description", q->GetDescription(), TEST_LOCATION); + DALI_TEST_EQUALS(control.GetProperty(DevelControl::Property::ACCESSIBILITY_DESCRIPTION).Get(), "Changed_Accessiblity_Description", TEST_LOCATION); //TODO test emission of description change signal - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -132,32 +164,32 @@ int UtcDaliControlAccessibilityRole(void) { ToolkitTestApplication application; - auto control = Control::New(); - auto role_unknown = Dali::Accessibility::Role::UNKNOWN; + auto control = Control::New(); + auto role_unknown = Dali::Accessibility::Role::UNKNOWN; auto role_pushbutton = Dali::Accessibility::Role::PUSH_BUTTON; - DALI_TEST_EQUALS( role_unknown,control.GetProperty( DevelControl::Property::ACCESSIBILITY_ROLE ).Get< Dali::Accessibility::Role >(), TEST_LOCATION ); + DALI_TEST_EQUALS(role_unknown, control.GetProperty(DevelControl::Property::ACCESSIBILITY_ROLE).Get(), TEST_LOCATION); - auto q = Dali::Accessibility::Accessible::Get( control ); - DALI_TEST_EQUALS( role_unknown , q->GetRole(), TEST_LOCATION); - DALI_TEST_EQUALS( "unknown" , q->GetRoleName(), TEST_LOCATION ); + auto q = Dali::Accessibility::Accessible::Get(control); + DALI_TEST_EQUALS(role_unknown, q->GetRole(), TEST_LOCATION); + DALI_TEST_EQUALS("unknown", q->GetRoleName(), TEST_LOCATION); - Dali::Accessibility::TestEnableSC( true ); - DALI_TEST_CHECK( q ); - DALI_TEST_EQUALS( static_cast< uint32_t >( role_unknown ), TestGetRole( q->GetAddress() ), TEST_LOCATION ); - DALI_TEST_EQUALS( "unknown" , TestGetRoleName( q->GetAddress() ), TEST_LOCATION ); - DALI_TEST_EQUALS( "unknown" , TestGetLocalizedRoleName( q->GetAddress() ), TEST_LOCATION ); + Dali::Accessibility::TestEnableSC(true); + DALI_TEST_CHECK(q); + DALI_TEST_EQUALS(static_cast(role_unknown), TestGetRole(q->GetAddress()), TEST_LOCATION); + DALI_TEST_EQUALS("unknown", TestGetRoleName(q->GetAddress()), TEST_LOCATION); + DALI_TEST_EQUALS("unknown", TestGetLocalizedRoleName(q->GetAddress()), TEST_LOCATION); - control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, role_pushbutton ); + control.SetProperty(DevelControl::Property::ACCESSIBILITY_ROLE, role_pushbutton); - DALI_TEST_EQUALS( static_cast< uint32_t >( role_pushbutton ), TestGetRole( q->GetAddress() ), TEST_LOCATION ); - DALI_TEST_EQUALS( "push button" ,TestGetRoleName( q->GetAddress() ), TEST_LOCATION ); - DALI_TEST_EQUALS( "push button" , TestGetLocalizedRoleName( q->GetAddress() ), TEST_LOCATION ); + DALI_TEST_EQUALS(static_cast(role_pushbutton), TestGetRole(q->GetAddress()), TEST_LOCATION); + DALI_TEST_EQUALS("push button", TestGetRoleName(q->GetAddress()), TEST_LOCATION); + DALI_TEST_EQUALS("push button", TestGetLocalizedRoleName(q->GetAddress()), TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); - DALI_TEST_EQUALS( role_pushbutton , q->GetRole(), TEST_LOCATION); - DALI_TEST_EQUALS( "push button" , q->GetRoleName(), TEST_LOCATION ); + DALI_TEST_EQUALS(role_pushbutton, q->GetRole(), TEST_LOCATION); + DALI_TEST_EQUALS("push button", q->GetRoleName(), TEST_LOCATION); END_TEST; } @@ -167,32 +199,33 @@ int UtcDaliControlAccessibilityRoleToggleButton(void) ToolkitTestApplication application; auto control = Dali::Toolkit::ToggleButton::New(); - auto button = Dali::Accessibility::Role::TOGGLE_BUTTON; + auto button = Dali::Accessibility::Role::TOGGLE_BUTTON; control.SetProperty(Toolkit::ToggleButton::Property::TOOLTIPS, - Property::Array{"option1", "option2"}); + Property::Array{"option1", "option2"}); - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button ); - auto q = Dali::Accessibility::Accessible::Get( control ); + 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_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(true, (bool)states[Dali::Accessibility::State::VISIBLE], TEST_LOCATION); - DALI_TEST_EQUALS( "option1", q->GetDescription(), TEST_LOCATION ); + DALI_TEST_EQUALS("option1", q->GetDescription(), TEST_LOCATION); auto i = dynamic_cast(q); - if (i) - i->GrabHighlight(); - control.SetProperty( Toolkit::Button::Property::LABEL, "ToggleButton2" ); - DALI_TEST_EQUALS( "ToggleButton2", TestGetName( q->GetAddress() ), TEST_LOCATION ); + DALI_TEST_CHECK(i); + i->GrabHighlight(); - Dali::Accessibility::TestEnableSC( false ); + control.SetProperty(Toolkit::Button::Property::LABEL, "ToggleButton2"); + DALI_TEST_EQUALS("ToggleButton2", TestGetName(q->GetAddress()), TEST_LOCATION); + + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -202,23 +235,23 @@ int UtcDaliControlAccessibilityButtonLabel(void) ToolkitTestApplication application; auto control = Dali::Toolkit::PushButton::New(); - auto button = Dali::Accessibility::Role::PUSH_BUTTON; + auto button = Dali::Accessibility::Role::PUSH_BUTTON; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - control.SetProperty( DevelControl::Property::ACCESSIBILITY_ROLE, button ); + control.SetProperty(DevelControl::Property::ACCESSIBILITY_ROLE, button); - auto q = Dali::Accessibility::Accessible::Get( control ); + auto q = Dali::Accessibility::Accessible::Get(control); auto i = dynamic_cast(q); - if (i) - i->GrabHighlight(); + DALI_TEST_CHECK(i); + i->GrabHighlight(); - control.SetProperty( Toolkit::Button::Property::LABEL, "Button2" ); + control.SetProperty(Toolkit::Button::Property::LABEL, "Button2"); - DALI_TEST_EQUALS( "Button2" , TestGetName( q->GetAddress() ), TEST_LOCATION ); + DALI_TEST_EQUALS("Button2", TestGetName(q->GetAddress()), TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -228,15 +261,15 @@ int UtcDaliControlAccessibilityState(void) ToolkitTestApplication application; auto control = Control::New(); - auto q = Dali::Accessibility::Accessible::Get( control ); + auto q = Dali::Accessibility::Accessible::Get(control); - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )}; - auto states = DevelControl::GetAccessibilityStates(control); - DALI_TEST_CHECK( states_by_bridge == states ); + auto states_by_bridge = Dali::Accessibility::States{TestGetStates(q->GetAddress())}; + auto states = DevelControl::GetAccessibilityStates(control); + DALI_TEST_CHECK(states_by_bridge == states); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -246,14 +279,14 @@ int UtcDaliControlAccessibilityModal(void) ToolkitTestApplication application; auto control = Dali::Toolkit::Popup::New(); - auto q = Dali::Accessibility::Accessible::Get( control ); + auto q = Dali::Accessibility::Accessible::Get(control); - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )}; - DALI_TEST_CHECK( states_by_bridge[Dali::Accessibility::State::MODAL] ); + auto states_by_bridge = Dali::Accessibility::States{TestGetStates(q->GetAddress())}; + DALI_TEST_CHECK(states_by_bridge[Dali::Accessibility::State::MODAL]); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -261,38 +294,38 @@ int UtcDaliControlAccessibilityModal(void) int UtcDaliControlAccessibilityHighlightable(void) { ToolkitTestApplication application; - auto control = Control::New(); + auto control = Control::New(); - auto noneset = control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ); - DALI_TEST_EQUALS( Property::NONE, noneset.GetType(), TEST_LOCATION ); + auto highlightable = control.GetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE); + DALI_TEST_EQUALS(highlightable, false, 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 ); + // negative testcase - trying to set unconvertible value + control.SetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, "deadbeef"); + highlightable = control.GetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE); + DALI_TEST_EQUALS(highlightable, false, TEST_LOCATION); - auto q = Dali::Accessibility::Accessible::Get( control ); + auto q = Dali::Accessibility::Accessible::Get(control); - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )}; - DALI_TEST_CHECK( !states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] ); + auto states_by_bridge = Dali::Accessibility::States{TestGetStates(q->GetAddress())}; + DALI_TEST_CHECK(!states_by_bridge[Dali::Accessibility::State::HIGHLIGHTABLE]); - control.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true ); - DALI_TEST_EQUALS( Property::BOOLEAN, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).GetType(), TEST_LOCATION ); - DALI_TEST_EQUALS( true, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).Get< bool >(), TEST_LOCATION ); + control.SetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true); + DALI_TEST_EQUALS(Property::BOOLEAN, control.GetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).GetType(), TEST_LOCATION); + DALI_TEST_EQUALS(true, control.GetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).Get(), TEST_LOCATION); - states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )}; - DALI_TEST_CHECK( states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] ); + states_by_bridge = Dali::Accessibility::States{TestGetStates(q->GetAddress())}; + DALI_TEST_CHECK(states_by_bridge[Dali::Accessibility::State::HIGHLIGHTABLE]); - control.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, false ); - DALI_TEST_EQUALS( Property::BOOLEAN, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).GetType(), TEST_LOCATION ); - DALI_TEST_EQUALS( false, control.GetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).Get< bool >(), TEST_LOCATION ); + control.SetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, false); + DALI_TEST_EQUALS(Property::BOOLEAN, control.GetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).GetType(), TEST_LOCATION); + DALI_TEST_EQUALS(false, control.GetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).Get(), TEST_LOCATION); - states_by_bridge = Dali::Accessibility::States { TestGetStates( q->GetAddress() )}; - DALI_TEST_CHECK( !states_by_bridge[ Dali::Accessibility::State::HIGHLIGHTABLE ] ); + states_by_bridge = Dali::Accessibility::States{TestGetStates(q->GetAddress())}; + DALI_TEST_CHECK(!states_by_bridge[Dali::Accessibility::State::HIGHLIGHTABLE]); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -305,82 +338,81 @@ int UtcDaliControlAccessibilityHighlightBridgeUp(void) auto controlb = Control::New(); controla.Add(controlb); - controla.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true ); - controlb.SetProperty( DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true ); - - Dali::Accessibility::TestEnableSC( true ); + controla.SetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true); + controlb.SetProperty(DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true); - auto accessible_a = Dali::Accessibility::Accessible::Get( controla ); - auto accessible_b = Dali::Accessibility::Accessible::Get( controlb ); + Dali::Accessibility::TestEnableSC(true); - auto a = dynamic_cast( accessible_a ); - auto b = dynamic_cast( accessible_b ); + auto accessible_a = Dali::Accessibility::Accessible::Get(controla); + auto accessible_b = Dali::Accessibility::Accessible::Get(controlb); - auto states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - auto states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + auto a = dynamic_cast(accessible_a); + auto b = dynamic_cast(accessible_b); - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + auto states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + auto states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; - DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION ); + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(!states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + DALI_TEST_EQUALS(true, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION); - DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; - DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION ); - DALI_TEST_EQUALS( true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION ); + DALI_TEST_CHECK(states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(!states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + DALI_TEST_EQUALS(true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION); + DALI_TEST_EQUALS(true, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION); - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; - DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION ); + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + DALI_TEST_EQUALS(false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION); - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; - DALI_TEST_EQUALS( true, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION ); + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + DALI_TEST_EQUALS(true, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION); - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; - DALI_TEST_CHECK( TestGrabHighlight( a -> GetAddress() ) ); + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(!states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + DALI_TEST_CHECK(TestGrabHighlight(a->GetAddress())); - DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; - DALI_TEST_CHECK( TestGrabHighlight( b -> GetAddress() ) ); + DALI_TEST_CHECK(states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(!states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + DALI_TEST_CHECK(TestGrabHighlight(b->GetAddress())); - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; - DALI_TEST_CHECK( TestClearHighlight( b -> GetAddress() ) ); + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a->GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b->GetAddress() )}; + DALI_TEST_CHECK(TestClearHighlight(b->GetAddress())); - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::HIGHLIGHTED ] ); - DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::HIGHLIGHTED ] ); + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b->GetAddress())}; + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::HIGHLIGHTED]); + DALI_TEST_CHECK(!states_by_bridge_b[Dali::Accessibility::State::HIGHLIGHTED]); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -388,68 +420,71 @@ int UtcDaliControlAccessibilityHighlightBridgeUp(void) int utcDaliAccessibilityControlAttributes(void) { ToolkitTestApplication application; - auto check_box_button = Toolkit::Control::New(); + auto check_box_button = Toolkit::Control::New(); std::string value; - - auto attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES ); + auto attributes = check_box_button.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); auto attributes_map = attributes.GetMap(); - auto position = attributes_map->Find( "access_key1" ); - DALI_TEST_CHECK( !position ); + auto position = attributes_map->Find("access_key1"); + DALI_TEST_CHECK(!position); - DevelControl::AppendAccessibilityAttribute( check_box_button, "access_key1", "access_value1" ); - attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES ); + DevelControl::AppendAccessibilityAttribute(check_box_button, "access_key1", "access_value1"); + attributes = check_box_button.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); attributes_map = attributes.GetMap(); - DALI_TEST_EQUALS( (attributes_map->Find( "access_key1" ))->Get(), "access_value1", TEST_LOCATION ); + DALI_TEST_EQUALS((attributes_map->Find("access_key1"))->Get(), "access_value1", TEST_LOCATION); - DevelControl::AppendAccessibilityAttribute( check_box_button, "access_key2", "access_value2_a" ); - attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES ); + DevelControl::AppendAccessibilityAttribute(check_box_button, "access_key2", "access_value2_a"); + attributes = check_box_button.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); attributes_map = attributes.GetMap(); - DALI_TEST_EQUALS( (attributes_map->Find( "access_key1" ))->Get(), "access_value1", TEST_LOCATION ); - DALI_TEST_EQUALS( (attributes_map->Find( "access_key2" ))->Get(), "access_value2_a", TEST_LOCATION ); + DALI_TEST_EQUALS((attributes_map->Find("access_key1"))->Get(), "access_value1", TEST_LOCATION); + DALI_TEST_EQUALS((attributes_map->Find("access_key2"))->Get(), "access_value2_a", TEST_LOCATION); - DevelControl::AppendAccessibilityAttribute( check_box_button, "access_key2", "access_value2_b" ); - attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES ); + DevelControl::AppendAccessibilityAttribute(check_box_button, "access_key2", "access_value2_b"); + attributes = check_box_button.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); attributes_map = attributes.GetMap(); - DALI_TEST_EQUALS( (attributes_map->Find( "access_key2" ))->Get(), "access_value2_b", TEST_LOCATION ); + DALI_TEST_EQUALS((attributes_map->Find("access_key2"))->Get(), "access_value2_b", TEST_LOCATION); - DevelControl::RemoveAccessibilityAttribute( check_box_button, "access_key2" ); - attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES ); + DevelControl::RemoveAccessibilityAttribute(check_box_button, "access_key2"); + attributes = check_box_button.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); attributes_map = attributes.GetMap(); // In case when we are removing one of attributes the property is setting for NONE type. - DALI_TEST_EQUALS( (attributes_map->Find( "access_key2" ))->GetType(), Property::NONE, TEST_LOCATION ); + DALI_TEST_EQUALS((attributes_map->Find("access_key2"))->GetType(), Property::NONE, TEST_LOCATION); - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); + + auto ptr = Dali::Accessibility::Accessible::Get(check_box_button); + auto attribute_map_bridge = TestGetAttributes(ptr->GetAddress()); + auto counter = 0u; - auto ptr = Dali::Accessibility::Accessible::Get( check_box_button ); - auto attribute_map_bridge = TestGetAttributes( ptr->GetAddress() ); - auto counter = 0u; - for (auto i = 0u; iCount();++i) - if((attributes_map->GetValue(i)).GetType() != Property::NONE ) + // Refresh the attributes since ControlAccessible::GetAttributes() might have added something + attributes = check_box_button.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); + attributes_map = attributes.GetMap(); + for(auto i = 0u; i < attributes_map->Count(); ++i) + if((attributes_map->GetValue(i)).GetType() != Property::NONE) ++counter; - DALI_TEST_EQUALS( counter, attribute_map_bridge.size(), TEST_LOCATION ); + DALI_TEST_EQUALS(counter, attribute_map_bridge.size(), TEST_LOCATION); - for (auto it : attribute_map_bridge) - DALI_TEST_EQUALS( (attributes_map->Find( it.first ))->Get(), it.second, TEST_LOCATION ); + for(auto it : attribute_map_bridge) + DALI_TEST_EQUALS((attributes_map->Find(it.first))->Get(), it.second, TEST_LOCATION); DevelControl::ClearAccessibilityAttributes(check_box_button); - attributes = check_box_button.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES ); + attributes = check_box_button.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); attributes_map = attributes.GetMap(); - position = attributes_map->Find( "access_key1" ); - DALI_TEST_CHECK( !position ); + position = attributes_map->Find("access_key1"); + DALI_TEST_CHECK(!position); - position = attributes_map->Find( "access_key2" ); - DALI_TEST_CHECK( !position ); + position = attributes_map->Find("access_key2"); + DALI_TEST_CHECK(!position); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -457,39 +492,39 @@ int utcDaliAccessibilityControlAttributes(void) int UtcDaliControlReadingInfoType(void) { ToolkitTestApplication application; - auto control = Control::New(); + 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 ) ]); + for(auto i = 0u; i < 4; ++i) + DALI_TEST_CHECK(reading_info_type[static_cast(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; + 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 ) ]); + for(auto i = 0u; i < 4; ++i) + DALI_TEST_CHECK(false == reading_info_type[static_cast(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; - reading_info_type[Dali::Accessibility::ReadingInfoType::ROLE] = true; + reading_info_type[Dali::Accessibility::ReadingInfoType::STATE] = true; + reading_info_type[Dali::Accessibility::ReadingInfoType::NAME] = true; + reading_info_type[Dali::Accessibility::ReadingInfoType::ROLE] = true; DevelControl::SetAccessibilityReadingInfoType(control, reading_info_type); - auto q = control.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES ); + auto q = control.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES); auto z = q.GetMap(); - DALI_TEST_EQUALS( (z->Find( "reading_info_type" ))->Get(), "name|role|description|state", TEST_LOCATION ); + DALI_TEST_EQUALS((z->Find("reading_info_type"))->Get(), "name|role|description|state", TEST_LOCATION); 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 ) ]); + for(auto i = 0u; i < 4; ++i) + DALI_TEST_CHECK(reading_info_type[static_cast(i)]); END_TEST; } @@ -497,30 +532,30 @@ int UtcDaliControlReadingInfoType(void) int UtcDaliControlDoGesture(void) { ToolkitTestApplication application; - auto control = Control::New(); - Dali::Accessibility::TestEnableSC( true ); + auto control = Control::New(); + Dali::Accessibility::TestEnableSC(true); - auto accessible = Dali::Accessibility::Accessible::Get( control ); - auto gesture_one = Dali::Accessibility::GestureInfo { Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 }; - auto gesture_two = Dali::Accessibility::GestureInfo { Dali::Accessibility::Gesture::ONE_FINGER_FLICK_RIGHT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 }; + auto accessible = Dali::Accessibility::Accessible::Get(control); + auto gesture_one = Dali::Accessibility::GestureInfo{Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000}; + auto gesture_two = Dali::Accessibility::GestureInfo{Dali::Accessibility::Gesture::ONE_FINGER_FLICK_RIGHT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000}; - DALI_TEST_CHECK( !accessible->DoGesture( gesture_one ) ); - DALI_TEST_CHECK( !TestDoGesture( accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 ) ); + DALI_TEST_CHECK(!accessible->DoGesture(gesture_one)); + DALI_TEST_CHECK(!TestDoGesture(accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000)); - DevelControl::AccessibilityDoGestureSignal(control).Connect( [] ( std::pair< Dali::Accessibility::GestureInfo, bool > &gesture ) { - if ( gesture.first.type == Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT ) - gesture.second = true; - else - gesture.second = false; - } ); + DevelControl::AccessibilityDoGestureSignal(control).Connect([](std::pair& gesture) { + if(gesture.first.type == Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT) + gesture.second = true; + else + gesture.second = false; + }); - DALI_TEST_CHECK( accessible->DoGesture( gesture_one ) ); - DALI_TEST_CHECK( TestDoGesture( accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 ) ); + DALI_TEST_CHECK(accessible->DoGesture(gesture_one)); + DALI_TEST_CHECK(TestDoGesture(accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_LEFT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000)); - DALI_TEST_CHECK( !accessible->DoGesture( gesture_two ) ); - DALI_TEST_CHECK( !TestDoGesture( accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_RIGHT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000 ) ); + DALI_TEST_CHECK(!accessible->DoGesture(gesture_two)); + DALI_TEST_CHECK(!TestDoGesture(accessible->GetAddress(), Dali::Accessibility::Gesture::ONE_FINGER_FLICK_RIGHT, 600, 100, 500, 500, Dali::Accessibility::GestureState::BEGIN, 1000)); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -528,46 +563,50 @@ int UtcDaliControlDoGesture(void) int UtcDaliAccessibilityRelation(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto rel = Accessibility::RelationType::FLOWS_TO; - auto number = static_cast< size_t >( rel ); - auto control = Control::New(); + auto rel = Accessibility::RelationType::FLOWS_TO; + auto control = Control::New(); auto destination1 = Control::New(); auto destination2 = Control::New(); - DevelControl::AppendAccessibilityRelation( control, destination1, rel ); + DevelControl::AppendAccessibilityRelation(control, destination1, rel); auto relations = DevelControl::GetAccessibilityRelations(control); - DALI_TEST_CHECK( relations[ number ].size() == 1 ); + DALI_TEST_EQUALS(relations.size(), 1u, TEST_LOCATION); + DALI_TEST_EQUALS(relations[0].mRelationType, rel, TEST_LOCATION); + DALI_TEST_EQUALS(relations[0].mTargets.size(), 1u, TEST_LOCATION); - DevelControl::AppendAccessibilityRelation( control, destination2, rel ); + DevelControl::AppendAccessibilityRelation(control, destination2, rel); relations = DevelControl::GetAccessibilityRelations(control); - DALI_TEST_CHECK( relations[ number ].size() == 2 ); + DALI_TEST_EQUALS(relations.size(), 1u, TEST_LOCATION); + DALI_TEST_EQUALS(relations[0].mRelationType, rel, TEST_LOCATION); + DALI_TEST_EQUALS(relations[0].mTargets.size(), 2u, TEST_LOCATION); - auto accessible = Dali::Accessibility::Accessible::Get( control ); - auto accessible_destination1 = Dali::Accessibility::Accessible::Get( destination1 ); - auto accessible_destination2 = Dali::Accessibility::Accessible::Get( destination2 ); - auto relationset = accessible->GetRelationSet(); + auto accessible = Dali::Accessibility::Accessible::Get(control); + auto accessible_destination1 = Dali::Accessibility::Accessible::Get(destination1); + auto accessible_destination2 = Dali::Accessibility::Accessible::Get(destination2); + auto relationset = accessible->GetRelationSet(); - DALI_TEST_CHECK( relationset[0].relationType == rel ); - DALI_TEST_CHECK( relationset[0].targets[0] == accessible_destination1->GetAddress() || relationset[0].targets[1] == accessible_destination1->GetAddress() ); - DALI_TEST_CHECK( relationset[0].targets[0] == accessible_destination2->GetAddress() || relationset[0].targets[1] == accessible_destination2->GetAddress() ); + DALI_TEST_CHECK(relationset[0].mRelationType == rel); + DALI_TEST_CHECK(relationset[0].mTargets[0] == accessible_destination1 || relationset[0].mTargets[1] == accessible_destination1); + DALI_TEST_CHECK(relationset[0].mTargets[0] == accessible_destination2 || relationset[0].mTargets[1] == accessible_destination2); - auto relationset_bridge = TestGetRelationSet( accessible -> GetAddress() ); - DALI_TEST_CHECK( static_cast< uint32_t >( relationset[0].relationType ) == std::get<0>( relationset_bridge[0] ) ); + auto relationset_bridge = TestGetRelationSet(accessible->GetAddress()); + DALI_TEST_CHECK(static_cast(relationset[0].mRelationType) == std::get<0>(relationset_bridge[0])); - 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] ); - 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] ); + DALI_TEST_CHECK(relationset[0].mTargets[0]->GetAddress() == std::get<1>(relationset_bridge[0])[0] || relationset[0].mTargets[1]->GetAddress() == std::get<1>(relationset_bridge[0])[0]); + DALI_TEST_CHECK(relationset[0].mTargets[0]->GetAddress() == std::get<1>(relationset_bridge[0])[1] || relationset[0].mTargets[1]->GetAddress() == std::get<1>(relationset_bridge[0])[1]); - DevelControl::RemoveAccessibilityRelation(control,destination2,rel); + DevelControl::RemoveAccessibilityRelation(control, destination2, rel); relations = DevelControl::GetAccessibilityRelations(control); - DALI_TEST_CHECK( relations[ number ].size() == 1 ); + DALI_TEST_EQUALS(relations.size(), 1u, TEST_LOCATION); + DALI_TEST_EQUALS(relations[0].mTargets.size(), 1u, TEST_LOCATION); DevelControl::ClearAccessibilityRelations(control); relations = DevelControl::GetAccessibilityRelations(control); - DALI_TEST_CHECK( relations[ number ].size() == 0 ); + DALI_TEST_EQUALS(relations.size(), 0u, TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -575,55 +614,61 @@ int UtcDaliAccessibilityRelation(void) int UtcDaliAccessibilityParentChildren(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto parent = Control::New(); + auto parent = Control::New(); auto child_1 = Control::New(); auto child_2 = Control::New(); - auto parent_accessible = Dali::Accessibility::Accessible::Get( parent ); - auto child_1_accessible = Dali::Accessibility::Accessible::Get( child_1 ); - auto child_2_accessible = Dali::Accessibility::Accessible::Get( child_2 ); + auto parent_accessible = Dali::Accessibility::Accessible::Get(parent); + auto child_1_accessible = Dali::Accessibility::Accessible::Get(child_1); + auto child_2_accessible = Dali::Accessibility::Accessible::Get(child_2); - auto children = TestGetChildren( parent_accessible -> GetAddress() ); - DALI_TEST_EQUALS( children.size(), 0, TEST_LOCATION ); + auto children = TestGetChildren(parent_accessible->GetAddress()); + DALI_TEST_EQUALS(children.size(), 0, TEST_LOCATION); try { - TestGetIndexInParent( child_1_accessible -> GetAddress() ); + TestGetIndexInParent(child_1_accessible->GetAddress()); DALI_ABORT("Object has parent, test abort"); } - catch(TestDBusWrapper::error &){} + catch(TestDBusWrapper::error&) + { + } try { - TestGetChildAtIndex( parent_accessible -> GetAddress(), -1 ); + TestGetChildAtIndex(parent_accessible->GetAddress(), -1); DALI_ABORT("Positive index, test abort"); } - catch(TestDBusWrapper::error &){} + catch(TestDBusWrapper::error&) + { + } - DALI_TEST_EQUALS( parent_accessible -> GetChildCount(), 0, TEST_LOCATION ); + DALI_TEST_EQUALS(parent_accessible->GetChildCount(), 0, TEST_LOCATION); try { - child_1_accessible -> GetIndexInParent(); + child_1_accessible->GetIndexInParent(); DALI_ABORT("Object has parent, test abort"); } - catch (Dali::DaliException &){} + catch(const std::domain_error&) + { + } parent.Add(child_1); parent.Add(child_2); - children = TestGetChildren( parent_accessible -> GetAddress() ); - DALI_TEST_EQUALS( children.size(), 2, TEST_LOCATION ); + children = TestGetChildren(parent_accessible->GetAddress()); + DALI_TEST_EQUALS(children.size(), 2, TEST_LOCATION); - DALI_TEST_EQUALS( parent_accessible -> GetAddress(), TestGetParent( child_1_accessible -> GetAddress() ), TEST_LOCATION ); - DALI_TEST_EQUALS( child_2_accessible -> GetAddress(), TestGetChildAtIndex( parent_accessible -> GetAddress(), TestGetIndexInParent( child_2_accessible -> GetAddress() ) ), TEST_LOCATION ); + DALI_TEST_EQUALS(parent_accessible->GetAddress(), TestGetParent(child_1_accessible->GetAddress()), TEST_LOCATION); + DALI_TEST_EQUALS(child_2_accessible->GetAddress(), TestGetChildAtIndex(parent_accessible->GetAddress(), TestGetIndexInParent(child_2_accessible->GetAddress())), TEST_LOCATION); - DALI_TEST_EQUALS( parent_accessible, child_1_accessible -> GetParent(), TEST_LOCATION ); - DALI_TEST_EQUALS( child_2_accessible, parent_accessible -> GetChildAtIndex( child_2_accessible -> GetIndexInParent() ) , TEST_LOCATION ); + DALI_TEST_EQUALS(parent_accessible, child_1_accessible->GetParent(), TEST_LOCATION); + DALI_TEST_EQUALS(child_2_accessible, parent_accessible->GetChildAtIndex(child_2_accessible->GetIndexInParent()), TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -632,16 +677,16 @@ int UtcDaliAccessibilityGetLayer(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto control = Control::New(); - auto accessible_obj = Dali::Accessibility::Accessible::Get( control ); + auto control = Control::New(); + auto accessible_obj = Dali::Accessibility::Accessible::Get(control); auto accessible_component = dynamic_cast(accessible_obj); - DALI_TEST_CHECK( accessible_component ); - DALI_TEST_EQUALS( Dali::Accessibility::ComponentLayer::WINDOW, accessible_component -> GetLayer(), TEST_LOCATION ); - DALI_TEST_EQUALS( Dali::Accessibility::ComponentLayer::WINDOW, TestGetLayer( accessible_component -> GetAddress() ), TEST_LOCATION ); + DALI_TEST_CHECK(accessible_component); + DALI_TEST_EQUALS(Dali::Accessibility::ComponentLayer::WINDOW, accessible_component->GetLayer(), TEST_LOCATION); + DALI_TEST_EQUALS(Dali::Accessibility::ComponentLayer::WINDOW, TestGetLayer(accessible_component->GetAddress()), TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -650,97 +695,206 @@ int UtcDaliAccessibilityGrabFocus(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); auto controla = Control::New(); auto controlb = Control::New(); - Stage::GetCurrent().Add( controla ); - Stage::GetCurrent().Add( controlb ); + Stage::GetCurrent().Add(controla); + Stage::GetCurrent().Add(controlb); controla.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); controlb.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - auto a = Dali::Accessibility::Accessible::Get( controla ); - auto b = Dali::Accessibility::Accessible::Get( controlb ); + auto a = Dali::Accessibility::Accessible::Get(controla); + auto b = Dali::Accessibility::Accessible::Get(controlb); - auto a_component = dynamic_cast( a ); - auto b_component = dynamic_cast( b ); + auto a_component = dynamic_cast(a); + auto b_component = dynamic_cast(b); - auto states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )}; - auto states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )}; + auto states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a_component->GetAddress())}; + auto states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b_component->GetAddress())}; - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] ); - DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] ); + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::FOCUSED]); + DALI_TEST_CHECK(!states_by_bridge_b[Dali::Accessibility::State::FOCUSED]); - DALI_TEST_CHECK( a_component -> GrabFocus() ); + DALI_TEST_CHECK(a_component->GrabFocus()); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )}; + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a_component->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b_component->GetAddress())}; - DALI_TEST_CHECK( states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] ); - DALI_TEST_CHECK( !states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] ); + DALI_TEST_CHECK(states_by_bridge_a[Dali::Accessibility::State::FOCUSED]); + DALI_TEST_CHECK(!states_by_bridge_b[Dali::Accessibility::State::FOCUSED]); - DALI_TEST_CHECK( TestGrabFocus( b_component -> GetAddress() ) ); + DALI_TEST_CHECK(TestGrabFocus(b_component->GetAddress())); - states_by_bridge_a = Dali::Accessibility::States { TestGetStates( a_component -> GetAddress() )}; - states_by_bridge_b = Dali::Accessibility::States { TestGetStates( b_component -> GetAddress() )}; + states_by_bridge_a = Dali::Accessibility::States{TestGetStates(a_component->GetAddress())}; + states_by_bridge_b = Dali::Accessibility::States{TestGetStates(b_component->GetAddress())}; - DALI_TEST_CHECK( !states_by_bridge_a[ Dali::Accessibility::State::FOCUSED ] ); - DALI_TEST_CHECK( states_by_bridge_b[ Dali::Accessibility::State::FOCUSED ] ); + DALI_TEST_CHECK(!states_by_bridge_a[Dali::Accessibility::State::FOCUSED]); + DALI_TEST_CHECK(states_by_bridge_b[Dali::Accessibility::State::FOCUSED]); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } -int UtcDaliAccessibilityGetExtents(void) +int UtcDaliAccessibilityGetExtentsScreenAndWindowPositionMatch(void) { ToolkitTestApplication application; + tet_infoline("UtcDaliAccessibilityGetExtentsScreenAndWindowPositionMatch"); - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); auto control = Control::New(); - Stage::GetCurrent().GetRootLayer().Add( control ); + Stage::GetCurrent().GetRootLayer().Add(control); + + auto window = Dali::DevelWindow::Get(control); + DALI_TEST_CHECK(window); + + //window.SetPosition({0,0}); + DevelWindow::SetPositionSize(window, PositionSize(0, 0, 480, 240)); control.SetProperty(Actor::Property::POSITION, Vector3(10, 10, 100)); control.SetProperty(Actor::Property::SIZE, Vector2(10, 10)); application.SendNotification(); - application.Render( 1 ); + application.Render(1); - auto a = Dali::Accessibility::Accessible::Get( control ); - auto a_component = dynamic_cast( a ); + auto a = Dali::Accessibility::Accessible::Get(control); + auto a_component = dynamic_cast(a); auto extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN); - DALI_TEST_EQUALS( extents.x, 5.0f, TEST_LOCATION ); - DALI_TEST_EQUALS( extents.y, 5.0f, TEST_LOCATION ); - DALI_TEST_EQUALS( extents.height, 10.0f, TEST_LOCATION ); - DALI_TEST_EQUALS( extents.width, 10.0f, TEST_LOCATION ); - - auto bridge_extents = TestGetExtents( a_component -> GetAddress() ); - DALI_TEST_EQUALS( std::get< 0 >( bridge_extents ), 5, TEST_LOCATION ); - DALI_TEST_EQUALS( std::get< 1 >( bridge_extents ), 5, TEST_LOCATION ); - DALI_TEST_EQUALS( std::get< 2 >( bridge_extents ), 10, TEST_LOCATION ); - DALI_TEST_EQUALS( std::get< 3 >( bridge_extents ), 10, TEST_LOCATION ); - - control.SetProperty( Dali::DevelActor::Property::POSITION_USES_ANCHOR_POINT, false ); + DALI_TEST_EQUALS(extents.x, 5.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 5.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + auto bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::SCREEN); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 5, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 5, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(extents.x, 5.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 5.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 5, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 5, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + control.SetProperty(Dali::DevelActor::Property::POSITION_USES_ANCHOR_POINT, false); application.SendNotification(); - application.Render( 1 ); + application.Render(1); extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN); - DALI_TEST_EQUALS( extents.x, 10.0f, TEST_LOCATION ); - DALI_TEST_EQUALS( extents.y, 10.0f, TEST_LOCATION ); - DALI_TEST_EQUALS( extents.height, 10.0f, TEST_LOCATION ); - DALI_TEST_EQUALS( extents.width, 10.0f, TEST_LOCATION ); + DALI_TEST_EQUALS(extents.x, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::SCREEN); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(extents.x, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + Dali::Accessibility::TestEnableSC(false); + + END_TEST; +} + +int UtcDaliAccessibilityGetExtentsScreenAndWindowPositionDoNotMatch(void) +{ + ToolkitTestApplication application; + + Dali::Accessibility::TestEnableSC(true); - bridge_extents = TestGetExtents( a_component -> GetAddress() ); - DALI_TEST_EQUALS( std::get< 0 >( bridge_extents ), 10, TEST_LOCATION ); - DALI_TEST_EQUALS( std::get< 1 >( bridge_extents ), 10, TEST_LOCATION ); - DALI_TEST_EQUALS( std::get< 2 >( bridge_extents ), 10, TEST_LOCATION ); - DALI_TEST_EQUALS( std::get< 3 >( bridge_extents ), 10, TEST_LOCATION ); + auto control = Control::New(); + Stage::GetCurrent().GetRootLayer().Add(control); + auto window = Dali::DevelWindow::Get(control); + //window.SetPosition({33,33}); + DevelWindow::SetPositionSize(window, PositionSize(33, 33, 480, 240)); - Dali::Accessibility::TestEnableSC( false ); + control.SetProperty(Actor::Property::POSITION, Vector3(10, 10, 100)); + control.SetProperty(Actor::Property::SIZE, Vector2(10, 10)); + + application.SendNotification(); + application.Render(1); + + auto a = Dali::Accessibility::Accessible::Get(control); + auto a_component = dynamic_cast(a); + + auto extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN); + DALI_TEST_EQUALS(extents.x, 38.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 38.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + auto bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::SCREEN); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 38, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 38, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(extents.x, 5.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 5.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 5, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 5, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + control.SetProperty(Dali::DevelActor::Property::POSITION_USES_ANCHOR_POINT, false); + application.SendNotification(); + application.Render(1); + + extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN); + DALI_TEST_EQUALS(extents.x, 43.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 43.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::SCREEN); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 43, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 43, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(extents.x, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.y, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.height, 10.0f, TEST_LOCATION); + DALI_TEST_EQUALS(extents.width, 10.0f, TEST_LOCATION); + + bridge_extents = TestGetExtents(a_component->GetAddress(), Dali::Accessibility::CoordinateType::WINDOW); + DALI_TEST_EQUALS(std::get<0>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<1>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<2>(bridge_extents), 10, TEST_LOCATION); + DALI_TEST_EQUALS(std::get<3>(bridge_extents), 10, TEST_LOCATION); + + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -749,16 +903,16 @@ int UtcDaliAccessibilityGetAlpha(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto control = Control::New(); - auto a = Dali::Accessibility::Accessible::Get( control ); - auto a_component = dynamic_cast( a ); + auto control = Control::New(); + auto a = Dali::Accessibility::Accessible::Get(control); + auto a_component = dynamic_cast(a); - DALI_TEST_EQUALS( 0.0, a_component -> GetAlpha(), TEST_LOCATION ); - DALI_TEST_EQUALS( 0.0, TestGetAlpha( a_component -> GetAddress() ), TEST_LOCATION ); + DALI_TEST_EQUALS(0.0, a_component->GetAlpha(), TEST_LOCATION); + DALI_TEST_EQUALS(0.0, TestGetAlpha(a_component->GetAddress()), TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -767,16 +921,16 @@ int UtcDaliAccessibilityGetMdiZOrder(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto control = Control::New(); - auto a = Dali::Accessibility::Accessible::Get( control ); - auto a_component = dynamic_cast( a ); + auto control = Control::New(); + auto a = Dali::Accessibility::Accessible::Get(control); + auto a_component = dynamic_cast(a); - DALI_TEST_EQUALS( 0, static_cast< int >( a_component -> GetMdiZOrder() ), TEST_LOCATION ); - DALI_TEST_EQUALS( 0, TestGetMdiZOrder( a_component -> GetAddress() ), TEST_LOCATION ); + DALI_TEST_EQUALS(0, static_cast(a_component->GetMdiZOrder()), TEST_LOCATION); + DALI_TEST_EQUALS(0, TestGetMdiZOrder(a_component->GetAddress()), TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -785,23 +939,23 @@ int UtcDaliAccessibilityAction(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); - auto control = Control::New( ); - auto a = Dali::Accessibility::Accessible::Get( control ); - auto b = dynamic_cast( a ); + auto control = Control::New(); + auto a = Dali::Accessibility::Accessible::Get(control); + auto b = dynamic_cast(a); - std::vector< std::string > actions { "activate", "accessibilityActivated", "ReadingSkipped", "ReadingCancelled", "ReadingStopped", "ReadingPaused", "ReadingResumed", "show", "hide" }; - auto count = b -> GetActionCount(); + std::vector actions{"activate", "accessibilityActivated", "ReadingSkipped", "ReadingCancelled", "ReadingStopped", "ReadingPaused", "ReadingResumed", "show", "hide"}; + auto count = b->GetActionCount(); - DALI_TEST_EQUALS( count, 9, TEST_LOCATION ); + DALI_TEST_EQUALS(count, 9, TEST_LOCATION); - for (auto i = 0u; i GetActionName( i ) ) ); - DALI_TEST_EQUALS( b -> GetActionName( i ), b -> GetLocalizedActionName( i ), TEST_LOCATION ); - DALI_TEST_EQUALS( b -> GetActionDescription( i ), "", TEST_LOCATION ); - DALI_TEST_EQUALS( b -> GetActionKeyBinding( i ), "", TEST_LOCATION ); + DALI_TEST_CHECK(Dali::Accessibility::Find(actions, b->GetActionName(i))); + DALI_TEST_EQUALS(b->GetActionName(i), b->GetLocalizedActionName(i), TEST_LOCATION); + DALI_TEST_EQUALS(b->GetActionDescription(i), "", TEST_LOCATION); + DALI_TEST_EQUALS(b->GetActionKeyBinding(i), "", TEST_LOCATION); } // Empty strings should be returned for invalid indices @@ -810,16 +964,16 @@ int UtcDaliAccessibilityAction(void) DALI_TEST_EQUALS(b->GetLocalizedActionName(count), "", TEST_LOCATION); DALI_TEST_EQUALS(b->GetActionKeyBinding(count), "", TEST_LOCATION); - count = TestGetActionCount(b -> GetAddress()); + count = TestGetActionCount(b->GetAddress()); - DALI_TEST_EQUALS( count, 9, TEST_LOCATION ); + DALI_TEST_EQUALS(count, 9, TEST_LOCATION); - for (auto i = 0u; iGetAddress(), i ) ) ); - DALI_TEST_EQUALS( TestGetActionName( b->GetAddress(), i ), TestGetLocalizedActionName( b->GetAddress(), i ), TEST_LOCATION ); - DALI_TEST_EQUALS( TestGetActionDescription( b->GetAddress(), i ), "", TEST_LOCATION ); - DALI_TEST_EQUALS( TestGetActionKeyBinding( b->GetAddress(), i ), "", TEST_LOCATION ); + DALI_TEST_CHECK(Dali::Accessibility::Find(actions, TestGetActionName(b->GetAddress(), i))); + DALI_TEST_EQUALS(TestGetActionName(b->GetAddress(), i), TestGetLocalizedActionName(b->GetAddress(), i), TEST_LOCATION); + DALI_TEST_EQUALS(TestGetActionDescription(b->GetAddress(), i), "", TEST_LOCATION); + DALI_TEST_EQUALS(TestGetActionKeyBinding(b->GetAddress(), i), "", TEST_LOCATION); } DALI_TEST_EQUALS(TestGetActionDescription(b->GetAddress(), count), "", TEST_LOCATION); @@ -827,7 +981,7 @@ int UtcDaliAccessibilityAction(void) DALI_TEST_EQUALS(TestGetLocalizedActionName(b->GetAddress(), count), "", TEST_LOCATION); DALI_TEST_EQUALS(TestGetActionKeyBinding(b->GetAddress(), count), "", TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -836,79 +990,79 @@ int UtcDaliAccessibilityDoAction(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); - thread_local std::vector< bool > actions_done { false, false, false, false, false, false }; + Dali::Accessibility::TestEnableSC(true); + thread_local std::vector actions_done{false, false, false, false, false, false}; - auto control = Control::New( ); - auto a = Dali::Accessibility::Accessible::Get( control ); - auto b = dynamic_cast( a ); - std::vector< std::string > actions { "activate", "accessibilityActivated", "ReadingSkipped", "ReadingCancelled", "ReadingStopped", "ReadingPaused", "ReadingResumed", "show", "hide" }; + auto control = Control::New(); + auto a = Dali::Accessibility::Accessible::Get(control); + auto b = dynamic_cast(a); + std::vector actions{"activate", "accessibilityActivated", "ReadingSkipped", "ReadingCancelled", "ReadingStopped", "ReadingPaused", "ReadingResumed", "show", "hide"}; // Test calling action by name - DALI_TEST_CHECK( b -> DoAction( actions[2] ) ); // ReadingSkipped - DALI_TEST_CHECK( b -> DoAction( actions[4] ) ); // ReadingStopped - DALI_TEST_CHECK( b -> DoAction( actions[4] ) ); // ReadingStopped + DALI_TEST_CHECK(b->DoAction(actions[2])); // ReadingSkipped + 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; - } ); - DevelControl::AccessibilityReadingCancelledSignal(control).Connect( [] () { - actions_done[ 2 ] = true; - } ); - DevelControl::AccessibilityReadingStoppedSignal(control).Connect( [] () { - actions_done[ 3 ] = true; - } ); - DevelControl::AccessibilityReadingPausedSignal(control).Connect( [] () { - actions_done[ 4 ] = true; - } ); - DevelControl::AccessibilityReadingResumedSignal(control).Connect( [] () { - actions_done[ 5 ] = true; - } ); - DevelControl::AccessibilityActivateSignal(control).Connect( [] () { - actions_done[ 0 ] = true; - } ); + DALI_TEST_CHECK(!b->DoAction("undefined")); + + DevelControl::AccessibilityReadingSkippedSignal(control).Connect([]() { + actions_done[1] = true; + }); + DevelControl::AccessibilityReadingCancelledSignal(control).Connect([]() { + actions_done[2] = true; + }); + DevelControl::AccessibilityReadingStoppedSignal(control).Connect([]() { + actions_done[3] = true; + }); + DevelControl::AccessibilityReadingPausedSignal(control).Connect([]() { + actions_done[4] = true; + }); + DevelControl::AccessibilityReadingResumedSignal(control).Connect([]() { + actions_done[5] = true; + }); + DevelControl::AccessibilityActivateSignal(control).Connect([]() { + actions_done[0] = true; + }); // Test calling action by index - DALI_TEST_CHECK( b -> DoAction( 1 ) ); - DALI_TEST_CHECK( b -> DoAction( 2 ) ); - DALI_TEST_CHECK( b -> DoAction( 3 ) ); - DALI_TEST_CHECK( b -> DoAction( 4 ) ); - DALI_TEST_CHECK( b -> DoAction( 5 ) ); - DALI_TEST_CHECK( b -> DoAction( 6 ) ); - - for ( auto i = 0u; i < actions_done.size(); ++i ) - { - DALI_TEST_CHECK( actions_done[ i ] ); - actions_done[ i ] = false; - } - - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 1 ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 2 ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 3 ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 4 ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 5 ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), 6 ) ); - - for ( auto i = 0u; i < actions_done.size(); ++i ) - { - DALI_TEST_CHECK( actions_done[ i ] ); - actions_done[ i ] = false; - } - - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 1 ] ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 2 ] ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 3 ] ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 4 ] ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 5 ] ) ); - DALI_TEST_CHECK( TestDoAction( b -> GetAddress(), actions[ 6 ] ) ); - - for ( auto i = 0u; i < actions_done.size(); ++i ) - DALI_TEST_CHECK( actions_done[ i ] ); - - Dali::Accessibility::TestEnableSC( false ); + DALI_TEST_CHECK(b->DoAction(1)); + DALI_TEST_CHECK(b->DoAction(2)); + DALI_TEST_CHECK(b->DoAction(3)); + DALI_TEST_CHECK(b->DoAction(4)); + DALI_TEST_CHECK(b->DoAction(5)); + DALI_TEST_CHECK(b->DoAction(6)); + + for(auto i = 0u; i < actions_done.size(); ++i) + { + DALI_TEST_CHECK(actions_done[i]); + actions_done[i] = false; + } + + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), 1)); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), 2)); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), 3)); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), 4)); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), 5)); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), 6)); + + for(auto i = 0u; i < actions_done.size(); ++i) + { + DALI_TEST_CHECK(actions_done[i]); + actions_done[i] = false; + } + + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), actions[1])); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), actions[2])); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), actions[3])); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), actions[4])); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), actions[5])); + DALI_TEST_CHECK(TestDoAction(b->GetAddress(), actions[6])); + + for(auto i = 0u; i < actions_done.size(); ++i) + DALI_TEST_CHECK(actions_done[i]); + + Dali::Accessibility::TestEnableSC(false); END_TEST; } @@ -920,20 +1074,20 @@ void TestVoidCallback() int UtcDaliAccessibilitySignals(void) { ToolkitTestApplication application; - ConnectionTracker connectionTracker; - Control control = Control::New(); + 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::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::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() ); + DALI_TEST_CHECK(DevelControl::AccessibilityDoGestureSignal(control).Empty()); + control.ConnectSignal(&connectionTracker, "doGesture", &TestVoidCallback); + DALI_TEST_CHECK(!DevelControl::AccessibilityDoGestureSignal(control).Empty()); END_TEST; } @@ -947,71 +1101,93 @@ static void Wait(ToolkitTestApplication& application) int UtcDaliAccessibilityScrollToChildScrollView(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); ScrollView scrollView = ScrollView::New(); - application.GetScene().Add( scrollView ); + application.GetScene().Add(scrollView); - PushButton actorA = PushButton::New(); + PushButton actorA = PushButton::New(); const Dali::Vector3 positionA = Vector3(100.0f, 400.0f, 0.0f); - actorA.SetProperty( Dali::Actor::Property::POSITION, positionA ); + actorA.SetProperty(Dali::Actor::Property::POSITION, positionA); scrollView.Add(actorA); - PushButton actorB = PushButton::New(); + PushButton actorB = PushButton::New(); const Dali::Vector3 positionB = Vector3(500.0f, 200.0f, 0.0f); - actorB.SetProperty( Dali::Actor::Property::POSITION, positionB ); + actorB.SetProperty(Dali::Actor::Property::POSITION, positionB); scrollView.Add(actorB); + TableView tableView = TableView::New(2, 2); // 2 by 2 grid. + tableView.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f)); + scrollView.Add(tableView); + + PushButton actorC = PushButton::New(); + actorC.SetProperty(Actor::Property::SIZE, Vector2(50.0f, 50.0f)); + tableView.AddChild(actorC, TableView::CellPosition(0, 0)); + + PushButton actorD = PushButton::New(); + application.GetScene().Add(actorD); + Wait(application); - auto* accessibleParent = dynamic_cast(Dali::Accessibility::Accessible::Get(scrollView)); + auto* accessibleParent = dynamic_cast(Dali::Accessibility::Accessible::Get(scrollView)); DALI_TEST_CHECK(accessibleParent); - auto* accessibleA = dynamic_cast(Dali::Accessibility::Accessible::Get(actorA)); + auto* accessibleA = dynamic_cast(Dali::Accessibility::Accessible::Get(actorA)); DALI_TEST_CHECK(accessibleA); - auto* accessibleB = dynamic_cast(Dali::Accessibility::Accessible::Get(actorB)); + auto* accessibleB = dynamic_cast(Dali::Accessibility::Accessible::Get(actorB)); DALI_TEST_CHECK(accessibleB); + auto* accessibleC = dynamic_cast(Dali::Accessibility::Accessible::Get(actorC)); + DALI_TEST_CHECK(accessibleC); accessibleA->GrabHighlight(); // == scrollView.ScrollTo(actorA) Wait(application); accessibleB->GrabHighlight(); // == scrollView.ScrollTo(actorB) Wait(application); - Dali::Accessibility::TestEnableSC( false ); + // scrollView is ancestor of actorC + // This should work without a crash + accessibleC->GrabHighlight(); // == scrollView.ScrollTo(actorC) + Wait(application); + + // negative testcase calling ScrollToChild using non-child actor + accessibleParent->ScrollToChild(actorD); + + Dali::Accessibility::TestEnableSC(false); END_TEST; } -namespace { - class TestItemFactory : public ItemFactory +namespace +{ +class TestItemFactory : public ItemFactory +{ +public: + TestItemFactory() { - public: - TestItemFactory() - { - } - - unsigned int GetNumberOfItems() override - { - return 2; - } - - Dali::Actor NewItem(unsigned int itemId) override - { - return TextLabel::New(std::to_string(itemId)); - } - }; -} + } + + unsigned int GetNumberOfItems() override + { + return 2; + } + + Dali::Actor NewItem(unsigned int itemId) override + { + return TextLabel::New(std::to_string(itemId)); + } +}; +} // namespace int UtcDaliAccessibilityScrollToChildItemView(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); TestItemFactory factory; - ItemView view = ItemView::New(factory); - Dali::Vector3 vec(480.0f, 800.0f, 0.0f); - ItemLayoutPtr layout = DefaultItemLayout::New( DefaultItemLayout::DEPTH ); + ItemView view = ItemView::New(factory); + Dali::Vector3 vec(480.0f, 800.0f, 0.0f); + ItemLayoutPtr layout = DefaultItemLayout::New(DefaultItemLayout::DEPTH); view.AddLayout(*layout); - view.SetProperty( Actor::Property::SIZE, vec ); + view.SetProperty(Actor::Property::SIZE, vec); application.GetScene().Add(view); layout->SetOrientation(ControlOrientation::Down); @@ -1019,11 +1195,11 @@ int UtcDaliAccessibilityScrollToChildItemView(void) Wait(application); - auto* accessibleParent = dynamic_cast(Dali::Accessibility::Accessible::Get(view)); + auto* accessibleParent = dynamic_cast(Dali::Accessibility::Accessible::Get(view)); DALI_TEST_CHECK(accessibleParent); - auto* accessibleA = dynamic_cast(Dali::Accessibility::Accessible::Get(view.GetItem(0))); + auto* accessibleA = dynamic_cast(Dali::Accessibility::Accessible::Get(view.GetItem(0))); DALI_TEST_CHECK(accessibleA); - auto* accessibleB = dynamic_cast(Dali::Accessibility::Accessible::Get(view.GetItem(1))); + auto* accessibleB = dynamic_cast(Dali::Accessibility::Accessible::Get(view.GetItem(1))); DALI_TEST_CHECK(accessibleB); accessibleA->GrabHighlight(); // == view.ScrollToItem(view.GetItemId(actorA)) @@ -1031,83 +1207,175 @@ int UtcDaliAccessibilityScrollToChildItemView(void) accessibleB->GrabHighlight(); // == view.ScrollToItem(view.GetItemId(actorB)) Wait(application); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } int UtcDaliAccessibilityScrollToChildNonScrollable(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); TextLabel label = TextLabel::New("123"); - auto* accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(label)); + auto* accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(label)); DALI_TEST_CHECK(accessible); DALI_TEST_EQUALS(accessible->IsScrollable(), false, TEST_LOCATION); DALI_TEST_EQUALS(accessible->ScrollToChild({}), false, TEST_LOCATION); + DALI_TEST_EQUALS(accessible->GetInternalActor(), label, TEST_LOCATION); - Dali::Accessibility::TestEnableSC( false ); + Dali::Accessibility::TestEnableSC(false); END_TEST; } int UtcDaliAccessibilityCheckHighlight(void) { ToolkitTestApplication application; - Dali::Accessibility::TestEnableSC( true ); + Dali::Accessibility::TestEnableSC(true); Dali::Accessibility::TestResetMoveOutedCalled(); // Make precondition two children exist in parent area PushButton parentButton = PushButton::New(); + parentButton.SetProperty(Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_TO_BOUNDING_BOX); parentButton.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); parentButton.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); - parentButton.SetProperty( Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, 0.0f) ); - parentButton.SetProperty( Dali::Actor::Property::SIZE, Dali::Vector2(100.0f, 200.0f) ); - application.GetScene().Add( parentButton ); + parentButton.SetProperty(Actor::Property::POSITION, Dali::Vector2(0.0f, 0.0f)); + parentButton.SetProperty(Actor::Property::SIZE, Dali::Vector2(100.0f, 200.0f)); + application.GetScene().Add(parentButton); PushButton buttonA = PushButton::New(); buttonA.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); buttonA.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); - buttonA.SetProperty( Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, 0.0f) ); - buttonA.SetProperty( Dali::Actor::Property::SIZE, Dali::Vector2(100.0f, 100.0f) ); + buttonA.SetProperty(Actor::Property::POSITION, Dali::Vector2(0.0f, 0.0f)); + buttonA.SetProperty(Actor::Property::SIZE, Dali::Vector2(100.0f, 100.0f)); parentButton.Add(buttonA); PushButton buttonB = PushButton::New(); buttonB.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); buttonB.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); - buttonB.SetProperty( Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, 100.0f) ); - buttonB.SetProperty( Dali::Actor::Property::SIZE, Dali::Vector2(100.0f, 100.0f) ); + buttonB.SetProperty(Actor::Property::POSITION, Dali::Vector2(0.0f, 100.0f)); + buttonB.SetProperty(Actor::Property::SIZE, Dali::Vector2(100.0f, 100.0f)); parentButton.Add(buttonB); Wait(application); - // Move second child out of parent area - auto* accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonA)); + // Set highlight to first child (A) to enable movement tracking + auto* accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonA)); DALI_TEST_CHECK(accessible); accessible->GrabHighlight(); Wait(application); - buttonA.SetProperty( Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, -200.0f) ); + // Move first child (A) out of parent area through the parent's area top edge - single move outed event expected for A object and OUTGOING_TOP_LEFT direction + buttonA.SetProperty(Actor::Property::POSITION, Dali::Vector2(0.0f, -200.0f)); + Wait(application); + // Need one more notificaiton to get correct updated position + application.SendNotification(); + DALI_TEST_EQUALS(true, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION); + + // Reset verdict data + Dali::Accessibility::TestResetMoveOutedCalled(); + + // Move first child (A) outside of parent area (both start and end position are outside of parent area) - no move outed event expected for A object + buttonA.SetProperty(Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, -300.0f)); + Wait(application); + // Need one more notificaiton to get correct updated position + application.SendNotification(); + DALI_TEST_EQUALS(false, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION); + + // Reset verdict data + Dali::Accessibility::TestResetMoveOutedCalled(); + + // Set highlight to second child (B) to enable movement tracking + accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonB)); + DALI_TEST_CHECK(accessible); + accessible->GrabHighlight(); + Wait(application); + + // Move second child (B) inside of parent area (both start and end position are inside of parent area) - no move outed event expected for B object + // B: (0,100) --> (0, 50) + buttonB.SetProperty(Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, 50.0f)); + Wait(application); + // Need one more notificaiton to get correct updated position + application.SendNotification(); + DALI_TEST_EQUALS(false, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION); + + // Reset verdict data + Dali::Accessibility::TestResetMoveOutedCalled(); + + // Move second child (B) out of parent area through the parent's area right edge - single move outed event expected for B object and OUTGOING_BOTTOM_RIGHT direction + buttonB.SetProperty(Actor::Property::POSITION, Dali::Vector2(300.0f, 100.0f)); + Wait(application); + // Need one more notificaiton to get correct updated position + application.SendNotification(); + DALI_TEST_EQUALS(true, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION); + + // Reset verdict data + Dali::Accessibility::TestResetMoveOutedCalled(); + + // Move second child (B) back into parent area (start position is outside but end position is inside of parent area) - no move outed event expected for B object + // B: (300,100) --> (0, 100) + buttonB.SetProperty(Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, 100.0f)); Wait(application); // Need one more seding notificaiton to get correct updated position application.SendNotification(); - DALI_TEST_EQUALS( true, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION ); + DALI_TEST_EQUALS(false, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION); // Reset verdict data Dali::Accessibility::TestResetMoveOutedCalled(); - // Move second child out of parent area - accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonB)); + // Disable movement tracking on B by giving highlight to A + accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonA)); DALI_TEST_CHECK(accessible); accessible->GrabHighlight(); Wait(application); - buttonB.SetProperty( Dali::Actor::Property::POSITION, Dali::Vector2(300.0f, 100.0f) ); + // Move B (untracked) out of parent area through the parent's area right edge - no move outed event expected for B object + // B: (0,100) --> (300, 100) + buttonB.SetProperty(Dali::Actor::Property::POSITION, Dali::Vector2(300.0f, 100.0f)); Wait(application); // Need one more seding notificaiton to get correct updated position application.SendNotification(); - DALI_TEST_EQUALS( true, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION ); + DALI_TEST_EQUALS(false, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION); + + Dali::Accessibility::TestEnableSC(false); + END_TEST; +} + +int UtcDaliWebViewAccessible(void) +{ + ToolkitTestApplication application; + + auto webView = Dali::Toolkit::WebView::New(); + auto webViewAccessible = Dali::Accessibility::Accessible::Get(webView); + + DALI_TEST_CHECK(webViewAccessible); + + auto children = webViewAccessible->GetChildren(); + + DALI_TEST_CHECK(children.empty()); + + Dali::Accessibility::TestEnableSC(true); + + children = webViewAccessible->GetChildren(); + + DALI_TEST_EQUALS(children.size(), 1u, TEST_LOCATION); + + auto* child = children[0]; + + DALI_TEST_CHECK(child); + DALI_TEST_CHECK(child->IsProxy()); + DALI_TEST_EQUALS(child->GetParent(), webViewAccessible, TEST_LOCATION); + + auto address = child->GetAddress(); + + DALI_TEST_CHECK(address); + DALI_TEST_NOT_EQUALS(address.GetBus(), webViewAccessible->GetAddress().GetBus(), 0.0f, TEST_LOCATION); + + Dali::Accessibility::TestEnableSC(false); + + children = webViewAccessible->GetChildren(); + + DALI_TEST_CHECK(children.empty()); - Dali::Accessibility::TestEnableSC( false ); END_TEST; }