+ start = size * 0.25f;
+ direction = Vector2(size.x * 0.05f, 0.f);
+ PerformGestureDiagonalSwipe(application, start, direction, 4, time, 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, time, 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(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;
+ Vector2 stageSize = application.GetScene().GetSize();
+ PageTurnView landscapeView = PageTurnLandscapeView::New(factory, Vector2(stageSize.x * 0.5f, stageSize.x * 0.8f));
+ landscapeView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ application.GetScene().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.
+ uint32_t time = 0;
+ 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, time, 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, time, false, true);
+ DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
+ DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
+
+ time += 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, time, 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, time, false, true);
+ DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
+ DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
+
+ time += 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, time, 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, time, 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;
+}
+
+int UtcDaliPageImageFactoryGetExtention(void)
+{
+ ToolkitTestApplication application;
+ TestPageFactory factory;
+ DALI_TEST_CHECK(factory.GetExtension() == NULL);
+ END_TEST;
+}
+
+int UtcDaliPageTurnEmptyTextureHandle(void)
+{
+ ToolkitTestApplication application;
+
+ tet_infoline(" UtcDaliPageTurnEmptyTextureHandle ");
+
+ application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
+
+ TestPageFactory factory(false /* returns empty handles */);
+ Vector2 size = application.GetScene().GetSize();
+ try
+ {
+ PageTurnView portraitView = PageTurnPortraitView::New(factory, size);
+ portraitView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ application.GetScene().Add(portraitView);
+
+ tet_result(TET_FAIL);
+ }
+ catch(DaliException& e)
+ {
+ DALI_TEST_ASSERT(e, "must pass in valid texture", TEST_LOCATION);
+ }
+ catch(...)
+ {
+ tet_result(TET_FAIL);
+ }
+