2 * Copyright (c) 2020 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.
22 #include <dali-toolkit-test-suite-utils.h>
23 #include <dali/integration-api/events/touch-event-integ.h>
24 #include <dali-toolkit/devel-api/controls/page-turn-view/page-factory.h>
25 #include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-landscape-view.h>
26 #include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-portrait-view.h>
27 #include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-view.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;
68 static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, uint32_t& time, bool toStart = true, bool toFinish = true)
74 // Now do a pan starting from (start + 20) and heading (direction)
75 Vector2 pos_start_jump( start + Vector2(15.0f, 0.0f) );
76 TestStartPan( application, start, pos_start_jump, time );
80 time += Wait(application);
82 for(int i = 0;i<frames;i++)
85 TestMovePan(application, pos, time );
86 time += Wait(application);
92 TestEndPan(application, pos, time );
93 time += Wait(application);
100 //Functor to test whether PageTurnSignal / PagePanSignal is emitted
101 class PageSignalCallback : public Dali::ConnectionTracker
105 PageSignalCallback( bool& signalReceived, PageTurnView& view, unsigned int& pageIndex, bool& isForwards )
106 : mSignalVerified( signalReceived ),
108 mPageIndex( pageIndex ),
109 mIsTurningForwards( isForwards )
113 // callback to be connected to PageTurnSignal
114 void PageTurnSignalCallback( PageTurnView view, unsigned int pageIndex, bool isTurningForward )
116 tet_infoline( "Verifying PageTurnedSignal" );
118 if( mView == view && mPageIndex == pageIndex && mIsTurningForwards == isTurningForward )
120 mSignalVerified = true;
124 // callback to be connected to PagePanSignal
125 void PagePanSignalCallback( PageTurnView view )
127 tet_infoline( "Verifying PagePannedSignal" );
131 mSignalVerified = true;
137 mSignalVerified = false;
140 bool& mSignalVerified;
142 unsigned int& mPageIndex;
143 bool& mIsTurningForwards;
148 //Implementation of PageFactory for providing page actors to PageTurnView
149 class TestPageFactory : public PageFactory
153 TestPageFactory( bool returnValidTexture = true )
154 : mValidTexture( returnValidTexture )
156 mTotalPageNumber = TOTAL_PAGE_NUMBER;
160 * Query the number of pages available from the factory.
161 * The maximum available page has an ID of GetNumberOfPages()-1.
163 virtual unsigned int GetNumberOfPages()
165 return mTotalPageNumber;
169 * Create an texture to represent a page content.
170 * @param[in] pageId The ID of the page to create.
171 * @return An image, or an empty handle if the ID is out of range.
173 virtual Texture NewPage( unsigned int pageId )
177 return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 );
179 return Texture(); // empty handle
183 unsigned int mTotalPageNumber;
189 void dali_page_turn_view_startup(void)
191 test_return_value = TET_UNDEF;
194 void dali_page_turn_view_cleanup(void)
196 test_return_value = TET_PASS;
199 int UtcDaliPageTurnPortraitViewNew(void)
201 ToolkitTestApplication application;
203 tet_infoline(" UtcDaliPageTurnViewNew ");
205 // Test default constructor
206 PageTurnView portraitView;
207 DALI_TEST_CHECK( !portraitView );
209 // Test object creation
210 TestPageFactory factory;
211 portraitView = PageTurnPortraitView::New( factory, VIEW_PAGE_SIZE );
212 DALI_TEST_CHECK( portraitView );
214 //Additional check to ensure object is created by checking if it's registered
215 ObjectRegistry registry = application.GetCore().GetObjectRegistry();
216 DALI_TEST_CHECK( registry );
218 gObjectCreatedCallBackCalled = false;
219 registry.ObjectCreatedSignal().Connect( &TestCallback );
221 TestPageFactory factory;
222 PageTurnView portraitView = PageTurnPortraitView::New( factory, VIEW_PAGE_SIZE );
224 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
226 // Test copy constructor
227 PageTurnView viewCopy( portraitView );
228 DALI_TEST_CHECK( viewCopy );
232 handleView = portraitView;
233 PageTurnView downCastView = PageTurnView::DownCast( handleView );
234 DALI_TEST_CHECK( downCastView );
239 int UtcDaliPageTurnLandscapeViewNew(void)
241 ToolkitTestApplication application;
243 tet_infoline(" UtcDaliPageTurnViewNew ");
245 //Test default constructor
246 PageTurnView landscapeView;
247 DALI_TEST_CHECK( !landscapeView );
249 // Test object creation
250 TestPageFactory factory;
251 landscapeView = PageTurnLandscapeView::New( factory, VIEW_PAGE_SIZE );
252 DALI_TEST_CHECK( landscapeView );
254 //Additional check to ensure object is created by checking if it's registered
255 ObjectRegistry registry = application.GetCore().GetObjectRegistry();
256 DALI_TEST_CHECK( registry );
258 gObjectCreatedCallBackCalled = false;
259 registry.ObjectCreatedSignal().Connect( &TestCallback );
261 TestPageFactory factory;
262 PageTurnView landscapeView = PageTurnLandscapeView::New( factory, VIEW_PAGE_SIZE );
264 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
266 // Test copy constructor
267 PageTurnView viewCopy( landscapeView );
268 DALI_TEST_CHECK( viewCopy );
272 handleView = landscapeView;
273 PageTurnView downCastView = PageTurnView::DownCast( handleView );
274 DALI_TEST_CHECK( downCastView );
279 int UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment(void)
281 ToolkitTestApplication application;
283 tet_infoline(" UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment ");
285 // Test default constructor
286 PageTurnPortraitView portraitView;
287 DALI_TEST_CHECK( !portraitView );
289 // Test object creation
290 TestPageFactory factory;
291 portraitView = PageTurnPortraitView::New( factory, VIEW_PAGE_SIZE );
292 DALI_TEST_CHECK( portraitView );
294 // Test copy constructor
295 PageTurnPortraitView viewCopy( portraitView );
296 DALI_TEST_CHECK( viewCopy );
299 PageTurnPortraitView portraitView2;
300 portraitView2 = portraitView;
301 DALI_TEST_CHECK( portraitView2 );
302 DALI_TEST_CHECK( portraitView == portraitView2);
306 handleView = portraitView;
307 PageTurnPortraitView downCastView = PageTurnPortraitView::DownCast( handleView );
308 DALI_TEST_CHECK( downCastView );
313 int UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment(void)
315 ToolkitTestApplication application;
317 tet_infoline(" UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment ");
319 // Test default constructor
320 PageTurnLandscapeView landscapeView;
321 DALI_TEST_CHECK( !landscapeView );
323 // Test object creation
324 TestPageFactory factory;
325 landscapeView = PageTurnLandscapeView::New( factory, VIEW_PAGE_SIZE );
326 DALI_TEST_CHECK( landscapeView );
328 // Test copy constructor
329 PageTurnLandscapeView viewCopy( landscapeView );
330 DALI_TEST_CHECK( viewCopy );
333 PageTurnLandscapeView landscapeView2;
334 landscapeView2 = landscapeView;
335 DALI_TEST_CHECK( landscapeView2 );
336 DALI_TEST_CHECK( landscapeView == landscapeView2);
340 handleView = landscapeView;
341 PageTurnLandscapeView downCastView = PageTurnLandscapeView::DownCast( handleView );
342 DALI_TEST_CHECK( downCastView );
347 int UtcDaliPageTurnViewSetGetProperty(void)
349 ToolkitTestApplication application;
351 tet_infoline(" UtcDaliPageTurnViewSetGetProperty ");
353 TestPageFactory factory;
354 PageTurnView landscapeView = PageTurnLandscapeView::New( factory, VIEW_PAGE_SIZE );
355 DALI_TEST_CHECK( landscapeView );
357 application.GetScene().Add( landscapeView );
359 // Test "viewPageSize" property
360 DALI_TEST_CHECK( landscapeView.GetPropertyIndex("viewPageSize") == PageTurnView::Property::VIEW_PAGE_SIZE );
361 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), VIEW_PAGE_SIZE, TEST_LOCATION );
363 Vector2 newSize( VIEW_PAGE_SIZE.x*0.75, VIEW_PAGE_SIZE.y*0.5f );
364 landscapeView.SetProperty( PageTurnView::Property::VIEW_PAGE_SIZE, newSize );
365 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), newSize, TEST_LOCATION );
367 DALI_TEST_EQUALS( Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x*2.f, newSize.y), TEST_LOCATION);
369 landscapeView.SetProperty( PageTurnView::Property::VIEW_PAGE_SIZE,newSize*1.5f);
370 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), newSize*1.5f, TEST_LOCATION );
372 DALI_TEST_EQUALS( Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x*3.f, newSize.y*1.5f), TEST_LOCATION);
374 // Test "currentPageId" property
375 DALI_TEST_CHECK( landscapeView.GetPropertyIndex("currentPageId") == PageTurnView::Property::CURRENT_PAGE_ID );
376 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
378 int pageId = static_cast<int>(TOTAL_PAGE_NUMBER)/3;
379 landscapeView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, pageId );
380 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId, TEST_LOCATION );
382 landscapeView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, pageId*2 );
383 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId*2, TEST_LOCATION );
385 // Test "spinShadow" property
386 DALI_TEST_CHECK( landscapeView.GetPropertyIndex( "spineShadow" ) == PageTurnView::Property::SPINE_SHADOW );
387 landscapeView.SetProperty( PageTurnView::Property::SPINE_SHADOW, SPINE_SHADOW_PARAMETER );
388 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER, TEST_LOCATION );
390 landscapeView.SetProperty( PageTurnView::Property::SPINE_SHADOW, SPINE_SHADOW_PARAMETER*0.75f );
391 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER*0.75f, TEST_LOCATION );
396 int UtcDaliPageTurnPortraitViewSignals(void)
398 ToolkitTestApplication application;
400 tet_infoline(" UtcDaliPageTurnPortraitViewSignals ");
402 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
404 TestPageFactory factory;
405 Vector2 size = application.GetScene().GetSize();
406 PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
407 portraitView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
408 application.GetScene().Add( portraitView );
411 application.SendNotification();
412 application.Render(RENDER_FRAME_INTERVAL);
414 // [0]: testing PageTurnStartedSignal; [1]: testing PageTurnFinishedSignal
415 // [2]: testing PagePanStartedSignal; [3]: testing PagePanFinishedSignal
416 bool signalVerified[4] = {false, false, false, false};
417 PageTurnView currentView;
418 unsigned int pageIndex;
419 bool isTurningForwards;
421 PageSignalCallback callbackTurnStarted( signalVerified[0], currentView, pageIndex, isTurningForwards );
422 portraitView.PageTurnStartedSignal().Connect( &callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback );
424 PageSignalCallback callbackTurnFinished( signalVerified[1], currentView, pageIndex, isTurningForwards );
425 portraitView.PageTurnFinishedSignal().Connect( &callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback );
427 PageSignalCallback callbackPanStarted( signalVerified[2], currentView, pageIndex, isTurningForwards );
428 portraitView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
430 PageSignalCallback callbackPanFinished( signalVerified[3], currentView, pageIndex, isTurningForwards );
431 portraitView.PagePanFinishedSignal().Connect( &callbackPanFinished, &PageSignalCallback::PagePanSignalCallback );
433 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
434 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
435 DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
436 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
438 currentView = portraitView;
440 //-----Test 1: pan 10 frames from position(size * 0.75f) to position(size * 0.25f), page 0 will be turned forward----
442 isTurningForwards = true;
443 // Do a pan moving up diagonally
445 Vector2 start = size * 0.75f;
446 Vector2 direction = -size*0.05f; //-size*0.5f/10.f;
448 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
449 PerformGestureDiagonalSwipe( application, start, direction, 5, time, true, false);
450 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
451 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
452 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
453 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
455 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, time, false, true);
456 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
457 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
459 time += Wait(application, 1000);
460 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
461 // the page is turned over
462 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex+1), TEST_LOCATION );
464 //---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---
465 callbackTurnStarted.Reset();
466 callbackTurnFinished.Reset();
467 callbackPanStarted.Reset();
468 callbackPanFinished.Reset();
469 portraitView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, 5 );
471 isTurningForwards = true;
473 //pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
474 start = Vector2( size.width, size.height*0.5f );
475 direction = Vector2(-size.width*0.025f, size.height*0.025f);
476 PerformGestureDiagonalSwipe( application, start, direction, 5, time, true, false);
477 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
478 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
479 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
480 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
482 signalVerified[0] = false;
483 isTurningForwards = false;
484 PerformGestureDiagonalSwipe( application, start + direction*2 , direction, 5, time, false, true);
485 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
486 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
487 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified ); // start the sliding back
489 time += Wait(application, 1000);
490 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
491 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)pageIndex, TEST_LOCATION ); // the page is not turned over
493 // ----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---
494 callbackTurnStarted.Reset();
495 callbackTurnFinished.Reset();
496 callbackPanStarted.Reset();
497 callbackPanFinished.Reset();
498 portraitView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, 10);
499 pageIndex = 9; // will turn the previous page back
500 isTurningForwards = false;
502 direction = Vector2(size.x*0.05f, 0.f);
503 PerformGestureDiagonalSwipe( application, start, direction, 4, time, true, false);
504 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
505 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
506 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
507 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
509 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, time, false, true);
510 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
511 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
512 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
514 Wait( application, 1000 );
516 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
517 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 9, TEST_LOCATION );
521 int UtcDaliPageTurnLanscapeViewSignals(void)
523 ToolkitTestApplication application;
525 tet_infoline(" UtcDaliPageTurnLanscapeViewSignals ");
527 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
542 TestPageFactory factory;
543 Vector2 stageSize = application.GetScene().GetSize();
544 PageTurnView landscapeView = PageTurnLandscapeView::New( factory, Vector2(stageSize.x*0.5f, stageSize.x*0.8f) );
545 landscapeView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
546 application.GetScene().Add( landscapeView );
549 application.SendNotification();
550 application.Render(RENDER_FRAME_INTERVAL);
552 // [0]: testing PageTurnStartedSignal; [1]: testing PageTurnFinishedSignal
553 // [2]: testing PagePanStartedSignal; [3]: testing PagePanFinishedSignal
554 bool signalVerified[4] = {false, false, false, false};
555 PageTurnView currentView;
556 unsigned int pageIndex;
557 bool isTurningForwards;
559 PageSignalCallback callbackTurnStarted( signalVerified[0], currentView, pageIndex, isTurningForwards );
560 landscapeView.PageTurnStartedSignal().Connect( &callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback );
562 PageSignalCallback callbackTurnFinished( signalVerified[1], currentView, pageIndex, isTurningForwards );
563 landscapeView.PageTurnFinishedSignal().Connect( &callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback );
565 PageSignalCallback callbackPanStarted( signalVerified[2], currentView, pageIndex, isTurningForwards );
566 landscapeView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
568 PageSignalCallback callbackPanFinished( signalVerified[3], currentView, pageIndex, isTurningForwards );
569 landscapeView.PagePanFinishedSignal().Connect( &callbackPanFinished, &PageSignalCallback::PagePanSignalCallback );
571 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
572 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
573 DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
574 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
576 currentView = landscapeView;
578 //-----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----
580 isTurningForwards = true;
581 // Do a pan to the left.
583 Vector2 start = Vector2(stageSize.x * 0.85f, stageSize.y*0.5);
584 Vector2 direction = Vector2(-stageSize.x*0.04f, -stageSize.x*0.03f);
586 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
587 PerformGestureDiagonalSwipe( application, start, direction, 5, time, true, false);
588 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
589 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
590 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
591 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
593 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, time, false, true);
594 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
595 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
597 time += Wait(application, 1000);
598 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
599 // the page is turned over
600 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex+1), TEST_LOCATION );
602 //---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---
603 callbackTurnStarted.Reset();
604 callbackTurnFinished.Reset();
605 callbackPanStarted.Reset();
606 callbackPanFinished.Reset();
607 isTurningForwards = false;
609 //pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
610 start = Vector2( stageSize.x * 0.15f, stageSize.y*0.5f );
611 direction = Vector2(stageSize.x * 0.03f, 0.f);
612 PerformGestureDiagonalSwipe( application, start, direction, 5, time, true, false);
613 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
614 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
615 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
616 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
618 PerformGestureDiagonalSwipe( application, start + direction*5.f , direction, 5, time, false, true);
619 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
620 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
622 time += Wait(application, 1000);
623 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
624 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION ); // the first page is turned back
626 // ----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---
627 callbackTurnStarted.Reset();
628 callbackTurnFinished.Reset();
629 callbackPanStarted.Reset();
630 callbackPanFinished.Reset();
631 isTurningForwards = false;
632 start = stageSize*0.55f;
633 direction = Vector2(stageSize.x*0.025f, 0.f);
634 PerformGestureDiagonalSwipe( application, start, direction, 5, time, true, false);
635 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
636 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
637 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
638 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
640 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, time, false, true);
641 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
642 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
643 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
645 Wait( application, 1000 );
647 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
648 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
652 int UtcDaliPageImageFactoryGetExtention(void)
654 ToolkitTestApplication application;
655 TestPageFactory factory;
656 DALI_TEST_CHECK( factory.GetExtension() == NULL );
660 int UtcDaliPageTurnEmptyTextureHandle(void)
662 ToolkitTestApplication application;
664 tet_infoline(" UtcDaliPageTurnEmptyTextureHandle ");
666 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
668 TestPageFactory factory( false /* returns empty handles */ );
669 Vector2 size = application.GetScene().GetSize();
672 PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
673 portraitView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
674 application.GetScene().Add( portraitView );
676 tet_result(TET_FAIL);
678 catch (DaliException& e)
680 DALI_TEST_ASSERT(e, "must pass in valid texture", TEST_LOCATION );
684 tet_result(TET_FAIL);