X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ScrollViewEffect.cpp;h=d7edf064720fc8e04e052725e152ec5c33340187;hp=b7a08fd8689df2116f4dce4966768137f23defac;hb=refs%2Fchanges%2F34%2F39034%2F20;hpb=12abbd996128aa2bc08677041f957938bee72245 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp index b7a08fd..d7edf06 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp @@ -96,7 +96,8 @@ static bool gOnScrollUpdateCalled; ///< Whether the OnScrol static bool gOnScrollCompleteCalled; ///< Whether the OnScrollComplete signal was invoked. static Vector3 gConstraintResult; ///< Result from constraint. -static ActorContainer gPages; ///< Keeps track of all the pages for applying effects. +static std::vector< Actor > gPages; ///< Keeps track of all the pages for applying effects. +typedef std::vector< Actor >::iterator ActorIter; static void ResetScrollCallbackResults() { @@ -110,7 +111,7 @@ static void ResetScrollCallbackResults() * * @param[in] position The current scroll position. */ -static void OnScrollStart( const Vector3& position ) +static void OnScrollStart( const Vector2& position ) { gOnScrollStartCalled = true; } @@ -120,7 +121,7 @@ static void OnScrollStart( const Vector3& position ) * * @param[in] position The current scroll position. */ -static void OnScrollUpdate( const Vector3& position ) +static void OnScrollUpdate( const Vector2& position ) { gOnScrollUpdateCalled = true; } @@ -130,18 +131,24 @@ static void OnScrollUpdate( const Vector3& position ) * * @param[in] position The current scroll position. */ -static void OnScrollComplete( const Vector3& position ) +static void OnScrollComplete( const Vector2& position ) { gOnScrollCompleteCalled = true; } ScrollView SetupTestScrollView(int rows, int columns, Vector2 size) { + Constraint constraint; + ScrollView scrollView = ScrollView::New(); scrollView.SetSize(size); scrollView.SetAnchorPoint(AnchorPoint::CENTER); scrollView.SetParentOrigin(ParentOrigin::CENTER); - scrollView.ApplyConstraint( Constraint::New( Dali::Actor::SIZE, Dali::ParentSource( Dali::Actor::SIZE ), Dali::EqualToConstraint() ) ); + + constraint = Constraint::New( scrollView, Dali::Actor::Property::SIZE, Dali::EqualToConstraint() ); + constraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) ); + constraint.Apply(); + scrollView.SetWrapMode(false); scrollView.ScrollStartedSignal().Connect( &OnScrollStart ); scrollView.ScrollUpdatedSignal().Connect( &OnScrollUpdate ); @@ -175,7 +182,10 @@ ScrollView SetupTestScrollView(int rows, int columns, Vector2 size) container.SetAnchorPoint(AnchorPoint::CENTER); container.SetSize( size ); scrollView.Add( container ); - container.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + + constraint = Constraint::New( container, Actor::Property::SIZE, EqualToConstraint() ); + constraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) ); + constraint.Apply(); gPages.clear(); for(int row = 0;row( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + + constraint = Constraint::New( page, Actor::Property::SIZE, EqualToConstraint() ); + constraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) ); + constraint.Apply(); page.SetParentOrigin( ParentOrigin::CENTER ); page.SetAnchorPoint( AnchorPoint::CENTER ); page.SetPosition( column * size.x, row * size.y ); @@ -249,46 +262,135 @@ int UtcDaliScrollViewCubeEffectSetup(void) END_TEST; } -int UtcDaliScrollViewSpiralEffectSetup(void) +int UtcDaliScrollViewCubeEffectTest(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliScrollViewCubeEffectTest"); + + Vector2 size = Stage::GetCurrent().GetSize(); + + ScrollView scrollView = SetupTestScrollView(1, 3, size); + Actor page = gPages[1]; + Wait(application, 500); + + ScrollViewCubeEffect effect = ScrollViewCubeEffect::New(); + scrollView.ApplyEffect(effect); + + Actor actor = AddActorToPage(page, 0.5f, 0.5f, 3, 3); + Wait(application); + Vector3 actorPrePosition = actor.GetCurrentPosition(); + + effect.ApplyToActor(actor, page, Vector3(-105.0f, 30.0f, -240.0f), Vector2(Math::PI * 0.5f, Math::PI * 0.5f), Vector2(0.25f, 0.25f) * size); + + Actor actor2 = AddActorToPage(page, 0.5f, 0.5f, 3, 3); + effect.ApplyToActor(actor2, Vector3(-105.0f, 30.0f, -240.0f), Vector2(Math::PI * 0.5f, Math::PI * 0.5f), Vector2(0.25f, 0.25f) * size); + + scrollView.ScrollTo(1); + while(!gOnScrollCompleteCalled) + { + Wait(application); + } + // test that the first page has reached centre of screen + Vector3 actorPostPosition = actor.GetCurrentPosition(); + // just check the actor has moved + DALI_TEST_CHECK((actorPostPosition - actorPrePosition).Length() > Math::MACHINE_EPSILON_1); + CleanupTest(); + END_TEST; +} + +int UtcDaliScrollViewCarouselEffectSetup(void) { - tet_infoline(" UtcDaliScrollViewSpiralEffectSetup"); + tet_infoline(" UtcDaliScrollViewCarouselEffectSetup"); - ScrollViewPageSpiralEffect effect; + ScrollViewCarouselEffect effect; DALI_TEST_CHECK( !effect ); - BaseHandle handle = ScrollViewPageSpiralEffect::New(); + BaseHandle handle = ScrollViewCarouselEffect::New(); DALI_TEST_CHECK( handle ); - effect = ScrollViewPageSpiralEffect::DownCast(handle); + effect = ScrollViewCarouselEffect::DownCast(handle); DALI_TEST_CHECK( effect ); END_TEST; } -int UtcDaliScrollViewCubeEffectTest(void) +int UtcDaliScrollViewCarouselEffectTest(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliScrollViewCubeEffectTest"); + tet_infoline(" UtcDaliScrollViewCarouselEffectTest"); Vector2 size = Stage::GetCurrent().GetSize(); ScrollView scrollView = SetupTestScrollView(1, 3, size); - Actor page = gPages[1]; + Actor testPage = gPages[1]; Wait(application, 500); - ScrollViewCubeEffect effect = ScrollViewCubeEffect::New(); + ScrollViewCarouselEffect effect = ScrollViewCarouselEffect::New(); scrollView.ApplyEffect(effect); - Actor actor = AddActorToPage(page, 0.5f, 0.5f, 3, 3); + Actor actor = AddActorToPage(testPage, 0.5f, 0.5f, 3, 3); Wait(application); Vector3 actorPrePosition = actor.GetCurrentPosition(); - effect.ApplyToActor(actor, page, Vector3(-105.0f, 30.0f, -240.0f), Vector2(Math::PI * 0.5f, Math::PI * 0.5f), Vector2(0.25f, 0.25f) * size); + effect.ApplyToActor( actor, Vector2(1.2f, 1.2f) ); - Actor actor2 = AddActorToPage(page, 0.5f, 0.5f, 3, 3); - effect.ApplyToActor(actor2, Vector3(-105.0f, 30.0f, -240.0f), Vector2(Math::PI * 0.5f, Math::PI * 0.5f), Vector2(0.25f, 0.25f) * size); + scrollView.ScrollTo(Vector2(size.x, 0.0f), 0.5f, DirectionBiasNone, DirectionBiasNone); + while(!gOnScrollCompleteCalled) + { + Wait(application); + } + // test that the first page has reached centre of screen + Vector3 actorPostPosition = actor.GetCurrentPosition(); + // just check the actor has moved + DALI_TEST_CHECK((actorPostPosition - actorPrePosition).Length() > Math::MACHINE_EPSILON_1); + CleanupTest(); + END_TEST; +} + +int UtcDaliScrollViewDepthEffectSetup(void) +{ + tet_infoline(" UtcDaliScrollViewDepthEffectSetup"); + + ScrollViewDepthEffect effect; + + DALI_TEST_CHECK( !effect ); + + BaseHandle handle = ScrollViewDepthEffect::New(); + + DALI_TEST_CHECK( handle ); + + effect = ScrollViewDepthEffect::DownCast(handle); + + DALI_TEST_CHECK( effect ); + END_TEST; +} + +int UtcDaliScrollViewDepthEffectTest(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliScrollViewDepthEffectTest"); + + Vector2 size = Stage::GetCurrent().GetSize(); + + ScrollView scrollView = SetupTestScrollView(1, 3, size); + Actor testPage = gPages[1]; + Wait(application, 500); + + ScrollViewDepthEffect effect = ScrollViewDepthEffect::New(); + scrollView.ApplyEffect(effect); + + Actor actor = AddActorToPage(testPage, 0.5f, 0.5f, 3, 3); + Wait(application); + Vector3 actorPrePosition = actor.GetCurrentPosition(); + + const Vector2 positionExtent(0.5f, 2.5f); + const Vector2 offsetExtent(1.0f, 1.0f); + const float positionScale(1.5f); + const float scaleExtent(0.5f); + + effect.ApplyToActor( actor, positionExtent, offsetExtent, positionScale, scaleExtent ); scrollView.ScrollTo(1); while(!gOnScrollCompleteCalled) @@ -304,26 +406,70 @@ int UtcDaliScrollViewCubeEffectTest(void) } -int UtcDaliScrollViewSpiralEffectTest(void) +int UtcDaliScrollViewPagePathEffectSetup(void) +{ + tet_infoline(" UtcDaliScrollViewPagePathEffectSetup"); + + ScrollViewPagePathEffect effect; + + DALI_TEST_CHECK( !effect ); + + BaseHandle handle = ScrollViewPagePathEffect::New(Dali::Path::New(), Vector3::ZERO,Toolkit::ScrollView::Property::SCROLL_FINAL_X, Vector3::ZERO,0); + + DALI_TEST_CHECK( handle ); + + effect = ScrollViewPagePathEffect::DownCast(handle); + + DALI_TEST_CHECK( effect ); + END_TEST; +} + +int UtcDaliScrollViewPagePathEffectTest(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliScrollViewSpiralEffectTest"); + tet_infoline(" UtcDaliScrollViewPagePathEffectTest"); Vector2 size = Stage::GetCurrent().GetSize(); ScrollView scrollView = SetupTestScrollView(1, 3, size); - Actor testPage = gPages[1]; + Actor testPage = gPages[2]; Wait(application, 500); - ScrollViewPageSpiralEffect effect = ScrollViewPageSpiralEffect::New(); + //Create path + float xHalfSize( size.x * 0.5f); + + Dali::Path path = Dali::Path::New(); + Dali::Property::Array points; + points.resize(3); + points[0] = Vector3( xHalfSize, 0.0f, -xHalfSize); + points[1] = Vector3( 0.0f, 0.0f, 0.0f ); + points[2] = Vector3( -xHalfSize, 0.0f, -xHalfSize); + path.SetProperty( Path::Property::POINTS, points ); + + Dali::Property::Array controlPoints; + controlPoints.resize(4); + controlPoints[0] = Vector3( xHalfSize, 0.0f, 0.0f ); + controlPoints[1] = Vector3( xHalfSize, 0.0f, 0.0f ); + controlPoints[2] = Vector3(-xHalfSize, 0.0f, 0.0f ); + controlPoints[3] = Vector3(-xHalfSize, 0.0f, 0.0f ); + path.SetProperty( Path::Property::CONTROL_POINTS, controlPoints ); + + ScrollViewPagePathEffect effect = ScrollViewPagePathEffect::New(path, + Vector3::ZERO, + Toolkit::ScrollView::Property::SCROLL_FINAL_X, + Vector3(size.x,size.y,0.0f), + 3); scrollView.ApplyEffect(effect); + unsigned int pageCounter(0); for(ActorIter pageIter = gPages.begin(); pageIter != gPages.end(); ++pageIter) { Actor page = *pageIter; page.RemoveConstraints(); - page.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); - effect.ApplyToPage(page, Vector2(Math::PI_2, 0.0f)); + Constraint constraint = Constraint::New( page, Actor::Property::SIZE, EqualToConstraint() ); + constraint.AddSource( ParentSource( Actor::Property::SIZE ) ); + constraint.Apply(); + effect.ApplyToPage(page, pageCounter++); } Wait(application); @@ -332,9 +478,11 @@ int UtcDaliScrollViewSpiralEffectTest(void) { Wait(application); } - // test that the first page has reached centre of screen + + // test that the test page has reached centre of screen Vector3 pagePos = testPage.GetCurrentPosition(); DALI_TEST_EQUALS(pagePos, Vector3::ZERO, Math::MACHINE_EPSILON_0, TEST_LOCATION); + CleanupTest(); END_TEST; }