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=b3decd1d1edf333a9c23892ceb9692a2cafab5a8;hp=b8028173a1a06a92fa123c202651dddd0a8c991d;hb=a97787d5b7db865cea0b003db309a619877b0144;hpb=c01f2590ed7bb00d9b3600511d08dc420261ed46 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 b802817..b3decd1 --- 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) 2019 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. @@ -27,6 +27,7 @@ #include #include #include +#include using namespace Dali; using namespace Toolkit; @@ -100,6 +101,7 @@ 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 Vector4 PLACEHOLDER_TEXT_COLOR( 0.8f, 0.8f, 0.8f, 0.8f ); @@ -126,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 @@ -157,6 +160,13 @@ static void TestInputStyleChangedCallback( TextEditor control, TextEditor::Input gInputStyleMask = mask; } +static void TestMaxLengthReachedCallback( TextEditor control ) +{ + tet_infoline(" TestMaxLengthReachedCallback"); + + gMaxCharactersCallBackCalled = true; +} + // Generate a KeyEvent to send to Core. Integration::KeyEvent GenerateKey( const std::string& keyName, const std::string& logicalKey, @@ -390,7 +400,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 ); @@ -445,6 +455,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; } @@ -474,13 +485,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" ); @@ -875,12 +886,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(); } @@ -899,7 +910,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(); @@ -949,7 +960,7 @@ int utcDaliTextEditorInputStyleChanged01(void) DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); + 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 ); @@ -962,7 +973,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(); @@ -1163,7 +1174,7 @@ int utcDaliTextEditorInputStyleChanged02(void) DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); + 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 ); @@ -1176,7 +1187,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(); @@ -1398,9 +1409,9 @@ 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.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 ); @@ -1442,10 +1453,10 @@ int utcDaliTextEditorEvent01(void) editor2.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); editor2.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); - editor2.SetSize( 100.f, 100.f ); - editor2.SetPosition( 100.f, 100.f ); + 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(); @@ -1483,9 +1494,9 @@ 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.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 ); @@ -1509,7 +1520,7 @@ int utcDaliTextEditorEvent02(void) 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 ); @@ -1617,11 +1628,11 @@ 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.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 ); @@ -1710,11 +1721,11 @@ 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.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 ); @@ -1799,11 +1810,11 @@ 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.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 ); @@ -1881,11 +1892,11 @@ 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.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 ); @@ -1971,11 +1982,11 @@ 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.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 ); @@ -2115,11 +2126,11 @@ 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.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 ); @@ -2309,7 +2320,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 ); @@ -2326,7 +2337,7 @@ 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.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 ); @@ -2356,7 +2367,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(); @@ -2428,7 +2439,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 ); @@ -2472,7 +2483,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\"}" ); @@ -2494,7 +2505,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\"}" ); @@ -2520,13 +2531,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 ); @@ -2542,14 +2553,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.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; @@ -2582,10 +2593,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 ); @@ -2633,10 +2644,10 @@ int UtcDaliTextEditorSetPaddingProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); + 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 ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2666,10 +2677,10 @@ int UtcDaliTextEditorEnableShiftSelectionProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); + 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 ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2694,10 +2705,10 @@ int UtcDaliTextEditorEnableGrabHandleProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); + 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 ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2722,10 +2733,10 @@ int UtcDaliTextEditorMatchSystemLanguageDirectionProperty(void) TextEditor editor = TextEditor::New(); DALI_TEST_CHECK( editor ); - editor.SetSize( 300.f, 50.f ); + 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 ); - Stage::GetCurrent().Add( editor ); + application.GetScene().Add( editor ); application.SendNotification(); application.Render(); @@ -2753,3 +2764,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; +}