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-TextEditor.cpp;h=f4a05e74ba1375649710c7d7015be5f59c19da91;hp=94cc0111c3f92f0c2a511366dad252b2edabed38;hb=dea624eb348a4926d8761c8a1364f03f9f71acf5;hpb=f558388c388bcdf4939ca7af098cbcfc1631ad89 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp old mode 100755 new mode 100644 index 94cc011..f4a05e7 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 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. @@ -21,14 +21,13 @@ #include #include #include +#include #include #include -#include -#include -#include #include #include #include +#include using namespace Dali; using namespace Toolkit; @@ -102,21 +101,14 @@ const char* const PROPERTY_NAME_PLACEHOLDER = "placehol const char* const PROPERTY_NAME_ENABLE_SHIFT_SELECTION = "enableShiftSelection"; const char* const PROPERTY_NAME_ENABLE_GRAB_HANDLE = "enableGrabHandle"; const char* const PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION = "matchSystemLanguageDirection"; +const char* const PROPERTY_NAME_MAX_LENGTH = "maxLength"; -const int DEFAULT_RENDERING_BACKEND = Dali::Toolkit::Text::DEFAULT_RENDERING_BACKEND; - const Vector4 PLACEHOLDER_TEXT_COLOR( 0.8f, 0.8f, 0.8f, 0.8f ); const Dali::Vector4 LIGHT_BLUE( 0.75f, 0.96f, 1.f, 1.f ); // The text highlight color. -const unsigned int CURSOR_BLINK_INTERVAL = 500u; // Cursor blink interval -const float TO_MILLISECONDS = 1000.f; -const float TO_SECONDS = 1.f / TO_MILLISECONDS; const float RENDER_FRAME_INTERVAL = 16.66f; -const float SCROLL_THRESHOLD = 10.f; -const float SCROLL_SPEED = 300.f; - const unsigned int DEFAULT_FONT_SIZE = 1152u; const std::string DEFAULT_FONT_DIR( "/resources/fonts" ); @@ -136,6 +128,7 @@ const std::string DEFAULT_DEVICE_NAME("hwKeyboard"); static bool gTextChangedCallBackCalled; static bool gInputStyleChangedCallbackCalled; +static bool gMaxCharactersCallBackCalled; static Dali::Toolkit::TextEditor::InputStyle::Mask gInputStyleMask; struct CallbackFunctor @@ -167,49 +160,11 @@ static void TestInputStyleChangedCallback( TextEditor control, TextEditor::Input gInputStyleMask = mask; } -// Generate a TapGestureEvent to send to Core. -Integration::TapGestureEvent GenerateTap( - Gesture::State state, - unsigned int numberOfTaps, - unsigned int numberOfTouches, - Vector2 point) -{ - Integration::TapGestureEvent tap( state ); - - tap.numberOfTaps = numberOfTaps; - tap.numberOfTouches = numberOfTouches; - tap.point = point; - - return tap; -} - -Integration::LongPressGestureEvent GenerateLongPress( - Gesture::State state, - unsigned int numberOfTouches, - Vector2 point) +static void TestMaxLengthReachedCallback( TextEditor control ) { - Integration::LongPressGestureEvent longPress( state ); + tet_infoline(" TestMaxLengthReachedCallback"); - longPress.numberOfTouches = numberOfTouches; - longPress.point = point; - return longPress; -} - -// 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 = 1u ) -{ - Integration::PanGestureEvent pan(state); - - pan.previousPosition = previousPosition; - pan.currentPosition = currentPosition; - pan.timeDelta = timeDelta; - pan.numberOfTouches = numberOfTouches; - - return pan; + gMaxCharactersCallBackCalled = true; } // Generate a KeyEvent to send to Core. @@ -238,53 +193,6 @@ Integration::KeyEvent GenerateKey( const std::string& keyName, deviceSubclass ); } -/** - * 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, 16 ) ); - - last.x = pos.x; - last.y = pos.y; -} - -/* - * Simulate time passed by. - * - * @note this will always process at least 1 frame (1/60 sec) - * - * @param application Test application instance - * @param duration Time to pass in milliseconds. - * @return The actual time passed in milliseconds - */ -static 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; - } - - return time; -} - Dali::Integration::Point GetPointDownInside( Vector2& pos ) { Dali::Integration::Point point; @@ -461,6 +369,23 @@ int UtcDaliToolkitTextEditorCopyConstructorP(void) END_TEST; } +int UtcDaliTextEditorMoveConstructor(void) +{ + ToolkitTestApplication application; + + TextEditor textEditor = TextEditor::New(); + textEditor.SetProperty( TextEditor::Property::TEXT, "Test" ); + DALI_TEST_CHECK( textEditor.GetProperty( TextEditor::Property::TEXT ) == "Test" ); + + TextEditor moved = std::move( textEditor ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( moved.GetProperty( TextEditor::Property::TEXT ) == "Test" ); + DALI_TEST_CHECK( !textEditor ); + + END_TEST; +} + int UtcDaliToolkitTextEditorAssignmentOperatorP(void) { ToolkitTestApplication application; @@ -474,6 +399,24 @@ int UtcDaliToolkitTextEditorAssignmentOperatorP(void) END_TEST; } +int UtcDaliTextEditorMoveAssignment(void) +{ + ToolkitTestApplication application; + + TextEditor textEditor = TextEditor::New(); + textEditor.SetProperty( TextEditor::Property::TEXT, "Test" ); + DALI_TEST_CHECK( textEditor.GetProperty( TextEditor::Property::TEXT ) == "Test" ); + + TextEditor moved; + moved = std::move( textEditor ); + DALI_TEST_CHECK( moved ); + DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION ); + DALI_TEST_CHECK( moved.GetProperty( TextEditor::Property::TEXT ) == "Test" ); + DALI_TEST_CHECK( !textEditor ); + + END_TEST; +} + int UtcDaliTextEditorNewP(void) { ToolkitTestApplication application; @@ -492,7 +435,7 @@ int UtcDaliTextEditorGetPropertyP(void) DALI_TEST_CHECK( editor ); // Check Property Indices are correct - DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_RENDERING_BACKEND ) == TextEditor::Property::RENDERING_BACKEND ); + DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_RENDERING_BACKEND ) == DevelTextEditor::Property::RENDERING_BACKEND ); DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_TEXT ) == TextEditor::Property::TEXT ); DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_TEXT_COLOR ) == TextEditor::Property::TEXT_COLOR ); DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_FONT_FAMILY ) == TextEditor::Property::FONT_FAMILY ); @@ -547,6 +490,7 @@ int UtcDaliTextEditorGetPropertyP(void) DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_SHIFT_SELECTION ) == DevelTextEditor::Property::ENABLE_SHIFT_SELECTION ); DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_ENABLE_GRAB_HANDLE ) == DevelTextEditor::Property::ENABLE_GRAB_HANDLE ); DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_MATCH_SYSTEM_LANGUAGE_DIRECTION ) == DevelTextEditor::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION ); + DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_MAX_LENGTH ) == DevelTextEditor::Property::MAX_LENGTH ); END_TEST; } @@ -576,13 +520,13 @@ int UtcDaliTextEditorSetPropertyP(void) tet_infoline(" UtcDaliToolkitTextEditorSetPropertyP"); TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); // Note - we can't check the defaults since the stylesheets are platform-specific // Check the render backend property. - editor.SetProperty( TextEditor::Property::RENDERING_BACKEND, Text::RENDERING_SHARED_ATLAS ); - DALI_TEST_EQUALS( (Text::RenderingType)editor.GetProperty( TextEditor::Property::RENDERING_BACKEND ), Text::RENDERING_SHARED_ATLAS, TEST_LOCATION ); + editor.SetProperty( DevelTextEditor::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS ); + DALI_TEST_EQUALS( (DevelText::RenderingType)editor.GetProperty( DevelTextEditor::Property::RENDERING_BACKEND ), DevelText::RENDERING_SHARED_ATLAS, TEST_LOCATION ); // Check text property. editor.SetProperty( TextEditor::Property::TEXT, "Setting Text" ); @@ -769,9 +713,9 @@ int UtcDaliTextEditorSetPropertyP(void) Property::Map underlineMapSet; Property::Map underlineMapGet; - underlineMapSet.Insert( "enable", "true" ); - underlineMapSet.Insert( "color", "red" ); - underlineMapSet.Insert( "height", "1" ); + underlineMapSet.Insert( "enable", true ); + underlineMapSet.Insert( "color", Color::RED ); + underlineMapSet.Insert( "height", 1 ); editor.SetProperty( TextEditor::Property::UNDERLINE, underlineMapSet ); @@ -977,12 +921,12 @@ int utcDaliTextEditorAtlasRenderP(void) application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); try { // Render some text with the shared atlas backend - editor.SetProperty( TextEditor::Property::RENDERING_BACKEND, Text::RENDERING_SHARED_ATLAS ); + editor.SetProperty( DevelTextEditor::Property::RENDERING_BACKEND, DevelText::RENDERING_SHARED_ATLAS ); application.SendNotification(); application.Render(); } @@ -1001,7 +945,7 @@ int utcDaliTextEditorTextChangedP(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); // connect to the text changed signal. ConnectionTracker* testTracker = new ConnectionTracker(); @@ -1027,15 +971,13 @@ int utcDaliTextEditorTextChangedP(void) int utcDaliTextEditorInputStyleChanged01(void) { - ToolkitTestApplication application; - tet_infoline(" utcDaliTextEditorInputStyleChanged01"); - // The text-editor emits signals when the input style changes. These changes of style are // detected during the relayout process (size negotiation), i.e after the cursor has been moved. Signals // can't be emitted during the size negotiation as the callbacks may update the UI. // The text-editor adds an idle callback to the adaptor to emit the signals after the size negotiation. - // This creates an implementation of the adaptor stub and a queue of idle callbacks. - application.CreateAdaptor(); + // The ToolkitTestApplication creates an implementation of the adaptor stub and a queue of idle callbacks. + ToolkitTestApplication application; + tet_infoline(" utcDaliTextEditorInputStyleChanged01"); // Load some fonts. @@ -1053,9 +995,9 @@ int utcDaliTextEditorInputStyleChanged01(void) DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); editor.SetProperty( TextEditor::Property::ENABLE_MARKUP, true ); editor.SetProperty( TextEditor::Property::TEXT, "Hello world demo" ); @@ -1066,7 +1008,7 @@ int utcDaliTextEditorInputStyleChanged01(void) bool inputStyleChangedSignal = false; editor.ConnectSignal( testTracker, "inputStyleChanged", CallbackFunctor(&inputStyleChangedSignal) ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); // Render and notify application.SendNotification(); @@ -1080,8 +1022,7 @@ int utcDaliTextEditorInputStyleChanged01(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 18.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 18.f, 25.f ) ) ); + TestGenerateTap( application, 18.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1108,8 +1049,7 @@ int utcDaliTextEditorInputStyleChanged01(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 30.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 30.f, 25.f ) ) ); + TestGenerateTap( application, 30.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1126,8 +1066,7 @@ int utcDaliTextEditorInputStyleChanged01(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 43.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 43.f, 25.f ) ) ); + TestGenerateTap( application, 43.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1151,8 +1090,7 @@ int utcDaliTextEditorInputStyleChanged01(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 88.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 88.f, 25.f ) ) ); + TestGenerateTap( application, 88.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1185,8 +1123,7 @@ int utcDaliTextEditorInputStyleChanged01(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 115.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 115.f, 25.f ) ) ); + TestGenerateTap( application, 115.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1203,8 +1140,7 @@ int utcDaliTextEditorInputStyleChanged01(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 164.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 164.f, 25.f ) ) ); + TestGenerateTap( application, 164.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1232,8 +1168,7 @@ int utcDaliTextEditorInputStyleChanged01(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 191.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 191.f, 25.f ) ) ); + TestGenerateTap( application, 191.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1250,15 +1185,13 @@ int utcDaliTextEditorInputStyleChanged01(void) int utcDaliTextEditorInputStyleChanged02(void) { - ToolkitTestApplication application; - tet_infoline(" utcDaliTextEditorInputStyleChanged02"); - // The text-editor emits signals when the input style changes. These changes of style are // detected during the relayout process (size negotiation), i.e after the cursor has been moved. Signals // can't be emitted during the size negotiation as the callbacks may update the UI. // The text-editor adds an idle callback to the adaptor to emit the signals after the size negotiation. - // This creates an implementation of the adaptor stub and a queue of idle callbacks. - application.CreateAdaptor(); + // The ToolkitTestApplication creates an implementation of the adaptor stub and a queue of idle callbacks. + ToolkitTestApplication application; + tet_infoline(" utcDaliTextEditorInputStyleChanged02"); // Load some fonts. @@ -1276,9 +1209,9 @@ int utcDaliTextEditorInputStyleChanged02(void) DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); editor.SetProperty( TextEditor::Property::ENABLE_MARKUP, true ); editor.SetProperty( TextEditor::Property::TEXT, "He llo world demo" ); @@ -1289,7 +1222,7 @@ int utcDaliTextEditorInputStyleChanged02(void) bool inputStyleChangedSignal = false; editor.ConnectSignal( testTracker, "inputStyleChanged", CallbackFunctor(&inputStyleChangedSignal) ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); // Render and notify application.SendNotification(); @@ -1303,10 +1236,8 @@ int utcDaliTextEditorInputStyleChanged02(void) inputStyleChangedSignal = false; // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 53.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 53.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Possible, 2u, 1u, Vector2( 53.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 2u, 1u, Vector2( 53.f, 25.f ) ) ); + TestGenerateTap( application, 53.0f, 25.0f, 100 ); + TestGenerateTap( application, 53.0f, 25.0f, 200 ); // Render and notify application.SendNotification(); @@ -1434,8 +1365,7 @@ int utcDaliTextEditorInputStyleChanged02(void) DALI_TEST_CHECK( !inputStyleChangedSignal ); // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 63.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 63.f, 25.f ) ) ); + TestGenerateTap( application, 63.0f, 25.0f, 900 ); // Render and notify application.SendNotification(); @@ -1477,8 +1407,7 @@ int utcDaliTextEditorInputStyleChanged02(void) editor.SetProperty( TextEditor::Property::FONT_STYLE, fontStyleMapSet ); // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 30.f, 25.f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 30.f, 25.f ) ) ); + TestGenerateTap( application, 30.0f, 25.0f, 1500 ); // Render and notify application.SendNotification(); @@ -1515,11 +1444,11 @@ int utcDaliTextEditorEvent01(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -1538,8 +1467,7 @@ int utcDaliTextEditorEvent01(void) DALI_TEST_EQUALS( editor.GetProperty( TextEditor::Property::TEXT ), std::string(""), TEST_LOCATION ); // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 25.0f ) ) ); + TestGenerateTap( application, 150.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1558,20 +1486,19 @@ int utcDaliTextEditorEvent01(void) // Create a second text editor and send key events to it. TextEditor editor2 = TextEditor::New(); - editor2.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor2.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - editor2.SetSize( 100.f, 100.f ); - editor2.SetPosition( 100.f, 100.f ); + editor2.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor2.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + editor2.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) ); + editor2.SetProperty( Actor::Property::POSITION, Vector2( 100.f, 100.f )); - Stage::GetCurrent().Add( editor2 ); + application.GetScene().Add( editor2 ); // Render and notify application.SendNotification(); application.Render(); // Create a tap event on the second text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 125.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 125.0f ) ) ); + TestGenerateTap( application, 150.0f, 125.0f ); // Render and notify application.SendNotification(); @@ -1602,11 +1529,11 @@ int utcDaliTextEditorEvent02(void) editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f ); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -1621,15 +1548,14 @@ int utcDaliTextEditorEvent02(void) Actor stencil = editor.GetChildAt( 0u ); // Create a tap event to touch the text editor. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 25.0f ) ) ); + TestGenerateTap( application, 150.0f, 25.0f, 100 ); // Render and notify application.SendNotification(); application.Render(); Actor layer = editor.GetChildAt( 1u ); - DALI_TEST_CHECK( layer.IsLayer() ); + DALI_TEST_CHECK( layer.GetProperty< bool >( Actor::Property::IS_LAYER ) ); DALI_TEST_EQUALS( layer.GetChildCount(), 1u, TEST_LOCATION ); // The cursor. DALI_TEST_EQUALS( stencil.GetChildCount(), 0u, TEST_LOCATION ); @@ -1658,7 +1584,7 @@ int utcDaliTextEditorEvent02(void) } // Move the cursor and check the position changes. - Vector3 position1 = cursor.GetCurrentPosition(); + Vector3 position1 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ); application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::Down, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) ); application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::Down, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) ); @@ -1667,7 +1593,7 @@ int utcDaliTextEditorEvent02(void) application.SendNotification(); application.Render(); - Vector3 position2 = cursor.GetCurrentPosition(); + Vector3 position2 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ); DALI_TEST_CHECK( position2.x < position1.x ); @@ -1678,34 +1604,32 @@ int utcDaliTextEditorEvent02(void) application.SendNotification(); application.Render(); - Vector3 position3 = cursor.GetCurrentPosition(); + Vector3 position3 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ); DALI_TEST_EQUALS( position1, position3, TEST_LOCATION ); // Should be in the same position1. // Send some taps and check the cursor positions. // Try to tap at the beginning. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 1.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 1.f, 25.0f ) ) ); + TestGenerateTap( application, 1.0f, 25.0f, 700 ); // Render and notify application.SendNotification(); application.Render(); // Cursor position should be the same than position1. - Vector3 position4 = cursor.GetCurrentPosition(); + Vector3 position4 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ); DALI_TEST_EQUALS( position2, position4, TEST_LOCATION ); // Should be in the same position2. // Tap away from the start position. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 16.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 16.0f, 25.0f ) ) ); + TestGenerateTap( application, 16.0f, 25.0f, 1400 ); // Render and notify application.SendNotification(); application.Render(); - Vector3 position5 = cursor.GetCurrentPosition(); + Vector3 position5 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ); DALI_TEST_CHECK( position5.x > position4.x ); @@ -1719,7 +1643,7 @@ int utcDaliTextEditorEvent02(void) application.Render(); // Cursor position should be the same than position2. - Vector3 position6 = cursor.GetCurrentPosition(); + Vector3 position6 = cursor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ); DALI_TEST_EQUALS( position2, position6, TEST_LOCATION );// Should be in the same position2. @@ -1739,13 +1663,13 @@ int utcDaliTextEditorEvent03(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::TEXT, "This is a long text for the size of the text-editor." ); editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f ); - editor.SetSize( 30.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 30.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -1757,8 +1681,7 @@ int utcDaliTextEditorEvent03(void) // Send some taps and check text controller with clipboard window Dali::Clipboard clipboard = Clipboard::Get(); clipboard.ShowClipboard(); - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); + TestGenerateTap( application, 3.0f, 25.0f, 100 ); clipboard.HideClipboard(); // Render and notify @@ -1766,16 +1689,14 @@ int utcDaliTextEditorEvent03(void) application.Render(); // Tap first to get the focus. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); + TestGenerateTap( application, 3.0f, 25.0f, 1000 ); // Render and notify application.SendNotification(); application.Render(); // Double tap to select a word. - application.ProcessEvent( GenerateTap( Gesture::Possible, 2u, 1u, Vector2( 3.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 2u, 1u, Vector2( 3.f, 25.0f ) ) ); + TestGenerateTap( application, 3.0f, 25.0f, 1100 ); // Render and notify application.SendNotification(); @@ -1797,8 +1718,8 @@ int utcDaliTextEditorEvent03(void) } // 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 ) ) ); + TestGenerateTap( application, 29.0f, 25.0f, 1700 ); + TestGenerateTap( application, 29.0f, 25.0f, 1800 ); // Render and notify application.SendNotification(); @@ -1816,8 +1737,7 @@ int utcDaliTextEditorEvent03(void) } // Long Press - application.ProcessEvent( GenerateLongPress( Gesture::Possible, 1u, Vector2( 1.f, 25.0f ) ) ); - application.ProcessEvent( GenerateLongPress( Gesture::Started, 1u, Vector2( 1.f, 25.0f ) ) ); + TestGenerateLongPress(application, 1.0f, 25.0f); // Render and notify application.SendNotification(); @@ -1836,13 +1756,13 @@ int utcDaliTextEditorEvent04(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworl" ); editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f ); - editor.SetSize( 100.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -1852,8 +1772,7 @@ int utcDaliTextEditorEvent04(void) 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 ) ) ); + TestGenerateTap( application, 3.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -1926,13 +1845,13 @@ int utcDaliTextEditorEvent05(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworl" ); 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( Actor::Property::SIZE, Vector2( 50.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL, true ); editor.SetProperty( TextEditor::Property::SMOOTH_SCROLL_DURATION, 0.2f ); editor.SetProperty( TextEditor::Property::ENABLE_SCROLL_BAR, true ); @@ -1947,8 +1866,7 @@ int utcDaliTextEditorEvent05(void) 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 ) ) ); + TestGenerateTap( application, 3.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -2009,13 +1927,13 @@ int utcDaliTextEditorEvent06(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().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 ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -2025,8 +1943,7 @@ int utcDaliTextEditorEvent06(void) 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 ) ) ); + TestGenerateTap( application, 3.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -2100,13 +2017,13 @@ int utcDaliTextEditorEvent07(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().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 ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -2116,8 +2033,7 @@ int utcDaliTextEditorEvent07(void) 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 ) ) ); + TestGenerateTap( application, 3.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -2245,13 +2161,13 @@ int utcDaliTextEditorEvent08(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::TEXT, "DALi" ); editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f ); - editor.SetSize( 100.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -2261,8 +2177,7 @@ int utcDaliTextEditorEvent08(void) 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 ) ) ); + TestGenerateTap( application, 3.0f, 25.0f ); // Render and notify application.SendNotification(); @@ -2440,7 +2355,7 @@ int utcDaliTextEditorHandles(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::TEXT, "This is a long text for the size of the text-editor." ); editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f ); @@ -2457,9 +2372,9 @@ int utcDaliTextEditorHandles(void) editor.SetProperty( TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, imagePropertyMap ); editor.SetProperty( TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, imagePropertyMap ); - editor.SetSize( 30.f, 500.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 30.f, 500.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); // Avoid a crash when core load gl resources. application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); @@ -2469,16 +2384,14 @@ int utcDaliTextEditorHandles(void) application.Render(); // Tap first to get the focus. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); + TestGenerateTap( application, 3.0f, 25.0f, 100 ); // Render and notify application.SendNotification(); application.Render(); // Tap to create the grab handle. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); + TestGenerateTap( application, 3.0f, 25.0f, 700 ); // Render and notify application.SendNotification(); @@ -2489,7 +2402,7 @@ int utcDaliTextEditorHandles(void) // Get the handle's actor. Actor handle = activeLayer.GetChildAt( 1u ); - handle.SetSize( 100.f, 100.f ); + handle.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) ); // Render and notify application.SendNotification(); @@ -2506,22 +2419,6 @@ int utcDaliTextEditorHandles(void) application.SendNotification(); application.Render(); - // drag grab handle right - SendPan(application, Gesture::Possible, touchPos); - SendPan(application, Gesture::Started, touchPos); - touchPos.x += 5.0f; - Wait(application, 100); - - for(int i = 0;i<20;i++) - { - SendPan(application, Gesture::Continuing, touchPos); - touchPos.x += 5.0f; - Wait(application); - } - - SendPan(application, Gesture::Finished, touchPos); - Wait(application); - // Release the grab handle. event = Dali::Integration::TouchEvent(); event.AddPoint( GetPointUpInside( touchPos ) ); @@ -2532,16 +2429,14 @@ int utcDaliTextEditorHandles(void) application.Render(); // Tap first to get the focus. - application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) ); + TestGenerateTap( application, 3.0f, 25.0f, 1400 ); // Render and notify application.SendNotification(); application.Render(); // Double tap to select a word and create the selection handles. - application.ProcessEvent( GenerateTap( Gesture::Possible, 2u, 1u, Vector2( 3.f, 25.0f ) ) ); - application.ProcessEvent( GenerateTap( Gesture::Started, 2u, 1u, Vector2( 3.f, 25.0f ) ) ); + TestGenerateTap( application, 3.0f, 25.0f, 1500 ); // Render and notify application.SendNotification(); @@ -2558,22 +2453,6 @@ int utcDaliTextEditorHandles(void) application.SendNotification(); application.Render(); - // drag the left selection handle right - SendPan(application, Gesture::Possible, touchPos); - SendPan(application, Gesture::Started, touchPos); - touchPos.x += 5.0f; - Wait(application, 100); - - for(int i = 0;i<20;i++) - { - SendPan(application, Gesture::Continuing, touchPos); - touchPos.x += 5.0f; - Wait(application); - } - - SendPan(application, Gesture::Finished, touchPos); - Wait(application); - // Release the left selection handle. event = Dali::Integration::TouchEvent(); event.AddPoint( GetPointUpInside( touchPos ) ); @@ -2595,7 +2474,7 @@ int utcDaliTextEditorUnderPropertyStringP(void) std::string underlineSettings1( "{\"enable\":\"true\",\"color\":\"red\",\"height\":\"1\"}" ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::UNDERLINE, underlineSettings1 ); DALI_TEST_EQUALS( editor.GetProperty( TextEditor::Property::UNDERLINE ), underlineSettings1, TEST_LOCATION ); @@ -2604,9 +2483,9 @@ int utcDaliTextEditorUnderPropertyStringP(void) // Check the input underline property Property::Map underlineMapSet; Property::Map underlineMapGet; - underlineMapSet.Insert( "enable", "true" ); - underlineMapSet.Insert( "color", "blue" ); - underlineMapSet.Insert( "height", "2" ); + underlineMapSet.Insert( "enable", true ); + underlineMapSet.Insert( "color", Color::BLUE ); + underlineMapSet.Insert( "height", 2 ); editor.SetProperty( TextEditor::Property::UNDERLINE, underlineMapSet ); underlineMapGet = editor.GetProperty( TextEditor::Property::UNDERLINE ); @@ -2639,7 +2518,7 @@ int utcDaliTextEditorShadowPropertyStringP(void) std::string shadowSettings( "{\"color\":\"green\",\"offset\":\"2 2\",\"blurRadius\":\"0\"}" ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::SHADOW, "{\"color\":\"green\",\"offset\":\"2 2\",\"blurRadius\":\"0\"}" ); @@ -2661,7 +2540,7 @@ int utcDaliTextEditorFontStylePropertyStringP(void) std::string fontStyleSettings( "{\"weight\":\"bold\",\"width\":\"condensed\",\"slant\":\"italic\"}" ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::FONT_STYLE, "{\"weight\":\"bold\",\"width\":\"condensed\",\"slant\":\"italic\"}" ); @@ -2687,13 +2566,13 @@ int utcDaliTextEditorGetPropertyLinecountP(void) editor.SetProperty( TextEditor::Property::TEXT, "TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST "); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); - editor.SetSize( 100.0f, 100.0f ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 100.f, 100.f ) ); lineCount = editor.GetProperty( TextEditor::Property::LINE_COUNT ); DALI_TEST_EQUALS( lineCount, 14, TEST_LOCATION ); - editor.SetSize( 50.0f, 100.0f ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 50.f, 100.f ) ); lineCount = editor.GetProperty( TextEditor::Property::LINE_COUNT ); DALI_TEST_EQUALS( lineCount, 28, TEST_LOCATION ); @@ -2709,14 +2588,14 @@ int utcDaliTextEditorScrollStateChangedSignalTest(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - Stage::GetCurrent().Add( editor ); + application.GetScene().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( Actor::Property::SIZE, Vector2( 50.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); editor.SetProperty( TextEditor::Property::ENABLE_SCROLL_BAR, true ); - editor.SetKeyboardFocusable(true); + editor.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true); bool startedCalled = false; bool finishedCalled = false; @@ -2749,10 +2628,10 @@ int UtcDaliToolkitTextEditorTextWrapMode(void) int lineCount =0 ; TextEditor editor = TextEditor::New(); - editor.SetSize( 150.0f, 300.f ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 150.0f, 300.f ) ); editor.SetProperty( TextEditor::Property::TEXT, "Hello world Hello world" ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); editor.SetProperty( TextEditor::Property::LINE_WRAP_MODE, "WORD" ); DALI_TEST_EQUALS( editor.GetProperty< int >( TextEditor::Property::LINE_WRAP_MODE ), static_cast< int >( Text::LineWrap::WORD ), TEST_LOCATION ); @@ -2800,10 +2679,10 @@ int UtcDaliTextEditorSetPaddingProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - Stage::GetCurrent().Add( editor ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2833,10 +2712,10 @@ int UtcDaliTextEditorEnableShiftSelectionProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - Stage::GetCurrent().Add( editor ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2861,10 +2740,10 @@ int UtcDaliTextEditorEnableGrabHandleProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - Stage::GetCurrent().Add( editor ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2889,10 +2768,10 @@ int UtcDaliTextEditorMatchSystemLanguageDirectionProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); - editor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - Stage::GetCurrent().Add( editor ); + editor.SetProperty( Actor::Property::SIZE, Vector2( 300.f, 50.f ) ); + editor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2920,3 +2799,36 @@ int UtcDaliTextEditorGetInputMethodContext(void) END_TEST; } + +int utcDaliTextEditorMaxCharactersReached(void) +{ + ToolkitTestApplication application; + tet_infoline("utcDaliTextEditorMaxCharactersReached"); + + TextEditor editor = TextEditor::New(); + DALI_TEST_CHECK( editor ); + + application.GetScene().Add( editor ); + + const int maxNumberOfCharacters = 1; + editor.SetProperty( DevelTextEditor::Property::MAX_LENGTH, maxNumberOfCharacters ); + DALI_TEST_EQUALS( editor.GetProperty( DevelTextEditor::Property::MAX_LENGTH ), maxNumberOfCharacters, TEST_LOCATION ); + + editor.SetKeyInputFocus(); + + // connect to the text changed signal. + ConnectionTracker* testTracker = new ConnectionTracker(); + DevelTextEditor::MaxLengthReachedSignal( editor ).Connect(&TestMaxLengthReachedCallback); + bool maxLengthReachedSignal = false; + editor.ConnectSignal( testTracker, "maxLengthReached", CallbackFunctor(&maxLengthReachedSignal) ); + + gMaxCharactersCallBackCalled = false; + + application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::Down, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) ); + application.ProcessEvent( GenerateKey( "a", "", "a", KEY_A_CODE, 0, 0, Integration::KeyEvent::Down, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) ); + + DALI_TEST_CHECK( gMaxCharactersCallBackCalled ); + DALI_TEST_CHECK( maxLengthReachedSignal ); + + END_TEST; +}