A Wiki in Doli capdoliwiki
| Réf | Intitulé | Cycle | Couverture | Verdict |
|---|---|---|---|---|
| Administration | ||||
| DWI-047 |
Page de configuration
Desktop
DétailsÉtapes: ouvrir la configuration du module (admin/setup.php), modifier une constante (ex. durée du verrou, largeur max des images, rétention corbeille) et enregistrer. Attendu: les constantes CAPDOLIWIKI_* sont persistées et prises en compte; aucune erreur à l'enregistrement. |
À tester | Partiel | Non testé |
| DWI-048 |
Page à propos (feedback, dons, stats)
Desktop
DétailsÉtapes: ouvrir la page à propos (admin/about.php); envoyer un message de feedback. Attendu: l'encart infos module (version, éditeur, licence, versions min Dolibarr/PHP), le formulaire de feedback, l'encart de don et les liens utiles s'affichent; l'envoi du feedback fonctionne (ou journalise l'erreur le cas échéant). |
À tester | Non couvert | Non testé |
| DWI-050 |
Données de démonstration : génération et purge
Desktop
DétailsPrécondition: instance de test (CAPDOLIWIKI_ALLOW_DEMO_DATA = 1 ou MAIN_FEATURES_LEVEL >= 2). Étapes: onglet Mode démonstration de la configuration, cocher la confirmation, générer ; relancer la génération sans purge ; puis supprimer les données de démonstration. Attendu: le wiki d'une entreprise de 50 salariés est créé (plus de 400 pages par service, historique sur onze mois daté depuis le jour de la génération, tags, liens, schémas, quatorze comptes en trois groupes) ; une seconde génération ne duplique rien ; la purge supprime tout ce qui a été créé. |
À tester | Couvert | Non testé |
| DWI-051 |
Données de démonstration refusées en production
Desktop
DétailsPrécondition: installation sans CAPDOLIWIKI_ALLOW_DEMO_DATA, MAIN_FEATURES_LEVEL inférieur à 2 et sans DEMO_INSTANCE. Étapes: tenter de générer puis de purger les données de démonstration. Attendu: les deux actions sont refusées avec un message ; aucune page ni aucun compte n'est créé ou supprimé. |
À tester | Partiel | Non testé |
| Corbeille | ||||
| DWI-040 |
Suppression douce (mise en corbeille)
Desktop
DétailsÉtapes: supprimer une page depuis la liste ou la fiche. Attendu: la page passe en corbeille (statut -1) avec date et auteur de suppression; elle disparaît de l'arborescence active mais reste récupérable. |
À tester | Couvert | Non testé |
| DWI-041 |
Restauration depuis la corbeille
Desktop
DétailsPrécondition: une page en corbeille. Étapes: ouvrir la corbeille et restaurer la page. Attendu: la page revient à l'état publié et réapparaît dans l'arborescence; les champs de suppression sont réinitialisés. |
À tester | Partiel | Non testé |
| DWI-042 |
Suppression définitive (hard delete)
Desktop
DétailsPrécondition: une page en corbeille, utilisateur avec droit delete. Étapes: supprimer définitivement la page depuis la corbeille. Attendu: la page, toutes ses versions, ses verrous et son répertoire de fichiers sont supprimés définitivement; l'opération est journalisée. |
À tester | Partiel | Non testé |
| DWI-043 |
Page index non supprimable
Desktop
DétailsÉtapes: tenter de supprimer la page racine "index". Attendu: aucune action de suppression n'est proposée pour la page index; une tentative directe est refusée. La page d'accueil du wiki reste toujours disponible. |
À tester | Non couvert | Non testé |
| DWI-044 |
Purge automatique de la corbeille (cron)
Desktop
DétailsPrécondition: CAPDOLIWIKI_TRASH_RETENTION_DAYS > 0, une page en corbeille depuis plus longtemps que ce délai. Étapes: exécuter la tâche cron de purge (cron/purge_trash.php). Attendu: les pages en corbeille au-delà du délai de rétention sont supprimées définitivement; avec la valeur 0, aucune purge n'a lieu. |
À tester | Partiel | Non testé |
| DWI-056 |
Page en corbeille non modifiable
Desktop
DétailsPrécondition: une page en corbeille. Étapes: ouvrir directement son édition ; consulter son historique avec un simple lecteur. Attendu: l'édition est refusée tant que la page n'est pas restaurée ; l'historique n'est pas visible d'un simple lecteur. |
À tester | Couvert | Non testé |
| Édition | ||||
| DWI-010 |
Éditeur WYSIWYG Milkdown
Desktop
DétailsÉtapes: ouvrir edit.php sur une page contenant du Markdown varié (titres, listes, gras, code). Attendu: l'éditeur Milkdown se charge et affiche le rendu WYSIWYG du Markdown; la saisie met à jour le champ caché wiki_content; l'enregistrement conserve le Markdown. |
À tester | Non couvert | Non testé |
| DWI-011 |
Barre d'outils de mise en forme
Desktop
DétailsÉtapes: dans l'éditeur, tester chaque bouton de la toolbar: gras, italique, titres, listes, lien, code, ligne horizontale, plein écran. Attendu: chaque bouton applique le formatage attendu sur la sélection ou à la position du curseur. |
À tester | Non couvert | Non testé |
| DWI-012 |
Sauvegarde automatique en brouillon (localStorage)
Desktop
DétailsÉtapes: modifier une page sans enregistrer, quitter/recharger la page d'édition. Attendu: un brouillon est sauvegardé périodiquement en localStorage; au retour, une proposition de restauration du brouillon est offerte; après enregistrement réel, le brouillon est effacé. |
À tester | Non couvert | Non testé |
| DWI-013 |
Raccourcis clavier et plein écran
Desktop
DétailsÉtapes: dans l'éditeur, tester Ctrl+S (enregistrer), Ctrl+Shift+F (plein écran), Échap (quitter le plein écran). Attendu: Ctrl+S soumet le formulaire; Ctrl+Shift+F bascule en plein écran; Échap en sort. |
À tester | Non couvert | Non testé |
| Export PDF | ||||
| DWI-045 |
Export PDF d'une page seule
Desktop
DétailsÉtapes: depuis une page, lancer l'export PDF de la page seule (export_pdf.php). Attendu: un PDF (TCPDF) est généré avec le titre et le contenu Markdown converti en HTML mis en forme; les images et la mise en page sont correctes. |
À tester | Partiel | Non testé |
| DWI-046 |
Export PDF d'une branche complète
Desktop
DétailsPrécondition: une page ayant des sous-pages. Étapes: lancer l'export PDF de la branche (page + sous-pages). Attendu: le PDF contient la page et toutes ses sous-pages collectées récursivement, dans l'ordre hiérarchique. |
À tester | Partiel | Non testé |
| Historique | ||||
| DWI-037 |
Création d'une version à chaque sauvegarde
Desktop
DétailsÉtapes: modifier une page et l'enregistrer plusieurs fois, éventuellement avec un commentaire de version. Attendu: chaque enregistrement crée une nouvelle entrée de version (numéro incrémenté); l'historique (history.php) liste toutes les versions avec auteur, date et commentaire. |
À tester | Partiel | Non testé |
| DWI-038 |
Comparaison (diff) entre deux versions
Desktop
DétailsÉtapes: dans l'historique, sélectionner deux versions et afficher le diff. Attendu: un diff LCS met en évidence les ajouts et suppressions ligne à ligne entre les deux versions. |
À tester | Couvert | Non testé |
| DWI-039 |
Restauration d'une version antérieure
Desktop
DétailsÉtapes: depuis l'historique, restaurer une version antérieure. Attendu: le contenu et le titre de la version choisie deviennent le contenu courant; une nouvelle version est créée (le rollback ne détruit pas l'historique). |
À tester | Couvert | Non testé |
| Images | ||||
| DWI-014 |
Coller une image (presse-papier)
Desktop
DétailsÉtapes: dans l'éditeur, coller une image depuis le presse-papier (capture d'écran). Attendu: l'image est uploadée via ajax/upload_image.php, redimensionnée côté serveur (GD) selon CAPDOLIWIKI_IMAGE_MAX_WIDTH et CAPDOLIWIKI_IMAGE_QUALITY, puis insérée dans le contenu; le fichier est rangé dans le répertoire de la page. |
À tester | Partiel | Non testé |
| DWI-015 |
Glisser-déposer d'une image
Desktop
DétailsÉtapes: glisser-déposer un fichier image dans l'éditeur. Attendu: même comportement que le collage (upload + redimensionnement + insertion), sans erreur. |
À tester | Non couvert | Non testé |
| DWI-016 |
Affichage sécurisé des images
Desktop
DétailsÉtapes: consulter une page contenant des images; vérifier l'URL de service des images (ajax/viewimage.php ou document.php). Attendu: les images s'affichent; l'accès au fichier respecte le contrôle de permission du wiki (pas d'accès direct sans droit de lecture). |
À tester | Partiel | Non testé |
| DWI-052 |
Pièces jointes d'une page
Desktop
DétailsÉtapes: ouvrir l'onglet Pièces jointes d'une page, envoyer un fichier, consulter la liste, supprimer le fichier (droit d'écriture). Attendu: le fichier est rangé dans le répertoire de la page et listé avec sa taille ; la suppression fonctionne avec le droit d'écriture ; les images collées dans l'éditeur apparaissent aussi dans cet onglet. |
À tester | Partiel | Non testé |
| DWI-053 |
Taille d'affichage d'une image collée
Desktop
DétailsÉtapes: coller une image dans l'éditeur ; dans la fenêtre qui s'ouvre, choisir originale, grande (800 px), moyenne (480 px) puis petite (160 px) sur quatre collages. Attendu: chaque image est insérée à la taille choisie et la garde après enregistrement ; en lecture, un clic l'affiche en plein écran. |
À tester | Non couvert | Non testé |
| Installation | ||||
| DWI-001 |
Activation du module
Desktop
DétailsPrécondition: module capDoliWiki non activé. Étapes: Accueil > Configuration > Modules/Applications, rechercher capDoliWiki, cliquer pour l'activer. Attendu: le module passe à l'état actif sans erreur; une entrée de menu "Wiki" apparaît; les tables llx_capdoliwiki_page, _page_version, _page_lock, _page_link et _categorie_capdoliwiki_page sont créées; une page racine "index" existe et n'est pas supprimable. |
À tester | Partiel | Non testé |
| DWI-002 |
Desactivation puis reactivation
Desktop
DétailsÉtapes: désactiver le module puis le réactiver. Attendu: aucune erreur; les pages existantes et leur historique sont conservés; les migrations (colonne content_plain, index FULLTEXT sur MySQL, backfill) se rejouent sans casse; la constante CAPDOLIWIKI_MODULE_VERSION reflète la version active. |
À tester | Non couvert | Non testé |
| Lecture / contenu riche | ||||
| DWI-020 |
Coloration syntaxique du code (Prism)
Desktop
DétailsPrécondition: page avec des blocs de code fences ( |
À tester | Couvert | Non testé |
| DWI-021 |
Diagrammes Mermaid
Desktop
DétailsPrécondition: page avec un bloc ```mermaid (ex. flowchart). Étapes: consulter la page. Attendu: le bloc mermaid est remplacé par un SVG rendu; le chunk Mermaid (~3 Mo) est chargé dynamiquement uniquement si un diagramme est présent. |
À tester | Partiel | Non testé |
| DWI-022 |
Blocs callout (info/tip/warning/danger)
Desktop
DétailsPrécondition: page avec des blocs :::info, :::tip, :::warning, :::danger. Étapes: consulter la page. Attendu: chaque bloc est rendu en encart stylisé avec la couleur/icône correspondant au type. |
À tester | Non couvert | Non testé |
| DWI-023 |
Table des matières automatique
Desktop
DétailsPrécondition: page avec plusieurs titres (h2/h3). Étapes: consulter la page. Attendu: une table des matières est générée dans la sidebar sticky; les liens pointent vers les sections; comportement responsive correct. |
À tester | Non couvert | Non testé |
| DWI-024 |
Ancres cliquables et légendes d'images
Desktop
DétailsÉtapes: survoler un titre; consulter une image ayant un texte alternatif. Attendu: un lien d'ancre (#) apparaît au survol des titres et copie l'URL de la section; les images avec alt sont enveloppées dans figure/figcaption affichant la légende. |
À tester | Non couvert | Non testé |
| DWI-025 |
Lightbox et raccourcis de lecture
Desktop
DétailsÉtapes: cliquer sur une image; tester les raccourcis E (éditer), H (historique), flèches (navigation). Attendu: le clic ouvre l'image en lightbox (GLightbox, zoom); E ouvre l'édition, H l'historique, les flèches naviguent entre pages. |
À tester | Non couvert | Non testé |
| Liens inter-pages | ||||
| DWI-032 |
Wikilink [[page]] rendu en lien
Desktop
DétailsPrécondition: une page A contenant une syntaxe [[Titre d'une page B]]. Étapes: consulter la page A. Attendu: le wikilink est rendu comme un lien cliquable vers la page B; le lien mène bien à la bonne page. |
À tester | Couvert | Non testé |
| DWI-033 |
Backlinks affichés sur une page
Desktop
DétailsPrécondition: plusieurs pages pointant (via wikilink) vers la page cible C. Étapes: consulter la page C. Attendu: la liste des backlinks (pages qui référencent C) est affichée et chaque entrée est cliquable. |
À tester | Partiel | Non testé |
| DWI-034 |
Détection des pages orphelines
Desktop
DétailsPrécondition: au moins une page qu'aucune autre ne référence. Étapes: ouvrir la page de maintenance (maintenance.php). Attendu: la page orpheline apparaît dans la liste des pages orphelines; un message s'affiche s'il n'y en a aucune. |
À tester | Partiel | Non testé |
| DWI-035 |
Liens cassés et réconciliation à la création de la cible
Desktop
DétailsÉtapes: créer une page A avec un wikilink [[Page inexistante]]; vérifier la maintenance (lien cassé signalé); créer ensuite la page cible portant ce titre. Attendu: tant que la cible n'existe pas, le lien est signalé comme cassé; à la création de la page cible, les liens entrants sont réconciliés automatiquement et ne sont plus cassés. |
À tester | Couvert | Non testé |
| DWI-036 |
Autocomplétion de pages
Desktop
DétailsÉtapes: dans l'éditeur, déclencher la recherche de page (ajax/pages_search.php) en saisissant quelques lettres du titre. Attendu: la liste des pages correspondantes est proposée; la sélection insère un wikilink correct vers la page choisie. |
À tester | Non couvert | Non testé |
| Maintenance | ||||
| DWI-049 |
Vue de maintenance du wiki
Desktop
DétailsÉtapes: ouvrir la page de maintenance (maintenance.php). Attendu: la page liste les pages orphelines et les wikilinks cassés, avec des liens cliquables vers les pages concernées; des messages dédiés s'affichent quand il n'y a ni orphelines ni liens cassés. |
À tester | Non couvert | Non testé |
| Navigation | ||||
| DWI-007 |
Affichage de l'arborescence
Desktop
DétailsÉtapes: ouvrir la page d'accueil du wiki (index.php) avec plusieurs pages parent/enfant. Attendu: l'arborescence hiérarchique s'affiche avec indentation par niveau; la page index apparaît; les dates de modification et auteurs sont corrects. |
À tester | Partiel | Non testé |
| DWI-008 |
Création d'une page racine et d'une sous-page
Desktop
DétailsÉtapes: créer une page sans parent, puis créer une seconde page en choisissant la première comme parent. Attendu: la sous-page apparaît sous son parent dans l'arbre; le slug (ref) est généré automatiquement et unique; un suffixe numérique est ajouté en cas de collision de titre. |
À tester | Couvert | Non testé |
| DWI-009 |
Fil d'ariane (breadcrumb)
Desktop
DétailsPrécondition: une page imbriquée sur plusieurs niveaux. Étapes: ouvrir la page enfant la plus profonde (page.php). Attendu: le fil d'ariane affiche le chemin complet de la racine jusqu'à la page courante, chaque niveau étant cliquable. |
À tester | Partiel | Non testé |
| Permissions | ||||
| DWI-003 |
Lecture seule (droit read)
Desktop
DétailsPrécondition: utilisateur avec uniquement le droit "Lire les pages wiki". Étapes: ouvrir le wiki, consulter une page. Attendu: la consultation fonctionne; aucun bouton Créer/Modifier/Supprimer n'est proposé; l'accès direct à edit.php est refusé. |
À tester | Partiel | Non testé |
| DWI-004 |
Écriture (droit write)
Desktop
DétailsPrécondition: utilisateur avec droits read + write (sans delete). Étapes: créer une page, la modifier, l'enregistrer. Attendu: création et modification possibles; le bouton de suppression et l'accès à la corbeille restent indisponibles. |
À tester | Partiel | Non testé |
| DWI-005 |
Suppression et admin (droit delete)
Desktop
DétailsPrécondition: utilisateur avec droit delete. Étapes: supprimer une page, ouvrir la corbeille, forcer le déverrouillage d'une page verrouillée par un autre utilisateur. Attendu: accès à la corbeille, à la restauration, à la suppression définitive et au forçage de verrou. |
À tester | Partiel | Non testé |
| DWI-006 |
Accès refusé sans aucun droit
Desktop
DétailsPrécondition: utilisateur sans aucun droit capdoliwiki. Étapes: tenter d'ouvrir index.php du wiki. Attendu: accès refusé par restrictedArea (message d'erreur Dolibarr), pas de fuite de contenu. |
À tester | Non couvert | Non testé |
| Recherche | ||||
| DWI-026 |
Recherche plein-texte sur le contenu
Desktop
DétailsPrécondition: une page dont un mot n'apparaît que dans le corps (pas dans le titre). Étapes: saisir ce mot dans la barre de recherche de l'accueil du wiki. Attendu: la page est trouvée (recherche sur le corps, pas seulement le titre); un extrait de contexte est affiché avec le terme surligné. |
À tester | Couvert | Non testé |
| DWI-027 |
Classement par pertinence et multi-termes
Desktop
DétailsÉtapes: rechercher un terme présent à la fois dans un titre et dans le corps d'autres pages; puis rechercher deux mots. Attendu: les résultats sont classés par pertinence (correspondance de titre remontée en premier); une recherche à plusieurs mots ne retourne que les pages contenant tous les termes (ET). |
À tester | Couvert | Non testé |
| DWI-028 |
Recherche sans résultat et termes accentués
Desktop
DétailsÉtapes: rechercher un terme introuvable; puis rechercher un mot accentué (ex. déploiement). Attendu: un message dédié "aucun résultat" s'affiche quand rien ne correspond; les termes accentués sont correctement trouvés et surlignés. |
À tester | Partiel | Non testé |
| Sécurité | ||||
| DWI-054 |
Isolation des pages entre entités
Desktop
DétailsPrécondition: Dolibarr multi-société, une page dans l'entité 2. Étapes: depuis l'entité 1, appeler directement l'édition, l'historique, les pièces jointes, le verrou, la mise en corbeille, la restauration et la suppression définitive de cette page. Attendu: chaque action est refusée et la page de l'autre entité reste intacte. |
À tester | Couvert | Non testé |
| DWI-055 |
Liens d'action protégés contre les requêtes forgées (CSRF)
Desktop
DétailsÉtapes: inspecter les liens de suppression de la liste des pages et les liens de restauration et de suppression définitive de la corbeille ; rejouer une action sans jeton. Attendu: chaque lien porte le jeton de session ; une action soumise sans jeton valide est refusée. |
À tester | Partiel | Non testé |
| Tags | ||||
| DWI-029 |
Ajout de tags à une page
Desktop
DétailsÉtapes: éditer une page, renseigner des tags dans le champ dédié et/ou utiliser des #tags en ligne dans le contenu, enregistrer. Attendu: les tags saisis et les #tags détectés dans le contenu sont fusionnés puis associés à la page (catégories de type capdoliwiki_page); les tags s'affichent sur la fiche en lecture. |
À tester | Partiel | Non testé |
| DWI-030 |
Nuage de tags et filtrage par tag
Desktop
DétailsÉtapes: ouvrir la page des tags (tags.php); cliquer sur un tag. Attendu: un nuage de tags s'affiche avec les libellés existants; le clic sur un tag liste toutes les pages portant ce tag. |
À tester | Non couvert | Non testé |
| DWI-031 |
Autocomplétion des tags
Desktop
DétailsÉtapes: dans le champ de tags en édition, commencer à saisir quelques lettres. Attendu: l'autocomplétion (ajax/tags.php) propose les tags existants correspondants; la sélection ajoute le tag sans doublon. |
À tester | Non couvert | Non testé |
| Verrouillage | ||||
| DWI-017 |
Verrou à l'ouverture en édition + heartbeat
Desktop
DétailsÉtapes: ouvrir une page en édition avec l'utilisateur A. Attendu: un verrou est posé (ajax/lock.php) pour la durée CAPDOLIWIKI_LOCK_DURATION; un heartbeat rafraîchit le verrou tant que l'édition est ouverte. |
À tester | Couvert | Non testé |
| DWI-018 |
Page verrouillée par un autre utilisateur
Desktop
DétailsPrécondition: page ouverte en édition par l'utilisateur A. Étapes: l'utilisateur B tente d'éditer la même page. Attendu: B est averti que la page est verrouillée par A et ne peut pas écraser; il peut consulter en lecture. |
À tester | Partiel | Non testé |
| DWI-019 |
Forçage du déverrouillage par un admin
Desktop
DétailsPrécondition: page verrouillée par un autre utilisateur. Étapes: un utilisateur avec droit delete force le déverrouillage. Attendu: le verrou est supprimé; l'admin peut éditer; une trace est journalisée (dol_syslog). |
À tester | Partiel | Non testé |