2 * Copyright (c) 2016 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/pan-gesture-event.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 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 void Wait(ToolkitTestApplication& application, int duration = 0)
55 for(int i = 0; i <= ( duration / RENDER_FRAME_INTERVAL); i++)
57 application.SendNotification();
58 application.Render(RENDER_FRAME_INTERVAL);
62 // Generate a PanGestureEvent to send to Core
63 Integration::PanGestureEvent GeneratePan(
65 const Vector2& previousPosition,
66 const Vector2& currentPosition,
67 unsigned long timeDelta,
68 unsigned int numberOfTouches = 1)
70 Integration::PanGestureEvent pan(state);
72 pan.previousPosition = previousPosition;
73 pan.currentPosition = currentPosition;
74 pan.timeDelta = timeDelta;
75 pan.numberOfTouches = numberOfTouches;
81 * Helper to generate PanGestureEvent
83 * @param[in] application Application instance
84 * @param[in] state The Gesture State
85 * @param[in] pos The current position of touch.
87 static void SendPan(ToolkitTestApplication& application, Gesture::State state, const Vector2& pos)
91 if( (state == Gesture::Started) ||
92 (state == Gesture::Possible) )
98 application.ProcessEvent(GeneratePan(state, last, pos, RENDER_FRAME_INTERVAL));
104 static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, bool toStart = true, bool toFinish = true)
106 // Now do a pan starting from (start) and heading (direction)
111 SendPan(application, Gesture::Possible, pos);
113 SendPan(application, Gesture::Started, pos);
117 for(int i = 0;i<frames;i++)
119 pos += direction; // Move in this direction
120 SendPan(application, Gesture::Continuing, pos);
126 pos += direction; // Move in this direction
127 SendPan(application, Gesture::Finished, pos);
135 //Functor to test whether PageTurnSignal / PagePanSignal is emitted
136 class PageSignalCallback : public Dali::ConnectionTracker
140 PageSignalCallback( bool& signalReceived, PageTurnView& view, unsigned int& pageIndex, bool& isForwards )
141 : mSignalVerified( signalReceived ),
143 mPageIndex( pageIndex ),
144 mIsTurningForwards( isForwards )
148 // callback to be connected to PageTurnSignal
149 void PageTurnSignalCallback( PageTurnView view, unsigned int pageIndex, bool isTurningForward )
151 tet_infoline( "Verifying PageTurnedSignal" );
153 if( mView == view && mPageIndex == pageIndex && mIsTurningForwards == isTurningForward )
155 mSignalVerified = true;
159 // callback to be connected to PagePanSignal
160 void PagePanSignalCallback( PageTurnView view )
162 tet_infoline( "Verifying PagePannedSignal" );
166 mSignalVerified = true;
172 mSignalVerified = false;
175 bool& mSignalVerified;
177 unsigned int& mPageIndex;
178 bool& mIsTurningForwards;
183 //Implementation of PageFactory for providing page actors to PageTurnView
184 class TestPageFactory : public PageFactory
188 TestPageFactory(ToolkitTestApplication& application, bool returnValidTexture = true )
189 : mApplication( application ),
190 mValidTexture( returnValidTexture )
192 mTotalPageNumber = TOTAL_PAGE_NUMBER;
196 * Query the number of pages available from the factory.
197 * The maximum available page has an ID of GetNumberOfPages()-1.
199 virtual unsigned int GetNumberOfPages()
201 return mTotalPageNumber;
205 * Create an texture to represent a page content.
206 * @param[in] pageId The ID of the page to create.
207 * @return An image, or an empty handle if the ID is out of range.
209 virtual Texture NewPage( unsigned int pageId )
213 return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 );
215 return Texture(); // empty handle
219 ToolkitTestApplication& mApplication;
220 unsigned int mTotalPageNumber;
226 void dali_page_turn_view_startup(void)
228 test_return_value = TET_UNDEF;
231 void dali_page_turn_view_cleanup(void)
233 test_return_value = TET_PASS;
236 int UtcDaliPageTurnPortraitViewNew(void)
238 ToolkitTestApplication application;
240 tet_infoline(" UtcDaliPageTurnViewNew ");
242 // Test default constructor
243 PageTurnView portraitView;
244 DALI_TEST_CHECK( !portraitView );
246 // Test object creation
247 TestPageFactory factory(application);
248 portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
249 DALI_TEST_CHECK( portraitView );
251 //Additional check to ensure object is created by checking if it's registered
252 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
253 DALI_TEST_CHECK( registry );
255 gObjectCreatedCallBackCalled = false;
256 registry.ObjectCreatedSignal().Connect( &TestCallback );
258 TestPageFactory factory(application);
259 PageTurnView portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
261 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
263 // Test copy constructor
264 PageTurnView viewCopy( portraitView );
265 DALI_TEST_CHECK( viewCopy );
269 handleView = portraitView;
270 PageTurnView downCastView = PageTurnView::DownCast( handleView );
271 DALI_TEST_CHECK( downCastView );
276 int UtcDaliPageTurnLandscapeViewNew(void)
278 ToolkitTestApplication application;
280 tet_infoline(" UtcDaliPageTurnViewNew ");
282 //Test default constructor
283 PageTurnView landscapeView;
284 DALI_TEST_CHECK( !landscapeView );
286 // Test object creation
287 TestPageFactory factory(application);
288 landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
289 DALI_TEST_CHECK( landscapeView );
291 //Additional check to ensure object is created by checking if it's registered
292 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
293 DALI_TEST_CHECK( registry );
295 gObjectCreatedCallBackCalled = false;
296 registry.ObjectCreatedSignal().Connect( &TestCallback );
298 TestPageFactory factory(application);
299 PageTurnView landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
301 DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
303 // Test copy constructor
304 PageTurnView viewCopy( landscapeView );
305 DALI_TEST_CHECK( viewCopy );
309 handleView = landscapeView;
310 PageTurnView downCastView = PageTurnView::DownCast( handleView );
311 DALI_TEST_CHECK( downCastView );
316 int UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment(void)
318 ToolkitTestApplication application;
320 tet_infoline(" UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment ");
322 // Test default constructor
323 PageTurnPortraitView portraitView;
324 DALI_TEST_CHECK( !portraitView );
326 // Test object creation
327 TestPageFactory factory(application);
328 portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
329 DALI_TEST_CHECK( portraitView );
331 // Test copy constructor
332 PageTurnPortraitView viewCopy( portraitView );
333 DALI_TEST_CHECK( viewCopy );
336 PageTurnPortraitView portraitView2;
337 portraitView2 = portraitView;
338 DALI_TEST_CHECK( portraitView2 );
339 DALI_TEST_CHECK( portraitView == portraitView2);
343 handleView = portraitView;
344 PageTurnPortraitView downCastView = PageTurnPortraitView::DownCast( handleView );
345 DALI_TEST_CHECK( downCastView );
350 int UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment(void)
352 ToolkitTestApplication application;
354 tet_infoline(" UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment ");
356 // Test default constructor
357 PageTurnLandscapeView landscapeView;
358 DALI_TEST_CHECK( !landscapeView );
360 // Test object creation
361 TestPageFactory factory(application);
362 landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
363 DALI_TEST_CHECK( landscapeView );
365 // Test copy constructor
366 PageTurnLandscapeView viewCopy( landscapeView );
367 DALI_TEST_CHECK( viewCopy );
370 PageTurnLandscapeView landscapeView2;
371 landscapeView2 = landscapeView;
372 DALI_TEST_CHECK( landscapeView2 );
373 DALI_TEST_CHECK( landscapeView == landscapeView2);
377 handleView = landscapeView;
378 PageTurnLandscapeView downCastView = PageTurnLandscapeView::DownCast( handleView );
379 DALI_TEST_CHECK( downCastView );
384 int UtcDaliPageTurnViewSetGetProperty(void)
386 ToolkitTestApplication application;
388 tet_infoline(" UtcDaliPageTurnViewSetGetProperty ");
390 TestPageFactory factory(application);
391 PageTurnView landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
392 DALI_TEST_CHECK( landscapeView );
394 Stage::GetCurrent().Add( landscapeView );
396 // Test "pageSize" property
397 DALI_TEST_CHECK( landscapeView.GetPropertyIndex("pageSize") == PageTurnView::Property::PAGE_SIZE );
398 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), PAGE_SIZE, TEST_LOCATION );
400 Vector2 newSize( PAGE_SIZE.x*0.75, PAGE_SIZE.y*0.5f );
401 landscapeView.SetProperty( PageTurnView::Property::PAGE_SIZE, newSize );
402 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), newSize, TEST_LOCATION );
404 DALI_TEST_EQUALS( Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x*2.f, newSize.y), TEST_LOCATION);
406 landscapeView.SetProperty( PageTurnView::Property::PAGE_SIZE,newSize*1.5f);
407 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), newSize*1.5f, TEST_LOCATION );
409 DALI_TEST_EQUALS( Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x*3.f, newSize.y*1.5f), TEST_LOCATION);
411 // Test "currentPageId" property
412 DALI_TEST_CHECK( landscapeView.GetPropertyIndex("currentPageId") == PageTurnView::Property::CURRENT_PAGE_ID );
413 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
415 int pageId = static_cast<int>(TOTAL_PAGE_NUMBER)/3;
416 landscapeView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, pageId );
417 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId, TEST_LOCATION );
419 landscapeView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, pageId*2 );
420 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), pageId*2, TEST_LOCATION );
422 // Test "spinShadow" property
423 DALI_TEST_CHECK( landscapeView.GetPropertyIndex( "spineShadow" ) == PageTurnView::Property::SPINE_SHADOW );
424 landscapeView.SetProperty( PageTurnView::Property::SPINE_SHADOW, SPINE_SHADOW_PARAMETER );
425 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER, TEST_LOCATION );
427 landscapeView.SetProperty( PageTurnView::Property::SPINE_SHADOW, SPINE_SHADOW_PARAMETER*0.75f );
428 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::SPINE_SHADOW).Get<Vector2>(), SPINE_SHADOW_PARAMETER*0.75f, TEST_LOCATION );
433 int UtcDaliPageTurnPortraitViewSignals(void)
435 ToolkitTestApplication application;
437 tet_infoline(" UtcDaliPageTurnPortraitViewSignals ");
439 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
441 TestPageFactory factory(application);
442 Vector2 size = Stage::GetCurrent().GetSize();
443 PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
444 portraitView.SetParentOrigin( ParentOrigin::CENTER );
445 Stage::GetCurrent().Add( portraitView );
448 application.SendNotification();
449 application.Render(RENDER_FRAME_INTERVAL);
451 // [0]: testing PageTurnStartedSignal; [1]: testing PageTurnFinishedSignal
452 // [2]: testing PagePanStartedSignal; [3]: testing PagePanFinishedSignal
453 bool signalVerified[4] = {false, false, false, false};
454 PageTurnView currentView;
455 unsigned int pageIndex;
456 bool isTurningForwards;
458 PageSignalCallback callbackTurnStarted( signalVerified[0], currentView, pageIndex, isTurningForwards );
459 portraitView.PageTurnStartedSignal().Connect( &callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback );
461 PageSignalCallback callbackTurnFinished( signalVerified[1], currentView, pageIndex, isTurningForwards );
462 portraitView.PageTurnFinishedSignal().Connect( &callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback );
464 PageSignalCallback callbackPanStarted( signalVerified[2], currentView, pageIndex, isTurningForwards );
465 portraitView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
467 PageSignalCallback callbackPanFinished( signalVerified[3], currentView, pageIndex, isTurningForwards );
468 portraitView.PagePanFinishedSignal().Connect( &callbackPanFinished, &PageSignalCallback::PagePanSignalCallback );
470 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
471 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
472 DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
473 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
475 currentView = portraitView;
477 //-----Test 1: pan 10 frames from position(size * 0.75f) to position(size * 0.25f), page 0 will be turned forward----
479 isTurningForwards = true;
480 // Do a pan moving up diagonally.
481 Vector2 start = size * 0.75f;
482 Vector2 direction = -size*0.05f; //-size*0.5f/10.f;
484 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
485 PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
486 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
487 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
488 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
489 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
491 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, false, true);
492 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
493 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
495 Wait(application, 1000);
496 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
497 // the page is turned over
498 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex+1), TEST_LOCATION );
500 //---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---
501 callbackTurnStarted.Reset();
502 callbackTurnFinished.Reset();
503 callbackPanStarted.Reset();
504 callbackPanFinished.Reset();
505 portraitView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, 5 );
507 isTurningForwards = true;
509 //pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
510 start = Vector2( size.width, size.height*0.5f );
511 direction = Vector2(-size.width*0.025f, size.height*0.025f);
512 PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
513 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
514 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
515 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
516 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
518 signalVerified[0] = false;
519 isTurningForwards = false;
520 PerformGestureDiagonalSwipe( application, start + direction*2 , direction, 5, false, true);
521 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
522 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
523 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified ); // start the sliding back
525 Wait(application, 1000);
526 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
527 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)pageIndex, TEST_LOCATION ); // the page is not turned over
529 // ----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---
530 callbackTurnStarted.Reset();
531 callbackTurnFinished.Reset();
532 callbackPanStarted.Reset();
533 callbackPanFinished.Reset();
534 portraitView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, 10);
535 pageIndex = 9; // will turn the previous page back
536 isTurningForwards = false;
538 direction = Vector2(size.x*0.05f, 0.f);
539 PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
540 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
541 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
542 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
543 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
545 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, false, true);
546 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
547 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
548 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
550 Wait( application, 1000 );
552 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
553 DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 9, TEST_LOCATION );
557 int UtcDaliPageTurnLanscapeViewSignals(void)
559 ToolkitTestApplication application;
561 tet_infoline(" UtcDaliPageTurnLanscapeViewSignals ");
563 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
578 TestPageFactory factory(application);
579 Vector2 stageSize = Stage::GetCurrent().GetSize();
580 PageTurnView landscapeView = PageTurnLandscapeView::New( factory, Vector2(stageSize.x*0.5f, stageSize.x*0.8f) );
581 landscapeView.SetParentOrigin( ParentOrigin::CENTER );
582 Stage::GetCurrent().Add( landscapeView );
585 application.SendNotification();
586 application.Render(RENDER_FRAME_INTERVAL);
588 // [0]: testing PageTurnStartedSignal; [1]: testing PageTurnFinishedSignal
589 // [2]: testing PagePanStartedSignal; [3]: testing PagePanFinishedSignal
590 bool signalVerified[4] = {false, false, false, false};
591 PageTurnView currentView;
592 unsigned int pageIndex;
593 bool isTurningForwards;
595 PageSignalCallback callbackTurnStarted( signalVerified[0], currentView, pageIndex, isTurningForwards );
596 landscapeView.PageTurnStartedSignal().Connect( &callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback );
598 PageSignalCallback callbackTurnFinished( signalVerified[1], currentView, pageIndex, isTurningForwards );
599 landscapeView.PageTurnFinishedSignal().Connect( &callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback );
601 PageSignalCallback callbackPanStarted( signalVerified[2], currentView, pageIndex, isTurningForwards );
602 landscapeView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
604 PageSignalCallback callbackPanFinished( signalVerified[3], currentView, pageIndex, isTurningForwards );
605 landscapeView.PagePanFinishedSignal().Connect( &callbackPanFinished, &PageSignalCallback::PagePanSignalCallback );
607 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
608 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
609 DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
610 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
612 currentView = landscapeView;
614 //-----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----
616 isTurningForwards = true;
617 // Do a pan to the left.
618 Vector2 start = Vector2(stageSize.x * 0.85f, stageSize.y*0.5);
619 Vector2 direction = Vector2(-stageSize.x*0.04f, -stageSize.x*0.03f);
621 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
622 PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
623 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
624 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
625 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
626 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
628 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, false, true);
629 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
630 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
632 Wait(application, 1000);
633 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
634 // the page is turned over
635 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), (int)(pageIndex+1), TEST_LOCATION );
637 //---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---
638 callbackTurnStarted.Reset();
639 callbackTurnFinished.Reset();
640 callbackPanStarted.Reset();
641 callbackPanFinished.Reset();
642 isTurningForwards = false;
644 //pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
645 start = Vector2( stageSize.x * 0.15f, stageSize.y*0.5f );
646 direction = Vector2(stageSize.x * 0.03f, 0.f);
647 PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
648 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
649 DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
650 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
651 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
653 PerformGestureDiagonalSwipe( application, start + direction*5.f , direction, 5, false, true);
654 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
655 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
657 Wait(application, 1000);
658 DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
659 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION ); // the first page is turned back
661 // ----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---
662 callbackTurnStarted.Reset();
663 callbackTurnFinished.Reset();
664 callbackPanStarted.Reset();
665 callbackPanFinished.Reset();
666 isTurningForwards = false;
667 start = stageSize*0.55f;
668 direction = Vector2(stageSize.x*0.025f, 0.f);
669 PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
670 DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
671 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
672 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
673 DALI_TEST_CHECK( !callbackPanFinished.mSignalVerified );
675 PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, false, true);
676 DALI_TEST_CHECK( !callbackTurnStarted.mSignalVerified );
677 DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
678 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
680 Wait( application, 1000 );
682 DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
683 DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get<int>(), 0, TEST_LOCATION );
687 int UtcDaliPageImageFactoryGetExtention(void)
689 ToolkitTestApplication application;
690 TestPageFactory factory(application);
691 DALI_TEST_CHECK( factory.GetExtension() == NULL );
695 int UtcDaliPageTurnEmptyTextureHandle(void)
697 ToolkitTestApplication application;
699 tet_infoline(" UtcDaliPageTurnEmptyTextureHandle ");
701 application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
703 TestPageFactory factory(application, false); // returns empty handles
704 Vector2 size = Stage::GetCurrent().GetSize();
707 PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
708 portraitView.SetParentOrigin( ParentOrigin::CENTER );
709 Stage::GetCurrent().Add( portraitView );
711 tet_result(TET_FAIL);
713 catch (DaliException& e)
715 DALI_TEST_ASSERT(e, "must pass in valid texture", TEST_LOCATION );
719 tet_result(TET_FAIL);