Paheko : tests des membres
+Table des matières
+ +1. Test paheko
+1.1. DONE 01 Installation
+-
+
- Exemple de test (après avoir installé un Paheko sur sa machine, sur
+le vhost "paheko.localhost", sans base de données) :
+
-
+
- se rendre à l'adresse http://testpaheko.local.bzh +
- remplir le formulaire d'installation +
- valider le formulaire (cliquer sur le bouton en bas de page) +
- sur la page suivante cliquer ensuite sur "configuration" dans le menu +
- vérifier que les informations de l'association indiquées lors +l'installation se retrouvent exactement dans les champs de la +configuration +
- cliquer sur le menu "Membres" +
- vérifier que le membre par défaut est bien dans la liste +
- cliquer sur la fiche du membre +
- vérifier que l'adresse e-mail et autres infos remplies à +l'installation sont bien là +
- mdp admin : interpeller noircir colis allumer +
+
1.1.1. DONE 01-01 installation initiale
+1.1.2. DONE 01-01a installation sur base existante
+1.1.3. DONE 01-02 vérification premier membre
+1.2. DONE 02 Connexion
+1.2.1. DONE 02-01 connexion correcte
+1.2.2. DONE 02-02 connexion échec identifiant
+1.2.3. DONE 02-03 connexion échec mdp
+1.3. TODO Membres
+1.3.1. DONE 03 créer un membre
+-
+
- données de la fiche membre
+++-
+
- Catégorie : choisir parmi les possibilités +
- Rattacher à un membre : non / choisir un membre +
- Numéro : par défaut ou à saisir +
- Nom & prénom (oblig) +
- Adresse E-Mail +
- Adresse postale +
- Code postal +
- Ville +
- Numéro de téléphone +
- Inscription à la lettre d'information +
- Date d'inscription +
+ - DONE 03-01 standard
- DONE 03-03 Catégorie « Ancien membre »
+++-
+
- vérifier catégorie du membre créé +
+ - DONE 03-04 Inscrit à la lettre
- DONE 03-05 date bizarre
- DONE 03-06a attaché à un autre membre (choix unique)
- DONE 03-06b attaché à un autre membre (plusieurs choix)
+++-
+
- utiliser et vérifier le numéro du responsable +
+ - DONE 03-07 numéro différent de celui proposé par défaut
- DONE 03-91 numéro en double
- DONE 03-92a date antérieure min
- DONE 03-92b date postérieure max
- DONE 03-93a nom en double refusé
- DONE 03-93b nom en double accepté
1.3.2. DONE 04 lister les membres
+-
+
- DONE 04-01 toutes les catégories
+++-
+
- gérer le cas où les membres occupent plus d'une page +
- ¿ vérifier si on peut supprimer un tri inutile ? +
+ - DONE 04-02 toutes catégories sauf cachées
- DONE 04-03 une seule catégorie
- DONE tri par différents critères
+-
+
- DONE 04-04, 04-05 tri par nom croissant et décroissant
++++Le nouveau tri est comme ceci : +colonne IS NULL DESC, colonne DESC, numero DESC +(DESC est remplacé par ASC pour un tri croissant) +Autre changement du coup : les champs non-vides sont placés en dernier +pour un tri croissant, en premier pour un tri décroissant. +
+
+ - DONE 04-06 numéro décroissant
- DONE 04-07, 04-08 ville croissant et décroissant
++++Tri par ville +
+-
+
- ville (dé)croissant, numéro membre (dé)croissant +
- ville vide en fin(début), numéro membre (dé)croissant +
+ - DONE 04-09, 04-10 tri par membre « rattaché à » croissant et décroissant
+++-
+
- pour la colonne "rattaché à" : on met un tri sur la qualité de
+parent, puis le nom du parent en premier, puis le nom du membre,
+puis son numéro :
+
-
+
- idparent IS NULL ASC, nomparent DESC, nommembre DESC, numero DESC
+
-
+
- parent (dé)croissant, nom membre (dé)croissant, numéro (dé)croissant +
- parent vide à la fin, nom membre (dé)croissant, numéro (dé)croissant +
+
+ - idparent IS NULL ASC, nomparent DESC, nommembre DESC, numero DESC
+
+ - pour la colonne "rattaché à" : on met un tri sur la qualité de
+parent, puis le nom du parent en premier, puis le nom du membre,
+puis son numéro :
+
- DONE 04-11, 04-12 tri par responsable croissant et décroissant
+++-
+
- isparent ASC, nommembre DESC, numero DESC +
+ - DONE 04-90 lister membres sur plusieurs pages
+ - DONE 04-04, 04-05 tri par nom croissant et décroissant
- DONE consulter fiche
1.3.3. DONE 05 rechercher des membres
+-
+
- Remarques :
+++-
+
- si la recherche trouve un seul résultat, elle affiche directement la +fiche du membre +
- s'il y a plusieurs résultats, la recherche affiche l'onglet +« Recherche avancée » avec les résultats +
- s'il n'y a aucun résultat, la recherche affiche l'onglet +« Recherche avancée » avec une liste de résultats vide +
+ - DONE chercher par nom
+ +
+ - DONE chercher par numéro
+ +
+ - DONE par courriel
+ +
+
1.3.4. DONE 06 supprimer un membre
+-
+
- NB : le tri des membres ne change pas après suppression +
1.3.5. DONE 07 modifier un membre
+-
+
- DONE 07-01 modifier caractéristiques « simples »
+++-
+
- si un seul membre => en créer un deuxième +
- chercher le premier numéro disponible +
- chercher puis modifier le premier membre de numéro différent de 1 +
- modifier les différents champs
+
-
+
- numéro +
- catégorie +
- nom, prénom +
- courriel +
- adresse +
- code postal +
- ville +
- téléphone +
- lettre info +
- date inscription +
+ - enregistrer +
- vérifier les infos +
+ - DONE 07-02 attribuer un mot de passe à un membre
+++-
+
- sélectionner un membre actif (pas ancien, car pas le droit de se +connecter) +
- cliquer Définir mdp +
- saisir deux fois un mdp généré +
- mémoriser nom et adresse courriel +
- déconnecter +
- connexion avec
+
-
+
- adresse courriel +
- mdp +
+ - vérifier Nom présent page accueil +
- vérifier numéro membre sur fiche membre +
+ - DONE 07-03 rattacher un membre
+++-
+
- créer deux membres et mémoriser leurs numéros +
- rattacher le premier au deuxième à l'aide de son numéro +
- vérifier les deux membres +
+
1.3.6. DONE 08 importer des membres
+-
+
- Remarques
+++-
+
- Si déjà tu peux tester qu'un fichier CSV donné s'importe bien, c'est +déjà génial je pense +
- ¿ Tester les possiblités d'ignorer certains champs ? +
+ - DONE Créer tous les membres
+++ +-
+
- Tous les membres trouvés dans le fichier seront créés. +
- Cela peut amener à avoir des membres en doublon si on réalise +plusieurs imports du même fichier. +
+ - DONE Mettre à jour en utilisant le numéro de membre
+++ +-
+
- Les membres présents dans le fichier qui mentionnent un numéro de +membre seront mis à jour en utilisant ce numéro. +
- Si une ligne du fichier mentionne un numéro de membre qui n'existe +pas ou n'a pas de numéro de membre, l'import échouera. +
+ - DONE 08-21 Automatique : créer ou mettre à jour en utilisant le numéro de membre
+++-
+
- Met à jour la fiche d'un membre si son numéro existe, sinon crée un +membre si le numéro de membre indiqué n'existe pas ou n'est pas +renseigné. +
+
1.3.7. DONE 09 exporter des membres
+-
+
- Je ne sais pas ce que permet Selenium, mais si déjà tu peux tester +que ça produit bien un fichier de plus de 0 octets ça sera bien. +
- Résultat avec le runner : le fichier exporté est placé dans le
+répertoire ~/Downloads ; parfois l'export échoue
+
-
+
- MAIS l'ajout d'une opération après le déclenchement de +l'enregistrement permet sa bonne terminaison +
+
1.3.8. DONE 10 configuration membres Préférences
+-
+
- DONE 10-01 catégorie par défaut des nouveaux membres
- DONE 10-02 identité : ajouter adresse courriel au champ Nom & Prénom
- DONE 10-03 identité : remplacer le champ Nom & Prénom par le champ courriel
- DONE 10-04 connexion par numéro de membre
- DONE 10-05 durée de conservation journal : aucun
+++-
+
- créer un membre +
- lui attribuer un mot de passe +
- mettre la durée de conservatin à 0 +
- déconnexion admin +
- connexion du membre +
- vérifier journal connexion vide +
- déconnexion +
- connexion admin +
- vérification absence membre dans journal +
+ - DONE 10-06 connexion par numéro de téléphone
- ¿ déconnexion automatique ?
1.3.9. DONE 11 ajouter un champ à la fiche membre
+-
+
- vérifier ensuite que les champs membre ajoutés fonctionnent bien dans +la fiche du membre (et ce pour chaque type de champ ?) et apparaissent +dans la liste des membres +
- les champs prédéfinis s'ajoutent avant les champs personnalisés et +semble-t-il de temps en temps, le nouveau champ (perso) est ajouté en +avant-dernière position ! +
-
+
- DONE 11-01 ajout champ perso email
- DONE 11-02 ajout champ perso url
- DONE 11-03 ajout champ perso case à cocher
- DONE 11-04 ajout champ perso date
- DONE 11-05 ajout champ perso date et heure
- DONE 11-06 ajout champ perso mois et année
+++-
+
- avec le driver de chrome :
+
-
+
- saisir le mois +
- envoyer le code de la touche de tabulation +
- saisir l'année +
+
+fonctionne avec runner et le driver de chrome mais probablement pas avec celui de firefox +
+
+ - avec le driver de chrome :
+
- DONE 11-07 ajout champ perso année
- DONE 11-08 ajout champ perso fichier
+++-
+
- utilise le fichier /tmp/cv.pdf +
- PB : dans la fiche membre, le nom du fichier comporte un « ­ » avant le point +
+ - DONE 11-08a ajout champ perso fichier avec modification
+++-
+
- utilise les fichiers /tmp/cv.pdf et /tmp/cv2.pdf +
- PB : dans la fiche membre, le nom du fichier comporte un « ­ » avant le point +
+ - DONE 11-09 ajout champ perso mot de passe
+++-
+
- question : ce mot de passe ne sert pas à se connecter, donc à quoi sert-il ? +
- pour vérifier le mot de passe, il faut :
+
-
+
- connecter le membre +
- modifier les infos personnelles +
- afficher le mot de passe :
+
-
+
- NB : le mdp qui s'affiche (en fonctionnement interactif) est +celui enregistré par le navigateur pour l'admin !! +
- NB : en mode runner, le champ est vide =>impossible de vérifier le mdp +
+ - Remarque : la modification du mot de passe est prise en compte mais on +ne peut le voir qu'en exportant les données de la fiche membre +
+
+ - DONE 11-10 ajout champ perso nombre
- DONE 11-11 ajout champ perso nombre à virgule
- DONE 11-12 ajout champ perso numéro téléphone
- DONE 11-13 ajout champ perso Sélecteur à choix unique
- DONE 11-14 ajout champ perso Sélecteur à choix multiple
- DONE 11-15 ajout champ perso pays
+++-
+
- Pour définir le pays par défaut, il faut indiquer son code à deux +lettres et non son nom complet => à documenter ou à changer +
+ - DONE 11-16 ajout champ perso texte libre
- DONE 11-17 ajout champ perso texte choix multiple
- DONE 11-18 ajout champ perso texte multilignes
- DONE 11-19 ajout champ perso calculé
- DONE 11-30 ajout ancienneté
+++-
+
- c'est un champ calculé à partir de la date d'inscription +
+ - DONE 11-31 ajout année naissance
- DONE 11-32 ajout date naissance
- DONE 11-33 ajout pays
- DONE 11-34 ajout photo
+++-
+
- utilise le fichier /tmp/photo.jpg +
+ - DONE 11-35 ajout pronom
- DONE 11-36 ajout âge en fonction année naissance
+++-
+
- ajouter année naissance +
- ajouter âge +
- tenir compte du cas où il y a déjà un champ âge/date naissance +
+ - DONE 11-37 ajout âge en fonction date naissance
+++-
+
- ajouter date naissance +
- ajouter âge +
- tenir compte du cas où il y a déjà un champ âge/année naissance +
+ - DONE 11-90 saisir un champ avec un identifiant déjà existant
+++-
+
- récupérer l'identifiant d'un champ déjà présent +
- messages d'erreur différents selon le champ :
+
-
+
- Ce nom de champ est déjà utilisé par un autre champ : adresse, codepostal, +ville, telephone, lettreinfos1, dateinscription +
- numero : Aucun champ de numéro de membre n'existe +
- nom : Aucun champ de nom de membre n'existe +
- email : Aucun champ d'identifiant de connexion n'existe +
+
+ - TODO ¿ saisir une donnée erronée dans chaque champ ?
++++Pas sûr qu'on puisse : la saisie des champs est contrôlée (partiellement ?) +
+
+
1.3.10. DONE 12 modifier un champ de la fiche membre
+-
+
- DONE 12-01 numéro non affiché liste membres
- DONE TEST SUPPRIMÉ car devenu inutile 12-02 numéro non obligatoire
++++Même si on ne saisit pas un numéro, il sera automatiquement affecté +
+-
+
- le test est-il pertinent ? +
- faut-il empêcher cette modification ? +
+ - DONE 12-03 numéro non visible fiche membre
- DONE TEST SUPPRIMÉ car devenu inutile 12-06 nom, prénom non affiché liste membres
+++-
+
- la modification n'est plus possible +
+ - DONE 12-07 nom, prénom non obligatoire
- DONE 12-08 nom, prénom modifiable
- DONE 12-09 nom, prénom non visible fiche membre
- DONE 12-11 e-mail affiché liste membres
- DONE 12-12 e-mail obligatoire
- DONE 12-13 e-mail modifiable
+++-
+
- après « se connecter à sa place » :
+
-
+
- clic « Mes infos personnelles » échoue +
- impossible ensuite de se connecter en tant qu'admin +
- réinstallation nécessaire ! +
+ - avec attribution d'un mot de passe, changement email possible, mais :
+
-
+
- attente trèès longue lors enregistrement +
+
+ - après « se connecter à sa place » :
+
- DONE 12-14 e-mail non visible fiche membre
- DONE 12-16 mot de passe modifiable
+++-
+
- fonctionne, mais temps d'attente long lors de l'enregistrement du +nouveau mot de passe +
+ - DONE 12-17 mot de passe non visible
1.3.11. DONE 13 changer l'ordre des champs de la fiche membre
+1.3.12. DONE 14 configuration membres Catégories
+-
+
- DONE 14-01 ajouter une catégorie
- DONE 14-01b ajouter deux catégories de même non
- DONE 14-02 supprimer une catégorie non vide
- DONE 14-03 vider et supprimer une catégorie
- DONE modifier une catégorie
+-
+
- DONE 14-10 inverser la visibilité d'une catégorie
- DONE 14-11 interdire connexion
+++-
+
- interdire la connexion d'une catégorie +
- ajouter un membre dans cette catégorie +
- lui attribuer un mot de passe +
- essayer de connecter le membre +
- vérifier l'échec +
+ - DONE 14-12 autoriser connexion
+++-
+
- interdire la connexion d'une catégorie +
- ajouter un membre dans cette catégorie +
- lui attribuer un mot de passe +
- essayer de connecter le membre +
- vérifier l'échec +
+
+ - DONE 14-10 inverser la visibilité d'une catégorie
1.3.13. DONE Droits
+-
+
- vérifier que le droit lecture/écriture/administration fonctionne +bien, notamment via le bouton "connexion à la place du membre" +
- Gestion des membres
+
-
+
- Pas d'accès +
- Lecture uniquement (peut voir les informations personnelles de +tous les membres, y compris leurs inscriptions à des activités) +
- Lecture & écriture (peut ajouter et modifier des membres, peut +changer de catégorie un membre d'une catégorie ayant des droits +égaux ou moindres, ne peut pas supprimer des membres, peut inscrire +des membres à des activités, peut envoyer des messages collectifs) +
- Administration (peut tout faire) +
+
-
+
- DONE 14-20 aucun droit : consultation autre membre impossible
- DONE 14-30 droit lecture : consultation autre membre possible
- DONE 14-31 droit lecture : modification autre membre impossible
- DONE 14-32 droit lecture : création membre impossible
- DONE 14-40 droit écriture : création membre possible
- DONE 14-41 droit écriture : suppression autre membre impossible
- DONE 14-42 droit écriture : changer de catégorie possible
- DONE 14-43 droit écriture : modifier admin impossible
- DONE 14-50 droit administration : suppression autre membre possible
1.3.14. TODO supprimer un champ dans la fiche membre
+-
+
- certains champs dépendent d'un autre : âge dépend de l'année de +naissance => on ne peut supprimer année si âge est présent ! +
- PROBLÈME : le clic sur le bouton de confirmation de la suppression est pris en compte par +l'IDE mais pas toujours par le runner +
- même problème en utilisant du code javascript pour ouvrir le +dialogue de confirmation dans un onglet plutôt qu'une popup ; dans +ce cas, c'est la case à cocher qui n'est pas cochée ! +
1.4. TODO Démarrer la comptabilité
+-
+
- cas normal
+
-
+
- choix du PC +
- dates exercice +
+ - vérifications
+
-
+
- nombre d'écritures +
- PC +
- dates exercice +
+ - tester erreur saisie dates +
- tester modif pays +
1.5. TODO test saisie recette
++Un autre test pour la compta : +
+-
+
- se rendre à l'adresse http://testpaheko.local.bzh/admin/ (après avoir été +connecté dans un test précédent, que je ne détaille pas ici) +
- cliquer sur le menu "Saisie" dans la compta +
- cliquer sur "recette" +
- renseigner un libellé, un montant, les comptes, autres champs etc. +
- valider le formulaire +
- sur la page de détail de l'écriture, vérifier que toutes les +mentions, comptes et montants correspondent à ce qui a été saisi +
- se rendre sur la page compte de résultat +
- vérifier que le montant de la recette apparaît bien dans les +produits, que le nom du compte est bon, etc. +
1.6. Notes
+1.6.1. parcours table
+-
+
- compter le nombre d'éléments de la table => nbelem +
- itérer avec un compteur (while) => num +
- accéder à l'élément courant grâce au compteur //tr[${num}] +
Command | +Target | +Value | +
---|---|---|
storeXpathCount | +xpath=//table[@class=\"list\"]/tbody/tr/th//span | +nbelem | +
executeScript | +return 1 | +num | +
while | +${num} <= ${nbelem} | ++ |
storeText | +xpath=//table[@class=\"list\"]/tbody/tr[${num}]/th//span | +nom | +
echo | +${nom} | ++ |
execute script | +return ${num} + 1 | +num | +
end | ++ | + |
1.6.2. problème avec instruction conditionnelle dans 4-09 et 4-10
+if (${nb_parents} >= 2) +{ ... } +else if (${nb_total_membres} > 2) +// ce bloc est exécuté même si nb_parents >= 2 +{ ... } ++
+Contournement +
+if (${nb_parents} >= 2) +{ ... } +else if ${nb_parents} < 2 && ${nb_total_membres} > 2 +{ ... } ++
1.6.3. problème avec apostrophe
+-
+
- pas d'apostrophe dans les éléments de tableau, sinon problème +
- si apostrophe dans une chaîne => lors de l'appel d'un script : +problème avec l'IDE mais pas avec le runner +
1.6.4. erreur timeout
++Il y a un bug, référenceé ici : https://github.com/SeleniumHQ/selenium-ide/issues/1819 +qui affiche un message d'erreur après une longue pause : +
+ ++l'ajout de « detectOpenHandles » est strictement sans effet… +D'où la tentative de contournement dans runtest +
+1.6.5. comparer des nombres
++Les valeurs récupérées sur une page sont des chaînes => à convertir en +nombre avec Number pour faire une comparaison numérique (ex : numéro +de membre) +
+1.6.6. display:none
++Impossible de sélectionner un élément avec l'attribut display:none +; il faut préalablement lui mettre l'attribut display:block +
+1.6.7. numéro de téléphone
+-
+
- Attention, un numéro qui commence par 0 est formatté avec un +espace entre les paires de chiffres !! +
1.6.8. accès élément tableau javascript
+// refusé par IDE mais accepté par runner +return ${t}[${i}] ++
1.6.9. objet javascript
++voir https://github.com/SeleniumHQ/selenium-ide/issues/1603 +
+-
+
- Syntaxe accès aux objets : ${objet}.attribut ou ${objet}.methode +
// refusé par le runner +return ${membre.nom} + +// accepté +return ${membre}.nom; ++
1.6.10. input type="checkbox
++Pour (dés)activer un <input type="checkbox", il faut utiliser +(un)check car le runner (de chrome ?) n'aime pas click +
+1.6.11. Appel de fonction
++L'appel de fonction définie dans le script avec une variable de +l'IDE en param ne fonction qu'avec Chrome. NB : vérifier exactement +ce qui ne fonctionne pas avec firefox ? +
+1.6.12. Envoi de fichier
+-
+
- Ne fonctionne qu'avec chrome +
- insérer (type) le chemin du fichier dans le champ de saisie du nom +
- cliquer le bouton d'envoi +
- Important : Ne pas cliquer sur le bouton d'ouverture du sélecteur +de fichier : il ne se refermera pas et masquera les éléments de la +fenêtre précédente qui ne pourront plus être activés +
1.6.13. Sélectionner un onglet/une fenêtre après ouverture
+-
+
+dans la commande qui ouvre une nouvelle fenêtre ou un nouvel onglet, +cliquer l'icône « Add new window configuration » tout à droite de la +commance ; saisir un nom de fenre qu'on pourra utiliser plus loin +pour sélectionner la fenêtre quand elle sera ouverte avec la +commande : +
++select window | handle=${nom_fenêtre} +
+- voir 13-01 suppression adresse +
1.6.14. Version mobile
+-
+
- les libellés des boutons du menu principal n'apparaissent pas et ne +sont donc pas trouvés, ni par un chemin xpath, ni par un chemin css +; il faut donc utiliser un chemin qui s'arrête à l'url du lien +correspondant. +
- les sous-menus n'apparaissent pas => pas d'accès direct => il faut +procéder par étape : menu puis sous-menu +
- lors de l'ajout d'un membre, le bouton Enregistrer n'est pas visible
+et ne peut être cliqué ; pour le rendre visible, il faut passer
+d'une rubrique à l'autre avec la touche Tab ou avec PageDown, par
+exemple après avoir saisi la date…. mais :
+
-
+
- avec navigateur chrome : pas de sélecteur de date ! => il faut ruser :( +
- même ainsi, il se peut que le bouton ne puisse recevoir le clic +(voir ci-dessous) ; apparemment le webdriver firefox ne réagit pas +à PageDown et celui de chrome réagit à Tab, mais ça ne suffit pas +à rendre cliquable le bouton Enregistrer +
+
+Bref, ce qui marche pour le driver chrome ne marche pas pour celui de firefox et vice-versa.. +
+ +> selenium-side-runner -c "browserName=firefox" -f "mobile" paheko_v4.side + + Element <button class="main icn-btn" name="save" type="submit"> is not clickable + at point (125,633) because another element <ul> obscures it ++
1.6.15. Exception javascript (CORRIGÉ)
++quand l'inspecteur est ouvert, le clic sur le sélecteur d'identité des +membres (Configuration/Membres/Préférences) déclenche une exception +javascript (TypeError: document.querySelector(…) is null) sur l'instruction : +
+document.querySelector('input').focus();
+
+1.6.16. PB : Se connecter à la place d'un membre
+-
+
- OK avec l'IDE +
- échec systématique avec le runner => c'est l'admin qui est connecté, +pas le membre choisi +
1.6.17. PB : suppression champ dans la fiche membre
+-
+
- OK avec l'IDE +
- échecs aléatoires avec le runner
+
-
+
- le clic sur le bouton de confirmation de la suppression n'est pas +pris en compte +
- même problème en utilisant du code javascript pour ouvrir le +dialogue de confirmation dans un onglet plutôt qu'une popup ; dans +ce cas, c'est la case à cocher qui n'est pas cochée ! +
+