2 * Copyright (c) 2022 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <dali-toolkit-test-suite-utils.h>
19 #include <dali-toolkit/devel-api/controls/page-turn-view/page-factory.h>
20 #include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-landscape-view.h>
21 #include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-portrait-view.h>
22 #include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-view.h>
23 #include <dali/integration-api/events/touch-event-integ.h>
30 using namespace Dali::Toolkit;
34 const int RENDER_FRAME_INTERVAL = 16; ///< Duration of each frame in ms. (at approx 60FPS)
35 const unsigned int TOTAL_PAGE_NUMBER = 20;
36 const Vector2 VIEW_PAGE_SIZE(300.f, 400.f);
37 const Vector2 SPINE_SHADOW_PARAMETER(60.0f, 30.0f);
39 static bool gObjectCreatedCallBackCalled;
40 static void TestCallback(BaseHandle handle)
42 gObjectCreatedCallBackCalled = true;
46 * Simulate time passed by.
48 * @note this will always process at least 1 frame (1/60 sec)
50 * @param application Test application instance
51 * @param duration Time to pass in milliseconds.
53 int Wait(ToolkitTestApplication& application, int duration = 0)
57 for(int i = 0; i <= (duration / RENDER_FRAME_INTERVAL); i++)
59 application.SendNotification();
60 application.Render(RENDER_FRAME_INTERVAL);
61 time += RENDER_FRAME_INTERVAL;
67 static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, uint32_t& time, bool toStart = true, bool toFinish = true)
73 // Now do a pan starting from (start + 20) and heading (direction)
74 Vector2 pos_start_jump(start + Vector2(15.0f, 0.0f));
75 TestStartPan(application, start, pos_start_jump, time);
79 time += Wait(application);
81 for(int i = 0; i < frames; i++)
84 TestMovePan(application, pos, time);
85 time += Wait(application);
91 TestEndPan(application, pos, time);
92 time += Wait(application);
98 //Functor to test whether PageTurnSignal / PagePanSignal is emitted
99 class PageSignalCallback : public Dali::ConnectionTracker
102 PageSignalCallback(bool& signalReceived, PageTurnView& view, unsigned int& pageIndex, bool& isForwards)
103 : mSignalVerified(signalReceived),
105 mPageIndex(pageIndex),
106 mIsTurningForwards(isForwards)
110 // callback to be connected to PageTurnSignal
111 void PageTurnSignalCallback(PageTurnView view, unsigned int pageIndex, bool isTurningForward)
113 tet_infoline("Verifying PageTurnedSignal");
115 if(mView == view && mPageIndex == pageIndex && mIsTurningForwards == isTurningForward)
117 mSignalVerified = true;
121 // callback to be connected to PagePanSignal
122 void PagePanSignalCallback(PageTurnView view)
124 tet_infoline("Verifying PagePannedSignal");
128 mSignalVerified = true;
134 mSignalVerified = false;
137 bool& mSignalVerified;
139 unsigned int& mPageIndex;
140 bool& mIsTurningForwards;
143 //Implementation of PageFactory for providing page actors to PageTurnView
144 class TestPageFactory : public PageFactory
147 TestPageFactory(bool returnValidTexture = true)
148 : mValidTexture(returnValidTexture)
150 mTotalPageNumber = TOTAL_PAGE_NUMBER;
154 * Query the number of pages available from the factory.
155 * The maximum available page has an ID of GetNumberOfPages()-1.
157 virtual unsigned int GetNumberOfPages()
159 return mTotalPageNumber;
163 * Create an texture to represent a page content.
164 * @param[in] pageId The ID of the page to create.
165 * @return An image, or an empty handle if the ID is out of range.
167 virtual Texture NewPage(unsigned int pageId)
171 return Texture::New(Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100);
173 return Texture(); // empty handle
177 unsigned int mTotalPageNumber;
183 void dali_page_turn_view_startup(void)
185 test_return_value = TET_UNDEF;
188 void dali_page_turn_view_cleanup(void)
190 test_return_value = TET_PASS;
193 int UtcDaliPageTurnPortraitViewNew(void)
195 ToolkitTestApplication application;
197 tet_infoline(" UtcDaliPageTurnViewNew ");
199 // Test default constructor
200 PageTurnView portraitView;
201 DALI_TEST_CHECK(!portraitView);
203 // Test object creation
204 TestPageFactory factory;
205 portraitView = PageTurnPortraitView::New(factory, VIEW_PAGE_SIZE);
206 DALI_TEST_CHECK(portraitView);
208 //Additional check to ensure object is created by checking if it's registered
209 ObjectRegistry registry = application.GetCore().GetObjectRegistry();
210 DALI_TEST_CHECK(registry);
212 gObjectCreatedCallBackCalled = false;
213 registry.ObjectCreatedSignal().Connect(&TestCallback);
215 TestPageFactory factory;
216 PageTurnView portraitView = PageTurnPortraitView::New(factory, VIEW_PAGE_SIZE);
218 DALI_TEST_CHECK(gObjectCreatedCallBackCalled);
220 // Test copy constructor
221 PageTurnView viewCopy(portraitView);
222 DALI_TEST_CHECK(viewCopy);
226 handleView = portraitView;
227 PageTurnView downCastView = PageTurnView::DownCast(handleView);
228 DALI_TEST_CHECK(downCastView);
233 int UtcDaliPageTurnLandscapeViewNew(void)
235 ToolkitTestApplication application;
237 tet_infoline(" UtcDaliPageTurnViewNew ");
239 //Test default constructor
240 PageTurnView landscapeView;
241 DALI_TEST_CHECK(!landscapeView);
243 // Test object creation
244 TestPageFactory factory;
245 landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
246 DALI_TEST_CHECK(landscapeView);
248 //Additional check to ensure object is created by checking if it's registered
249 ObjectRegistry registry = application.GetCore().GetObjectRegistry();
250 DALI_TEST_CHECK(registry);
252 gObjectCreatedCallBackCalled = false;
253 registry.ObjectCreatedSignal().Connect(&TestCallback);
255 TestPageFactory factory;
256 PageTurnView landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
258 DALI_TEST_CHECK(gObjectCreatedCallBackCalled);
260 // Test copy constructor
261 PageTurnView viewCopy(landscapeView);
262 DALI_TEST_CHECK(viewCopy);
266 handleView = landscapeView;
267 PageTurnView downCastView = PageTurnView::DownCast(handleView);
268 DALI_TEST_CHECK(downCastView);
273 int UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment(void)
275 ToolkitTestApplication application;
277 tet_infoline(" UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment ");
279 // Test default constructor
280 PageTurnPortraitView portraitView;
281 DALI_TEST_CHECK(!portraitView);
283 // Test object creation
284 TestPageFactory factory;
285 portraitView = PageTurnPortraitView::New(factory, VIEW_PAGE_SIZE);
286 DALI_TEST_CHECK(portraitView);
288 // Test copy constructor
289 PageTurnPortraitView viewCopy(portraitView);
290 DALI_TEST_CHECK(viewCopy);
293 PageTurnPortraitView portraitView2;
294 portraitView2 = portraitView;
295 DALI_TEST_CHECK(portraitView2);
296 DALI_TEST_CHECK(portraitView == portraitView2);
300 handleView = portraitView;
301 PageTurnPortraitView downCastView = PageTurnPortraitView::DownCast(handleView);
302 DALI_TEST_CHECK(downCastView);
307 int UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment(void)
309 ToolkitTestApplication application;
311 tet_infoline(" UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment ");
313 // Test default constructor
314 PageTurnLandscapeView landscapeView;
315 DALI_TEST_CHECK(!landscapeView);
317 // Test object creation
318 TestPageFactory factory;
319 landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
320 DALI_TEST_CHECK(landscapeView);
322 // Test copy constructor
323 PageTurnLandscapeView viewCopy(landscapeView);
324 DALI_TEST_CHECK(viewCopy);
327 PageTurnLandscapeView landscapeView2;
328 landscapeView2 = landscapeView;
329 DALI_TEST_CHECK(landscapeView2);
330 DALI_TEST_CHECK(landscapeView == landscapeView2);
334 handleView = landscapeView;
335 PageTurnLandscapeView downCastView = PageTurnLandscapeView::DownCast(handleView);
336 DALI_TEST_CHECK(downCastView);
341 int UtcDaliPageTurnViewSetGetProperty(void)
343 ToolkitTestApplication application;
345 tet_infoline(" UtcDaliPageTurnViewSetGetProperty ");
347 TestPageFactory factory;
348 PageTurnView landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
349 DALI_TEST_CHECK(landscapeView);
351 application.GetScene().Add(landscapeView);
353 // Test "viewPageSize" property
354 DALI_TEST_CHECK(landscapeView.GetPropertyIndex("viewPageSize") == PageTurnView::Property::VIEW_PAGE_SIZE);
355 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), VIEW_PAGE_SIZE, TEST_LOCATION);
357 Vector2 newSize(VIEW_PAGE_SIZE.x * 0.75, VIEW_PAGE_SIZE.y * 0.5f);
358 landscapeView.SetProperty(PageTurnView::Property::VIEW_PAGE_SIZE, newSize);
359 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), newSize, TEST_LOCATION);
361 DALI_TEST_EQUALS(Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x * 2.f, newSize.y), TEST_LOCATION);
363 landscapeView.SetProperty(PageTurnView::Property::VIEW_PAGE_SIZE, newSize * 1.5f);
364 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), newSize * 1.5f, TEST_LOCATION);
366 DALI_TEST_EQUALS(Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x * 3.f, newSize.y * 1.5f), TEST_LOCATION);
368 // Test "currentPageId" property
369 DALI_TEST_CHECK(landscapeView.GetPropertyIndex("currentPageId") == PageTurnView::Property::CURRENT_PAGE_ID);
370 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION);
372 int pageId = static_cast<int>(TOTAL_PAGE_NUMBER) / 3;
373 landscapeView.SetProperty(PageTurnView::Property::CURRENT_PAGE_ID, pageId);
374 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId, TEST_LOCATION);
376 landscapeView.SetProperty(PageTurnView::Property::CURRENT_PAGE_ID, pageId * 2);
377 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId * 2, TEST_LOCATION);
379 // Test "spinShadow" property
380 DALI_TEST_CHECK(landscapeView.GetPropertyIndex("spineShadow") == PageTurnView::Property::SPINE_SHADOW);
381 landscapeView.SetProperty(PageTurnView::Property::SPINE_SHADOW, SPINE_SHADOW_PARAMETER);
382 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER, TEST_LOCATION);
384 landscapeView.SetProperty(PageTurnView::Property::SPINE_SHADOW, SPINE_SHADOW_PARAMETER * 0.75f);
385 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER * 0.75f, TEST_LOCATION);
390 int UtcDaliPageTurnPortraitViewSignals(void)
392 ToolkitTestApplication application;
394 tet_infoline(" UtcDaliPageTurnPortraitViewSignals ");
396 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
398 TestPageFactory factory;
399 Vector2 size = application.GetScene().GetSize();
400 PageTurnView portraitView = PageTurnPortraitView::New(factory, size);
401 portraitView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
402 application.GetScene().Add(portraitView);
405 application.SendNotification();
406 application.Render(RENDER_FRAME_INTERVAL);
408 // [0]: testing PageTurnStartedSignal; [1]: testing PageTurnFinishedSignal
409 // [2]: testing PagePanStartedSignal; [3]: testing PagePanFinishedSignal
410 bool signalVerified[4] = {false, false, false, false};
411 PageTurnView currentView;
412 unsigned int pageIndex;
413 bool isTurningForwards;
415 PageSignalCallback callbackTurnStarted(signalVerified[0], currentView, pageIndex, isTurningForwards);
416 portraitView.PageTurnStartedSignal().Connect(&callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback);
418 PageSignalCallback callbackTurnFinished(signalVerified[1], currentView, pageIndex, isTurningForwards);
419 portraitView.PageTurnFinishedSignal().Connect(&callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback);
421 PageSignalCallback callbackPanStarted(signalVerified[2], currentView, pageIndex, isTurningForwards);
422 portraitView.PagePanStartedSignal().Connect(&callbackPanStarted, &PageSignalCallback::PagePanSignalCallback);
424 PageSignalCallback callbackPanFinished(signalVerified[3], currentView, pageIndex, isTurningForwards);
425 portraitView.PagePanFinishedSignal().Connect(&callbackPanFinished, &PageSignalCallback::PagePanSignalCallback);
427 DALI_TEST_CHECK(!callbackTurnStarted.mSignalVerified);
428 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
429 DALI_TEST_CHECK(!callbackPanStarted.mSignalVerified);
430 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
432 currentView = portraitView;
434 //-----Test 1: pan 10 frames from position(size * 0.75f) to position(size * 0.25f), page 0 will be turned forward----
436 isTurningForwards = true;
437 // Do a pan moving up diagonally
439 Vector2 start = size * 0.75f;
440 Vector2 direction = -size * 0.05f; //-size*0.5f/10.f;
442 DALI_TEST_EQUALS(portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION);
443 PerformGestureDiagonalSwipe(application, start, direction, 5, time, true, false);
444 DALI_TEST_CHECK(callbackTurnStarted.mSignalVerified);
445 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
446 DALI_TEST_CHECK(callbackPanStarted.mSignalVerified);
447 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
449 PerformGestureDiagonalSwipe(application, start + direction * 5.f, direction, 5, time, false, true);
450 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
451 DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
453 time += Wait(application, 1000);
454 DALI_TEST_CHECK(callbackTurnFinished.mSignalVerified);
455 // the page is turned over
456 DALI_TEST_EQUALS(portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex + 1), TEST_LOCATION);
458 //---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---
459 callbackTurnStarted.Reset();
460 callbackTurnFinished.Reset();
461 callbackPanStarted.Reset();
462 callbackPanFinished.Reset();
463 portraitView.SetProperty(PageTurnView::Property::CURRENT_PAGE_ID, 5);
465 isTurningForwards = true;
467 //pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
468 start = Vector2(size.width, size.height * 0.5f);
469 direction = Vector2(-size.width * 0.025f, size.height * 0.025f);
470 PerformGestureDiagonalSwipe(application, start, direction, 5, time, true, false);
471 DALI_TEST_CHECK(callbackPanStarted.mSignalVerified);
472 DALI_TEST_CHECK(callbackTurnStarted.mSignalVerified);
473 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
474 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
476 signalVerified[0] = false;
477 isTurningForwards = false;
478 PerformGestureDiagonalSwipe(application, start + direction * 2, direction, 5, time, false, true);
479 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
480 DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
481 DALI_TEST_CHECK(callbackTurnStarted.mSignalVerified); // start the sliding back
483 time += Wait(application, 1000);
484 DALI_TEST_CHECK(callbackTurnFinished.mSignalVerified);
485 DALI_TEST_EQUALS(portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)pageIndex, TEST_LOCATION); // the page is not turned over
487 // ----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---
488 callbackTurnStarted.Reset();
489 callbackTurnFinished.Reset();
490 callbackPanStarted.Reset();
491 callbackPanFinished.Reset();
492 portraitView.SetProperty(PageTurnView::Property::CURRENT_PAGE_ID, 10);
493 pageIndex = 9; // will turn the previous page back
494 isTurningForwards = false;
495 start = size * 0.25f;
496 direction = Vector2(size.x * 0.05f, 0.f);
497 PerformGestureDiagonalSwipe(application, start, direction, 4, time, true, false);
498 DALI_TEST_CHECK(callbackPanStarted.mSignalVerified);
499 DALI_TEST_CHECK(!callbackTurnStarted.mSignalVerified);
500 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
501 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
503 PerformGestureDiagonalSwipe(application, start + direction * 5.f, direction, 5, time, false, true);
504 DALI_TEST_CHECK(callbackTurnStarted.mSignalVerified);
505 DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
506 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
508 Wait(application, 1000);
510 DALI_TEST_CHECK(callbackTurnFinished.mSignalVerified);
511 DALI_TEST_EQUALS(portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 9, TEST_LOCATION);
515 int UtcDaliPageTurnLanscapeViewSignals(void)
517 ToolkitTestApplication application;
519 tet_infoline(" UtcDaliPageTurnLanscapeViewSignals ");
521 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
536 TestPageFactory factory;
537 Vector2 stageSize = application.GetScene().GetSize();
538 PageTurnView landscapeView = PageTurnLandscapeView::New(factory, Vector2(stageSize.x * 0.5f, stageSize.x * 0.8f));
539 landscapeView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
540 application.GetScene().Add(landscapeView);
543 application.SendNotification();
544 application.Render(RENDER_FRAME_INTERVAL);
546 // [0]: testing PageTurnStartedSignal; [1]: testing PageTurnFinishedSignal
547 // [2]: testing PagePanStartedSignal; [3]: testing PagePanFinishedSignal
548 bool signalVerified[4] = {false, false, false, false};
549 PageTurnView currentView;
550 unsigned int pageIndex;
551 bool isTurningForwards;
553 PageSignalCallback callbackTurnStarted(signalVerified[0], currentView, pageIndex, isTurningForwards);
554 landscapeView.PageTurnStartedSignal().Connect(&callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback);
556 PageSignalCallback callbackTurnFinished(signalVerified[1], currentView, pageIndex, isTurningForwards);
557 landscapeView.PageTurnFinishedSignal().Connect(&callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback);
559 PageSignalCallback callbackPanStarted(signalVerified[2], currentView, pageIndex, isTurningForwards);
560 landscapeView.PagePanStartedSignal().Connect(&callbackPanStarted, &PageSignalCallback::PagePanSignalCallback);
562 PageSignalCallback callbackPanFinished(signalVerified[3], currentView, pageIndex, isTurningForwards);
563 landscapeView.PagePanFinishedSignal().Connect(&callbackPanFinished, &PageSignalCallback::PagePanSignalCallback);
565 DALI_TEST_CHECK(!callbackTurnStarted.mSignalVerified);
566 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
567 DALI_TEST_CHECK(!callbackPanStarted.mSignalVerified);
568 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
570 currentView = landscapeView;
572 //-----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----
574 isTurningForwards = true;
575 // Do a pan to the left.
577 Vector2 start = Vector2(stageSize.x * 0.85f, stageSize.y * 0.5);
578 Vector2 direction = Vector2(-stageSize.x * 0.04f, -stageSize.x * 0.03f);
580 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION);
581 PerformGestureDiagonalSwipe(application, start, direction, 5, time, true, false);
582 DALI_TEST_CHECK(callbackTurnStarted.mSignalVerified);
583 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
584 DALI_TEST_CHECK(callbackPanStarted.mSignalVerified);
585 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
587 PerformGestureDiagonalSwipe(application, start + direction * 5.f, direction, 5, time, false, true);
588 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
589 DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
591 time += Wait(application, 1000);
592 DALI_TEST_CHECK(callbackTurnFinished.mSignalVerified);
593 // the page is turned over
594 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex + 1), TEST_LOCATION);
596 //---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---
597 callbackTurnStarted.Reset();
598 callbackTurnFinished.Reset();
599 callbackPanStarted.Reset();
600 callbackPanFinished.Reset();
601 isTurningForwards = false;
603 //pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
604 start = Vector2(stageSize.x * 0.15f, stageSize.y * 0.5f);
605 direction = Vector2(stageSize.x * 0.03f, 0.f);
606 PerformGestureDiagonalSwipe(application, start, direction, 5, time, true, false);
607 DALI_TEST_CHECK(callbackPanStarted.mSignalVerified);
608 DALI_TEST_CHECK(callbackTurnStarted.mSignalVerified);
609 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
610 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
612 PerformGestureDiagonalSwipe(application, start + direction * 5.f, direction, 5, time, false, true);
613 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
614 DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
616 time += Wait(application, 1000);
617 DALI_TEST_CHECK(callbackTurnFinished.mSignalVerified);
618 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION); // the first page is turned back
620 // ----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---
621 callbackTurnStarted.Reset();
622 callbackTurnFinished.Reset();
623 callbackPanStarted.Reset();
624 callbackPanFinished.Reset();
625 isTurningForwards = false;
626 start = stageSize * 0.55f;
627 direction = Vector2(stageSize.x * 0.025f, 0.f);
628 PerformGestureDiagonalSwipe(application, start, direction, 5, time, true, false);
629 DALI_TEST_CHECK(callbackPanStarted.mSignalVerified);
630 DALI_TEST_CHECK(!callbackTurnStarted.mSignalVerified);
631 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
632 DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
634 PerformGestureDiagonalSwipe(application, start + direction * 5.f, direction, 5, time, false, true);
635 DALI_TEST_CHECK(!callbackTurnStarted.mSignalVerified);
636 DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
637 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
639 Wait(application, 1000);
641 DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
642 DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION);
646 int UtcDaliPageImageFactoryGetExtention(void)
648 ToolkitTestApplication application;
649 TestPageFactory factory;
650 DALI_TEST_CHECK(factory.GetExtension() == NULL);
654 int UtcDaliPageTurnEmptyTextureHandle(void)
656 ToolkitTestApplication application;
658 tet_infoline(" UtcDaliPageTurnEmptyTextureHandle ");
660 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
662 TestPageFactory factory(false /* returns empty handles */);
663 Vector2 size = application.GetScene().GetSize();
666 PageTurnView portraitView = PageTurnPortraitView::New(factory, size);
667 portraitView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
668 application.GetScene().Add(portraitView);
670 tet_result(TET_FAIL);
672 catch(DaliException& e)
674 DALI_TEST_ASSERT(e, "must pass in valid texture", TEST_LOCATION);
678 tet_result(TET_FAIL);