JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
test_application_theme.cpp File Reference

Tests unitaires du thème de l'IHM : modèle de feuille de style (LOT-56 TACHE-02, EX-IHM-050, EX-IHM-051) et police/typographie (TACHE-03, EX-IHM-052). More...

#include <cstdint>
#include <fstream>
#include <regex>
#include <sstream>
#include <unordered_map>
#include <gtest/gtest.h>
#include "HMI/Interface/DesignTokens.h"
#include "HMI/Interface/FontResolution.h"
#include "HMI/Interface/StyleSheetTemplate.h"
#include "HMI/Interface/ThemeResolution.h"

Functions

 TEST (ApplicationThemeTest, SubstitutionRemplaceTousLesMarqueurs)
 Chaque marqueur ${nom} présent dans le modèle est remplacé par sa valeur ; le résultat ne contient plus aucun marqueur.
 TEST (ApplicationThemeTest, MarqueurInconnuEstSignale)
 Un marqueur absent de la table de substitution est signalé, jamais produit silencieusement avec un trou.
 TEST (ApplicationThemeTest, AucuneCouleurLitteraleDansLeModeleReel)
 Les modèles réels livrés (Source/Elements/Themes/theme-*.qss) ne contiennent aucune couleur écrite en dur : toutes passent par un marqueur ${...}.
 TEST (ApplicationThemeTest, ResolutionDePoliceSansNomDeRepliCodeEnDur)
 La police embarquée est retenue quand elle a pu être enregistrée ; sinon, aucun nom de famille n'est renvoyé (TACHE-03) – l'appelant Qt doit alors demander une famille générique, jamais un second nom codé en dur.
 TEST (ApplicationThemeTest, EchelleTypographiquePositiveEtOrdonnee)
 L'échelle typographique produit des tailles strictement positives, et les rôles de titre et de corps sont ordonnés du plus grand au plus petit : titre d'écran > titre de section > corps > libellé secondaire.
 TEST (ApplicationThemeTest, ResolutionDuThemeEffectifSuitLeReglageEtLeSysteme)
 Résolution pure du thème effectif (LOT-56 TACHE-06) : Système suit le système d'exploitation, Clair/Sombre forcé l'ignore.

Detailed Description

Tests unitaires du thème de l'IHM : modèle de feuille de style (LOT-56 TACHE-02, EX-IHM-050, EX-IHM-051) et police/typographie (TACHE-03, EX-IHM-052).

Function Documentation

◆ TEST() [1/6]

TEST ( ApplicationThemeTest ,
AucuneCouleurLitteraleDansLeModeleReel  )

Les modèles réels livrés (Source/Elements/Themes/theme-*.qss) ne contiennent aucune couleur écrite en dur : toutes passent par un marqueur ${...}.

Cas de test : Le modele de theme livre ne contient aucune couleur litterale.
Categorie : Unitaire · Theme de l'IHM
Criticite : Majeur
Etapes :
1. Lire les feuilles de theme livrees.
2. Chercher un motif de couleur hexadecimale.
Resultat attendu : Aucune occurrence en dehors des commentaires n'est trouvee.

◆ TEST() [2/6]

TEST ( ApplicationThemeTest ,
EchelleTypographiquePositiveEtOrdonnee  )

L'échelle typographique produit des tailles strictement positives, et les rôles de titre et de corps sont ordonnés du plus grand au plus petit : titre d'écran > titre de section > corps > libellé secondaire.

Cas de test : L'echelle typographique est positive et ordonnee du plus grand au plus petit.
Categorie : Unitaire · Theme de l'IHM
Criticite : Majeur
Etapes :
1. Lire les tailles de l'echelle typographique des jetons.
Resultat attendu : Toutes sont strictement positives ; titre d'ecran > titre de section > corps > libelle secondaire.

◆ TEST() [3/6]

TEST ( ApplicationThemeTest ,
MarqueurInconnuEstSignale  )

Un marqueur absent de la table de substitution est signalé, jamais produit silencieusement avec un trou.

Cas de test : Un marqueur inconnu est signale plutot que produit avec un trou.
Categorie : Unitaire · Theme de l'IHM
Criticite : Critique
Etapes :
1. Substituer un modele dont un marqueur n'a pas de valeur.
Resultat attendu : Le resultat est en echec et nomme le marqueur manquant.

◆ TEST() [4/6]

TEST ( ApplicationThemeTest ,
ResolutionDePoliceSansNomDeRepliCodeEnDur  )

La police embarquée est retenue quand elle a pu être enregistrée ; sinon, aucun nom de famille n'est renvoyé (TACHE-03) – l'appelant Qt doit alors demander une famille générique, jamais un second nom codé en dur.

Cas de test : La resolution de police retombe sur une famille generique sans nom code en dur.
Categorie : Unitaire · Theme de l'IHM
Criticite : Critique
Etapes :
1. Resoudre la police embarquee enregistree, puis non enregistree.
Resultat attendu : Le premier cas rend la famille embarquee ; le second ne rend aucun nom de famille.

◆ TEST() [5/6]

TEST ( ApplicationThemeTest ,
ResolutionDuThemeEffectifSuitLeReglageEtLeSysteme  )

Résolution pure du thème effectif (LOT-56 TACHE-06) : Système suit le système d'exploitation, Clair/Sombre forcé l'ignore.

Cas de test : La resolution du theme effectif suit le reglage et, si Systeme, le systeme.
Categorie : Unitaire · Theme de l'IHM
Criticite : Critique
Etapes :
1. Resoudre les quatre combinaisons reglage/systeme.
Resultat attendu : Systeme+sombre -> Sombre ; Systeme+clair -> Clair ; Clair/Sombre force ignorent le systeme dans les deux etats.

◆ TEST() [6/6]

TEST ( ApplicationThemeTest ,
SubstitutionRemplaceTousLesMarqueurs  )

Chaque marqueur ${nom} présent dans le modèle est remplacé par sa valeur ; le résultat ne contient plus aucun marqueur.

Cas de test : La substitution remplace tous les marqueurs du modele.
Categorie : Unitaire · Theme de l'IHM
Criticite : Critique
Etapes :
1. Substituer un modele avec deux marqueurs connus.
Resultat attendu : Le texte produit contient les valeurs substituees et plus aucun marqueur.