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-TextField.cpp;h=a8be49ebdce830ee55817f545b0c26f7568fa9ca;hp=da5c59518c7c43b236b333c95f0d634a5d54aabc;hb=310a45a9b7c41a598378a6934bbf2658aafa5d1a;hpb=0c8d5a1d548a31adcdad77240bd46f79cde185e9 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp index da5c595..a8be49e 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,22 +38,31 @@ 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_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_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 gMaxCharactersCallBackCalled; + +static void TestMaxLengthReachedCallback( TextField control ) +{ + tet_infoline(" TestMaxLengthReachedCallbackCallback"); + + gMaxCharactersCallBackCalled = true; +} } // namespace @@ -213,9 +224,9 @@ int UtcDaliTextFieldSetPropertyP(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 ) ); @@ -236,6 +247,11 @@ int UtcDaliTextFieldSetPropertyP(void) // 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; } @@ -316,3 +332,71 @@ int utcDaliTextFieldAtlasRenderP(void) 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; +}