Change Text's selection popup mirroring utc to use locale properly. 04/120904/2
authorVictor Cebollada <v.cebollada@samsung.com>
Fri, 24 Mar 2017 14:23:08 +0000 (14:23 +0000)
committerVictor Cebollada <v.cebollada@samsung.com>
Fri, 24 Mar 2017 14:47:32 +0000 (14:47 +0000)
* 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 <v.cebollada@samsung.com>
automated-tests/CMakeLists.txt.in
automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringLTR.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopupMirroringRTL.cpp

index 377ec92..8851c15 100644 (file)
@@ -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}
index 5234210..6a4bfa8 100644 (file)
@@ -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;
 }
 
index 9d3e750..930e85e 100644 (file)
@@ -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 );