int main(int argc, char** argv) { g_unsetenv("DBUS_SESSION_BUS_ADDRESS"); gtk_test_init(&argc, &argv, 0); g_setenv("WEBKIT_EXEC_PATH", WEBKIT_EXEC_PATH, FALSE); g_setenv("WEBKIT_INJECTED_BUNDLE_PATH", WEBKIT_INJECTED_BUNDLE_PATH, FALSE); g_setenv("LC_ALL", "C", TRUE); g_setenv("GIO_USE_VFS", "local", TRUE); g_setenv("GSETTINGS_BACKEND", "memory", TRUE); g_test_bug_base("https://bugs.webkit.org/"); registerGResource(); GOwnPtr<char> diskCacheTempDirectory(g_dir_make_tmp("WebKit2TestsDiskCache-XXXXXX", 0)); g_assert(diskCacheTempDirectory.get()); webkit_web_context_set_disk_cache_directory(webkit_web_context_get_default(), diskCacheTempDirectory.get()); beforeAll(); int returnValue = g_test_run(); afterAll(); removeNonEmptyDirectory(diskCacheTempDirectory.get()); return returnValue; }
//Une méthode statique qui supprime un répertoire non vide bool Depot::removeNonEmptyDirectory(QString path) { QDir dir(path); //Supprime tous les fichier contenus dans le dossier path QFileInfoList fileList = dir.entryInfoList( QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot ); foreach(QFileInfo file, fileList) dir.remove( file.absoluteFilePath()); //Supprime tous les dossiers contenus dans le dossier path QFileInfoList dirList = dir.entryInfoList( QDir::AllDirs | QDir::Hidden | QDir::NoDotAndDotDot ); foreach(QFileInfo dir, dirList) if(!removeNonEmptyDirectory(dir.absoluteFilePath())) return false; //On supprime enfin le dossier name if(!dir.rmdir(dir.absolutePath())) return false; return true; }
bool Depot::deleteMedia(QString mediaRealPath,QString login,QString password) { if(!mediaRealPath.startsWith(depotName)) return false; mutex.lock(); QString mediaLocalPath=GLOBAL_DEPOTS_PATH+mediaRealPath; QDir dir(mediaLocalPath); if(dir.exists()) { if(!removeNonEmptyDirectory(mediaLocalPath)) { mutex.unlock(); return false; } } else { if(!QFile::remove(mediaLocalPath)) { mutex.unlock(); return false; } } if(!(svnManager->removeFileToDepot(GLOBAL_DEPOTS_PATH+depotName,mediaLocalPath,login,password))) { mutex.unlock(); return false; } int r=svnManager->getRevision(GLOBAL_DEPOTS_PATH+depotName); if(r<0) { mutex.unlock(); return false; } revision=r; mutex.unlock(); return true; }