From: Victor Cebollada Date: Fri, 24 Mar 2017 14:23:08 +0000 (+0000) Subject: Change Text's selection popup mirroring utc to use locale properly. X-Git-Tag: dali_1.2.33~13 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=3a2513b13b587a3a7ec2fa7224c2bb6f0ff1ef8c Change Text's selection popup mirroring utc to use locale properly. * It requires to setup the build server to have the en_GB and ar_AE locales. $ sudo locale-gen en $ sudo locale-gen ar $ sudo update-locale Change-Id: I39e14f745f08f593af0b182c299814b65d87cf9e Signed-off-by: Victor Cebollada --- diff --git a/automated-tests/CMakeLists.txt.in b/automated-tests/CMakeLists.txt.in index 377ec92..8851c15 100644 --- a/automated-tests/CMakeLists.txt.in +++ b/automated-tests/CMakeLists.txt.in @@ -18,9 +18,8 @@ MESSAGE("po dir: ${PO_DIR}") FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po") SET(MSGFMT "/usr/bin/msgfmt") -SET(MO_FILES_DIR /tmp/locale/en/LC_MESSAGES) +SET(MO_FILES_DIR /tmp/locale) FILE(MAKE_DIRECTORY ${MO_FILES_DIR}) -MESSAGE("mo dir: ${MO_FILES_DIR}") FOREACH(PO_FILE ${PO_FILES}) SET(PO_FILE ${PO_DIR}/${PO_FILE}) @@ -29,7 +28,8 @@ FOREACH(PO_FILE ${PO_FILES}) MESSAGE("ABS_PO_FILE : ${ABS_PO_FILE}") GET_FILENAME_COMPONENT(lang ${ABS_PO_FILE} NAME_WE) MESSAGE("lang : ${lang}") - SET(MO_FILE ${MO_FILES_DIR}/dali-toolkit.mo.${lang}) + FILE(MAKE_DIRECTORY ${MO_FILES_DIR}/${lang}/LC_MESSAGES) + SET(MO_FILE ${MO_FILES_DIR}/${lang}/LC_MESSAGES/dali-toolkit.mo) MESSAGE("MO_FILE : ${MO_FILE}") ADD_CUSTOM_COMMAND(OUTPUT ${MO_FILE} COMMAND ${MSGFMT} -o ${MO_FILE} ${ABS_PO_FILE} diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringLTR.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringLTR.cpp index 5234210..6a4bfa8 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringLTR.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringLTR.cpp @@ -31,22 +31,33 @@ namespace { const char* DEFAULT_LOCALE_DIR = "/tmp/locale/"; -const std::string DEFAULT_EN_LOCALE_DIR = "/tmp/locale/en/LC_MESSAGES/"; +static std::string gLocaleLang; +static std::string gLocaleLanguage; } void dali_textselectionpopupmirroringltr_startup(void) { - // Cheat! Copy the .mo file - std::ifstream src( std::string( DEFAULT_EN_LOCALE_DIR + "dali-toolkit.mo.en" ).c_str(), std::ifstream::binary ); - std::ofstream dst( std::string( DEFAULT_EN_LOCALE_DIR + "dali-toolkit.mo" ).c_str(), std::ofstream::binary ); - dst << src.rdbuf(); + // Keep the current locale environment. + char* langPtr = getenv( "LANG" ); + gLocaleLang = std::string( langPtr ); + + char* languagePtr = getenv( "LANGUAGE" ); + gLocaleLanguage = std::string( languagePtr ); + + // Set the locale environment to Arabic. + setenv( "LANG", "en_GB.UTF-8", 1 ); + setenv( "LANGUAGE", "en_GB:en", 1 ); test_return_value = TET_UNDEF; } void dali_textselectionpopupmirroringltr_cleanup(void) { + // Restore the locale environment. + setenv( "LANG", gLocaleLang.c_str(), 1 ); + setenv( "LANGUAGE", gLocaleLanguage.c_str(), 1 ); + test_return_value = TET_PASS; } diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringRTL.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringRTL.cpp index 9d3e750c..930e85e 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringRTL.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringRTL.cpp @@ -31,22 +31,33 @@ namespace { const char* DEFAULT_LOCALE_DIR = "/tmp/locale/"; -const std::string DEFAULT_EN_LOCALE_DIR = "/tmp/locale/en/LC_MESSAGES/"; +static std::string gLocaleLang; +static std::string gLocaleLanguage; } void dali_textselectionpopupmirroringrtl_startup(void) { - // Cheat! Copy the .mo file - std::ifstream src( std::string( DEFAULT_EN_LOCALE_DIR + "dali-toolkit.mo.ar" ).c_str(), std::ifstream::binary ); - std::ofstream dst( std::string( DEFAULT_EN_LOCALE_DIR + "dali-toolkit.mo" ).c_str(), std::ofstream::binary ); - dst << src.rdbuf(); + // Keep the current locale environment. + char* langPtr = getenv( "LANG" ); + gLocaleLang = std::string( langPtr ); + + char* languagePtr = getenv( "LANGUAGE" ); + gLocaleLanguage = std::string( languagePtr ); + + // Set the locale environment to Arabic. + setenv( "LANG", "ar_AE.UTF-8", 1 ); + setenv( "LANGUAGE", "ar_AE:ar", 1 ); test_return_value = TET_UNDEF; } void dali_textselectionpopupmirroringrtl_cleanup(void) { + // Restore the locale environment. + setenv( "LANG", gLocaleLang.c_str(), 1 ); + setenv( "LANGUAGE", gLocaleLanguage.c_str(), 1 ); + test_return_value = TET_PASS; } @@ -59,7 +70,7 @@ int UtcDaliToolkitTextSelectionPopupMirroringRTL(void) ToolkitTestApplication application; - setlocale( LC_ALL, "en_GB.UTF-8" ); + setlocale( LC_ALL, "ar_AE.UTF-8" ); textdomain("dali-toolkit"); bindtextdomain("dali-toolkit", DEFAULT_LOCALE_DIR );