Browse Source

Tester tous les formats dans le test 01_initialiser_archives

pull/4414/head
Cerdic 2 years ago
parent
commit
ee86fda245
  1. 124
      tests/01_initialiser_archives.php
  2. 2
      tests/TestCase.inc

124
tests/01_initialiser_archives.php

@ -20,8 +20,6 @@ archiviste_nettoyer_environnement_test();
include_spip('inc/archives');
//presence fichier
$fichier = archiviste_fichier_de_test('zip');
$repertoire = archiviste_repertoire_de_test();
//extensions inconnues
@ -33,68 +31,74 @@ foreach (array('sans_extension', 'extension_inconnue', 'faux_amis') as $cas) {
}
}
//fichier absent
$archive = new SpipArchives($fichier);
if ($archive->erreur() !== 3) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec creation d'une nouvelle archive : doit produire une erreur fichier absent", $repertoire);
}
if ($archive->getLectureSeule()) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec creation d'une nouvelle archive : ne doit pas etre en lecture seule", $repertoire);
}
if ($archive->deballer()) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec creation d'une nouvelle archive : on ne peut deballer un fichier qui n'existe pas", $repertoire);
}
foreach (SpipArchives::compressionsConnues as $format) {
//fichier present
touch($fichier);
$archive = new SpipArchives($fichier);
if ($archive->erreur() !== false) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec ouverture d'une archive existante : ne doit pas produire une erreur", $repertoire);
}
if ($archive->getLectureSeule()) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec ouverture d'une archive existante : ne doit pas etre en lecture seule", $repertoire);
}
if ($archive->deballer($repertoire) or $archive->erreur() !== 5) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec ouverture d'une archive existante : on ne peut pas deballer dans un repertoire qui n'existe pas", $repertoire);
}
//presence fichier
$fichier = archiviste_fichier_de_test($format);
// destination en lecture seule
mkdir($repertoire);
chmod($repertoire, 0500);
if ($archive->deballer($repertoire) or $archive->erreur() !== 5) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec ouverture d'une archive existante : on ne peut pas deballer dans un repertoire en lecture seule", $repertoire);
}
chmod($repertoire, 0700);
//fichier absent
$archive = new SpipArchives($fichier);
if ($archive->erreur() !== 3) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec creation d'une nouvelle archive : doit produire une erreur fichier absent", $repertoire);
}
if ($archive->getLectureSeule()) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec creation d'une nouvelle archive : ne doit pas etre en lecture seule", $repertoire);
}
if ($archive->deballer()) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec creation d'une nouvelle archive : on ne peut deballer un fichier qui n'existe pas", $repertoire);
}
//fichier en lecteure seule
chmod($fichier, 0400);
$archive = new SpipArchives($fichier);
if ($archive->erreur() !== false) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec ouverture d'une archive existante en lecture seule : ne doit pas produire une erreur", $repertoire);
}
if (! $archive->getLectureSeule()){
var_dump($archive->erreur(), $archive->message());
archiviste_finir_test("Echec ouverture d'une archive existante en lecture seule : la lecture seule n'a pas ete detectee", $repertoire);
}
chmod($fichier, 0600);
//fichier present
touch($fichier);
$archive = new SpipArchives($fichier);
if ($archive->erreur() !== false) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec ouverture d'une archive existante : ne doit pas produire une erreur", $repertoire);
}
if ($archive->getLectureSeule()) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec ouverture d'une archive existante : ne doit pas etre en lecture seule", $repertoire);
}
if ($archive->deballer($repertoire) or $archive->erreur() !== 5) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec ouverture d'une archive existante : on ne peut pas deballer dans un repertoire qui n'existe pas", $repertoire);
}
// destination en lecture seule
mkdir($repertoire);
chmod($repertoire, 0500);
if ($archive->deballer($repertoire) or $archive->erreur() !== 5) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec ouverture d'une archive existante : on ne peut pas deballer dans un repertoire en lecture seule", $repertoire);
}
chmod($repertoire, 0700);
//forcer le mode de compression
$fichier = archiviste_fichier_de_test('sans_extension');
touch($fichier);
$archive = new SpipArchives($fichier, 'zip');
if ($archive->erreur() !== false) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("Echec ouverture d'une archive existante dont on force le format : ne doit pas produire une erreur", $repertoire);
//fichier en lecteure seule
chmod($fichier, 0400);
$archive = new SpipArchives($fichier);
if ($archive->erreur() !== false) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec ouverture d'une archive existante en lecture seule : ne doit pas produire une erreur", $repertoire);
}
if (! $archive->getLectureSeule()){
var_dump($archive->erreur(), $archive->message());
archiviste_finir_test("[$format] Echec ouverture d'une archive existante en lecture seule : la lecture seule n'a pas ete detectee", $repertoire);
}
chmod($fichier, 0600);
//forcer le mode de compression
$fichier = archiviste_fichier_de_test('sans_extension');
touch($fichier);
$archive = new SpipArchives($fichier, $format);
if ($archive->erreur() !== false) {
var_dump($archive->erreur(),$archive->message());
archiviste_finir_test("[$format] Echec ouverture d'une archive existante dont on force le format : ne doit pas produire une erreur", $repertoire);
}
archiviste_nettoyer_contenu_de_test(archiviste_contenu_de_test(), $repertoire);
archiviste_nettoyer_environnement_test();
}
archiviste_nettoyer_contenu_de_test(archiviste_contenu_de_test(), $repertoire);
archiviste_nettoyer_environnement_test();
archiviste_finir_test(false, $repertoire);

2
tests/TestCase.inc

@ -26,6 +26,8 @@ function archiviste_definir_fichiers_de_test()
'sans_extension' => 'archives_test',
'extension_inconnue' => 'archives_test.' . archiviste_inconnu(),
'zip' => 'archives_test' . archiviste_inconnu() . '.zip',
'tar' => 'archives_test' . archiviste_inconnu() . '.tar',
'tgz' => 'archives_test' . archiviste_inconnu() . '.tgz',
'faux_amis' => 'fichier_test_zip',
);

Loading…
Cancel
Save