X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ScrollView.cpp;h=a59a708d1b9370ca69992804715fb8b73254fcbe;hb=afead7a0e5ec3c5007fefbd5e73944a062ed95e6;hp=3b4038ea4ee6581d2dfba5848824ceaceb0220b6;hpb=287b68cccb9fdccf44de630575421f5b2e12ae35;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp index 3b4038e..a59a708 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,26 +58,19 @@ struct CallbackFunctor bool* mCallbackFlag; }; -const int MILLISECONDS_PER_SECOND = 1000; const int RENDER_FRAME_INTERVAL = 16; ///< Duration of each frame in ms. (at approx 60FPS) -const int RENDER_ANIMATION_TEST_DURATION_MS = 1000; ///< 1000ms to test animation const int RENDER_DELAY_SCROLL = 1000; ///< duration to wait for any scroll to complete. // For Clamp Signal testing... const float CLAMP_EXCESS_WIDTH = 200.0f; ///< Amount of width that can be panned outside scrollview const float CLAMP_EXCESS_HEIGHT = 200.0f; ///< Amount of height that can be panned outside scrollview -const int CLAMP_STEP_0_CHECK_NOTCLAMPED = 0; ///< FSM: "First check that scrollview isn't clamped" -const int CLAMP_STEP_1_CHECK_CLAMPED_WEST = 1; ///< FSM: "Next check that scrollview clamps against left side" -const int CLAMP_STEP_2_CHECK_CLAMPED_SOUTH_WEST = 2; ///< FSM: "Then check that scrollview clamps against bottom-left side" -const int CLAMP_STEP_3_SUCCESS = 3; ///< FSM: "Finished (Success)" const Vector2 CLAMP_START_SCROLL_POSITION(30.0f, 100.0f); ///< Scroll start position for the Clamping tests. const Vector2 CLAMP_TOUCH_START( 100.0f, 100.0f ); ///< Start point to touch from for the Clamping tests. const Vector2 CLAMP_TOUCH_MOVEMENT( 5.0f, -5.0f ); ///< Amount to move touch for each frame for the Clamping tests. const int CLAMP_GESTURE_FRAMES = 100; ///< Number of Frames to synthesize a gesture for the Clamping tests. const Vector3 TEST_ACTOR_POSITION(100.0f, 100.0f, 0.0f); ///< A Test actor position offset (arbitrary value) const Vector3 TEST_CONSTRAINT_OFFSET(1.0f, 2.0f, 0.0f); ///< A Test constraint offset (arbitrary value to test effects) -const float TEST_RATIO_TOLERANCE = 0.05; ///< +/-5% tolerance for ratio comparisons. const float DEFAULT_SNAP_OVERSHOOT_DURATION(0.5f); ///< Default overshoot snapping animation time. const float DEFAULT_MAX_OVERSHOOT(100.0f); ///< Default maximum allowed overshoot in pixels @@ -249,8 +242,8 @@ static float TestOvershootSnapDuration(ToolkitTestApplication &application, Scro int timeToReachOrigin = -1; for(int i = 0;i(ScrollView::Property::OVERSHOOT_X); - float overshootYValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_Y); + float overshootXValue = scrollView.GetCurrentProperty( ScrollView::Property::OVERSHOOT_X ); + float overshootYValue = scrollView.GetCurrentProperty( ScrollView::Property::OVERSHOOT_Y ); if(overshootXValue == 0.0f && overshootYValue == 0.0f) { break; @@ -276,6 +269,37 @@ float TestAlphaFunction(float progress) return std::min( progress * 2.0f, 1.0f ); } +static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, bool finish = true) +{ + gOnScrollStartCalled = false; + gOnScrollUpdateCalled = false; + gOnScrollCompleteCalled = false; + gOnSnapStartCalled = false; + + // Now do a pan starting from (start) and heading (direction) + Vector2 pos(start); + SendPan(application, Gesture::Possible, pos); + SendPan(application, Gesture::Started, pos); + Wait(application); + + for(int i = 0;i(), overshootSize, TEST_LOCATION ); + Stage::GetCurrent().Add( scrollView ); Vector2 stageSize = Stage::GetCurrent().GetSize(); scrollView.SetSize(stageSize); @@ -1221,9 +1429,9 @@ int UtcDaliToolkitScrollViewOvershoot(void) // 1. Scroll page in NW (-500,-500 pixels), then inspect overshoot. (don't release touch) Vector2 currentPos = Vector2(100.0f, 100.0f); currentPos = PerformGestureDiagonalSwipe(application, currentPos, Vector2(5.0f, 5.0f), 100, false); - float overshootXValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_X); - float overshootYValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_Y); - Vector2 positionValue = scrollView.GetProperty(ScrollView::Property::SCROLL_POSITION); + float overshootXValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_X ); + float overshootYValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_Y ); + Vector2 positionValue = scrollView.GetCurrentProperty< Vector2 >( ScrollView::Property::SCROLL_POSITION ); DALI_TEST_EQUALS(overshootXValue, 1.0f, TEST_LOCATION); DALI_TEST_EQUALS(overshootYValue, 1.0f, TEST_LOCATION); DALI_TEST_EQUALS(positionValue, Vector2::ZERO, TEST_LOCATION); @@ -1420,15 +1628,15 @@ int UtcDaliToolkitScrollViewSetMaxOvershootP(void) // Scroll page in NW (-20,-20 pixels), then check that overshoot should be 0. (don't release touch) Vector2 currentPos = PerformGestureDiagonalSwipe(application, OVERSHOOT_START_SCROLL_POSITION, Vector2(1.0f, 1.0f), 20, false); - float overshootXValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_X); - float overshootYValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_Y); + float overshootXValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_X ); + float overshootYValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_Y ); DALI_TEST_EQUALS(overshootXValue, 0.0f, TEST_LOCATION); DALI_TEST_EQUALS(overshootYValue, 0.0f, TEST_LOCATION); // Scroll page further in NW (-105,-105 pixels), then check that overshoot should be around 0.5. (don't release touch) currentPos = PerformGestureDiagonalSwipe(application, OVERSHOOT_START_SCROLL_POSITION, Vector2(1.0f, 1.0f), 105, false); - overshootXValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_X); - overshootYValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_Y); + overshootXValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_X ); + overshootYValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_Y ); // The overshoot value is a 0.0f - 1.0f ranged value of the amount overshot related to the maximum overshoot. // EG. If we move 105, max overshoot is 50, then we overshot 50 / 105. float correctOvershootValue = 50.0f / 105.f; @@ -1437,8 +1645,8 @@ int UtcDaliToolkitScrollViewSetMaxOvershootP(void) // Scroll page further in NW (-30,-30 pixels), then check that overshoot should be now 1.0. (don't release touch) currentPos = PerformGestureDiagonalSwipe(application, OVERSHOOT_START_SCROLL_POSITION, Vector2(1.0f, 1.0f), 30, false); - overshootXValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_X); - overshootYValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_Y); + overshootXValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_X ); + overshootYValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_Y ); DALI_TEST_EQUALS(overshootXValue, 1.0f, TEST_LOCATION); DALI_TEST_EQUALS(overshootYValue, 1.0f, TEST_LOCATION); @@ -1447,15 +1655,15 @@ int UtcDaliToolkitScrollViewSetMaxOvershootP(void) Wait(application); // Check that overshoot should be now around 0.8. - overshootXValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_X); - overshootYValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_Y); + overshootXValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_X ); + overshootYValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_Y ); DALI_TEST_CHECK(overshootXValue > 0.79f && overshootXValue < 0.81f); DALI_TEST_CHECK(overshootYValue > 0.79f && overshootYValue < 0.81f); // Scroll page further in NW (-30,-30 pixels), then check that overshoot should be now 1.0. (don't release touch) currentPos = PerformGestureDiagonalSwipe(application, OVERSHOOT_START_SCROLL_POSITION, Vector2(1.0f, 1.0f), 30, false); - overshootXValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_X); - overshootYValue = scrollView.GetProperty(ScrollView::Property::OVERSHOOT_Y); + overshootXValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_X ); + overshootYValue = scrollView.GetCurrentProperty< float >( ScrollView::Property::OVERSHOOT_Y ); DALI_TEST_EQUALS(overshootXValue, 1.0f, TEST_LOCATION); DALI_TEST_EQUALS(overshootYValue, 1.0f, TEST_LOCATION);