22 #ifndef __ENCHANTTESTFIXTURE
23 #define __ENCHANTTESTFIXTURE
30 #include <glib/gstdio.h>
41 #include "enchant-provider.h"
49 CreateDirectory(GetTempUserEnchantDir());
58 DeleteDirAndFiles(GetTempUserEnchantDir());
59 DeleteDirAndFiles(AddToPath(LIBDIR_SUBDIR,
"enchant-" ENCHANT_MAJOR_VERSION));
60 DeleteDirAndFiles(
"share");
63 std::string GetTempUserEnchantDir()
65 return getenv(
"ENCHANT_CONFIG_DIR");
68 std::string GetEnchantConfigDir()
70 GSList *config_dirs = enchant_get_conf_dirs();
71 const char *pkgdatadir = (
char *)g_slist_nth(config_dirs, 0)->data;
72 auto res = std::string(pkgdatadir);
73 g_slist_free_full(config_dirs, g_free);
77 static void DeleteDirAndFiles(
const std::string& dir)
79 GDir* gdir = g_dir_open(dir.c_str(), 0, NULL);
82 const gchar* filename;
84 filename = g_dir_read_name(gdir);
89 std::string filepath = AddToPath(dir, filename);
90 if(g_file_test(filepath.c_str(), G_FILE_TEST_IS_DIR)){
91 DeleteDirAndFiles(filepath);
102 static std::string GetTemporaryFilename(
const std::string & prefix){
103 char* tempFileName = tempnam(
".", prefix.c_str());
104 std::string temp(tempFileName);
109 static void CreateDirectory(
const std::string& filepath)
111 g_mkdir_with_parents(filepath.c_str(), S_IRUSR | S_IWUSR | S_IXUSR);
113 static void CreateFile(
const std::string& filepath)
115 int fh = g_creat(filepath.c_str(), S_IRUSR | S_IWUSR);
120 static void DeleteFile(
const std::string& filepath)
122 if(FileExists(filepath)){
123 g_remove(filepath.c_str());
126 static bool FileExists(
const std::string& filepath)
128 return(g_access(filepath.c_str(), 0)==0);
131 std::string Convert(
const std::wstring & ws)
133 std::wstring_convert<std::codecvt_utf8<wchar_t>,
wchar_t> convert;
134 return convert.to_bytes(ws);
137 std::wstring Convert(
const std::string & s)
139 std::wstring_convert<std::codecvt_utf8<wchar_t>,
wchar_t> convert;
140 return convert.from_bytes(s);
143 static std::string AddToPath(
const std::string & path,
const std::string & fileOrDirName)
146 gchar* filename = g_build_filename(path.c_str(), fileOrDirName.c_str(), NULL);
147 result = std::string(filename);
Definition: EnchantTestFixture.h:44