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=9a79f349442d353e33a2d3cfd0b832ab266cfc32;hp=5720b4eb5def1697ad9ba7842b182ad2b74672a1;hb=d386c8d8e05053cef41a20db9727065aee3d2bd4;hpb=311e5010e011ee0b93a4a7ee48a7ae150cdc0dbd 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 5720b4e..9a79f34 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 @@ -3,10 +3,16 @@ #include #include #include -#include +#include +#include +#include +#include +#include #include #include #include +#include +#include #include #include #include @@ -263,13 +269,13 @@ int UtcDaliControlAccessibilityHighlightable(void) ToolkitTestApplication application; 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 ); + 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 ); @@ -531,41 +537,45 @@ int UtcDaliAccessibilityRelation(void) Dali::Accessibility::TestEnableSC( true ); auto rel = Accessibility::RelationType::FLOWS_TO; - auto number = static_cast< size_t >( rel ); auto control = Control::New(); auto destination1 = Control::New(); auto destination2 = Control::New(); 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 ); 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(); - 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] ) ); + DALI_TEST_CHECK( static_cast< uint32_t >( 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 ); @@ -609,7 +619,7 @@ int UtcDaliAccessibilityParentChildren(void) 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); @@ -694,17 +704,102 @@ int UtcDaliAccessibilityGrabFocus(void) END_TEST; } -int UtcDaliAccessibilityGetExtents(void) +int UtcDaliAccessibilityGetExtentsScreenAndWindowPositionMatch(void) { ToolkitTestApplication application; + tet_infoline( "UtcDaliAccessibilityGetExtentsScreenAndWindowPositionMatch" ); Dali::Accessibility::TestEnableSC( true ); auto control = Control::New(); Stage::GetCurrent().GetRootLayer().Add( control ); - control.SetProperty(Actor::Property::POSITION, Vector3(10, 10, 100)); - control.SetProperty(Actor::Property::SIZE, Vector2(10, 10)); + 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 ); + + 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::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 ); + + 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 ); + + 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 ); + + 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 ) ); + + control.SetProperty( Actor::Property::POSITION, Vector3( 10, 10, 100 ) ); + control.SetProperty( Actor::Property::SIZE, Vector2( 10, 10 ) ); application.SendNotification(); application.Render( 1 ); @@ -712,13 +807,25 @@ int UtcDaliAccessibilityGetExtents(void) auto a = Dali::Accessibility::Accessible::Get( control ); auto a_component = dynamic_cast( a ); - auto extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN); + 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 ); - auto bridge_extents = TestGetExtents( a_component -> GetAddress() ); + 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 ); @@ -728,13 +835,25 @@ int UtcDaliAccessibilityGetExtents(void) application.SendNotification(); application.Render( 1 ); - extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN); + 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() ); + 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 ); @@ -962,20 +1081,41 @@ int UtcDaliAccessibilityScrollToChildScrollView(void) 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); + // 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; } @@ -1019,11 +1159,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)) @@ -1042,11 +1182,12 @@ int UtcDaliAccessibilityScrollToChildNonScrollable(void) 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 ); END_TEST; @@ -1060,37 +1201,38 @@ int UtcDaliAccessibilityCheckHighlight(void) // 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) ); + 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); // Set highlight to first child (A) to enable movement tracking - auto* accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonA)); + auto* accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonA)); DALI_TEST_CHECK(accessible); accessible->GrabHighlight(); Wait(application); // 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( Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, -200.0f) ); + buttonA.SetProperty(Actor::Property::POSITION, Dali::Vector2(0.0f, -200.0f)); Wait(application); - // Need one more seding notificaiton to get correct updated position + // Need one more notificaiton to get correct updated position application.SendNotification(); DALI_TEST_EQUALS( true, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION ); @@ -1100,7 +1242,7 @@ int UtcDaliAccessibilityCheckHighlight(void) // 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 seding notificaiton to get correct updated position + // Need one more notificaiton to get correct updated position application.SendNotification(); DALI_TEST_EQUALS( false, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION ); @@ -1108,7 +1250,7 @@ int UtcDaliAccessibilityCheckHighlight(void) Dali::Accessibility::TestResetMoveOutedCalled(); // Set highlight to second child (B) to enable movement tracking - accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonB)); + accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonB)); DALI_TEST_CHECK(accessible); accessible->GrabHighlight(); Wait(application); @@ -1117,7 +1259,7 @@ int UtcDaliAccessibilityCheckHighlight(void) // B: (0,100) --> (0, 50) buttonB.SetProperty( Dali::Actor::Property::POSITION, Dali::Vector2(0.0f, 50.0f) ); Wait(application); - // Need one more seding notificaiton to get correct updated position + // Need one more notificaiton to get correct updated position application.SendNotification(); DALI_TEST_EQUALS( false, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION ); @@ -1125,9 +1267,9 @@ int UtcDaliAccessibilityCheckHighlight(void) 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( Dali::Actor::Property::POSITION, Dali::Vector2(300.0f, 100.0f) ); + buttonB.SetProperty(Actor::Property::POSITION, Dali::Vector2(300.0f, 100.0f)); Wait(application); - // Need one more seding notificaiton to get correct updated position + // Need one more notificaiton to get correct updated position application.SendNotification(); DALI_TEST_EQUALS( true, Dali::Accessibility::TestGetMoveOutedCalled(), TEST_LOCATION ); @@ -1146,7 +1288,7 @@ int UtcDaliAccessibilityCheckHighlight(void) Dali::Accessibility::TestResetMoveOutedCalled(); // Disable movement tracking on B by giving highlight to A - accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonA)); + accessible = dynamic_cast(Dali::Accessibility::Accessible::Get(buttonA)); DALI_TEST_CHECK(accessible); accessible->GrabHighlight(); Wait(application); @@ -1162,3 +1304,42 @@ int UtcDaliAccessibilityCheckHighlight(void) 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()); + + END_TEST; +}