4 * Tests unitaires de l'API d'Archives
8 use Spip\Archives\SpipArchives
;
10 $test = 'initialiser archives';
12 while (!is_dir($remonte . 'ecrire')) {
13 $remonte = '../' . $remonte;
15 require $remonte . 'tests/test.inc';
18 require __DIR__
. '/TestCase.inc';
19 nettoyer_environnement_test();
21 include_spip('inc/archives');
23 //extensions inconnues
24 foreach (array('sans_extension', 'extension_inconnue', 'faux_amis') as $cas) {
25 $archive = new SpipArchives(fichier_de_test($cas));
26 $ok &= ($archive->erreur() === 2);
30 $fichier = fichier_de_test('zip');
31 $repertoire = repertoire_de_test();
34 $archive = new SpipArchives($fichier);
35 $ok &= ($archive->erreur() === 3);
36 $ok &= !$archive->getLectureSeule(); //repertoire accessible en ecriture
37 $ok &= !$archive->deballer(); //on ne peut decompresser un fichier qui n'existe pas
41 $archive = new SpipArchives($fichier);
42 $ok &= ($archive->erreur() === 0);
43 $ok &= !$archive->getLectureSeule();
44 $ok &= !$archive->deballer($repertoire); //on ne peut pas décompresser dans un répertoire qui n'existe pas
45 $ok &= ($archive->erreur() === 5);
47 // destination en lecture seule
49 chmod($repertoire, 0500);
50 $ok &= !$archive->deballer($repertoire); //on ne peut pa décompresser dans un répertoire en lecture seule
51 $ok &= ($archive->erreur() === 5);
52 chmod($repertoire, 0700);
54 //fichier en lecteure seule
55 chmod($fichier, 0400);
56 $archive = new SpipArchives($fichier);
57 $ok &= ($archive->erreur() === 0);
58 $ok &= $archive->getLectureSeule();
59 chmod($fichier, 0600);
61 //forcer le mode de compression
62 $fichier = fichier_de_test('sans_extension');
64 $archive = new SpipArchives($fichier, 'zip');
65 $ok &= ($archive->erreur() === 0);
67 nettoyer_environnement_test();