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-Button.cpp;h=5aff1464b572a3f85539eaa4a259665448db8902;hp=3e7f4cf83a48cd998791abdd5af39d91c467d38a;hb=958bd01cb1bc4cf43cbe740a7b041927d9d34ed6;hpb=6c8eb158ad2fb68a20bdcfabf8e07dd017da0528 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp index 3e7f4cf..5aff146 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp @@ -50,33 +50,68 @@ static bool ButtonCallback( Button button ) return false; } -Image CreateSolidColorImage( const Vector4& color, unsigned int width, unsigned int height ) +struct CallbackFunctor { - BufferImage imageData = BufferImage::New( width, height, Pixel::RGBA8888 ); + CallbackFunctor(bool* callbackFlag) + : mCallbackFlag( callbackFlag ) + { + } + + void operator()() + { + *mCallbackFlag = true; + } + bool* mCallbackFlag; +}; + +Dali::Integration::Point GetPointDownInside() +{ + Dali::Integration::Point point; + point.SetState( PointState::DOWN ); + point.SetScreenPosition( Vector2( 240, 400 ) ); + return point; +} - // Create the image - PixelBuffer* pixbuf = imageData.GetBuffer(); - unsigned int size = width * height; +Dali::Integration::Point GetPointUpInside() +{ + Dali::Integration::Point point; + point.SetState( PointState::UP ); + point.SetScreenPosition( Vector2( 240, 400 ) ); + return point; +} - for( size_t i = 0; i < size; i++ ) - { - pixbuf[i*4+0] = 0xFF * color.r; - pixbuf[i*4+1] = 0xFF * color.g; - pixbuf[i*4+2] = 0xFF * color.b; - pixbuf[i*4+3] = 0xFF * color.a; - } +Dali::Integration::Point GetPointLeave() +{ + Dali::Integration::Point point; + point.SetState( PointState::LEAVE ); + point.SetScreenPosition( Vector2( 240, 400 ) ); + return point; +} - imageData.Update(); +Dali::Integration::Point GetPointEnter() +{ + Dali::Integration::Point point; + point.SetState( PointState::MOTION ); + point.SetScreenPosition( Vector2( 240, 400 ) ); + return point; +} - return imageData; +Dali::Integration::Point GetPointDownOutside() +{ + Dali::Integration::Point point; + point.SetState( PointState::DOWN ); + point.SetScreenPosition( Vector2( 10, 10 ) ); + return point; +} + +Dali::Integration::Point GetPointUpOutside() +{ + Dali::Integration::Point point; + point.SetState( PointState::UP ); + point.SetScreenPosition( Vector2( 10, 10 ) ); + return point; } -const Dali::TouchPoint pointDownInside( 0, TouchPoint::Down, 240, 400 ); -const Dali::TouchPoint pointUpInside( 0, TouchPoint::Up, 240, 400 ); -const Dali::TouchPoint pointLeave( 0, TouchPoint::Leave, 240, 400 ); -const Dali::TouchPoint pointEnter( 0, TouchPoint::Motion, 240, 400 ); -const Dali::TouchPoint pointDownOutside( 0, TouchPoint::Down, 10, 10 ); -const Dali::TouchPoint pointUpOutside( 0, TouchPoint::Up, 10, 10 ); static float ANIMATION_TIME( 0.5f ); } // namespace @@ -310,9 +345,9 @@ int UtcDaliButtonSetLabelStringP(void) Button button = PushButton::New(); - button.SetLabel( "Button Label" ); + button.SetLabelText( "Button Label" ); - DALI_TEST_CHECK( button.GetLabel() ); + DALI_TEST_EQUALS( button.GetLabelText(), "Button Label", TEST_LOCATION ); END_TEST; } @@ -322,19 +357,16 @@ int UtcDaliButtonSetLabelActorP(void) Button button = PushButton::New(); - TextLabel textLabel = TextLabel::New( "Button Label" ); - button.SetLabel( textLabel ); + button.SetLabelText( "Button Label" ); - DALI_TEST_CHECK( button.GetLabel() ); + DALI_TEST_EQUALS( button.GetLabelText(), "Button Label", TEST_LOCATION ); END_TEST; } -int UtcDaliButtonSetButtonImage(void) +int UtcDaliButtonSetUnselectedImageP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliButtonSetButtonImage"); - - Image image = CreateSolidColorImage( Color::RED, 10, 10 ); + tet_infoline(" UtcDaliButtonSetUnselectedImageP"); PushButton pushButton = PushButton::New(); Stage::GetCurrent().Add( pushButton ); @@ -343,7 +375,7 @@ int UtcDaliButtonSetButtonImage(void) application.Render(); pushButton.SetSize( Vector2( 20.0f, 20.0f ) ); - pushButton.SetButtonImage( image ); + pushButton.SetUnselectedImage( "Image.jpg" ); application.SendNotification(); application.Render(); @@ -361,8 +393,6 @@ int UtcDaliButtonSetSelectedImageP(void) ToolkitTestApplication application; tet_infoline(" UtcDaliButtonSetButtonImage"); - Image image = CreateSolidColorImage( Color::RED, 10, 10 ); - PushButton pushButton = PushButton::New(); Stage::GetCurrent().Add( pushButton ); @@ -370,7 +400,7 @@ int UtcDaliButtonSetSelectedImageP(void) application.Render(); pushButton.SetSize( Vector2( 20.0f, 20.0f ) ); - pushButton.SetSelectedImage( image ); + pushButton.SetSelectedImage( "Image.jpg" ); application.SendNotification(); application.Render(); @@ -400,8 +430,13 @@ int UtcDaliButtonPressedSignalP(void) application.Render(); // connect to its touch signal + ConnectionTracker* testTracker = new ConnectionTracker(); button.PressedSignal().Connect( &ButtonCallback ); button.ReleasedSignal().Connect( &ButtonCallback ); + bool pressedSignal = false; + bool releasedSignal = false; + button.ConnectSignal( testTracker, "pressed", CallbackFunctor(&pressedSignal) ); + button.ConnectSignal( testTracker, "released", CallbackFunctor(&releasedSignal) ); Dali::Integration::TouchEvent event; @@ -409,50 +444,56 @@ int UtcDaliButtonPressedSignalP(void) gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); + event.AddPoint( GetPointDownInside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( gIsCalledButtonCallback ); + DALI_TEST_CHECK( pressedSignal ); gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); + event.AddPoint( GetPointUpInside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( gIsCalledButtonCallback ); + DALI_TEST_CHECK( releasedSignal ); // Test2. Touch point down and up outside the button. + pressedSignal = false; + releasedSignal = false; gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); + event.AddPoint( GetPointDownOutside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( !gIsCalledButtonCallback ); + DALI_TEST_CHECK( !pressedSignal ); gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); + event.AddPoint( GetPointUpOutside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( !gIsCalledButtonCallback ); + DALI_TEST_CHECK( !releasedSignal ); // Test3. Touch point down inside and up outside the button. gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); + event.AddPoint( GetPointDownInside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( gIsCalledButtonCallback ); gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointLeave ); + event.AddPoint( GetPointLeave() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); + event.AddPoint( GetPointUpOutside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( gIsCalledButtonCallback ); @@ -461,18 +502,18 @@ int UtcDaliButtonPressedSignalP(void) gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); + event.AddPoint( GetPointDownOutside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( !gIsCalledButtonCallback ); gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointEnter ); + event.AddPoint( GetPointEnter() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); + event.AddPoint( GetPointUpInside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( !gIsCalledButtonCallback ); @@ -497,6 +538,9 @@ int UtcDaliButtonClickedSignalP(void) // connect to its touch signal button.ClickedSignal().Connect( &ButtonCallback ); + bool clickedSignal = false; + ConnectionTracker* testTracker = new ConnectionTracker(); + button.ConnectSignal( testTracker, "clicked", CallbackFunctor(&clickedSignal) ); Dali::Integration::TouchEvent event; @@ -504,61 +548,68 @@ int UtcDaliButtonClickedSignalP(void) gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); + event.AddPoint( GetPointDownInside() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); + event.AddPoint( GetPointUpInside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( gIsCalledButtonCallback ); + DALI_TEST_CHECK( clickedSignal ); // Test2. Touch point down and up outside the button. gIsCalledButtonCallback = false; + clickedSignal = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); + event.AddPoint( GetPointDownOutside() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); + event.AddPoint( GetPointUpOutside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( !gIsCalledButtonCallback ); + DALI_TEST_CHECK( !clickedSignal ); // Test3. Touch point down inside and up outside the button. gIsCalledButtonCallback = false; + clickedSignal = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownInside ); + event.AddPoint( GetPointDownInside() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointLeave ); + event.AddPoint( GetPointLeave() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpOutside ); + event.AddPoint( GetPointUpOutside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( !gIsCalledButtonCallback ); + DALI_TEST_CHECK( !clickedSignal ); // Test4. Touch point down outside and up inside the button. gIsCalledButtonCallback = false; + clickedSignal = false; event = Dali::Integration::TouchEvent(); - event.AddPoint( pointDownOutside ); + event.AddPoint( GetPointDownOutside() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointEnter ); + event.AddPoint( GetPointEnter() ); application.ProcessEvent( event ); event = Dali::Integration::TouchEvent(); - event.AddPoint( pointUpInside ); + event.AddPoint( GetPointUpInside() ); application.ProcessEvent( event ); DALI_TEST_CHECK( !gIsCalledButtonCallback ); + DALI_TEST_CHECK( !clickedSignal ); END_TEST; } @@ -577,16 +628,23 @@ int UtcDaliButtonStateChangedSignalP(void) // connect to its signal button.StateChangedSignal().Connect( &ButtonCallback ); + bool stateChangedSignal = false; + ConnectionTracker* testTracker = new ConnectionTracker(); + button.ConnectSignal( testTracker, "stateChanged", CallbackFunctor(&stateChangedSignal) ); gIsCalledButtonCallback = false; button.SetSelected( true ); DALI_TEST_CHECK( gIsCalledButtonCallback ); + DALI_TEST_CHECK( stateChangedSignal ); gIsCalledButtonCallback = false; + stateChangedSignal = false; + button.SetSelected( false ); DALI_TEST_CHECK( gIsCalledButtonCallback ); + DALI_TEST_CHECK( stateChangedSignal ); END_TEST; } @@ -599,8 +657,10 @@ int UtcDaliButtonSetProperty(void) pushButton.SetProperty(pushButton.GetPropertyIndex("disabled"), false); DALI_TEST_CHECK( false == pushButton.IsDisabled() ); + pushButton.SetProperty(pushButton.GetPropertyIndex("disabled"), true); DALI_TEST_CHECK( true == pushButton.IsDisabled() ); + END_TEST; } @@ -609,28 +669,306 @@ int UtcDaliButtonSize(void) ToolkitTestApplication application; tet_infoline(" UtcDaliButtonSize"); - ImageActor image01 = ImageActor::New(CreateBufferImage()); - image01.SetSize( 100, 50 ); - - PushButton pushButton; - - Vector3 size; - - // Test1 Size is set through Actor API - // First an image is set, then SetSize is called. - pushButton = PushButton::New(); + PushButton pushButton = PushButton::New(); Stage::GetCurrent().Add( pushButton ); - pushButton.SetBackgroundImage( image01 ); + pushButton.SetBackgroundImage( "Image.jpg" ); pushButton.SetSize( 10.f, 10.f ); application.SendNotification(); application.Render(); - size = pushButton.GetCurrentSize(); + Vector3 size = pushButton.GetCurrentSize(); DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION ); DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION ); END_TEST; } + +int UtcDaliButtonSetSelectedBackgroundImageP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + Stage::GetCurrent().Add( button ); + + try + { + button.SetSelectedBackgroundImage( "TestImage.jpg"); + DALI_TEST_CHECK( true ); + } + catch(...) + { + DALI_TEST_CHECK( false ); + } + + END_TEST; +} + +int UtcDaliButtonSetSelectedBackgroundImageN(void) +{ + ToolkitTestApplication application; + + PushButton button; + + try + { + button.SetSelectedBackgroundImage( "TestImage.jpg"); + DALI_TEST_CHECK( false ); + } + catch(...) + { + DALI_TEST_CHECK( true ); + } + + END_TEST; +} + +int UtcDaliButtonSetDisabledImageP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + Stage::GetCurrent().Add( button ); + + try + { + button.SetDisabledImage( "TestImage.jpg"); + DALI_TEST_CHECK( true ); + } + catch(...) + { + DALI_TEST_CHECK( false ); + } + + END_TEST; +} + +int UtcDaliButtonSetDisabledImageN(void) +{ + ToolkitTestApplication application; + + PushButton button; + + try + { + button.SetDisabledImage( "TestImage.jpg"); + DALI_TEST_CHECK( false ); + } + catch(...) + { + DALI_TEST_CHECK( true ); + } + + END_TEST; +} + +int UtcDaliButtonSetDisabledSelectedImageP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + Stage::GetCurrent().Add( button ); + + try + { + button.SetDisabledSelectedImage( "TestImage.jpg"); + DALI_TEST_CHECK( true ); + } + catch(...) + { + DALI_TEST_CHECK( false ); + } + + END_TEST; +} + +int UtcDaliButtonSetDisabledSelectedImageN(void) +{ + ToolkitTestApplication application; + + PushButton button; + + try + { + button.SetDisabledSelectedImage( "TestImage.jpg"); + DALI_TEST_CHECK( false ); + } + catch(...) + { + DALI_TEST_CHECK( true ); + } + + END_TEST; +} + +int UtcDaliButtonSetLabelP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + Stage::GetCurrent().Add( button ); + + try + { + button.SetLabel( TextLabel::New("Hello") ); + DALI_TEST_CHECK( true ); + } + catch(...) + { + DALI_TEST_CHECK( false ); + } + + END_TEST; +} + +int UtcDaliButtonSetLabelN(void) +{ + ToolkitTestApplication application; + + PushButton button; + + try + { + button.SetLabel( TextLabel::New("Hello") ); + DALI_TEST_CHECK( false ); + } + catch(...) + { + DALI_TEST_CHECK( true ); + } + + END_TEST; +} + +int UtcDaliButtonSetButtonImageP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + Stage::GetCurrent().Add( button ); + + try + { + button.SetButtonImage( CreateBufferImage( 10, 10, Color::WHITE ) ); + DALI_TEST_CHECK( ImageView::DownCast( button.GetButtonImage() ) ); + } + catch(...) + { + DALI_TEST_CHECK( false ); + } + + END_TEST; +} + +int UtcDaliButtonSetButtonImageN(void) +{ + ToolkitTestApplication application; + + PushButton button; + + try + { + button.SetButtonImage( CreateBufferImage( 10, 10, Color::WHITE ) ); + DALI_TEST_CHECK( false ); + } + catch(...) + { + DALI_TEST_CHECK( true ); + } + + END_TEST; +} + +int UtcDaliButtonSetSelectedImageWithImageP(void) +{ + ToolkitTestApplication application; + + PushButton button = PushButton::New(); + Stage::GetCurrent().Add( button ); + + try + { + button.SetSelectedImage( CreateBufferImage( 10, 10, Color::WHITE ) ); + DALI_TEST_CHECK( ImageView::DownCast( button.GetSelectedImage() ) ); + } + catch(...) + { + DALI_TEST_CHECK( false ); + } + + END_TEST; +} + +int UtcDaliButtonSetSelectedImageWithImageN(void) +{ + ToolkitTestApplication application; + + PushButton button; + + try + { + button.SetSelectedImage( CreateBufferImage( 10, 10, Color::WHITE ) ); + DALI_TEST_CHECK( false ); + } + catch(...) + { + DALI_TEST_CHECK( true ); + } + + END_TEST; +} + +int UtcDaliButtonSetSelectedColorP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliButtonSetSelectedColorP"); + + PushButton pushButton = PushButton::New(); + Stage::GetCurrent().Add( pushButton ); + + application.SendNotification(); + application.Render(); + + const Vector4 SET_COLOR = Color::BLUE; + + pushButton.SetSize( Vector2( 20.0f, 20.0f ) ); + pushButton.SetProperty( Button::Property::SELECTED_COLOR, SET_COLOR ); + + application.SendNotification(); + application.Render(); + + Vector4 color = pushButton.GetProperty( Button::Property::SELECTED_COLOR ); + + DALI_TEST_EQUALS( color, SET_COLOR, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliButtonSetUnSelectedColorP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliButtonSetUnSelectedColorP"); + + PushButton pushButton = PushButton::New(); + Stage::GetCurrent().Add( pushButton ); + + application.SendNotification(); + application.Render(); + + const Vector4 SET_COLOR = Color::BLUE; + + pushButton.SetSize( Vector2( 20.0f, 20.0f ) ); + pushButton.SetProperty( Button::Property::UNSELECTED_COLOR, SET_COLOR ); + + application.SendNotification(); + application.Render(); + + Vector4 color = pushButton.GetProperty( Button::Property::UNSELECTED_COLOR ); + + DALI_TEST_EQUALS( color, SET_COLOR, TEST_LOCATION ); + + END_TEST; +} +