Files
gnome-asus-kbd-rgb/docs/TESTING.md
2025-12-21 06:55:49 +01:00

325 lines
9.8 KiB
Markdown

# Checklist de Tests - Extension ASUS Keyboard RGB
Ce document fournit une checklist complète pour tester l'extension avant publication ou après modification.
## Prérequis pour les tests
- [ ] GNOME Shell 48 installé
- [ ] Matériel ASUS avec clavier RGB supporté
- [ ] Règles udev configurées (groupe `kbdled`)
- [ ] Utilisateur membre du groupe `kbdled` (après déconnexion/reconnexion)
## 1. Installation
### 1.1 Installation initiale
- [ ] Le script `./tools/install-local.sh` s'exécute sans erreur
- [ ] Les fichiers sont copiés dans `~/.local/share/gnome-shell/extensions/asus-kbd-rgb@gilles/`
- [ ] Le schéma GSettings est compilé (`gschemas.compiled` existe)
- [ ] L'extension apparaît dans `gnome-extensions list`
### 1.2 Activation
- [ ] La commande `gnome-extensions enable asus-kbd-rgb@gilles` fonctionne
- [ ] Aucune erreur dans `journalctl -f -o cat /usr/bin/gnome-shell`
- [ ] L'icône de clavier apparaît dans la barre supérieure (après rechargement)
## 2. Interface Utilisateur
### 2.1 Icône et menu
- [ ] L'icône `keyboard-brightness-symbolic` est visible dans le panneau
- [ ] Clic sur l'icône ouvre le popover
- [ ] Le popover affiche le titre "Rétroéclairage Clavier ASUS"
- [ ] Le menu est bien formaté et lisible
### 2.2 Section Intensité
- [ ] Les 4 boutons d'intensité sont visibles (OFF, 1, 2, 3)
- [ ] Clic sur "OFF" éteint le rétroéclairage
- [ ] Clic sur "1" met l'intensité à faible
- [ ] Clic sur "2" met l'intensité à moyenne
- [ ] Clic sur "3" met l'intensité à forte (max)
- [ ] Le bouton actif est surligné visuellement
- [ ] Un seul bouton est actif à la fois
### 2.3 Section Sliders RGB
- [ ] Le slider Rouge fonctionne et affiche la valeur (0-255)
- [ ] Le slider Vert fonctionne et affiche la valeur (0-255)
- [ ] Le slider Bleu fonctionne et affiche la valeur (0-255)
- [ ] Le slider Master fonctionne et affiche la valeur (0-100)
- [ ] Déplacer un slider met à jour la valeur numérique en temps réel
- [ ] Les sliders sont fluides (pas de lag visible)
### 2.4 Ligne d'information
- [ ] La ligne d'info affiche `RGB=(r,g,b)` correctement
- [ ] Le code HEX `#RRGGBB` est correct
- [ ] L'intensité `Intensité=n/3` est correcte
- [ ] Les valeurs se mettent à jour après changement de slider
- [ ] Les valeurs se mettent à jour après clic sur preset
- [ ] Les valeurs se mettent à jour après changement d'intensité
### 2.5 Section Presets
- [ ] 6 boutons de preset sont visibles
- [ ] Les couleurs de fond correspondent aux presets :
- Preset 1 : Orange (#FFA500)
- Preset 2 : Rouge (#FF0000)
- Preset 3 : Vert (#00FF00)
- Preset 4 : Bleu (#0000FF)
- Preset 5 : Blanc (#FFFFFF)
- Preset 6 : Cyan (#00FFFF)
- [ ] Clic sur un preset applique la couleur immédiatement
- [ ] Les sliders RGB se mettent à jour après clic sur preset
- [ ] La ligne d'info se met à jour après clic sur preset
## 3. Fonctionnalités Backend
### 3.1 Écriture brightness
- [ ] Passage de OFF (0) à 1 allume le clavier
- [ ] Passage de 1 à 2 augmente la luminosité
- [ ] Passage de 2 à 3 augmente encore la luminosité
- [ ] Passage de 3 à OFF éteint le clavier
- [ ] Les valeurs sont écrites correctement dans `/sys/class/leds/asus::kbd_backlight/brightness`
### 3.2 Écriture RGB
- [ ] Changement de Rouge modifie la couleur du clavier
- [ ] Changement de Vert modifie la couleur du clavier
- [ ] Changement de Bleu modifie la couleur du clavier
- [ ] Les valeurs RGB sont clampées (0-255)
- [ ] Format dans `kbd_rgb_mode` est correct : `1 0 R G B 0\n`
### 3.3 Master Gain
- [ ] Master à 100% : couleurs normales
- [ ] Master à 50% : couleurs à mi-intensité
- [ ] Master à 0% : noir (aucune couleur visible)
- [ ] Master à 75% : couleurs proportionnellement réduites
- [ ] Le gain est appliqué à toutes les composantes RGB
### 3.4 Debouncing
- [ ] Déplacer rapidement un slider ne spam pas sysfs (vérifier logs)
- [ ] Il y a un délai de ~75ms entre les écritures
- [ ] La dernière valeur est bien appliquée après l'arrêt du slider
- [ ] Aucun message d'erreur de permission dû au spam
### 3.5 Comportement brightness=0
- [ ] Si brightness=0, changement RGB ne modifie pas le clavier (reste éteint)
- [ ] Les valeurs RGB sont mémorisées dans GSettings
- [ ] Passage de brightness 0→1 restaure la dernière couleur RGB
- [ ] Aucun message d'erreur lors du changement RGB avec brightness=0
## 4. Persistance (GSettings)
### 4.1 Sauvegarde
- [ ] Changer Rouge, fermer le menu, rouvrir → valeur conservée
- [ ] Changer Vert, fermer le menu, rouvrir → valeur conservée
- [ ] Changer Bleu, fermer le menu, rouvrir → valeur conservée
- [ ] Changer Master, fermer le menu, rouvrir → valeur conservée
- [ ] Changer Brightness, fermer le menu, rouvrir → valeur conservée
- [ ] Appliquer un preset, fermer le menu, rouvrir → preset appliqué
### 4.2 Restauration au démarrage
- [ ] Configurer RGB (ex: rouge pur), brightness à 2
- [ ] Fermer la session, se reconnecter
- [ ] L'extension restaure automatiquement RGB rouge et brightness 2
- [ ] Le clavier affiche la bonne couleur dès le démarrage
- [ ] Les sliders affichent les bonnes valeurs
### 4.3 Commandes GSettings manuelles
```bash
# Tester la lecture
gsettings get org.gnome.shell.extensions.asuskbdrgb red
gsettings get org.gnome.shell.extensions.asuskbdrgb green
gsettings get org.gnome.shell.extensions.asuskbdrgb blue
gsettings get org.gnome.shell.extensions.asuskbdrgb master-gain
gsettings get org.gnome.shell.extensions.asuskbdrgb brightness-level
```
- [ ] Les commandes retournent les bonnes valeurs
- [ ] Modifier via `gsettings set`, rouvrir le menu → nouvelle valeur affichée
## 5. Gestion des Erreurs
### 5.1 Matériel non supporté
Tester sur une machine sans clavier ASUS :
- [ ] L'extension charge sans crash
- [ ] Le popover affiche "❌ Matériel non supporté"
- [ ] Message clair : "Aucun clavier ASUS RGB détecté"
- [ ] Pas de sliders ni boutons (seulement le message d'erreur)
### 5.2 Permissions insuffisantes
Tester sans règles udev (ou retirer l'utilisateur du groupe `kbdled`) :
- [ ] L'extension charge sans crash
- [ ] Le popover affiche "⚠️ Permissions insuffisantes"
- [ ] Message clair avec référence à `docs/INSTALL.md`
- [ ] Pas de tentative d'écriture sysfs (pas d'erreur dans logs)
### 5.3 Valeurs invalides
- [ ] Entrer une valeur RGB > 255 → clampée à 255
- [ ] Entrer une valeur RGB < 0 → clampée à 0
- [ ] Entrer une valeur Master > 100 → clampée à 100
- [ ] Entrer une valeur Master < 0 → clampée à 0
- [ ] Brightness > 3 → clampée à 3
## 6. Logs et Debug
### 6.1 Logs au démarrage
```bash
journalctl -f -o cat /usr/bin/gnome-shell | grep -i asus
```
- [ ] Message "Activation de l'extension ASUS Keyboard RGB"
- [ ] Message "Extension ASUS Keyboard RGB activée avec succès"
- [ ] Aucune erreur JavaScript
### 6.2 Logs pendant l'utilisation
- [ ] Changement RGB affiche "RGB mis à (r, g, b) [master: X%]"
- [ ] Changement brightness affiche "Brightness mise à N (valeur)"
- [ ] Aucune erreur "Permission denied"
- [ ] Aucun spam (grâce au debouncing)
### 6.3 Logs à la désactivation
```bash
gnome-extensions disable asus-kbd-rgb@gilles
```
- [ ] Message "Désactivation de l'extension ASUS Keyboard RGB"
- [ ] Message "Extension ASUS Keyboard RGB désactivée"
- [ ] Aucune erreur de nettoyage
## 7. Robustesse
### 7.1 Rechargement GNOME Shell
- [ ] Alt+F2, `r` → l'extension se recharge correctement (X11)
- [ ] Logout/login → l'extension se recharge correctement (Wayland)
- [ ] État restauré après rechargement
### 7.2 Désactivation/Réactivation
```bash
gnome-extensions disable asus-kbd-rgb@gilles
gnome-extensions enable asus-kbd-rgb@gilles
```
- [ ] Pas d'erreur lors de la désactivation
- [ ] Pas d'erreur lors de la réactivation
- [ ] L'icône réapparaît
- [ ] Fonctionnalités intactes
### 7.3 Utilisation intensive
- [ ] Déplacer rapidement tous les sliders pendant 30 secondes
- [ ] Cliquer rapidement sur tous les boutons
- [ ] Alterner rapidement entre presets
- [ ] Aucun crash
- [ ] Aucune fuite mémoire visible
- [ ] Performances stables
## 8. Compatibilité
### 8.1 GNOME Shell 48
- [ ] Extension fonctionne sur GNOME 48.0
- [ ] Extension fonctionne sur GNOME 48.x (dernière version)
### 8.2 Debian 13 (Trixie)
- [ ] Installation réussie
- [ ] Toutes les fonctionnalités opérationnelles
- [ ] Aucun conflit de packages
## 9. Documentation
- [ ] README.md est à jour
- [ ] INSTALL.md couvre tous les cas
- [ ] TROUBLESHOOTING.md aide à résoudre les problèmes courants
- [ ] CLAUDE.md guide correctement les futures instances
- [ ] CHANGELOG.md est à jour
- [ ] UI_SCHEMA.md correspond à l'implémentation
## 10. Code Quality
### 10.1 Linting JavaScript
```bash
# Si eslint est disponible
eslint extension/*.js
```
- [ ] Aucune erreur de syntaxe
- [ ] Pas d'imports manquants
- [ ] Variables non utilisées supprimées
### 10.2 Revue de code
- [ ] Commentaires en français présents et clairs
- [ ] Fonctions documentées
- [ ] Code modulaire et lisible
- [ ] Pas de code mort (dead code)
- [ ] Gestion d'erreurs présente
## Résumé des Tests
**Total des tests** : ~120 items
### Statut Critique (Bloquant si échec)
- Installation et activation
- Détection matériel et permissions
- Fonctionnalités core (brightness, RGB, presets)
- Persistance GSettings
- Pas de crash
### Statut Important (À corriger rapidement)
- UI correcte et responsive
- Debouncing fonctionnel
- Messages d'erreur clairs
- Logs appropriés
### Statut Nice-to-have (Améliorations)
- Performance optimale
- Style CSS parfait
- Documentation exhaustive
---
## Rapport de Test
Compléter après les tests :
**Date** : _______________
**Testeur** : _______________
**GNOME Shell version** : _______________
**Matériel** : _______________
**Tests réussis** : ______ / 120
**Tests échoués** : ______
**Bugs trouvés** :
-
-
**Notes** :