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=3e7f4cf83a48cd998791abdd5af39d91c467d38a;hp=fd5c491bf5c0fb78da822b8705fc840d56651f7c;hb=6c8eb158ad2fb68a20bdcfabf8e07dd017da0528;hpb=d5e3ed5f5b1c8fdba3ae97ead8729620f54b3836 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp index fd5c491..3e7f4cf 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Button.cpp @@ -42,14 +42,35 @@ void utc_dali_toolkit_button_cleanup(void) namespace { -static bool gButtonClicked = false; +static bool gIsCalledButtonCallback = false; -static bool ButtonClicked( Button button ) +static bool ButtonCallback( Button button ) { - gButtonClicked = true; + gIsCalledButtonCallback = true; return false; } +Image CreateSolidColorImage( const Vector4& color, unsigned int width, unsigned int height ) +{ + BufferImage imageData = BufferImage::New( width, height, Pixel::RGBA8888 ); + + // Create the image + PixelBuffer* pixbuf = imageData.GetBuffer(); + unsigned int size = width * height; + + 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; + } + + imageData.Update(); + + return imageData; +} + 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 ); @@ -60,158 +81,372 @@ const Dali::TouchPoint pointUpOutside( 0, TouchPoint::Up, 10, 10 ); static float ANIMATION_TIME( 0.5f ); } // namespace +int UtcDaliButtonConstructorP(void) +{ + TestApplication application; + + Button button; + DALI_TEST_CHECK( !button ); + END_TEST; +} + +int UtcDaliButtonCopyConstructorP(void) +{ + TestApplication application; + + // Initialize an object, ref count == 1 + Button button = PushButton::New(); + + Button copy( button ); + DALI_TEST_CHECK( copy ); + END_TEST; +} -// Positive test case for a method -int UtcDaliButtonNew(void) +int UtcDaliButtonAssignmentOperatorP(void) +{ + TestApplication application; + + Button button = PushButton::New(); + + Button copy( button ); + DALI_TEST_CHECK( copy ); + + DALI_TEST_CHECK( button == copy ); + END_TEST; +} + +int UtcDaliButtonDownCastP(void) +{ + TestApplication application; + + Button button = PushButton::New(); + + BaseHandle object(button); + + Button button2 = Button::DownCast( object ); + DALI_TEST_CHECK(button2); + + Button button3 = DownCast< Button >(object); + DALI_TEST_CHECK(button3); + END_TEST; +} + +int UtcDaliButtonDownCastN(void) +{ + TestApplication application; + + BaseHandle unInitializedObject; + + Button button1 = Button::DownCast( unInitializedObject ); + DALI_TEST_CHECK( !button1 ); + + Button button2 = DownCast< Button >( unInitializedObject ); + DALI_TEST_CHECK( !button2 ); + END_TEST; +} + +int UtcDaliButtonSetDisabledP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliButtonNew"); - PushButton pushButton = PushButton::New(); + Button button = PushButton::New(); + + button.SetDisabled( true ); - DALI_TEST_CHECK( pushButton ); + DALI_TEST_CHECK( button.IsDisabled() ); - PushButton pushButton2( pushButton ); + button.SetDisabled( false ); - DALI_TEST_CHECK( pushButton2 ); + DALI_TEST_CHECK( !button.IsDisabled() ); - pushButton2 = NULL; + button.SetDisabled( true ); - // Test down cast - Handle handleButton; - handleButton = pushButton; - Button downCastPushButton = Button::DownCast( handleButton ); - DALI_TEST_CHECK( downCastPushButton ); - PushButton downCastPushButton2 = PushButton::DownCast( handleButton ); - DALI_TEST_CHECK( downCastPushButton2 ); + DALI_TEST_CHECK( button.IsDisabled() ); + button.SetDisabled( false ); + + DALI_TEST_CHECK( !button.IsDisabled() ); END_TEST; } -int UtcDaliButtonSetProperty(void) +int UtcDaliButtonIsDisabledP(void) { - tet_infoline("UtcDaliButtonSetProperty: "); ToolkitTestApplication application; - PushButton pushButton = PushButton::New(); + Button button = PushButton::New(); - pushButton.SetProperty(pushButton.GetPropertyIndex("dimmed"), false); - DALI_TEST_CHECK( false == pushButton.IsDimmed() ); - pushButton.SetProperty(pushButton.GetPropertyIndex("dimmed"), true); - DALI_TEST_CHECK( true == pushButton.IsDimmed() ); + button.SetDisabled( true ); + + DALI_TEST_CHECK( button.IsDisabled() ); + + button.SetDisabled( false ); + + DALI_TEST_CHECK( !button.IsDisabled() ); END_TEST; } -int UtcDaliButtonSetGetDimmed(void) +int UtcDaliButtonSetAutoRepeatingP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliButtonSetGetDimmed"); - PushButton pushButton = PushButton::New(); + Button button = PushButton::New(); - pushButton.SetDimmed( true ); + button.SetAutoRepeating( true ); - DALI_TEST_CHECK( pushButton.IsDimmed() ); + DALI_TEST_CHECK( button.IsAutoRepeating() ); - pushButton.SetDimmed( false ); + button.SetAutoRepeating( false ); - DALI_TEST_CHECK( !pushButton.IsDimmed() ); + DALI_TEST_CHECK( !button.IsAutoRepeating() ); - pushButton.SetDimmed( true ); + button.SetAutoRepeating( true ); - DALI_TEST_CHECK( pushButton.IsDimmed() ); + DALI_TEST_CHECK( button.IsAutoRepeating() ); - pushButton.SetDimmed( false ); + button.SetAutoRepeating( false ); - DALI_TEST_CHECK( !pushButton.IsDimmed() ); + DALI_TEST_CHECK( !button.IsAutoRepeating() ); END_TEST; } -int UtcDaliButtonSize(void) +int UtcDaliButtonIsAutoRepeatingP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliButtonSize"); - ImageActor image01 = ImageActor::New(CreateBitmapImage()); - image01.SetSize( 100, 50 ); + Button button = PushButton::New(); - PushButton pushButton; + button.SetAutoRepeating( true ); - Vector3 size; + DALI_TEST_CHECK( button.IsAutoRepeating() ); - // Test1 Size is set through Actor API + button.SetAutoRepeating( false ); - // First an image is set, then SetSize is called. - pushButton = PushButton::New(); + DALI_TEST_CHECK( !button.IsAutoRepeating() ); + END_TEST; +} - pushButton.SetBackgroundImage( image01 ); - pushButton.SetSize( 10.f, 10.f ); +int UtcDaliButtonSetInitialAutoRepeatingDelayP(void) +{ + ToolkitTestApplication application; + + Button button = PushButton::New(); + + button.SetInitialAutoRepeatingDelay( 0.5f ); + + DALI_TEST_EQUALS( button.GetInitialAutoRepeatingDelay(), 0.5f, TEST_LOCATION ); + + button.SetInitialAutoRepeatingDelay( 0.2f ); + + DALI_TEST_EQUALS( button.GetInitialAutoRepeatingDelay(), 0.2f, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliButtonSetNextAutoRepeatingDelayP(void) +{ + ToolkitTestApplication application; + + Button button = PushButton::New(); + + button.SetNextAutoRepeatingDelay( 0.5f ); + + DALI_TEST_EQUALS( button.GetNextAutoRepeatingDelay(), 0.5f, TEST_LOCATION ); + + button.SetNextAutoRepeatingDelay( 0.2f ); + + DALI_TEST_EQUALS( button.GetNextAutoRepeatingDelay(), 0.2f, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliButtonSetTogglableButtonP(void) +{ + ToolkitTestApplication application; + + Button button = PushButton::New(); + + button.SetTogglableButton( true ); + + DALI_TEST_CHECK( button.IsTogglableButton() ); + + button.SetTogglableButton( false ); + + DALI_TEST_CHECK( !button.IsTogglableButton() ); + END_TEST; +} + +int UtcDaliButtonSetSelectedP(void) +{ + ToolkitTestApplication application; + + Button button = PushButton::New(); + button.SetTogglableButton( true ); + + button.SetSelected( true ); + + DALI_TEST_CHECK( button.IsSelected() ); + + button.SetSelected( false ); + + DALI_TEST_CHECK( !button.IsSelected() ); + END_TEST; +} + +int UtcDaliButtonSetAnimationTimeP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliButtonSetAnimationTimeP"); + + Button button = PushButton::New(); + + button.SetAnimationTime( ANIMATION_TIME ); + + DALI_TEST_EQUALS( button.GetAnimationTime(), ANIMATION_TIME, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliButtonSetLabelStringP(void) +{ + ToolkitTestApplication application; + + Button button = PushButton::New(); + + button.SetLabel( "Button Label" ); + + DALI_TEST_CHECK( button.GetLabel() ); + END_TEST; +} + +int UtcDaliButtonSetLabelActorP(void) +{ + ToolkitTestApplication application; + + Button button = PushButton::New(); + + TextLabel textLabel = TextLabel::New( "Button Label" ); + button.SetLabel( textLabel ); + + DALI_TEST_CHECK( button.GetLabel() ); + END_TEST; +} + +int UtcDaliButtonSetButtonImage(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliButtonSetButtonImage"); + + Image image = CreateSolidColorImage( Color::RED, 10, 10 ); + + PushButton pushButton = PushButton::New(); + Stage::GetCurrent().Add( pushButton ); application.SendNotification(); application.Render(); - size = pushButton.GetCurrentSize(); + pushButton.SetSize( Vector2( 20.0f, 20.0f ) ); + pushButton.SetButtonImage( image ); + + application.SendNotification(); + application.Render(); + + Vector3 size = pushButton.GetCurrentSize(); + + DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION ); + DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION ); - DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION ); END_TEST; } -int UtcDaliButtonClicked(void) +int UtcDaliButtonSetSelectedImageP(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliButtonClicked"); + tet_infoline(" UtcDaliButtonSetButtonImage"); - PushButton pushButton = PushButton::New(); - pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); - pushButton.SetPosition( 240, 400 ); - pushButton.SetSize( 100, 100 ); + Image image = CreateSolidColorImage( Color::RED, 10, 10 ); + PushButton pushButton = PushButton::New(); Stage::GetCurrent().Add( pushButton ); application.SendNotification(); application.Render(); + pushButton.SetSize( Vector2( 20.0f, 20.0f ) ); + pushButton.SetSelectedImage( image ); + + application.SendNotification(); + application.Render(); + + Vector3 size = pushButton.GetCurrentSize(); + + DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION ); + DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliButtonPressedSignalP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliButtonPressedSignalP"); + + Button button = PushButton::New(); + button.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + button.SetParentOrigin( ParentOrigin::TOP_LEFT ); + button.SetPosition( 240, 400 ); + button.SetSize( 100, 100 ); + + Stage::GetCurrent().Add( button ); + + application.SendNotification(); + application.Render(); + // connect to its touch signal - pushButton.ClickedSignal().Connect( &ButtonClicked ); + button.PressedSignal().Connect( &ButtonCallback ); + button.ReleasedSignal().Connect( &ButtonCallback ); Dali::Integration::TouchEvent event; // Test1. Touch point down and up inside the button. - gButtonClicked = false; + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointDownInside ); application.ProcessEvent( event ); + DALI_TEST_CHECK( gIsCalledButtonCallback ); + + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointUpInside ); application.ProcessEvent( event ); - DALI_TEST_CHECK( gButtonClicked ); + DALI_TEST_CHECK( gIsCalledButtonCallback ); // Test2. Touch point down and up outside the button. - gButtonClicked = false; + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointDownOutside ); application.ProcessEvent( event ); + DALI_TEST_CHECK( !gIsCalledButtonCallback ); + + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointUpOutside ); application.ProcessEvent( event ); - DALI_TEST_CHECK( !gButtonClicked ); + DALI_TEST_CHECK( !gIsCalledButtonCallback ); // Test3. Touch point down inside and up outside the button. - gButtonClicked = false; + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointDownInside ); application.ProcessEvent( event ); + DALI_TEST_CHECK( gIsCalledButtonCallback ); + + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointLeave ); application.ProcessEvent( event ); @@ -220,15 +455,18 @@ int UtcDaliButtonClicked(void) event.AddPoint( pointUpOutside ); application.ProcessEvent( event ); - DALI_TEST_CHECK( !gButtonClicked ); + DALI_TEST_CHECK( gIsCalledButtonCallback ); // Test4. Touch point down outside and up inside the button. - gButtonClicked = false; + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointDownOutside ); application.ProcessEvent( event ); + DALI_TEST_CHECK( !gIsCalledButtonCallback ); + + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointEnter ); application.ProcessEvent( event ); @@ -237,48 +475,34 @@ int UtcDaliButtonClicked(void) event.AddPoint( pointUpInside ); application.ProcessEvent( event ); - DALI_TEST_CHECK( !gButtonClicked ); + DALI_TEST_CHECK( !gIsCalledButtonCallback ); END_TEST; } -namespace -{ - -static bool gClickedCallBackCalled; - -static bool TestClickedCallback(Button button) -{ - gClickedCallBackCalled = true; - return true; -} - -} // namespace - -int UtcDaliButtonConnectSignal(void) +int UtcDaliButtonClickedSignalP(void) { ToolkitTestApplication application; - tet_infoline("UtcDaliButtonConnectSignal()"); - - gClickedCallBackCalled = false; + tet_infoline(" UtcDaliButtonClickedSignalP"); - PushButton pushButton = PushButton::New(); - pushButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - pushButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); - pushButton.SetPosition( 240, 400 ); - pushButton.SetSize( 100, 100 ); + Button button = PushButton::New(); + button.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + button.SetParentOrigin( ParentOrigin::TOP_LEFT ); + button.SetPosition( 240, 400 ); + button.SetSize( 100, 100 ); - Stage::GetCurrent().Add( pushButton ); + Stage::GetCurrent().Add( button ); application.SendNotification(); application.Render(); - // connect to its clicked signal - pushButton.ClickedSignal().Connect(TestClickedCallback); + // connect to its touch signal + button.ClickedSignal().Connect( &ButtonCallback ); Dali::Integration::TouchEvent event; - // Touch point down and up inside the button. + // Test1. Touch point down and up inside the button. + gIsCalledButtonCallback = false; event = Dali::Integration::TouchEvent(); event.AddPoint( pointDownInside ); application.ProcessEvent( event ); @@ -287,28 +511,126 @@ int UtcDaliButtonConnectSignal(void) event.AddPoint( pointUpInside ); application.ProcessEvent( event ); - DALI_TEST_CHECK( gClickedCallBackCalled == true ); + DALI_TEST_CHECK( gIsCalledButtonCallback ); + + // Test2. Touch point down and up outside the button. + + gIsCalledButtonCallback = false; + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointDownOutside ); + application.ProcessEvent( event ); + + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointUpOutside ); + application.ProcessEvent( event ); + + DALI_TEST_CHECK( !gIsCalledButtonCallback ); + + // Test3. Touch point down inside and up outside the button. - gClickedCallBackCalled = false; - pushButton.ClickedSignal().Disconnect(TestClickedCallback); + gIsCalledButtonCallback = false; + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointDownInside ); + application.ProcessEvent( event ); - // simulate another touch event + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointLeave ); application.ProcessEvent( event ); - DALI_TEST_CHECK( gClickedCallBackCalled == false ); + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointUpOutside ); + application.ProcessEvent( event ); + + DALI_TEST_CHECK( !gIsCalledButtonCallback ); + + // Test4. Touch point down outside and up inside the button. + + gIsCalledButtonCallback = false; + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointDownOutside ); + application.ProcessEvent( event ); + + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointEnter ); + application.ProcessEvent( event ); + + event = Dali::Integration::TouchEvent(); + event.AddPoint( pointUpInside ); + application.ProcessEvent( event ); + + DALI_TEST_CHECK( !gIsCalledButtonCallback ); + END_TEST; +} + +int UtcDaliButtonStateChangedSignalP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliButtonStateChangedSignalP"); + + Button button = PushButton::New(); + button.SetTogglableButton( true ); + + Stage::GetCurrent().Add( button ); + + application.SendNotification(); + application.Render(); + + // connect to its signal + button.StateChangedSignal().Connect( &ButtonCallback ); + + gIsCalledButtonCallback = false; + button.SetSelected( true ); + + DALI_TEST_CHECK( gIsCalledButtonCallback ); + + gIsCalledButtonCallback = false; + button.SetSelected( false ); + + DALI_TEST_CHECK( gIsCalledButtonCallback ); END_TEST; } -int UtcDaliButtonSetGetAnimationTime(void) +int UtcDaliButtonSetProperty(void) { + tet_infoline("UtcDaliButtonSetProperty: "); ToolkitTestApplication application; - tet_infoline(" UtcDaliButtonSetGetAnimationTime"); PushButton pushButton = PushButton::New(); - pushButton.SetAnimationTime( ANIMATION_TIME ); + 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; +} + +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(); + Stage::GetCurrent().Add( pushButton ); + + pushButton.SetBackgroundImage( image01 ); + pushButton.SetSize( 10.f, 10.f ); + + application.SendNotification(); + application.Render(); - DALI_TEST_EQUALS( pushButton.GetAnimationTime(), ANIMATION_TIME, TEST_LOCATION ); + size = pushButton.GetCurrentSize(); + DALI_TEST_EQUALS( size.width, 10.f, TEST_LOCATION ); + DALI_TEST_EQUALS( size.height, 10.f, TEST_LOCATION ); END_TEST; }