/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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 <string.h>
#include <sstream>
#include <dali-toolkit-test-suite-utils.h>
-#include <dali/integration-api/events/pan-gesture-event.h>
+#include <dali/integration-api/events/touch-event-integ.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>
{
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 Vector2 VIEW_PAGE_SIZE( 300.f,400.f );
const Vector2 SPINE_SHADOW_PARAMETER( 60.0f, 30.0f );
static bool gObjectCreatedCallBackCalled;
* @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)
{
+ 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 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)
+static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, uint32_t& time, bool toStart = true, bool toFinish = true)
{
- // Now do a pan starting from (start) and heading (direction)
- Vector2 pos(start);
+ Vector2 pos( start );
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;
}
+ 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;
{
public:
- TestPageFactory(ToolkitTestApplication& application, bool returnValidTexture = true )
- : mApplication( application ),
- mValidTexture( returnValidTexture )
+ TestPageFactory( bool returnValidTexture = true )
+ : mValidTexture( returnValidTexture )
{
mTotalPageNumber = TOTAL_PAGE_NUMBER;
}
}
private:
- ToolkitTestApplication& mApplication;
unsigned int mTotalPageNumber;
bool mValidTexture;
};
DALI_TEST_CHECK( !portraitView );
// Test object creation
- TestPageFactory factory(application);
- portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
+ 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();
+ ObjectRegistry registry = application.GetCore().GetObjectRegistry();
DALI_TEST_CHECK( registry );
gObjectCreatedCallBackCalled = false;
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( !landscapeView );
// Test object creation
- TestPageFactory factory(application);
- landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+ 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();
+ ObjectRegistry registry = application.GetCore().GetObjectRegistry();
DALI_TEST_CHECK( registry );
gObjectCreatedCallBackCalled = false;
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( !portraitView );
// Test object creation
- TestPageFactory factory(application);
- portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE );
+ TestPageFactory factory;
+ portraitView = PageTurnPortraitView::New( factory, VIEW_PAGE_SIZE );
DALI_TEST_CHECK( portraitView );
// Test copy constructor
DALI_TEST_CHECK( !landscapeView );
// Test object creation
- TestPageFactory factory(application);
- landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+ TestPageFactory factory;
+ landscapeView = PageTurnLandscapeView::New( factory, VIEW_PAGE_SIZE );
DALI_TEST_CHECK( landscapeView );
// Test copy constructor
tet_infoline(" UtcDaliPageTurnViewSetGetProperty ");
- TestPageFactory factory(application);
- PageTurnView landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+ TestPageFactory factory;
+ PageTurnView landscapeView = PageTurnLandscapeView::New( factory, VIEW_PAGE_SIZE );
DALI_TEST_CHECK( landscapeView );
- Stage::GetCurrent().Add( landscapeView );
+ application.GetScene().Add( landscapeView );
- // Test "pageSize" property
- DALI_TEST_CHECK( landscapeView.GetPropertyIndex("pageSize") == PageTurnView::Property::PAGE_SIZE );
- DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), PAGE_SIZE, TEST_LOCATION );
+ // 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 );
- Vector2 newSize( PAGE_SIZE.x*0.75, PAGE_SIZE.y*0.5f );
- landscapeView.SetProperty( PageTurnView::Property::PAGE_SIZE, newSize );
- DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), newSize, TEST_LOCATION );
+ 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);
- landscapeView.SetProperty( PageTurnView::Property::PAGE_SIZE,newSize*1.5f);
- DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get<Vector2>(), newSize*1.5f, TEST_LOCATION );
+ 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);
application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
- TestPageFactory factory(application);
- Vector2 size = Stage::GetCurrent().GetSize();
+ TestPageFactory factory;
+ Vector2 size = application.GetScene().GetSize();
PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
- portraitView.SetParentOrigin( ParentOrigin::CENTER );
- Stage::GetCurrent().Add( portraitView );
+ portraitView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ application.GetScene().Add( portraitView );
// Render and notify
application.SendNotification();
//-----Test 1: pan 10 frames from position(size * 0.75f) to position(size * 0.25f), page 0 will be turned forward----
pageIndex = 0;
isTurningForwards = true;
- // Do a pan moving up diagonally.
+ // 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, true, false);
+ 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, false, true);
+ PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, time, false, true);
DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
- Wait(application, 1000);
+ 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 );
//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);
+ PerformGestureDiagonalSwipe( application, start, direction, 5, time, true, false);
DALI_TEST_CHECK( callbackPanStarted.mSignalVerified );
DALI_TEST_CHECK( callbackTurnStarted.mSignalVerified );
DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
signalVerified[0] = false;
isTurningForwards = false;
- PerformGestureDiagonalSwipe( application, start + direction*2 , direction, 5, false, true);
+ 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);
+ 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
isTurningForwards = false;
start = size*0.25f;
direction = Vector2(size.x*0.05f, 0.f);
- PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
+ 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, false, true);
+ 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 );
* ----------------
*/
- TestPageFactory factory(application);
- Vector2 stageSize = Stage::GetCurrent().GetSize();
+ TestPageFactory factory;
+ Vector2 stageSize = application.GetScene().GetSize();
PageTurnView landscapeView = PageTurnLandscapeView::New( factory, Vector2(stageSize.x*0.5f, stageSize.x*0.8f) );
- landscapeView.SetParentOrigin( ParentOrigin::CENTER );
- Stage::GetCurrent().Add( landscapeView );
+ landscapeView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ application.GetScene().Add( landscapeView );
// Render and notify
application.SendNotification();
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, true, false);
+ 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, false, true);
+ PerformGestureDiagonalSwipe( application, start+direction*5.f, direction, 5, time, false, true);
DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
- Wait(application, 1000);
+ 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 );
//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, true, false);
+ 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, false, true);
+ PerformGestureDiagonalSwipe( application, start + direction*5.f , direction, 5, time, false, true);
DALI_TEST_CHECK( !callbackTurnFinished.mSignalVerified );
DALI_TEST_CHECK( callbackPanFinished.mSignalVerified );
- Wait(application, 1000);
+ 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
isTurningForwards = false;
start = stageSize*0.55f;
direction = Vector2(stageSize.x*0.025f, 0.f);
- PerformGestureDiagonalSwipe( application, start, direction, 5, true, false);
+ 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, false, true);
+ 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 );
int UtcDaliPageImageFactoryGetExtention(void)
{
ToolkitTestApplication application;
- TestPageFactory factory(application);
+ TestPageFactory factory;
DALI_TEST_CHECK( factory.GetExtension() == NULL );
END_TEST;
}
application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE );
- TestPageFactory factory(application, false); // returns empty handles
- Vector2 size = Stage::GetCurrent().GetSize();
+ TestPageFactory factory( false /* returns empty handles */ );
+ Vector2 size = application.GetScene().GetSize();
try
{
PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
- portraitView.SetParentOrigin( ParentOrigin::CENTER );
- Stage::GetCurrent().Add( portraitView );
+ portraitView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ application.GetScene().Add( portraitView );
tet_result(TET_FAIL);
}