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

9.8 KiB

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

# 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

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

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

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

# 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 :