X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Text-Controller.cpp;h=6c63ce14c61e13ea686e3e43a112bb377c0ddbbc;hb=1e5f8e03bf0dfd40c9efd641d915dd1173eae4e5;hp=9b8217becfddfb753ffd7d56a6837699f2a0ad61;hpb=dfebb1e3da197e21bd7f4424ab65884b98f42fea;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp index 9b8217b..6c63ce1 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp @@ -184,9 +184,16 @@ int UtcDaliTextControllerImfEvent(void) // Enables the text input. controller->EnableTextInput( decorator ); + // Set the placeholder text. + controller->SetPlaceholderText( Controller::PLACEHOLDER_TYPE_INACTIVE, "Hello Dali" ); + // Creates an ImfManager. ImfManager imfManager = ImfManager::Get(); + // For coverage. + imfEvent = ImfManager::ImfEventData( ImfManager::GETSURROUNDING, "", 0, 0 ); + controller->OnImfEvent( imfManager, imfEvent ); + // Send VOID event. imfEvent = ImfManager::ImfEventData( ImfManager::VOID, "", 0, 0 ); controller->OnImfEvent( imfManager, imfEvent ); @@ -194,6 +201,18 @@ int UtcDaliTextControllerImfEvent(void) controller->GetText( text ); DALI_TEST_CHECK( text.empty() ); + imfEvent = ImfManager::ImfEventData( ImfManager::COMMIT, "Hello ", 0, 6 ); + controller->OnImfEvent( imfManager, imfEvent ); + controller->GetNaturalSize(); + + // Check 'Delete All' key which means the input panel send a big range + imfEvent = ImfManager::ImfEventData( ImfManager::DELETESURROUNDING, "", -100, 100 ); + controller->OnImfEvent( imfManager, imfEvent ); + controller->GetNaturalSize(); + + controller->GetText( text ); + DALI_TEST_EQUALS( "", text, TEST_LOCATION ); + // Send COMMIT event. imfEvent = ImfManager::ImfEventData( ImfManager::COMMIT, "Hello ", 0, 6 ); controller->OnImfEvent( imfManager, imfEvent ); @@ -241,6 +260,13 @@ int UtcDaliTextControllerImfEvent(void) controller->GetText( text ); DALI_TEST_EQUALS( "Hello wo", text, TEST_LOCATION ); + // Send PRIVATECOMMAND event + imfEvent = ImfManager::ImfEventData( ImfManager::PRIVATECOMMAND, "", 0, 0 ); + controller->OnImfEvent( imfManager, imfEvent ); + + controller->GetText( text ); + DALI_TEST_EQUALS( "Hello wo", text, TEST_LOCATION ); + tet_result(TET_PASS); END_TEST; } @@ -470,3 +496,164 @@ int UtcDaliTextControllerSetGetCheckProperty(void) tet_result(TET_PASS); END_TEST; } + +int UtcDaliTextControllerSetGetTapLongPressAction(void) +{ + tet_infoline(" UtcDaliTextControllerSetGetTapLongPressAction"); + ToolkitTestApplication application; + + // Creates a text controller. + ControllerPtr controller = Controller::New(); + + DALI_TEST_CHECK( controller ); + + // Test first with no decorator. + + DALI_TEST_EQUALS( Controller::NoTextTap::NO_ACTION, controller->GetNoTextDoubleTapAction(), TEST_LOCATION ); + controller->SetNoTextDoubleTapAction( Controller::NoTextTap::HIGHLIGHT ); + DALI_TEST_EQUALS( Controller::NoTextTap::NO_ACTION, controller->GetNoTextDoubleTapAction(), TEST_LOCATION ); + + DALI_TEST_EQUALS( Controller::NoTextTap::NO_ACTION, controller->GetNoTextLongPressAction(), TEST_LOCATION ); + controller->SetNoTextLongPressAction( Controller::NoTextTap::HIGHLIGHT ); + DALI_TEST_EQUALS( Controller::NoTextTap::NO_ACTION, controller->GetNoTextLongPressAction(), TEST_LOCATION ); + + // Add a decorator and re-test. + + // Creates a decorator. + Text::DecoratorPtr decorator = Text::Decorator::New( *controller, *controller ); + + // Enables the text input. + controller->EnableTextInput( decorator ); + + DALI_TEST_EQUALS( Controller::NoTextTap::NO_ACTION, controller->GetNoTextDoubleTapAction(), TEST_LOCATION ); + controller->SetNoTextDoubleTapAction( Controller::NoTextTap::HIGHLIGHT ); + DALI_TEST_EQUALS( Controller::NoTextTap::HIGHLIGHT, controller->GetNoTextDoubleTapAction(), TEST_LOCATION ); + + DALI_TEST_EQUALS( Controller::NoTextTap::SHOW_SELECTION_POPUP, controller->GetNoTextLongPressAction(), TEST_LOCATION ); // The default is SHOW_SELECTION_POPUP + controller->SetNoTextLongPressAction( Controller::NoTextTap::HIGHLIGHT ); + DALI_TEST_EQUALS( Controller::NoTextTap::HIGHLIGHT, controller->GetNoTextLongPressAction(), TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliTextControllerSetGetLineSpacingProperty(void) +{ + tet_infoline(" UtcDaliTextControllerSetGetLineSpacingProperty"); + ToolkitTestApplication application; + + const Size size( Dali::Stage::GetCurrent().GetSize() ); + + // single line text + const std::string textSingle("A Quick Brown Fox Jumps Over The Lazy Dog"); + + // multi-line text + const std::string textMulti("A Quick Brown\nFox Jumps Over\nThe Lazy Dog"); + + // Creates a text controller. + ControllerPtr controller = Controller::New(); + + ConfigureTextLabel(controller); + + // single line, line spacing = 0px + { + const float EXPECTED_SPACING = 0.0f; + const Vector2 EXPECTED_LAYOUT_SIZE( 326.0f, 19.0f); + const Vector3 EXPECTED_NATURAL_SIZE( 326.0f, 20.0f, 0.0f ); + + controller->SetText(textSingle); + controller->Relayout(size); + controller->SetMultiLineEnabled( false ); + + Vector3 naturalSize = controller->GetNaturalSize(); + Vector2 layoutSize = controller->GetTextModel()->GetLayoutSize(); + float lineSpacing0 = controller->GetDefaultLineSpacing(); + + DALI_TEST_EQUALS( EXPECTED_SPACING, lineSpacing0, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_LAYOUT_SIZE, layoutSize, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_NATURAL_SIZE, naturalSize, TEST_LOCATION ); + } + + // single line, line spacing = 20px + { + const float EXPECTED_SPACING = 20.0f; + const Vector2 EXPECTED_LAYOUT_SIZE( 326.0f, 19.0f ); + const Vector3 EXPECTED_NATURAL_SIZE( 326.0f, 40.0f, 0.0f ); + + controller->SetText(textSingle); + controller->Relayout(size); + controller->SetDefaultLineSpacing( 20 ); + controller->SetMultiLineEnabled( false ); + + Vector3 naturalSize = controller->GetNaturalSize(); + Vector2 layoutSize = controller->GetTextModel()->GetLayoutSize(); + float lineSpacing0 = controller->GetDefaultLineSpacing(); + + DALI_TEST_EQUALS( EXPECTED_SPACING, lineSpacing0, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_LAYOUT_SIZE, layoutSize, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_NATURAL_SIZE, naturalSize, TEST_LOCATION ); + } + + // multi-line, line spacing = 0px + { + const float EXPECTED_SPACING = 0.0f; + const Vector2 EXPECTED_LAYOUT_SIZE( 318.0f, 39.0f ); + const Vector3 EXPECTED_NATURAL_SIZE( 116.0f, 58.0f, 0.0f ); + + controller->SetText(textMulti); + controller->Relayout(size); + controller->SetMultiLineEnabled( true ); + controller->SetDefaultLineSpacing( 0 ); + + Vector3 naturalSize = controller->GetNaturalSize(); + Vector2 layoutSize = controller->GetTextModel()->GetLayoutSize(); + float lineSpacing0 = controller->GetDefaultLineSpacing(); + + DALI_TEST_EQUALS( EXPECTED_SPACING, lineSpacing0, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_LAYOUT_SIZE, layoutSize, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_NATURAL_SIZE, naturalSize, TEST_LOCATION ); + } + + // multi-line, line spacing = 20px + { + const float EXPECTED_SPACING = 20.0f; + const Vector2 EXPECTED_LAYOUT_SIZE( 115.0f, 57.0f ); + const Vector3 EXPECTED_NATURAL_SIZE( 116.0f, 118.0f, 0.0f ); + + controller->SetText(textMulti); + controller->Relayout(size); + controller->SetMultiLineEnabled( true ); + controller->SetDefaultLineSpacing( 20 ); + + Vector3 naturalSize = controller->GetNaturalSize(); + Vector2 layoutSize = controller->GetTextModel()->GetLayoutSize(); + float lineSpacing0 = controller->GetDefaultLineSpacing(); + + DALI_TEST_EQUALS( EXPECTED_SPACING, lineSpacing0, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_LAYOUT_SIZE, layoutSize, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_NATURAL_SIZE, naturalSize, TEST_LOCATION ); + } + + // multi-line, line spacing = 30px + { + const float EXPECTED_SPACING = 30.0f; + const Vector2 EXPECTED_LAYOUT_SIZE( 115.0f, 117.0f ); + const Vector3 EXPECTED_NATURAL_SIZE( 116.0f, 148.0f, 0.0f ); + + controller->SetText(textMulti); + controller->Relayout(size); + controller->SetMultiLineEnabled( true ); + controller->SetDefaultLineSpacing( 30 ); + + Vector3 naturalSize = controller->GetNaturalSize(); + Vector2 layoutSize = controller->GetTextModel()->GetLayoutSize(); + float lineSpacing0 = controller->GetDefaultLineSpacing(); + + DALI_TEST_EQUALS( EXPECTED_SPACING, lineSpacing0, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_LAYOUT_SIZE, layoutSize, TEST_LOCATION ); + DALI_TEST_EQUALS( EXPECTED_NATURAL_SIZE, naturalSize, TEST_LOCATION ); + } + + + END_TEST; + +} \ No newline at end of file