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 return std::string(pkgdatadir);
75 static void DeleteDirAndFiles(
const std::string& dir)
77 GDir* gdir = g_dir_open(dir.c_str(), 0, NULL);
80 const gchar* filename;
82 filename = g_dir_read_name(gdir);
87 std::string filepath = AddToPath(dir, filename);
88 if(g_file_test(filepath.c_str(), G_FILE_TEST_IS_DIR)){
89 DeleteDirAndFiles(filepath);
100 static std::string GetTemporaryFilename(
const std::string & prefix){
101 char* tempFileName = tempnam(
".", prefix.c_str());
102 std::string temp(tempFileName);
107 static void CreateDirectory(
const std::string& filepath)
109 g_mkdir_with_parents(filepath.c_str(), S_IRUSR | S_IWUSR | S_IXUSR);
111 static void CreateFile(
const std::string& filepath)
113 int fh = g_creat(filepath.c_str(), S_IRUSR | S_IWUSR);
118 static void DeleteFile(
const std::string& filepath)
120 if(FileExists(filepath)){
121 g_remove(filepath.c_str());
124 static bool FileExists(
const std::string& filepath)
126 return(g_access(filepath.c_str(), 0)==0);
129 std::string Convert(
const std::wstring & ws)
131 std::wstring_convert<std::codecvt_utf8<wchar_t>,
wchar_t> convert;
132 return convert.to_bytes(ws);
135 std::wstring Convert(
const std::string & s)
137 std::wstring_convert<std::codecvt_utf8<wchar_t>,
wchar_t> convert;
138 return convert.from_bytes(s);
141 static std::string AddToPath(
const std::string & path,
const std::string & fileOrDirName)
144 gchar* filename = g_build_filename(path.c_str(), fileOrDirName.c_str(), NULL);
145 result = std::string(filename);
Definition: EnchantTestFixture.h:44