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

Tests unitaires de l'état des entrées : fronts clavier/souris et position. More...

#include <gtest/gtest.h>
#include "HMI/Input/InputState.h"

Functions

 TEST (InputStateTest, FrontMontantClavier)
 Une touche passée d'« absente » à « présente » est « pressée » exactement une frame.
 TEST (InputStateTest, MaintienClavier)
 Une touche restée enfoncée n'est « pressée » qu'à la première frame.
 TEST (InputStateTest, FrontDescendantClavier)
 Le relâchement d'une touche est détecté « relâchée » pendant exactement une frame.
 TEST (InputStateTest, TouchesIndependantes)
 Les touches sont indépendantes : un front sur l'une n'affecte pas les autres.
 TEST (InputStateTest, BoutonSouris)
 Un bouton de souris suit la même logique pressé/cliqué/relâché que les touches.
 TEST (InputStateTest, PositionSouris)
 La position de la souris reflète le dernier déplacement injecté.
 TEST (InputStateTest, MoletteAccumuleEtSeReinitialise)
 Les incréments de molette d'une frame s'additionnent et repartent de zéro ensuite.
 TEST (InputStateTest, CaracteresTapesAccumulesEtVides)
 Les caractères tapés s'accumulent dans l'ordre puis sont vidés à la frame suivante.
 TEST (InputStateTest, ManetteSeuleActiveLaTouche)
 Un bouton manette seul rend keyDown/keyPressed vrais, comme au clavier (EX-CTRL-002).
 TEST (InputStateTest, ClavierEtManetteMemeToucheUnSeulFront)
 Clavier et manette combinés sur la même touche ne produisent pas de double front.
 TEST (InputStateTest, ManetteRelacheeNeMasquePasLeClavier)
 La manette relâchée ne masque jamais une touche clavier réellement maintenue (non-stomping, décision de cadrage LOT-20).
 TEST (InputStateTest, GamepadConnecteReecrasable)
 gamepadConnected reflète le dernier setGamepadConnected appelé.
 TEST (InputStateTest, FrontMontantBoutonManetteBrut)
 Un bouton manette (piste brute) passé d'« absent » à « présent » est « pressé » exactement une frame, comme une touche clavier.
 TEST (InputStateTest, FrontDescendantBoutonManetteBrut)
 Un bouton manette (piste brute) relâché après avoir été enfoncé est « relâché » exactement une frame (LOT-63, action Interagir).
 TEST (InputStateTest, PisteBrutIndependanteDeLaFusionKey)
 La piste manette brute (GamepadButton) est indépendante de la fusion clavier/manette existante sur Key : l'une n'affecte jamais l'autre.
 TEST (InputStateTest, RelacheToutSansFront)
 releaseAll() relâche toutes les entrées maintenues sans produire de front « relâchée », évitant les touches « collées » à la perte de focus (Alt+Tab).

Detailed Description

Tests unitaires de l'état des entrées : fronts clavier/souris et position.

Function Documentation

◆ TEST() [1/16]

TEST ( InputStateTest ,
BoutonSouris  )

Un bouton de souris suit la même logique pressé/cliqué/relâché que les touches.

Cas de test : Un bouton de souris suit la même logique pressé/cliqué/relâché que les touches.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un bouton de souris suit la même logique pressé/cliqué/relâché que les touches.

◆ TEST() [2/16]

TEST ( InputStateTest ,
CaracteresTapesAccumulesEtVides  )

Les caractères tapés s'accumulent dans l'ordre puis sont vidés à la frame suivante.

Cas de test : Les caractères tapés s'accumulent dans l'ordre puis sont vidés à la frame suivante.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Les caractères tapés s'accumulent dans l'ordre puis sont vidés à la frame suivante.

◆ TEST() [3/16]

TEST ( InputStateTest ,
ClavierEtManetteMemeToucheUnSeulFront  )

Clavier et manette combinés sur la même touche ne produisent pas de double front.

Cas de test : Clavier et manette combinés sur la même touche ne produisent pas de double front.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Clavier et manette combinés sur la même touche ne produisent pas de double front.

◆ TEST() [4/16]

TEST ( InputStateTest ,
FrontDescendantBoutonManetteBrut  )

Un bouton manette (piste brute) relâché après avoir été enfoncé est « relâché » exactement une frame (LOT-63, action Interagir).

Cas de test : Un bouton manette (piste brute) est « relâché » exactement une frame.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : gamepadButtonReleased est vrai la frame où le bouton passe d'enfoncé à relâché, faux avant et après.

◆ TEST() [5/16]

TEST ( InputStateTest ,
FrontDescendantClavier  )

Le relâchement d'une touche est détecté « relâchée » pendant exactement une frame.

Cas de test : Le relâchement d'une touche est détecté « relâchée » pendant exactement une frame.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le relâchement d'une touche est détecté « relâchée » pendant exactement une frame.

◆ TEST() [6/16]

TEST ( InputStateTest ,
FrontMontantBoutonManetteBrut  )

Un bouton manette (piste brute) passé d'« absent » à « présent » est « pressé » exactement une frame, comme une touche clavier.

Cas de test : Un bouton manette (piste brute) est « pressé » exactement une frame.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un bouton manette (piste brute) est « pressé » exactement une frame.

◆ TEST() [7/16]

TEST ( InputStateTest ,
FrontMontantClavier  )

Une touche passée d'« absente » à « présente » est « pressée » exactement une frame.

Cas de test : Une touche passée d'« absente » à « présente » est « pressée » exactement une frame.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Une touche passée d'« absente » à « présente » est « pressée » exactement une frame.

◆ TEST() [8/16]

TEST ( InputStateTest ,
GamepadConnecteReecrasable  )

gamepadConnected reflète le dernier setGamepadConnected appelé.

Cas de test : gamepadConnected reflète le dernier setGamepadConnected appelé.
Categorie : Unitaire · Input State
Criticite : Mineur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : gamepadConnected reflète le dernier setGamepadConnected appelé.

◆ TEST() [9/16]

TEST ( InputStateTest ,
MaintienClavier  )

Une touche restée enfoncée n'est « pressée » qu'à la première frame.

Cas de test : Une touche restée enfoncée n'est « pressée » qu'à la première frame.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Une touche restée enfoncée n'est « pressée » qu'à la première frame.

◆ TEST() [10/16]

TEST ( InputStateTest ,
ManetteRelacheeNeMasquePasLeClavier  )

La manette relâchée ne masque jamais une touche clavier réellement maintenue (non-stomping, décision de cadrage LOT-20).

Cas de test : La manette relâchée ne masque jamais une touche clavier réellement maintenue.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La manette relâchée ne masque jamais une touche clavier réellement maintenue.

◆ TEST() [11/16]

TEST ( InputStateTest ,
ManetteSeuleActiveLaTouche  )

Un bouton manette seul rend keyDown/keyPressed vrais, comme au clavier (EX-CTRL-002).

Cas de test : Un bouton manette seul rend keyDown/keyPressed vrais, comme au clavier.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Un bouton manette seul rend keyDown/keyPressed vrais, comme au clavier.

◆ TEST() [12/16]

TEST ( InputStateTest ,
MoletteAccumuleEtSeReinitialise  )

Les incréments de molette d'une frame s'additionnent et repartent de zéro ensuite.

Cas de test : Les incréments de molette d'une frame s'additionnent et repartent de zéro ensuite.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Les incréments de molette d'une frame s'additionnent et repartent de zéro ensuite.

◆ TEST() [13/16]

TEST ( InputStateTest ,
PisteBrutIndependanteDeLaFusionKey  )

La piste manette brute (GamepadButton) est indépendante de la fusion clavier/manette existante sur Key : l'une n'affecte jamais l'autre.

Cas de test : La piste manette brute est indépendante de la fusion clavier/manette sur Key.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La piste manette brute est indépendante de la fusion clavier/manette sur Key.

◆ TEST() [14/16]

TEST ( InputStateTest ,
PositionSouris  )

La position de la souris reflète le dernier déplacement injecté.

Cas de test : La position de la souris reflète le dernier déplacement injecté.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La position de la souris reflète le dernier déplacement injecté.

◆ TEST() [15/16]

TEST ( InputStateTest ,
RelacheToutSansFront  )

releaseAll() relâche toutes les entrées maintenues sans produire de front « relâchée », évitant les touches « collées » à la perte de focus (Alt+Tab).

Cas de test : releaseAll relâche tout sans produire de front « relâchée ».
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Maintenir des entrées clavier/manette/souris.
2. Appeler releaseAll et verifier qu'aucune n'est plus enfoncee ni signalee « relâchée ».
Resultat attendu : Toutes les entrees sont relachees, sans aucun front.

◆ TEST() [16/16]

TEST ( InputStateTest ,
TouchesIndependantes  )

Les touches sont indépendantes : un front sur l'une n'affecte pas les autres.

Cas de test : Les touches sont indépendantes : un front sur l'une n'affecte pas les autres.
Categorie : Unitaire · Input State
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Les touches sont indépendantes : un front sur l'une n'affecte pas les autres.