/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
*/
-#include <iostream>
+#include <dali-toolkit-test-suite-utils.h>
+#include <dali-toolkit/devel-api/controls/page-turn-view/page-factory.h>
+#include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-landscape-view.h>
+#include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-portrait-view.h>
+#include <dali-toolkit/devel-api/controls/page-turn-view/page-turn-view.h>
+#include <dali/integration-api/events/touch-event-integ.h>
#include <stdlib.h>
#include <string.h>
+#include <iostream>
#include <sstream>
-#include <dali-toolkit-test-suite-utils.h>
-#include <dali-toolkit/dali-toolkit.h>
-
using namespace Dali;
using namespace Dali::Toolkit;
namespace
{
-const int RENDER_FRAME_INTERVAL = 16; ///< Duration of each frame in ms. (at approx 60FPS)
-const unsigned int TOTAL_PAGE_NUMBER = 20;
-const Vector2 PAGE_SIZE( 300.f,400.f );
-const unsigned int IMAGE_WIDTH = 30;
-const unsigned int IMAGE_HEIGHT = 30;
-const Vector2 IMAGE_SIZE( static_cast<float>( IMAGE_WIDTH ), static_cast<float>(IMAGE_HEIGHT) );
-const Vector2 SPINE_SHADOW_PARAMETER( 60.0f, 30.0f );
+const int RENDER_FRAME_INTERVAL = 16; ///< Duration of each frame in ms. (at approx 60FPS)
+const unsigned int TOTAL_PAGE_NUMBER = 20;
+const Vector2 VIEW_PAGE_SIZE(300.f, 400.f);
+const Vector2 SPINE_SHADOW_PARAMETER(60.0f, 30.0f);
static bool gObjectCreatedCallBackCalled;
static void TestCallback(BaseHandle handle)
* @param application Test application instance
* @param duration Time to pass in milliseconds.
*/
-void Wait(ToolkitTestApplication& application, int duration = 0)
+int Wait(ToolkitTestApplication& application, int duration = 0)
{
- for(int i = 0; i <= ( duration / RENDER_FRAME_INTERVAL); i++)
+ int time = 0;
+
+ for(int i = 0; i <= (duration / RENDER_FRAME_INTERVAL); i++)
{
application.SendNotification();
application.Render(RENDER_FRAME_INTERVAL);
+ time += RENDER_FRAME_INTERVAL;
}
-}
-
-// Generate a PanGestureEvent to send to Core
-Integration::PanGestureEvent GeneratePan(
- Gesture::State state,
- const Vector2& previousPosition,
- const Vector2& currentPosition,
- unsigned long timeDelta,
- unsigned int numberOfTouches = 1)
-{
- Integration::PanGestureEvent pan(state);
- pan.previousPosition = previousPosition;
- pan.currentPosition = currentPosition;
- pan.timeDelta = timeDelta;
- pan.numberOfTouches = numberOfTouches;
-
- return pan;
+ return time;
}
-/**
- * Helper to generate PanGestureEvent
- *
- * @param[in] application Application instance
- * @param[in] state The Gesture State
- * @param[in] pos The current position of touch.
- */
-static void SendPan(ToolkitTestApplication& application, Gesture::State state, const Vector2& pos)
+static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, uint32_t& time, bool toStart = true, bool toFinish = true)
{
- static Vector2 last;
-
- if( (state == Gesture::Started) ||
- (state == Gesture::Possible) )
- {
- last.x = pos.x;
- last.y = pos.y;
- }
-
- application.ProcessEvent(GeneratePan(state, last, pos, RENDER_FRAME_INTERVAL));
-
- last.x = pos.x;
- last.y = pos.y;
-}
-
-static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, bool toStart = true, bool toFinish = true)
-{
- // Now do a pan starting from (start) and heading (direction)
Vector2 pos(start);
- if( toStart )
+ if(toStart)
{
- SendPan(application, Gesture::Possible, pos);
- Wait(application);
- SendPan(application, Gesture::Started, pos);
- Wait(application);
+ // Now do a pan starting from (start + 20) and heading (direction)
+ Vector2 pos_start_jump(start + Vector2(15.0f, 0.0f));
+ TestStartPan(application, start, pos_start_jump, time);
+ pos += direction;
}
- for(int i = 0;i<frames;i++)
+ time += Wait(application);
+
+ for(int i = 0; i < frames; i++)
{
- pos += direction; // Move in this direction
- SendPan(application, Gesture::Continuing, pos);
- Wait(application);
+ pos += direction;
+ TestMovePan(application, pos, time);
+ time += Wait(application);
}
if(toFinish)
{
- pos += direction; // Move in this direction
- SendPan(application, Gesture::Finished, pos);
- Wait(application);
+ pos += direction;
+ TestEndPan(application, pos, time);
+ time += Wait(application);
}
return pos;
}
-
//Functor to test whether PageTurnSignal / PagePanSignal is emitted
class PageSignalCallback : public Dali::ConnectionTracker
{
public:
-
- PageSignalCallback( bool& signalReceived, PageTurnView& view, unsigned int& pageIndex, bool& isForwards )
- : mSignalVerified( signalReceived ),
- mView( view ),
- mPageIndex( pageIndex ),
- mIsTurningForwards( isForwards )
+ PageSignalCallback(bool& signalReceived, PageTurnView& view, unsigned int& pageIndex, bool& isForwards)
+ : mSignalVerified(signalReceived),
+ mView(view),
+ mPageIndex(pageIndex),
+ mIsTurningForwards(isForwards)
{
}
// callback to be connected to PageTurnSignal
- void PageTurnSignalCallback( PageTurnView view, unsigned int pageIndex, bool isTurningForward )
+ void PageTurnSignalCallback(PageTurnView view, unsigned int pageIndex, bool isTurningForward)
{
- tet_infoline( "Verifying PageTurnedSignal" );
+ tet_infoline("Verifying PageTurnedSignal");
- if( mView == view && mPageIndex == pageIndex && mIsTurningForwards == isTurningForward )
+ if(mView == view && mPageIndex == pageIndex && mIsTurningForwards == isTurningForward)
{
mSignalVerified = true;
}
}
// callback to be connected to PagePanSignal
- void PagePanSignalCallback( PageTurnView view )
+ void PagePanSignalCallback(PageTurnView view)
{
- tet_infoline( "Verifying PagePannedSignal" );
+ tet_infoline("Verifying PagePannedSignal");
- if( mView == view )
+ if(mView == view)
{
mSignalVerified = true;
}
PageTurnView& mView;
unsigned int& mPageIndex;
bool& mIsTurningForwards;
-
};
-
//Implementation of PageFactory for providing page actors to PageTurnView
class TestPageFactory : public PageFactory
{
public:
-
- TestPageFactory(ToolkitTestApplication& application)
- : mApplication( application )
+ TestPageFactory(bool returnValidTexture = true)
+ : mValidTexture(returnValidTexture)
{
- mSourceActors.resize(TOTAL_PAGE_NUMBER);
mTotalPageNumber = TOTAL_PAGE_NUMBER;
}
}
/**
- * Create an image actor to represent a page.
+ * Create an texture to represent a page content.
* @param[in] pageId The ID of the page to create.
- * @return An image actor, or an uninitialized pointer if the ID is out of range.
+ * @return An image, or an empty handle if the ID is out of range.
*/
- virtual Actor NewPage( unsigned int pageId )
+ virtual Texture NewPage(unsigned int pageId)
{
- if(!mSourceActors[pageId])
+ if(mValidTexture)
{
- Actor actor = CreateSolidColorImageActor(mApplication, Color::BLUE,IMAGE_WIDTH,IMAGE_HEIGHT);
- actor.SetName( static_cast<std::ostringstream*>( &(std::ostringstream() << pageId) )->str() );
-
- actor.SetParentOrigin( ParentOrigin::CENTER );
- actor.SetAnchorPoint( AnchorPoint::CENTER );
-
- SetActorHittability( actor, true );
-
- mSourceActors[pageId] = actor;
+ return Texture::New(Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100);
}
-
- return mSourceActors[pageId];
- }
-
- void DeletePage( unsigned int pageId )
- {
- mSourceActors.erase( mSourceActors.begin() + pageId );
- mTotalPageNumber--;
+ return Texture(); // empty handle
}
private:
- ToolkitTestApplication& mApplication;
- std::vector<Actor> mSourceActors;
- unsigned int mTotalPageNumber;
+ unsigned int mTotalPageNumber;
+ bool mValidTexture;
};
-}// namespace
+} // namespace
void dali_page_turn_view_startup(void)
{
// Test default constructor
PageTurnView portraitView;
- DALI_TEST_CHECK( !portraitView );
+ DALI_TEST_CHECK(!portraitView);
// Test object creation
- TestPageFactory factory(application);
- portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
- DALI_TEST_CHECK( portraitView );
+ TestPageFactory factory;
+ portraitView = PageTurnPortraitView::New(factory, VIEW_PAGE_SIZE);
+ DALI_TEST_CHECK(portraitView);
//Additional check to ensure object is created by checking if it's registered
- ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
- DALI_TEST_CHECK( registry );
+ ObjectRegistry registry = application.GetCore().GetObjectRegistry();
+ DALI_TEST_CHECK(registry);
gObjectCreatedCallBackCalled = false;
- registry.ObjectCreatedSignal().Connect( &TestCallback );
+ registry.ObjectCreatedSignal().Connect(&TestCallback);
{
- TestPageFactory factory(application);
- PageTurnView PortraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
+ TestPageFactory factory;
+ PageTurnView portraitView = PageTurnPortraitView::New(factory, VIEW_PAGE_SIZE);
}
- DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
+ DALI_TEST_CHECK(gObjectCreatedCallBackCalled);
// Test copy constructor
- PageTurnView viewCopy( portraitView );
- DALI_TEST_CHECK( viewCopy );
+ PageTurnView viewCopy(portraitView);
+ DALI_TEST_CHECK(viewCopy);
// Test down cast
Handle handleView;
- handleView = portraitView;
- PageTurnView downCastView = PageTurnView::DownCast( handleView );
- DALI_TEST_CHECK( downCastView );
+ handleView = portraitView;
+ PageTurnView downCastView = PageTurnView::DownCast(handleView);
+ DALI_TEST_CHECK(downCastView);
+
END_TEST;
}
//Test default constructor
PageTurnView landscapeView;
- DALI_TEST_CHECK( !landscapeView );
+ DALI_TEST_CHECK(!landscapeView);
// Test object creation
- TestPageFactory factory(application);
- landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
- DALI_TEST_CHECK( landscapeView );
+ TestPageFactory factory;
+ landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
+ DALI_TEST_CHECK(landscapeView);
//Additional check to ensure object is created by checking if it's registered
- ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
- DALI_TEST_CHECK( registry );
+ ObjectRegistry registry = application.GetCore().GetObjectRegistry();
+ DALI_TEST_CHECK(registry);
gObjectCreatedCallBackCalled = false;
- registry.ObjectCreatedSignal().Connect( &TestCallback );
+ registry.ObjectCreatedSignal().Connect(&TestCallback);
{
- TestPageFactory factory(application);
- PageTurnView landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+ TestPageFactory factory;
+ PageTurnView landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
}
- DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
+ DALI_TEST_CHECK(gObjectCreatedCallBackCalled);
// Test copy constructor
- PageTurnView viewCopy( landscapeView );
- DALI_TEST_CHECK( viewCopy );
+ PageTurnView viewCopy(landscapeView);
+ DALI_TEST_CHECK(viewCopy);
// Test down cast
Handle handleView;
- handleView = landscapeView;
- PageTurnView downCastView = PageTurnView::DownCast( handleView );
- DALI_TEST_CHECK( downCastView );
+ handleView = landscapeView;
+ PageTurnView downCastView = PageTurnView::DownCast(handleView);
+ DALI_TEST_CHECK(downCastView);
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;
+ portraitView = PageTurnPortraitView::New(factory, VIEW_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 " );
-
- application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
+ tet_infoline(" UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment ");
- TestPageFactory factory(application);
- factory.EnableOffscreenRendering( );
-
- PageTurnView pageTurnView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
- pageTurnView.SetPositionInheritanceMode( USE_PARENT_POSITION );
- Stage::GetCurrent().Add( pageTurnView );
+ // Test default constructor
+ PageTurnLandscapeView landscapeView;
+ DALI_TEST_CHECK(!landscapeView);
- Vector2 size = Stage::GetCurrent().GetSize();
+ // Test object creation
+ TestPageFactory factory;
+ landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
+ DALI_TEST_CHECK(landscapeView);
- pageTurnView.GoToPage(5);
+ // Test copy constructor
+ PageTurnLandscapeView viewCopy(landscapeView);
+ DALI_TEST_CHECK(viewCopy);
- // Render and notify
- application.SendNotification();
- application.Render(RENDER_FRAME_INTERVAL);
+ // Test assignment
+ PageTurnLandscapeView landscapeView2;
+ landscapeView2 = landscapeView;
+ DALI_TEST_CHECK(landscapeView2);
+ DALI_TEST_CHECK(landscapeView == landscapeView2);
- 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 );
+ // Test down cast
+ Handle handleView;
+ handleView = landscapeView;
+ PageTurnLandscapeView downCastView = PageTurnLandscapeView::DownCast(handleView);
+ DALI_TEST_CHECK(downCastView);
- bool signalVerified;
- PageTurnView currentView;
- unsigned int pageIndex;
- bool isTurningForwards;
- PageSignalCallback callbackPanStarted( signalVerified, currentView, pageIndex, isTurningForwards );
- pageTurnView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
-
- currentView = pageTurnView;
- pageIndex = 5;
- DALI_TEST_CHECK( !callbackPanStarted.mSignalVerified );
-
- // 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 );
-
- 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 ");
+ tet_infoline(" UtcDaliPageTurnViewSetGetProperty ");
- application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
+ TestPageFactory factory;
+ PageTurnView landscapeView = PageTurnLandscapeView::New(factory, VIEW_PAGE_SIZE);
+ DALI_TEST_CHECK(landscapeView);
- TestPageFactory factory(application);
- factory.EnableOffscreenRendering( );
+ application.GetScene().Add(landscapeView);
- PageTurnView pageTurnView = PageTurnPortraitView::New( factory, PAGE_SIZE );
- pageTurnView.SetParentOrigin( ParentOrigin::TOP_LEFT );
- pageTurnView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- Stage::GetCurrent().Add( pageTurnView );
+ // Test "viewPageSize" property
+ DALI_TEST_CHECK(landscapeView.GetPropertyIndex("viewPageSize") == PageTurnView::Property::VIEW_PAGE_SIZE);
+ DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), VIEW_PAGE_SIZE, TEST_LOCATION);
- // Render and notify
- application.SendNotification();
- application.Render(RENDER_FRAME_INTERVAL);
+ Vector2 newSize(VIEW_PAGE_SIZE.x * 0.75, VIEW_PAGE_SIZE.y * 0.5f);
+ landscapeView.SetProperty(PageTurnView::Property::VIEW_PAGE_SIZE, newSize);
+ DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::VIEW_PAGE_SIZE).Get<Vector2>(), newSize, TEST_LOCATION);
+ Wait(application);
+ DALI_TEST_EQUALS(Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x * 2.f, newSize.y), TEST_LOCATION);
- pageTurnView.GoToPage(3);
+ landscapeView.SetProperty(PageTurnView::Property::VIEW_PAGE_SIZE, newSize * 1.5f);
+ DALI_TEST_EQUALS(landscapeView.GetProperty(PageTurnView::Property::VIEW_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);
- 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 );
+ // 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);
- screenCoordinate = PAGE_SIZE*0.5f+IMAGE_SIZE;
- hitActor = pageTurnView.GetHitActor( screenCoordinate, localCoordinate );
- DALI_TEST_CHECK( !hitActor );
- END_TEST;
-}
+ 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);
-int UtcDaliPageTurnViewRefresh(void)
-{
- ToolkitTestApplication application;
-
- tet_infoline(" UtcDaliPageTurnViewRefresh ");
+ 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);
- application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
+ // 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);
- 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 );
-
- // 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 );
+ application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE);
- TestPageFactory factory(application);
- Vector2 size = Stage::GetCurrent().GetSize();
- PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
- portraitView.SetPositionInheritanceMode( USE_PARENT_POSITION );
- Stage::GetCurrent().Add( portraitView );
+ TestPageFactory factory;
+ Vector2 size = application.GetScene().GetSize();
+ PageTurnView portraitView = PageTurnPortraitView::New(factory, size);
+ portraitView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ application.GetScene().Add(portraitView);
// Render and notify
application.SendNotification();
// [0]: testing PageTurnStartedSignal; [1]: testing PageTurnFinishedSignal
// [2]: testing PagePanStartedSignal; [3]: testing PagePanFinishedSignal
- bool signalVerified[4] = {false, false, false, false};
+ bool signalVerified[4] = {false, false, false, false};
PageTurnView currentView;
unsigned int pageIndex;
- bool isTurningForwards;
+ bool isTurningForwards;
- PageSignalCallback callbackTurnStarted( signalVerified[0], currentView, pageIndex, isTurningForwards );
- portraitView.PageTurnStartedSignal().Connect( &callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback );
+ PageSignalCallback callbackTurnStarted(signalVerified[0], currentView, pageIndex, isTurningForwards);
+ portraitView.PageTurnStartedSignal().Connect(&callbackTurnStarted, &PageSignalCallback::PageTurnSignalCallback);
- PageSignalCallback callbackTurnFinished( signalVerified[1], currentView, pageIndex, isTurningForwards );
- portraitView.PageTurnFinishedSignal().Connect( &callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback );
+ PageSignalCallback callbackTurnFinished(signalVerified[1], currentView, pageIndex, isTurningForwards);
+ portraitView.PageTurnFinishedSignal().Connect(&callbackTurnFinished, &PageSignalCallback::PageTurnSignalCallback);
- PageSignalCallback callbackPanStarted( signalVerified[2], currentView, pageIndex, isTurningForwards );
- portraitView.PagePanStartedSignal().Connect( &callbackPanStarted, &PageSignalCallback::PagePanSignalCallback );
+ PageSignalCallback callbackPanStarted(signalVerified[2], currentView, pageIndex, isTurningForwards);
+ portraitView.PagePanStartedSignal().Connect(&callbackPanStarted, &PageSignalCallback::PagePanSignalCallback);
- PageSignalCallback callbackPanFinished( signalVerified[3], currentView, pageIndex, isTurningForwards );
- portraitView.PagePanFinishedSignal().Connect( &callbackPanFinished, &PageSignalCallback::PagePanSignalCallback );
+ PageSignalCallback callbackPanFinished(signalVerified[3], currentView, pageIndex, isTurningForwards);
+ portraitView.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 );
+ DALI_TEST_CHECK(!callbackTurnStarted.mSignalVerified);
+ DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
+ DALI_TEST_CHECK(!callbackPanStarted.mSignalVerified);
+ DALI_TEST_CHECK(!callbackPanFinished.mSignalVerified);
currentView = portraitView;
//-----Test 1: pan 10 frames from position(size * 0.75f) to position(size * 0.25f), page 0 will be turned forward----
- pageIndex = 0;
+ pageIndex = 0;
isTurningForwards = true;
- // Do a pan moving up diagonally.
- Vector2 start = size * 0.75f;
- Vector2 direction = -size*0.05f; //-size*0.5f/10.f;
-
- DALI_TEST_CHECK( portraitView.GetCurrentPage() == 0);
- 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 );
- DALI_TEST_CHECK( portraitView.GetCurrentPage() == pageIndex+1); // the page is turn over
+ // Do a pan moving up diagonally
+ uint32_t time = 0;
+ Vector2 start = size * 0.75f;
+ Vector2 direction = -size * 0.05f; //-size*0.5f/10.f;
+
+ DALI_TEST_EQUALS(portraitView.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(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);
- pageIndex = 5;
+ portraitView.SetProperty(PageTurnView::Property::CURRENT_PAGE_ID, 5);
+ pageIndex = 5;
isTurningForwards = true;
//pan 10 frames from position( size.width, size.height*0.5f ) to position( size * 0.75f )
- start = Vector2( size.width, size.height*0.5f );
- direction = Vector2(-size.width*0.025f, size.height*0.025f);
- 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 );
+ start = Vector2(size.width, size.height * 0.5f);
+ direction = Vector2(-size.width * 0.025f, size.height * 0.025f);
+ 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);
signalVerified[0] = false;
isTurningForwards = false;
- PerformGestureDiagonalSwipe( application, start + direction*2 , direction, 5, false, true);
- DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
- DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
- DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified ); // start the sliding back
+ PerformGestureDiagonalSwipe(application, start + direction * 2, direction, 5, time, false, true);
+ DALI_TEST_CHECK(!callbackTurnFinished.mSignalVerified);
+ DALI_TEST_CHECK(callbackPanFinished.mSignalVerified);
+ DALI_TEST_CHECK(callbackTurnStarted.mSignalVerified); // start the sliding back
- Wait(application, 1000);
- DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified );
- DALI_TEST_CHECK( portraitView.GetCurrentPage() == pageIndex); // the page is not turned over
+ time += Wait(application, 1000);
+ DALI_TEST_CHECK(callbackTurnFinished.mSignalVerified);
+ 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);
- pageIndex = 9; // will turn the previous page back
+ portraitView.SetProperty(PageTurnView::Property::CURRENT_PAGE_ID, 10);
+ pageIndex = 9; // will turn the previous page back
isTurningForwards = false;
- start = size*0.25f;
- direction = Vector2(size.x*0.05f, 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_CHECK( portraitView.GetCurrentPage() == 9);
+ 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);
+ }
+
END_TEST;
}