X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-TextField.cpp;h=d19b3a12cd997aa40cad05ac6287c2a7c15ff45a;hb=f2a9e28631d560e4821cc542cbc21a71d0a29f2f;hp=906952518c442a2f5317cccc8adcef42986137be;hpb=cd7d41bc8e0a0816da28401207091344fbbe0b2c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp index 9069525..d19b3a1 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp @@ -17,8 +17,10 @@ #include #include +#include #include #include +#include using namespace Dali; using namespace Toolkit; @@ -36,59 +38,162 @@ void dali_textfield_cleanup(void) namespace { -const char* const PROPERTY_NAME_RENDERING_BACKEND = "rendering-backend"; -const char* const PROPERTY_NAME_PLACEHOLDER_TEXT = "placeholder-text"; -const char* const PROPERTY_NAME_FONT_FAMILY = "font-family"; -const char* const PROPERTY_NAME_FONT_STYLE = "font-style"; -const char* const PROPERTY_NAME_POINT_SIZE = "point-size"; -const char* const PROPERTY_NAME_EXCEED_POLICY = "exceed-policy"; -const char* const PROPERTY_NAME_PRIMARY_CURSOR_COLOR = "primary-cursor-color"; -const char* const PROPERTY_NAME_SECONDARY_CURSOR_COLOR = "secondary-cursor-color"; -const char* const PROPERTY_NAME_ENABLE_CURSOR_BLINK = "enable-cursor-blink"; -const char* const PROPERTY_NAME_CURSOR_BLINK_INTERVAL = "cursor-blink-interval"; -const char* const PROPERTY_NAME_CURSOR_BLINK_DURATION = "cursor-blink-duration"; -const char* const PROPERTY_NAME_GRAB_HANDLE_IMAGE = "grab-handle-image"; +const char* const PROPERTY_NAME_RENDERING_BACKEND = "rendering-backend"; +const char* const PROPERTY_NAME_PLACEHOLDER_TEXT = "placeholder-text"; +const char* const PROPERTY_NAME_TEXT = "text"; +const char* const PROPERTY_NAME_FONT_FAMILY = "font-family"; +const char* const PROPERTY_NAME_FONT_STYLE = "font-style"; +const char* const PROPERTY_NAME_POINT_SIZE = "point-size"; +const char* const PROPERTY_NAME_EXCEED_POLICY = "exceed-policy"; +const char* const PROPERTY_NAME_PRIMARY_CURSOR_COLOR = "primary-cursor-color"; +const char* const PROPERTY_NAME_SECONDARY_CURSOR_COLOR = "secondary-cursor-color"; +const char* const PROPERTY_NAME_ENABLE_CURSOR_BLINK = "enable-cursor-blink"; +const char* const PROPERTY_NAME_CURSOR_BLINK_INTERVAL = "cursor-blink-interval"; +const char* const PROPERTY_NAME_CURSOR_BLINK_DURATION = "cursor-blink-duration"; +const char* const PROPERTY_NAME_GRAB_HANDLE_IMAGE = "grab-handle-image"; const char* const PROPERTY_NAME_DECORATION_BOUNDING_BOX = "decoration-bounding-box"; -const char* const PROPERTY_NAME_HORIZONTAL_ALIGNMENT = "horizontal-alignment"; -const char* const PROPERTY_NAME_VERTICAL_ALIGNMENT = "vertical-alignment"; +const char* const PROPERTY_NAME_HORIZONTAL_ALIGNMENT = "horizontal-alignment"; +const char* const PROPERTY_NAME_VERTICAL_ALIGNMENT = "vertical-alignment"; -static bool gObjectCreatedCallBackCalled; +static bool gTextChangedCallBackCalled; +static bool gMaxCharactersCallBackCalled; -static void TestCallback(BaseHandle handle) +static void TestTextChangedCallback( TextField control ) { - gObjectCreatedCallBackCalled = true; + tet_infoline(" TestTextChangedCallback"); + + gTextChangedCallBackCalled = true; +} + +static void TestMaxLengthReachedCallback( TextField control ) +{ + tet_infoline(" TestMaxLengthReachedCallback"); + + gMaxCharactersCallBackCalled = true; } } // namespace -int UtcDaliTextFieldNew(void) +int UtcDaliToolkitTextFieldConstructorP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldConstructorP"); + TextField textField; + DALI_TEST_CHECK( !textField ); + END_TEST; +} + +int UtcDaliToolkitTextFieldNewP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldNewP"); + TextField textField = TextField::New(); + DALI_TEST_CHECK( textField ); + END_TEST; +} + +int UtcDaliToolkitTextFieldDownCastP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldDownCastP"); + TextField textField1 = TextField::New(); + BaseHandle object( textField1 ); + + TextField textField2 = TextField::DownCast( object ); + DALI_TEST_CHECK( textField2 ); + + TextField textField3 = DownCast< TextField >( object ); + DALI_TEST_CHECK( textField3 ); + END_TEST; +} + +int UtcDaliToolkitTextFieldDownCastN(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldDownCastN"); + BaseHandle uninitializedObject; + TextField textField1 = TextField::DownCast( uninitializedObject ); + DALI_TEST_CHECK( !textField1 ); + + TextField textField2 = DownCast< TextField >( uninitializedObject ); + DALI_TEST_CHECK( !textField2 ); + END_TEST; +} + +int UtcDaliToolkitTextFieldCopyConstructorP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldCopyConstructorP"); + TextField textField = TextField::New(); + textField.SetProperty( TextField::Property::TEXT, "Test" ); + + TextField copy( textField ); + DALI_TEST_CHECK( copy ); + DALI_TEST_CHECK( copy.GetProperty( TextLabel::Property::TEXT ) == textField.GetProperty( TextLabel::Property::TEXT ) ); + END_TEST; +} + +int UtcDaliToolkitTextFieldAssignmentOperatorP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldAssignmentOperatorP"); + TextField textField = TextField::New(); + textField.SetProperty( TextField::Property::TEXT, "Test" ); + + TextField copy = textField; + DALI_TEST_CHECK( copy ); + DALI_TEST_CHECK( copy.GetProperty( TextField::Property::TEXT ) == textField.GetProperty( TextField::Property::TEXT ) ); + END_TEST; +} + +int UtcDaliTextFieldNewP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldNewP"); + TextField textField = TextField::New(); + DALI_TEST_CHECK( textField ); + END_TEST; +} + +int UtcDaliTextFieldGetPropertyN(void) { ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldGetPropertyN"); TextField field = TextField::New(); DALI_TEST_CHECK( field ); - //Additional check to ensure object is created by checking if it's registered - ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry(); - DALI_TEST_CHECK( registry ); - - gObjectCreatedCallBackCalled = false; - registry.ObjectCreatedSignal().Connect(&TestCallback); + bool assert = false; + try + { + Property::Value value = field.GetProperty( 0 ); + } + catch ( ... ) { - TextField field = TextField::New(); + assert = true; + } + if ( assert ) + { + tet_result(TET_PASS); + } + else + { + tet_result(TET_FAIL); } - DALI_TEST_CHECK( gObjectCreatedCallBackCalled ); END_TEST; } -int UtcDaliTextFieldGetSetProperty(void) +// Positive test case for a method +int UtcDaliTextFieldGetPropertyP(void) { ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldGetPropertyP"); TextField field = TextField::New(); DALI_TEST_CHECK( field ); // Check Property Indices are correct DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_RENDERING_BACKEND ) == TextField::Property::RENDERING_BACKEND ); DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_PLACEHOLDER_TEXT ) == TextField::Property::PLACEHOLDER_TEXT ); + DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_TEXT ) == TextField::Property::TEXT ); DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_FONT_FAMILY ) == TextField::Property::FONT_FAMILY ); DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_FONT_STYLE ) == TextField::Property::FONT_STYLE ); DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_POINT_SIZE ) == TextField::Property::POINT_SIZE ); @@ -102,6 +207,16 @@ int UtcDaliTextFieldGetSetProperty(void) DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_DECORATION_BOUNDING_BOX ) == TextField::Property::DECORATION_BOUNDING_BOX ); DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_HORIZONTAL_ALIGNMENT ) == TextField::Property::HORIZONTAL_ALIGNMENT ); DALI_TEST_CHECK( field.GetPropertyIndex( PROPERTY_NAME_VERTICAL_ALIGNMENT ) == TextField::Property::VERTICAL_ALIGNMENT ); + END_TEST; +} + +// Positive test case for a method +int UtcDaliTextFieldSetPropertyP(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldSetPropertyP"); + TextField field = TextField::New(); + DALI_TEST_CHECK( field ); // Check exceed policy field.SetProperty( TextField::Property::EXCEED_POLICY, TextField::EXCEED_POLICY_CLIP ); @@ -117,9 +232,9 @@ int UtcDaliTextFieldGetSetProperty(void) field.SetProperty( TextField::Property::CURSOR_BLINK_DURATION, 10.0f ); DALI_TEST_EQUALS( field.GetProperty( TextField::Property::CURSOR_BLINK_DURATION ), 10.0f, TEST_LOCATION ); - // Blink interval gets converted to milliseconds.... + // Blink interval field.SetProperty( TextField::Property::CURSOR_BLINK_INTERVAL, 1.0f ); - DALI_TEST_EQUALS( field.GetProperty( TextField::Property::CURSOR_BLINK_INTERVAL ), 1000.0f, TEST_LOCATION ); + DALI_TEST_EQUALS( field.GetProperty( TextField::Property::CURSOR_BLINK_INTERVAL ), 1.0f, TEST_LOCATION ); // Decoration bounding box field.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect( 0, 0, 1, 1 ) ); @@ -128,14 +243,59 @@ int UtcDaliTextFieldGetSetProperty(void) // Check that the Alignment properties can be correctly set field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "BEGIN" ); DALI_TEST_EQUALS( field.GetProperty( TextField::Property::HORIZONTAL_ALIGNMENT ), "BEGIN", TEST_LOCATION ); - field.SetProperty( TextField::Property::VERTICAL_ALIGNMENT, "TOP" ); - DALI_TEST_EQUALS( field.GetProperty( TextField::Property::VERTICAL_ALIGNMENT ), "TOP", TEST_LOCATION ); + field.SetProperty( TextField::Property::VERTICAL_ALIGNMENT, "CENTER" ); + DALI_TEST_EQUALS( field.GetProperty( TextField::Property::VERTICAL_ALIGNMENT ), "CENTER", TEST_LOCATION ); + + // Set text + field.SetProperty( TextField::Property::TEXT, "Setting Text" ); + + // Set placeholder text (currently not implemented) + field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Setting Text" ); + + // Set Grab Handle image + field.SetProperty( TextField::Property::GRAB_HANDLE_IMAGE, "" ); + + // Check that the MAX_LENGTH property can be correctly set + const int maxNumberOfCharacters = 20; + field.SetProperty( TextField::Property::MAX_LENGTH, maxNumberOfCharacters ); + DALI_TEST_EQUALS( field.GetProperty( TextField::Property::MAX_LENGTH ), maxNumberOfCharacters, TEST_LOCATION ); + + END_TEST; +} + +// Negative test case for a method +int UtcDaliTextFieldSetPropertyN(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldSetPropertyN"); + TextField field = TextField::New(); + DALI_TEST_CHECK( field ); + + bool assert = false; + try + { + field.SetProperty( 0, true ); + } + catch ( ... ) + { + assert = true; + } + if ( assert ) + { + tet_result(TET_PASS); + } + else + { + tet_result(TET_FAIL); + } END_TEST; } -int utcDaliTextFieldBasicRender(void) +// Positive Basic Text Renderer test +int utcDaliTextFieldBasicRenderP(void) { ToolkitTestApplication application; + tet_infoline("UtcDaliToolkitTextFieldBasicRenderP"); TextField field = TextField::New(); DALI_TEST_CHECK( field ); @@ -155,9 +315,13 @@ int utcDaliTextFieldBasicRender(void) END_TEST; } -int utcDaliTextFieldAtlasRender(void) +// Positive Atlas Text Renderer test +int utcDaliTextFieldAtlasRenderP(void) { ToolkitTestApplication application; + tet_infoline(" UtcDaliToolkitTextFieldAtlasRenderP"); + StyleManager styleManager = StyleManager::Get(); + styleManager.RequestDefaultTheme(); TextField field = TextField::New(); DALI_TEST_CHECK( field ); @@ -176,3 +340,125 @@ int utcDaliTextFieldAtlasRender(void) END_TEST; } +// Positive test for the text-changed signal. +int utcDaliTextFieldTextChangedP(void) +{ + ToolkitTestApplication application; + tet_infoline(" utcDaliTextFieldTextChangedP"); + TextField field = TextField::New(); + DALI_TEST_CHECK( field ); + + Stage::GetCurrent().Add(field); + + field.TextChangedSignal().Connect(&TestTextChangedCallback); + + gTextChangedCallBackCalled = false; + field.SetProperty( TextField::Property::TEXT, "ABC" ); + DALI_TEST_CHECK( gTextChangedCallBackCalled ); + + application.SendNotification(); + + field.SetKeyInputFocus(); + + Dali::Integration::KeyEvent keyevent; + keyevent.keyName = "D"; + keyevent.keyString = "D"; + keyevent.keyCode = 0; + keyevent.keyModifier = 0; + keyevent.time = 0; + keyevent.state = Integration::KeyEvent::Down; + + gTextChangedCallBackCalled = false; + application.ProcessEvent( keyevent ); + DALI_TEST_CHECK( gTextChangedCallBackCalled ); + + END_TEST; +} + +// Negative test for the text-changed signal. +int utcDaliTextFieldTextChangedN(void) +{ + ToolkitTestApplication application; + tet_infoline(" utcDaliTextFieldTextChangedN"); + TextField field = TextField::New(); + DALI_TEST_CHECK( field ); + + Stage::GetCurrent().Add(field); + + field.TextChangedSignal().Connect(&TestTextChangedCallback); + + gTextChangedCallBackCalled = false; + field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "ABC" ); // Setting placeholder, not TEXT + DALI_TEST_CHECK( ! gTextChangedCallBackCalled ); + + END_TEST; +} + +// Positive test for Max Characters reached signal. +int utcDaliTextFieldMaxCharactersReachedP(void) +{ + ToolkitTestApplication application; + tet_infoline(" utcDaliTextFieldMaxCharactersReachedP"); + TextField field = TextField::New(); + DALI_TEST_CHECK( field ); + + Stage::GetCurrent().Add(field); + + const int maxNumberOfCharacters = 1; + field.SetProperty( TextField::Property::MAX_LENGTH, maxNumberOfCharacters ); + + field.SetKeyInputFocus(); + + gMaxCharactersCallBackCalled = false; + field.MaxLengthReachedSignal().Connect(&TestMaxLengthReachedCallback); + + Dali::Integration::KeyEvent keyevent; + keyevent.keyName = "a"; + keyevent.keyString = "a"; + keyevent.keyCode = 0; + keyevent.keyModifier = 0; + keyevent.time = 0; + keyevent.state = Integration::KeyEvent::Down; + + application.ProcessEvent( keyevent ); + + application.ProcessEvent( keyevent ); + + DALI_TEST_CHECK( gMaxCharactersCallBackCalled ); + + END_TEST; +} + +// Negative test for Max Characters reached signal. +int utcDaliTextFieldMaxCharactersReachedN(void) +{ + ToolkitTestApplication application; + tet_infoline(" utcDaliTextFieldMaxCharactersReachedN"); + TextField field = TextField::New(); + DALI_TEST_CHECK( field ); + + Stage::GetCurrent().Add(field); + + const int maxNumberOfCharacters = 3; + field.SetProperty( TextField::Property::MAX_LENGTH, maxNumberOfCharacters ); + + field.SetKeyInputFocus(); + + gMaxCharactersCallBackCalled = false; + field.MaxLengthReachedSignal().Connect(&TestMaxLengthReachedCallback); + + Dali::Integration::KeyEvent keyevent; + keyevent.keyName = "a"; + keyevent.keyString = "a"; + keyevent.keyCode = 0; + keyevent.keyModifier = 0; + keyevent.time = 0; + keyevent.state = Integration::KeyEvent::Down; + + application.ProcessEvent( keyevent ); + application.ProcessEvent( keyevent ); + + DALI_TEST_CHECK( !gMaxCharactersCallBackCalled ); + + END_TEST; +}