X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-TextEditor.cpp;h=66805ccfc64528bc320f79d131941152acfd9997;hb=67ea1e508cc155651fcb79825ed02f3cad7a6c0e;hp=9fd67895f707ea17934de54615e72bec87e40577;hpb=eaebf2e8aa5903e4acbb37ae46050e009863146c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp index 9fd6789..66805cc 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp @@ -18,7 +18,6 @@ #include #include #include - #include #include #include @@ -97,6 +96,7 @@ const char* const PROPERTY_NAME_PIXEL_SIZE = "pixelSiz const char* const PROPERTY_NAME_LINE_COUNT = "lineCount"; const char* const PROPERTY_NAME_PLACEHOLDER_TEXT = "placeholderText"; const char* const PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR = "placeholderTextColor"; +const char* const PROPERTY_NAME_ENABLE_SELECTION = "enableSelection"; const int DEFAULT_RENDERING_BACKEND = Dali::Toolkit::Text::DEFAULT_RENDERING_BACKEND; @@ -299,6 +299,31 @@ bool DaliTestCheckMaps( const Property::Map& fontStyleMapGet, const Property::Ma return true; } +class ScrollStateChangeCallback : public Dali::ConnectionTracker +{ +public: + ScrollStateChangeCallback(bool& startedCalled, bool& finishedCalled) + : mStartedCalled( startedCalled ), + mFinishedCalled( finishedCalled ) + { + } + + void Callback( TextEditor editor, DevelTextEditor::Scroll::Type type ) + { + if( type == DevelTextEditor::Scroll::STARTED ) + { + mStartedCalled = true; + } + else if( type == DevelTextEditor::Scroll::FINISHED ) + { + mFinishedCalled = true; + } + } + + bool& mStartedCalled; + bool& mFinishedCalled; +}; + } // namespace int UtcDaliToolkitTextEditorConstructorP(void) @@ -441,6 +466,7 @@ int UtcDaliTextEditorGetPropertyP(void) DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_LINE_COUNT) == DevelTextEditor::Property::LINE_COUNT ); DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT ) == DevelTextEditor::Property::PLACEHOLDER_TEXT ); DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT_COLOR ) == DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR ); + DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_SELECTION ) == DevelTextEditor::Property::ENABLE_SELECTION ); END_TEST; } @@ -747,6 +773,9 @@ int UtcDaliTextEditorSetPropertyP(void) editor.SetProperty( DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR, Color::RED ); DALI_TEST_EQUALS( editor.GetProperty( DevelTextEditor::Property::PLACEHOLDER_TEXT_COLOR ), Color::RED, TEST_LOCATION ); + editor.SetProperty( DevelTextEditor::Property::ENABLE_SELECTION, false ); + DALI_TEST_EQUALS( editor.GetProperty( DevelTextEditor::Property::ENABLE_SELECTION ), false, TEST_LOCATION ); + END_TEST; } @@ -1571,17 +1600,18 @@ int utcDaliTextEditorEvent03(void) // The stencil actor should have two actors: the renderer and the highlight actor. Actor stencil = editor.GetChildAt( 0u ); + // Highlight needs to be drawn before text, so should come first in child order + Renderer highlight = stencil.GetChildAt( 0u ).GetRendererAt( 0u ); + DALI_TEST_CHECK( highlight ); + // The stencil actor has a container with all the actors which contain the text renderers. - Actor container = stencil.GetChildAt( 0u ); + Actor container = stencil.GetChildAt( 1u ); for( unsigned int index = 0; index < container.GetChildCount(); ++index ) { Renderer renderer = container.GetChildAt( index ).GetRendererAt( 0u ); DALI_TEST_CHECK( renderer ); } - Renderer highlight = stencil.GetChildAt( 1u ).GetRendererAt( 0u ); - DALI_TEST_CHECK( highlight ); - // Double tap out of bounds application.ProcessEvent( GenerateTap( Gesture::Possible, 2u, 1u, Vector2( 29.f, 25.0f ) ) ); application.ProcessEvent( GenerateTap( Gesture::Started, 2u, 1u, Vector2( 29.f, 25.0f ) ) ); @@ -1777,6 +1807,70 @@ int utcDaliTextEditorEvent05(void) END_TEST; } +int utcDaliTextEditorEvent06(void) +{ + ToolkitTestApplication application; + tet_infoline(" utcDaliTextEditorEvent06"); + + // Checks if the highlight actor is created. + + TextEditor editor = TextEditor::New(); + DALI_TEST_CHECK( editor ); + + Stage::GetCurrent().Add( editor ); + + editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworld\nHello world" ); + editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f ); + editor.SetSize( 100.f, 50.f ); + editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); + editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + + // Avoid a crash when core load gl resources. + application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); + + // Render and notify + application.SendNotification(); + application.Render(); + + // Tap on the text editor + application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); + application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); + + // Render and notify + application.SendNotification(); + application.Render(); + + // Move to seconds line of the text. + application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::Down, DEFAULT_DEVICE_NAME, DevelKeyEvent::DeviceClass::NONE ) ); + + // Render and notify + application.SendNotification(); + application.Render(); + + float layoutHeight = editor.GetHeightForWidth( 100.f ); + + + // Add another script characters ( glyph height is defferent ) + application.ProcessEvent( GenerateKey( "d", "ㅁ", KEY_D_CODE, 0, 0, Integration::KeyEvent::Down, DEFAULT_DEVICE_NAME, DevelKeyEvent::DeviceClass::NONE ) ); + application.ProcessEvent( GenerateKey( "d", "ኢ", KEY_D_CODE, 0, 0, Integration::KeyEvent::Down, DEFAULT_DEVICE_NAME, DevelKeyEvent::DeviceClass::NONE ) ); + + // Delete characters + application.ProcessEvent( GenerateKey( "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::Down, DEFAULT_DEVICE_NAME, DevelKeyEvent::DeviceClass::NONE ) ); + application.ProcessEvent( GenerateKey( "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::Down, DEFAULT_DEVICE_NAME, DevelKeyEvent::DeviceClass::NONE ) ); + + DALI_TEST_EQUALS( layoutHeight, editor.GetHeightForWidth( 100.f ), TEST_LOCATION ); + + // Render and notify + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( "Hello\nworld\nHello world", editor.GetProperty( TextEditor::Property::TEXT ), TEST_LOCATION ); + + + + END_TEST; +} + int utcDaliTextEditorHandles(void) { ToolkitTestApplication application; @@ -1957,6 +2051,7 @@ int utcDaliTextEditorFontStylePropertyStringP(void) END_TEST; } + int utcDaliTextEditorGetPropertyLinecountP(void) { ToolkitTestApplication application; @@ -1982,3 +2077,44 @@ int utcDaliTextEditorGetPropertyLinecountP(void) END_TEST; } + +int utcDaliTextEditorScrollStateChangedSignalTest(void) +{ + + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextEditorScrollStateChangedSignalTest"); + + TextEditor editor = TextEditor::New(); + DALI_TEST_CHECK( editor ); + + Stage::GetCurrent().Add( editor ); + + editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f ); + editor.SetSize( 50.f, 50.f ); + editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); + editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( DevelTextEditor::Property::ENABLE_SCROLL_BAR, true ); + editor.SetKeyboardFocusable(true); + + bool startedCalled = false; + bool finishedCalled = false; + + ScrollStateChangeCallback callback( startedCalled, finishedCalled ); + DevelTextEditor::ScrollStateChangedSignal( editor ).Connect( &callback, &ScrollStateChangeCallback::Callback ); + + KeyboardFocusManager::Get().SetCurrentFocusActor( editor ); + + // Render and notify + application.SendNotification(); + application.Render(); + + editor.SetProperty( TextEditor::Property::TEXT, "Long enough message for TextEditor!"); + application.SendNotification(); + application.Render(6000); + + application.SendNotification(); + DALI_TEST_EQUALS( startedCalled, true, TEST_LOCATION ); + DALI_TEST_EQUALS( finishedCalled, true, TEST_LOCATION ); + + END_TEST; +}