X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-PageTurnView.cpp;h=85ba766fb4730754cc9342d6a3f61bebe13db3f8;hp=fc4b308f33c48cbdeccc913b910bc7e05a834303;hb=5e351965bad7e1de2e94027548b022bac692603c;hpb=ae34cf6aef4b3b807bd1e099baa48230b6b32156 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-PageTurnView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-PageTurnView.cpp index fc4b308..85ba766 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-PageTurnView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-PageTurnView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -21,12 +21,10 @@ #include #include #include -#include -#include -#include -#include - - +#include +#include +#include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -36,9 +34,6 @@ 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( IMAGE_WIDTH ), static_cast(IMAGE_HEIGHT) ); const Vector2 SPINE_SHADOW_PARAMETER( 60.0f, 30.0f ); static bool gObjectCreatedCallBackCalled; @@ -190,10 +185,10 @@ class TestPageFactory : public PageFactory { public: - TestPageFactory(ToolkitTestApplication& application) - : mApplication( application ) + TestPageFactory(ToolkitTestApplication& application, bool returnValidTexture = true ) + : mApplication( application ), + mValidTexture( returnValidTexture ) { - mSourceActors.resize(TOTAL_PAGE_NUMBER); mTotalPageNumber = TOTAL_PAGE_NUMBER; } @@ -207,36 +202,23 @@ public: } /** - * 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() << pageId) )->str() ); - - actor.SetParentOrigin( ParentOrigin::CENTER ); - actor.SetAnchorPoint( AnchorPoint::CENTER ); - - 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 mSourceActors; unsigned int mTotalPageNumber; + bool mValidTexture; }; }// namespace @@ -274,7 +256,7 @@ int UtcDaliPageTurnPortraitViewNew(void) registry.ObjectCreatedSignal().Connect( &TestCallback ); { TestPageFactory factory(application); - PageTurnView PortraitView = PageTurnPortraitView::New( factory, PAGE_SIZE ); + PageTurnView portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE ); } DALI_TEST_CHECK( gObjectCreatedCallBackCalled ); @@ -287,6 +269,7 @@ int UtcDaliPageTurnPortraitViewNew(void) handleView = portraitView; PageTurnView downCastView = PageTurnView::DownCast( handleView ); DALI_TEST_CHECK( downCastView ); + END_TEST; } @@ -330,6 +313,74 @@ int UtcDaliPageTurnLandscapeViewNew(void) END_TEST; } +int UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment(void) +{ + ToolkitTestApplication application; + + tet_infoline(" UtcDaliPageTurnPortraitViewCopyConstructorAndAssignment "); + + // Test default constructor + PageTurnPortraitView portraitView; + DALI_TEST_CHECK( !portraitView ); + + // Test object creation + TestPageFactory factory(application); + portraitView = PageTurnPortraitView::New( factory, PAGE_SIZE ); + DALI_TEST_CHECK( portraitView ); + + // Test copy constructor + PageTurnPortraitView viewCopy( portraitView ); + DALI_TEST_CHECK( viewCopy ); + + // Test assignment + PageTurnPortraitView portraitView2; + portraitView2 = portraitView; + DALI_TEST_CHECK( portraitView2 ); + DALI_TEST_CHECK( portraitView == portraitView2); + + // Test down cast + Handle handleView; + handleView = portraitView; + PageTurnPortraitView downCastView = PageTurnPortraitView::DownCast( handleView ); + DALI_TEST_CHECK( downCastView ); + + END_TEST; +} + +int UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment(void) +{ + ToolkitTestApplication application; + + tet_infoline(" UtcDaliPageTurnLandscapeViewCopyConstructorAndAssignment "); + + // Test default constructor + PageTurnLandscapeView landscapeView; + DALI_TEST_CHECK( !landscapeView ); + + // Test object creation + TestPageFactory factory(application); + landscapeView = PageTurnLandscapeView::New( factory, PAGE_SIZE ); + DALI_TEST_CHECK( landscapeView ); + + // Test copy constructor + PageTurnLandscapeView viewCopy( landscapeView ); + DALI_TEST_CHECK( viewCopy ); + + // Test assignment + PageTurnLandscapeView landscapeView2; + landscapeView2 = landscapeView; + DALI_TEST_CHECK( landscapeView2 ); + DALI_TEST_CHECK( landscapeView == landscapeView2); + + // Test down cast + Handle handleView; + handleView = landscapeView; + PageTurnLandscapeView downCastView = PageTurnLandscapeView::DownCast( handleView ); + DALI_TEST_CHECK( downCastView ); + + END_TEST; +} + int UtcDaliPageTurnViewSetGetProperty(void) { ToolkitTestApplication application; @@ -342,8 +393,8 @@ int UtcDaliPageTurnViewSetGetProperty(void) Stage::GetCurrent().Add( landscapeView ); - // Test "page-size" property - DALI_TEST_CHECK( landscapeView.GetPropertyIndex("page-size") == PageTurnView::Property::PAGE_SIZE ); + // Test "pageSize" property + DALI_TEST_CHECK( landscapeView.GetPropertyIndex("pageSize") == PageTurnView::Property::PAGE_SIZE ); DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::PAGE_SIZE).Get(), PAGE_SIZE, TEST_LOCATION ); Vector2 newSize( PAGE_SIZE.x*0.75, PAGE_SIZE.y*0.5f ); @@ -357,8 +408,8 @@ int UtcDaliPageTurnViewSetGetProperty(void) Wait( application); DALI_TEST_EQUALS( Vector2(landscapeView.GetTargetSize()), Vector2(newSize.x*3.f, newSize.y*1.5f), TEST_LOCATION); - // Test "current-page-id" property - DALI_TEST_CHECK( landscapeView.GetPropertyIndex("current-page-id") == PageTurnView::Property::CURRENT_PAGE_ID ); + // 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(), 0, TEST_LOCATION ); int pageId = static_cast(TOTAL_PAGE_NUMBER)/3; @@ -368,8 +419,8 @@ int UtcDaliPageTurnViewSetGetProperty(void) landscapeView.SetProperty( PageTurnView::Property::CURRENT_PAGE_ID, pageId*2 ); DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), pageId*2, TEST_LOCATION ); - // Test "spin-shadow" property - DALI_TEST_CHECK( landscapeView.GetPropertyIndex( "spine-shadow" ) == PageTurnView::Property::SPINE_SHADOW ); + // 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(), SPINE_SHADOW_PARAMETER, TEST_LOCATION ); @@ -379,18 +430,18 @@ int UtcDaliPageTurnViewSetGetProperty(void) END_TEST; } -int UtcDaliPageTurnViewSignals(void) +int UtcDaliPageTurnPortraitViewSignals(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliPageTurnViewSignals "); + tet_infoline(" UtcDaliPageTurnPortraitViewSignals "); 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 ); + portraitView.SetParentOrigin( ParentOrigin::CENTER ); Stage::GetCurrent().Add( portraitView ); // Render and notify @@ -443,8 +494,8 @@ int UtcDaliPageTurnViewSignals(void) Wait(application, 1000); DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified ); - // the page is turn over - DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), pageIndex+1, TEST_LOCATION ); + // the page is turned over + DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), (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(); @@ -473,7 +524,7 @@ int UtcDaliPageTurnViewSignals(void) Wait(application, 1000); DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified ); - DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), pageIndex, TEST_LOCATION ); // the page is not turned over + DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), (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(); @@ -502,3 +553,172 @@ int UtcDaliPageTurnViewSignals(void) DALI_TEST_EQUALS( portraitView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), 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(application); + Vector2 stageSize = Stage::GetCurrent().GetSize(); + PageTurnView landscapeView = PageTurnLandscapeView::New( factory, Vector2(stageSize.x*0.5f, stageSize.x*0.8f) ); + landscapeView.SetParentOrigin( ParentOrigin::CENTER ); + Stage::GetCurrent().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. + 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(), 0, TEST_LOCATION ); + 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 ); + // the page is turned over + DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), (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, 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( !callbackTurnFinished.mSignalVerified ); + DALI_TEST_CHECK( callbackPanFinished.mSignalVerified ); + + Wait(application, 1000); + DALI_TEST_CHECK( callbackTurnFinished.mSignalVerified ); + DALI_TEST_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), 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, 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_EQUALS( landscapeView.GetProperty(PageTurnView::Property::CURRENT_PAGE_ID).Get(), 0, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliPageImageFactoryGetExtention(void) +{ + ToolkitTestApplication application; + TestPageFactory factory(application); + DALI_TEST_CHECK( factory.GetExtension() == NULL ); + END_TEST; +} + +int UtcDaliPageTurnEmptyTextureHandle(void) +{ + ToolkitTestApplication application; + + tet_infoline(" UtcDaliPageTurnEmptyTextureHandle "); + + application.GetGlAbstraction().SetCheckFramebufferStatusResult(GL_FRAMEBUFFER_COMPLETE ); + + TestPageFactory factory(application, false); // returns empty handles + Vector2 size = Stage::GetCurrent().GetSize(); + try + { + PageTurnView portraitView = PageTurnPortraitView::New( factory, size ); + portraitView.SetParentOrigin( ParentOrigin::CENTER ); + Stage::GetCurrent().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; +} +