(AutomatedTests) Ensure warnings are shown as errors
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-PageTurnView.cpp
index 443de6f..24cccdc 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 #include <sstream>
-
 #include <dali-toolkit-test-suite-utils.h>
-#include <dali-toolkit/dali-toolkit.h>
+#include <dali/integration-api/events/pan-gesture-event.h>
+#include <dali-toolkit/public-api/controls/page-turn-view/page-factory.h>
+#include <dali-toolkit/public-api/controls/page-turn-view/page-turn-landscape-view.h>
+#include <dali-toolkit/public-api/controls/page-turn-view/page-turn-portrait-view.h>
+#include <dali-toolkit/public-api/controls/page-turn-view/page-turn-view.h>
+
+
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -216,7 +221,10 @@ public:
       actor.SetParentOrigin( ParentOrigin::CENTER );
       actor.SetAnchorPoint( AnchorPoint::CENTER );
 
-      SetActorHittability( actor, true );
+      ImageActor backPageActor = CreateSolidColorImageActor(mApplication, Color::BLUE,IMAGE_WIDTH,IMAGE_HEIGHT);
+      backPageActor.SetParentOrigin( ParentOrigin::CENTER );
+      backPageActor.SetAnchorPoint( AnchorPoint::CENTER );
+      actor.Add( backPageActor );
 
       mSourceActors[pageId] = actor;
     }
@@ -271,7 +279,7 @@ int UtcDaliPageTurnPortraitViewNew(void)
   registry.ObjectCreatedSignal().Connect( &TestCallback );
   {
     TestPageFactory factory(application);
-    PageTurnView PortraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
+    PageTurnView portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
   }
   DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
 
@@ -284,6 +292,7 @@ int UtcDaliPageTurnPortraitViewNew(void)
   handleView = portraitView;
   PageTurnView downCastView = PageTurnView::DownCast( handleView );
   DALI_TEST_CHECK( downCastView );
+
   END_TEST;
 }
 
@@ -327,171 +336,128 @@ int UtcDaliPageTurnLandscapeViewNew(void)
   END_TEST;
 }
 
-int UtcDaliPageTurnViewSetAndGetSpineShadowParameter(void)
+int UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment(void)
 {
   ToolkitTestApplication application;
 
-  tet_infoline(" UtcDaliPageTurnViewSetAndGetSpineShadowParameter ");
+  tet_infoline(" UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment ");
 
-  TestPageFactory factory(application);
-  PageTurnView landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
-  DALI_TEST_CHECK( landscapeView.GetSpineShadowParameter() !=  SPINE_SHADOW_PARAMETER);
-  landscapeView.SetSpineShadowParameter(SPINE_SHADOW_PARAMETER);
-  DALI_TEST_CHECK( landscapeView.GetSpineShadowParameter() ==  SPINE_SHADOW_PARAMETER);
-  END_TEST;
-}
+  // Test default constructor
+  PageTurnPortraitView portraitView;
+  DALI_TEST_CHECK( !portraitView );
 
-int UtcDaliPageTurnViewGoToPageAndGetCurrentPage(void)
-{
-  ToolkitTestApplication application;
+  // Test object creation
+  TestPageFactory factory(application);
+  portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
+  DALI_TEST_CHECK( portraitView );
 
-  tet_infoline(" UtcDaliPageTurnViewGoToPageAndGetCurrentPage ");
+  // Test copy constructor
+  PageTurnPortraitView viewCopy( portraitView );
+  DALI_TEST_CHECK( viewCopy );
 
-  TestPageFactory factory(application);
-  PageTurnView portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
-  DALI_TEST_CHECK( portraitView.GetCurrentPage() == 0 );
+  // Test assignment
+  PageTurnPortraitView portraitView2;
+  portraitView2 = portraitView;
+  DALI_TEST_CHECK( portraitView2 );
+  DALI_TEST_CHECK( portraitView == portraitView2);
 
-  portraitView.GoToPage( 10 );
-  DALI_TEST_CHECK( portraitView.GetCurrentPage() == 10 );
+  // Test down cast
+  Handle handleView;
+  handleView = portraitView;
+  PageTurnPortraitView downCastView = PageTurnPortraitView::DownCast( handleView );
+  DALI_TEST_CHECK( downCastView );
 
-  portraitView.GoToPage( 5 );
-  DALI_TEST_CHECK( portraitView.GetCurrentPage() == 5 );
   END_TEST;
 }
 
-int UtcDaliPageTurnViewEnterLeaveEditMode(void)
+int UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment(void)
 {
   ToolkitTestApplication application;
 
-  tet_infoline( " UtcDaliPageTurnViewEnterLeaveEditMode " );
+  tet_infoline(" UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment ");
 
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
+  // Test default constructor
+  PageTurnLandscapeView landscapeView;
+  DALI_TEST_CHECK( !landscapeView );
 
+  // Test object creation
   TestPageFactory factory(application);
-  factory.EnableOffscreenRendering( );
-
-  PageTurnView pageTurnView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
-  pageTurnView.SetPositionInheritanceMode( USE_PARENT_POSITION );
-  Stage::GetCurrent().Add( pageTurnView );
-
-  Vector2 size = Stage::GetCurrent().GetSize();
-
-  pageTurnView.GoToPage(5);
-
-  // Render and notify
-  application.SendNotification();
-  application.Render(RENDER_FRAME_INTERVAL);
-
-  Actor actor = pageTurnView.EnterEditMode();
-  // Test that when entering edit mode, current page source actor is returned.
-  unsigned int pageId;
-  std::istringstream( actor.GetName() ) >> pageId;
-  DALI_TEST_CHECK( pageId == 5 );
+  landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+  DALI_TEST_CHECK( landscapeView );
 
-  bool signalVerified;
-  PageTurnView currentView;
-  unsigned int pageIndex;
-  bool isTurningForwards;
-  PageSignalCallback callbackPanStarted( signalVerified, currentView, pageIndex, isTurningForwards );
-  pageTurnView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
+  // Test copy constructor
+  PageTurnLandscapeView viewCopy( landscapeView );
+  DALI_TEST_CHECK( viewCopy );
 
-  currentView = pageTurnView;
-  pageIndex = 5;
-  DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
+  // Test assignment
+  PageTurnLandscapeView landscapeView2;
+  landscapeView2 = landscapeView;
+  DALI_TEST_CHECK( landscapeView2 );
+  DALI_TEST_CHECK( landscapeView == landscapeView2);
 
-  // Test that the control does not receive pan gesture in edit-mode
-  PerformGestureDiagonalSwipe( application, Vector2(size*0.75f), Vector2(size*0.01f), 10, true, true);
-  DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
+  // Test down cast
+  Handle handleView;
+  handleView = landscapeView;
+  PageTurnLandscapeView downCastView = PageTurnLandscapeView::DownCast( handleView );
+  DALI_TEST_CHECK( downCastView );
 
-  pageTurnView.LeaveEditMode();
-  // Test that the control receives pan gesture after leaving edit-mode
-  PerformGestureDiagonalSwipe( application, Vector2(size*0.75f), Vector2(size*0.01f), 10, true, true);
-  DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
   END_TEST;
 }
 
-int UtcDaliPageTurnViewGetHitActor(void)
+int UtcDaliPageTurnViewSetGetProperty(void)
 {
   ToolkitTestApplication application;
 
-  tet_infoline(" UtcDaliPageTurnViewGetHitActor ");
-
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
+  tet_infoline(" UtcDaliPageTurnViewSetGetProperty ");
 
   TestPageFactory factory(application);
-  factory.EnableOffscreenRendering( );
-
-  PageTurnView pageTurnView = PageTurnPortraitView::New( factory, PAGE_SIZE );
-  pageTurnView.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pageTurnView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  Stage::GetCurrent().Add( pageTurnView );
+  PageTurnView landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+  DALI_TEST_CHECK( landscapeView );
 
-  // Render and notify
-  application.SendNotification();
-  application.Render(RENDER_FRAME_INTERVAL);
+  Stage::GetCurrent().Add( landscapeView );
 
-  pageTurnView.GoToPage(3);
+  // Test "pageSize" property
+  DALI_TEST_CHECK( landscapeView.GetPropertyIndex("pageSize") == PageTurnView::Property::PAGE_SIZE  );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), PAGE_SIZE, TEST_LOCATION );
 
-  Vector2 localCoordinate = Vector2();
-  Vector2 screenCoordinate = PAGE_SIZE*0.5f+Vector2(7.f,8.f);
-  Actor hitActor = pageTurnView.GetHitActor( screenCoordinate, localCoordinate );
-  DALI_TEST_CHECK( hitActor );
-  unsigned int pageId;
-  std::istringstream( hitActor.GetName() ) >> pageId;
-  DALI_TEST_CHECK( pageId == 3 );
-  DALI_TEST_EQUALS(  localCoordinate, IMAGE_SIZE*0.5f+Vector2(7.f,8.f), 0.1f, TEST_LOCATION  );
+  Vector2 newSize( PAGE_SIZE.x*0.75, PAGE_SIZE.y*0.5f );
+  landscapeView.SetProperty( PageTurnView::Property::PAGE_SIZE, newSize );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), newSize, TEST_LOCATION );
+  Wait( application);
+  DALI_TEST_EQUALS( Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x*2.f, newSize.y), TEST_LOCATION);
 
-  screenCoordinate = PAGE_SIZE*0.5f+IMAGE_SIZE;
-  hitActor = pageTurnView.GetHitActor( screenCoordinate, localCoordinate );
-  DALI_TEST_CHECK( !hitActor );
-  END_TEST;
-}
+  landscapeView.SetProperty( PageTurnView::Property::PAGE_SIZE,newSize*1.5f);
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), newSize*1.5f, TEST_LOCATION );
+  Wait( application);
+  DALI_TEST_EQUALS( Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x*3.f, newSize.y*1.5f), TEST_LOCATION);
 
-int UtcDaliPageTurnViewRefresh(void)
-{
-  ToolkitTestApplication application;
+  // Test "currentPageId" property
+  DALI_TEST_CHECK( landscapeView.GetPropertyIndex("currentPageId") == PageTurnView::Property::CURRENT_PAGE_ID );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
 
-  tet_infoline(" UtcDaliPageTurnViewRefresh ");
+  int pageId = static_cast<int>(TOTAL_PAGE_NUMBER)/3;
+  landscapeView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, pageId );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId, TEST_LOCATION );
 
-  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
+  landscapeView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, pageId*2 );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId*2, TEST_LOCATION );
 
-  TestPageFactory factory(application);
-  factory.EnableOffscreenRendering( );
-  PageTurnView pageTurnView = PageTurnPortraitView::New( factory, PAGE_SIZE );
-  pageTurnView.SetParentOrigin( ParentOrigin::TOP_LEFT );
-  pageTurnView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-  Stage::GetCurrent().Add( pageTurnView );
+  // Test "spinShadow" property
+  DALI_TEST_CHECK( landscapeView.GetPropertyIndex( "spineShadow" ) == PageTurnView::Property::SPINE_SHADOW );
+  landscapeView.SetProperty( PageTurnView::Property::SPINE_SHADOW, SPINE_SHADOW_PARAMETER );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER, TEST_LOCATION );
 
-  // Render and notify
-  application.SendNotification();
-  application.Render(RENDER_FRAME_INTERVAL);
-  application.Render(RENDER_FRAME_INTERVAL);
-  application.SendNotification();
+  landscapeView.SetProperty( PageTurnView::Property::SPINE_SHADOW,  SPINE_SHADOW_PARAMETER*0.75f );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER*0.75f, TEST_LOCATION );
 
-  factory.DeletePage( 0 );
-
-  pageTurnView.RefreshCurrentPage();
-  // simply calls the certain off screen render task to refresh
-  Vector2 localCoordinate = Vector2();
-  Vector2 screenCoordinate = PAGE_SIZE*0.5f;
-  Actor hitActor = pageTurnView.GetHitActor( screenCoordinate, localCoordinate );
-  unsigned int pageId;
-  std::istringstream( hitActor.GetName() ) >> pageId;
-  DALI_TEST_CHECK( pageId == 0 );
-
-  pageTurnView.RefreshAll();
-  // re-parent all the source actors and refresh
-  hitActor = pageTurnView.GetHitActor( screenCoordinate, localCoordinate );
-  std::istringstream( hitActor.GetName() ) >> pageId;
-  DALI_TEST_CHECK( pageId == 1 );
   END_TEST;
 }
 
-int UtcDaliPageTurnViewSignals(void)
+int UtcDaliPageTurnPortraitViewSignals(void)
 {
   ToolkitTestApplication application;
 
-  tet_infoline(" UtcDaliPageTurnViewSignals ");
+  tet_infoline(" UtcDaliPageTurnPortraitViewSignals ");
 
   application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
 
@@ -538,7 +504,7 @@ int UtcDaliPageTurnViewSignals(void)
   Vector2 start = size * 0.75f;
   Vector2 direction = -size*0.05f; //-size*0.5f/10.f;
 
-  DALI_TEST_CHECK( portraitView.GetCurrentPage() == 0);
+  DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
   PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
   DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
   DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
@@ -551,14 +517,15 @@ int UtcDaliPageTurnViewSignals(void)
 
   Wait(application, 1000);
   DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
-  DALI_TEST_CHECK( portraitView.GetCurrentPage() == pageIndex+1); // the page is turn over
+  // the page is turned over
+  DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex+1), TEST_LOCATION );
 
   //---Test 2: pan from position( size*0.5f ) to position( size.width, size.height*0.5f ) to position( size * 0.75f ), page 1 will bent then slid back---
   callbackTurnStarted.Reset();
   callbackTurnFinished.Reset();
   callbackPanStarted.Reset();
   callbackPanFinished.Reset();
-  portraitView.GoToPage(5);
+  portraitView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, 5 );
   pageIndex = 5;
   isTurningForwards = true;
 
@@ -580,14 +547,14 @@ int UtcDaliPageTurnViewSignals(void)
 
   Wait(application, 1000);
   DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
-  DALI_TEST_CHECK( portraitView.GetCurrentPage() == pageIndex); // the page is not turned over
+  DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)pageIndex, TEST_LOCATION ); // the page is not turned over
 
   // ----Test 3: pan 10 frames from position( size*0.25f ) to position( size.width*0.75f, size.height*0.25f ), the previous page will be turned backwards---
   callbackTurnStarted.Reset();
   callbackTurnFinished.Reset();
   callbackPanStarted.Reset();
   callbackPanFinished.Reset();
-  portraitView.GoToPage(10);
+  portraitView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, 10);
   pageIndex = 9; // will turn the previous page back
   isTurningForwards = false;
   start = size*0.25f;
@@ -606,6 +573,137 @@ int UtcDaliPageTurnViewSignals(void)
   Wait( application, 1000 );
 
   DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
-  DALI_TEST_CHECK( portraitView.GetCurrentPage() == 9);
+  DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 9, TEST_LOCATION );
+  END_TEST;
+}
+
+int UtcDaliPageTurnLanscapeViewSignals(void)
+{
+  ToolkitTestApplication application;
+
+  tet_infoline(" UtcDaliPageTurnLanscapeViewSignals ");
+
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
+
+  /***
+   * -----------------
+   * |               |
+   * |---------------|
+   * |bookboo|bookboo|
+   * |kbookbo|kbookbo|
+   * |okbookb|okbookb|
+   * |ookbook|ookbook|
+   * |bookboo|bookboo|
+   * |---------------|
+   * |               |
+   * ----------------
+   */
+
+  TestPageFactory factory(application);
+  Vector2 stageSize = Stage::GetCurrent().GetSize();
+  PageTurnView landscapeView = PageTurnLandscapeView::New( factory, Vector2(stageSize.x*0.5f, stageSize.x*0.8f) );
+  landscapeView.SetPositionInheritanceMode( USE_PARENT_POSITION );;
+  Stage::GetCurrent().Add( landscapeView );
+
+  // Render and notify
+  application.SendNotification();
+  application.Render(RENDER_FRAME_INTERVAL);
+
+  // [0]: testing PageTurnStartedSignal;  [1]: testing PageTurnFinishedSignal
+  // [2]: testing PagePanStartedSignal;   [3]: testing PagePanFinishedSignal
+  bool signalVerified[4] = {false, false, false, false};
+  PageTurnView currentView;
+  unsigned int pageIndex;
+  bool isTurningForwards;
+
+  PageSignalCallback callbackTurnStarted( signalVerified[0], currentView, pageIndex, isTurningForwards );
+  landscapeView.PageTurnStartedSignal().Connect( &callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback );
+
+  PageSignalCallback callbackTurnFinished( signalVerified[1], currentView, pageIndex, isTurningForwards );
+  landscapeView.PageTurnFinishedSignal().Connect( &callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback );
+
+  PageSignalCallback callbackPanStarted( signalVerified[2], currentView, pageIndex, isTurningForwards );
+  landscapeView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
+
+  PageSignalCallback callbackPanFinished( signalVerified[3], currentView, pageIndex, isTurningForwards );
+  landscapeView.PagePanFinishedSignal().Connect( &callbackPanFinished, &PageSignalCallback::PagePanSignalCallback );
+
+  DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+  DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
+  DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
+
+  currentView = landscapeView;
+
+  //-----Test 1: pan 10 frames from position(stageSize.x * 0.85f, stageSize.y*0.5) to position(stageSize.x * 0.45f, stageSize.y*0.5-stageSize.x * 0.3f), page 0 will be turned forward----
+  pageIndex = 0;
+  isTurningForwards = true;
+  // Do a pan to the left.
+  Vector2 start = Vector2(stageSize.x * 0.85f, stageSize.y*0.5);
+  Vector2 direction = Vector2(-stageSize.x*0.04f, -stageSize.x*0.03f);
+
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
+  PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
+  DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+  DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
+  DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
+
+  PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, false, true);
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+  DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
+
+  Wait(application, 1000);
+  DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
+  // the page is turned over
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex+1), TEST_LOCATION );
+
+  //---Test 2: pan from position(stageSize.x * 0.15f, stageSize.y*0.5) to position(stageSize.x * 0.45f, stageSize.y*0.5) page 4 will be turned back---
+  callbackTurnStarted.Reset();
+  callbackTurnFinished.Reset();
+  callbackPanStarted.Reset();
+  callbackPanFinished.Reset();
+  isTurningForwards = false;
+
+  //pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
+  start = Vector2( stageSize.x * 0.15f, stageSize.y*0.5f );
+  direction = Vector2(stageSize.x * 0.03f, 0.f);
+  PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
+  DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
+  DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+  DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
+
+  PerformGestureDiagonalSwipe( application, start + direction*5.f , direction, 5, false, true);
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+  DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
+
+  Wait(application, 1000);
+  DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION ); // the first page is turned back
+
+  // ----Test 3: pan 10 frames from position( size*0.55f ) to position( size.width*0.8f, size.height*0.5f ), no page turn will be started---
+  callbackTurnStarted.Reset();
+  callbackTurnFinished.Reset();
+  callbackPanStarted.Reset();
+  callbackPanFinished.Reset();
+  isTurningForwards = false;
+  start = stageSize*0.55f;
+  direction = Vector2(stageSize.x*0.025f, 0.f);
+  PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
+  DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
+  DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+  DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
+
+  PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, false, true);
+  DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
+  DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+
+  Wait( application, 1000 );
+
+  DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
+  DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
   END_TEST;
 }