[openelec-Commits] r1249 - in trunk: . tests

0 views
Skip to first unread message

jyma...@adullact.net

unread,
Jun 16, 2017, 7:08:45 AM6/16/17
to openmairi...@googlegroups.com
Author: jymadier
Date: 2017-06-16 13:08:37 +0200 (Fri, 16 Jun 2017)
New Revision: 1249

Added:
trunk/tests/010_test_decoupage.robot
trunk/tests/020_reqmos.robot
trunk/tests/030_electeur.robot
trunk/tests/040_jury.robot
trunk/tests/050_pdfs.robot
trunk/tests/060_INSEE.robot
trunk/tests/070_commission.robot
trunk/tests/080_procuration.robot
trunk/tests/doc/
trunk/tests/om-tests
trunk/tests/resources/
trunk/tests/results/
Removed:
trunk/tests/01_test_decoupage.txt
trunk/tests/README.txt
trunk/tests/base.php
trunk/tests/bootstrap.php
trunk/tests/config.xml
trunk/tests/init_testenv
trunk/tests/resource.txt
trunk/tests/run_testcase
trunk/tests/run_testsuite
trunk/tests/testCommission.php
trunk/tests/testElecteur.php
trunk/tests/testGeneral.php
trunk/tests/testINSEE.php
trunk/tests/testPdf.php
trunk/tests/testProcuration.php
Modified:
trunk/
trunk/EXTERNALS.txt
trunk/tests/
trunk/tests/index.php
Log:
* Merge de la branche migrate-tests-to-robot-framework


Index: trunk
===================================================================
--- trunk 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk 2017-06-16 11:08:37 UTC (rev 1249)

Property changes on: trunk
___________________________________________________________________
Modified: svn:externals
## -10,5 +10,6 ##
#pdf svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.1.13/pdf
php svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.1.13/php
lib svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.1.13/lib
+tests/resources/core/ svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.6.0/tests/resources/core/

om-theme svn://scm.adullact.net/svnroot/openmairie/externals/om-theme/smoothness/tags/1.0.0
Added: svn:mergeinfo
## -0,0 +1 ##
+/branches/migrate-tests-to-robot-framework:1186-1248
\ No newline at end of property
Modified: trunk/EXTERNALS.txt
===================================================================
--- trunk/EXTERNALS.txt 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/EXTERNALS.txt 2017-06-16 11:08:37 UTC (rev 1249)
@@ -10,5 +10,6 @@
#pdf svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.1.13/pdf
php svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.1.13/php
lib svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.1.13/lib
+tests/resources/core/ svn://scm.adullact.net/svnroot/openmairie/openmairie_exemple/tags/4.6.0/tests/resources/core/

om-theme svn://scm.adullact.net/svnroot/openmairie/externals/om-theme/smoothness/tags/1.0.0

Index: trunk/tests
===================================================================
--- trunk/tests 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests 2017-06-16 11:08:37 UTC (rev 1249)

Property changes on: trunk/tests
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+geckodriver.log
Copied: trunk/tests/010_test_decoupage.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/010_test_decoupage.robot)
===================================================================
--- trunk/tests/010_test_decoupage.robot (rev 0)
+++ trunk/tests/010_test_decoupage.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,119 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suite des découpages
+
+*** Test Cases ***
+Créer un nouveau canton
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu decoupage canton
+ Page Title Should Be Découpage > Canton
+ Click On Add Button
+ Page Title Should Be Découpage > Canton
+
+ Input Text xpath=//input[@name='code'] 02
+ Input Text xpath=//input[@name='libelle_canton'] CANTON DE TEST
+ Input Text xpath=//input[@name='code_insee'] 0002
+
+ Click On Submit Button
+ Valid Message Should Be Vos modifications ont bien été enregistrées.
+
+ # Seul endroit dans les tests où on teste la déconnexion
+ Se déconnecter
+
+Ajouter un bureau dans le nouveau canton
+
+ Depuis la page d'accueil admin admin
+ # Ajout d'un bureau au nouveau canton
+ Go To Submenu In Menu decoupage bureau
+ Page Title Should Be Découpage > Bureau
+ Use Simple Search Tous HOTEL DE VILLE
+ Click On Edit Button
+ Wait Until Keyword Succeeds 5 sec 0.2 sec Select From List name=code_canton 02 CANTON DE TEST
+ Click On Submit Button
+ # Vérification de la création d'un paramétrage de jury supplémentaire
+ Go To Submenu In Menu traitement jury
+ Element Should Contain css=#traitement_jury_status ul Canton 01 - CANTON DE LIBREVILLE
+ Element Should Contain css=#traitement_jury_status ul Canton 02 - CANTON DE TEST
+ Xpath Should Match X Times //div[@id="traitement_jury_status"]/ul/li 2
+
+
+Supprimer le bureau du nouveau canton
+
+ Depuis la page d'accueil admin admin
+ # Changement de canton
+ Go To Submenu In Menu decoupage bureau
+ Page Title Should Be Découpage > Bureau
+ Use Simple Search Tous HOTEL DE VILLE
+ Click On Edit Button
+ Sleep 1
+ Select From List name=code_canton 01 CANTON DE LIBREVILLE
+ Click On Submit Button
+ # Vérification de la suppression du paramétrage de jury supplémentaire
+ Go To Submenu In Menu traitement jury
+ Element Should Contain css=#traitement_jury_status ul Canton 01 - CANTON DE LIBREVILLE
+ Xpath Should Match X Times //div[@id="traitement_jury_status"]/ul/li 1
+
+
+Créer une nouvelle voie
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu decoupage voie
+ Page Title Should Be Découpage > Voie
+ Click On Add Button
+ Page Title Should Be Découpage > Voie
+
+ Input Text name=libelle_voie AVENUE DU 8 MAI
+ Input Text name=cp 35210
+ Input Text name=ville LIBREVILLE
+
+ Click On Submit Button
+ Valid Message Should Be Vos modifications ont bien été enregistrées.
+
+
+Fusionner des voies
+
+ Depuis la page d'accueil admin admin
+ # Accès au redécoupage
+ Go To Submenu In Menu traitement redecoupage
+ Page Title Should Be Traitement > Module Redecoupage
+ Click Link Initialisation
+ Page Should Not Contain Errors
+ # Vérification du contrôle d'erreurs
+ Click Element name=traitement.decoupage_normalisation_voies.form.valid
+ Confirm Action
+ Error Message Should Contain Veuillez renseigner le champ : Libelle de la nouvelle voie.
+ Click Element css=#normalisation_voies>legend
+ Sleep 1
+ Input Text name=new_label AVENUE DU HUIT MAI
+ Click Element name=traitement.decoupage_normalisation_voies.form.valid
+ Confirm Action
+ Error Message Should Contain Veuillez sélectionner 2 voies à fusionner.
+ # Cas typique
+ Click Element css=#normalisation_voies>legend
+ Sleep 1
+ Select Checkbox css=#AVENUE_DU_HUIT_MAI
+ Select Checkbox css=#AVENUE_DU_8_MAI
+ Input Text name=new_label AVENUE DU HUIT MAI
+ Click Element name=traitement.decoupage_normalisation_voies.form.valid
+ Confirm Action
+ Page Should Not Contain Errors
+ Valid Message Should Be Le traitement est terminé. Voir le détail
+
+
+Electeur bureau force
+
+ Depuis la page d'accueil admin admin
+ # Accès à l'initialisation du bureau forcé
+ Go To Submenu In Menu traitement redecoupage
+ Page Title Should Be Traitement > Module Redecoupage
+ Click Link Initialisation
+ Page Should Not Contain Errors
+ Click Element name=traitement.decoupage_init_bureauforce.form.valid
+ Confirm Action
+ Page Should Not Contain Errors
+ Valid Message Should Contain Le traitement est terminé. Voir le détail
+ Valid Message Should Contain 5 électeur(s) modifié(s)
+ Valid Message Should Contain 1 mouvement(s) modifié(s)

Deleted: trunk/tests/01_test_decoupage.txt
===================================================================
--- trunk/tests/01_test_decoupage.txt 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/01_test_decoupage.txt 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,116 +0,0 @@
-*** Settings ***
-Documentation TestCase découpage
-Resource resource.txt
-
-*** Test Cases ***
-Créer un nouveau canton
- Open Browser And Login admin admin
- Go To Submenu In Menu decoupage canton
- Page Title Should Be Découpage > Canton
- Click On Add Button
- Page Title Should Be Découpage > Canton
-
- Input Text xpath=//input[@name='code'] 02
- Input Text xpath=//input[@name='libelle_canton'] CANTON DE TEST
- Input Text xpath=//input[@name='code_insee'] 0002
-
- Click On Submit Button
- Valid Message Should Be Vos modifications ont bien été enregistrées.
-
- [Teardown] Close Browser
-
-Ajouter un bureau dans le nouveau canton
- Open Browser And Login admin admin
- # Ajout d'un bureau au nouveau canton
- Go To Submenu In Menu decoupage bureau
- Page Title Should Be Découpage > Bureau
- Simple Search HOTEL DE VILLE
- Click On Edit Button
- Wait Until Keyword Succeeds 5 sec 0.2 sec Select From List name=code_canton 02 CANTON DE TEST
- Click On Submit Button
- # Vérification de la création d'un paramétrage de jury supplémentaire
- Go To Submenu In Menu traitement jury
- Element Should Contain css=#traitement_jury_status ul Canton 01 - CANTON DE LIBREVILLE
- Element Should Contain css=#traitement_jury_status ul Canton 02 - CANTON DE TEST
- Xpath Should Match X Times //div[@id="traitement_jury_status"]/ul/li 2
-
- [Teardown] Close Browser
-
-Supprimer le bureau du nouveau canton
- Open Browser And Login admin admin
- # Changement de canton
- Go To Submenu In Menu decoupage bureau
- Page Title Should Be Découpage > Bureau
- Simple Search HOTEL DE VILLE
- Click On Edit Button
- Sleep 1
- Select From List name=code_canton 01 CANTON DE LIBREVILLE
- Click On Submit Button
- # Vérification de la suppression du paramétrage de jury supplémentaire
- Go To Submenu In Menu traitement jury
- Element Should Contain css=#traitement_jury_status ul Canton 01 - CANTON DE LIBREVILLE
- Xpath Should Match X Times //div[@id="traitement_jury_status"]/ul/li 1
-
- [Teardown] Close Browser
-
-Créer une nouvelle voie
- Open Browser And Login admin admin
- Go To Submenu In Menu decoupage voie
- Page Title Should Be Découpage > Voie
- Click On Add Button
- Page Title Should Be Découpage > Voie
-
- Input Text name=libelle_voie AVENUE DU 8 MAI
- Input Text name=cp 35210
- Input Text name=ville LIBREVILLE
-
- Click On Submit Button
- Valid Message Should Be Vos modifications ont bien été enregistrées.
-
- [Teardown] Close Browser
-
-Fusionner des voies
- Open Browser And Login admin admin
- # Accès au redécoupage
- Go To Submenu In Menu traitement redecoupage
- Page Title Should Be Traitement > Module Redecoupage
- Click Link Initialisation
- Page Should Not Contain Errors
- # Vérification du contrôle d'erreurs
- Click Element name=traitement.decoupage_normalisation_voies.form.valid
- Confirm Action
- Error Message Should Contain Veuillez renseigner le champ : Libelle de la nouvelle voie.
- Click Element css=#normalisation_voies>legend
- Sleep 1
- Input Text name=new_label AVENUE DU HUIT MAI
- Click Element name=traitement.decoupage_normalisation_voies.form.valid
- Confirm Action
- Error Message Should Contain Veuillez sélectionner 2 voies à fusionner.
- # Cas typique
- Click Element css=#normalisation_voies>legend
- Sleep 1
- Select Checkbox css=#AVENUE_DU_HUIT_MAI
- Select Checkbox css=#AVENUE_DU_8_MAI
- Input Text name=new_label AVENUE DU HUIT MAI
- Click Element name=traitement.decoupage_normalisation_voies.form.valid
- Confirm Action
- Page Should Not Contain Errors
- Valid Message Should Be Le traitement est terminé. Voir le détail
-
- [Teardown] Close Browser
-
-Electeur bureau force
- Open Browser And Login admin admin
- # Accès à l'initialisation du bureau forcé
- Go To Submenu In Menu traitement redecoupage
- Page Title Should Be Traitement > Module Redecoupage
- Click Link Initialisation
- Page Should Not Contain Errors
- Click Element name=traitement.decoupage_init_bureauforce.form.valid
- Confirm Action
- Page Should Not Contain Errors
- Valid Message Should Contain Le traitement est terminé. Voir le détail
- Valid Message Should Contain 5 électeur(s) modifié(s)
- Valid Message Should Contain 1 mouvement(s) modifié(s)
-
- [Teardown] Close Browser
\ No newline at end of file

Copied: trunk/tests/020_reqmos.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/020_reqmos.robot)
===================================================================
--- trunk/tests/020_reqmos.robot (rev 0)
+++ trunk/tests/020_reqmos.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,45 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suite des reqmos
+
+*** Test Cases ***
+Vérifier tous les exports reqmo
+ [Documentation] Aucune requête mémorisée reqmo du menu "Export" ->
+ ... "Requêtes mémorisées" ne doit produire d'erreur de base de données.
+
+ @{reqmo_filenames} = List Directory ../sql/pgsql/ *.reqmo.inc
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu edition reqmo
+
+ :FOR ${reqmo_filename} IN @{reqmo_filenames}
+ # we call Split Extension twice to remove .inc and .reqmo
+ \ ${reqmo_name} ${_} = Split Extension ${reqmo_filename}
+ \ ${reqmo_name} ${_} = Split Extension ${reqmo_name}
+ # TODO: fix these values. This is a workaround to disable the test for
+ # these reqmos. This allows to keep testing the other reqmos. And
+ # to still use the rest of the test suite without being anoyed by this
+ # test. This is only while the actual bug is being fixed and must not
+ # stay forever like that.
+ \ Run Keyword If '${reqmo_name}' == 'stat_procuration_election_bureau'
+ \ ... Continue For Loop
+ \ Run Keyword If '${reqmo_name}' == 'stat_procuration_sexe'
+ \ ... Continue For Loop
+ \ Vérifier un export reqmo ${reqmo_name}
+
+
+*** Keywords ***
+Vérifier un export reqmo
+ [Arguments] ${reqmo_name}
+
+ Click Link ${reqmo_name}
+ Page Should Not Contain Errors
+ # Exécute la reqmo
+ Click Element name=valid.reqmo
+ Page Should Not Contain Errors
+
+ # Retour à la liste des reqmos
+ Click link Retour
+ Click link Retour

Copied: trunk/tests/030_electeur.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/030_electeur.robot)
===================================================================
--- trunk/tests/030_electeur.robot (rev 0)
+++ trunk/tests/030_electeur.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,43 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suite de recherche d'électeurs
+
+*** Test Cases ***
+Recherche électeurs
+
+ Depuis la page d'accueil admin admin
+ # Consultation → Liste électorale
+ Go To Submenu In Menu consultation electeurs
+
+ # Recherche générale avec une date complète
+ Use Simple Search Tous 10/03/1980
+ Page Should Contain HANANE INNOVA
+ # Recherche générale avec une date tronquée
+ Use Simple Search Tous 05/1968
+ Page Should Contain GEORGES
+ Page Should Contain JEAN
+ # Recherche générale avec l'année
+ Use Simple Search Tous 1994
+ Page Should Contain ABAY
+ Page Should Contain ABEUDJE
+ Page Should Contain DURAND
+ Page Should Contain FABRE
+ # Recherche sur date de naissance avec une date tronquée
+ Use Simple Search Date de naissance 05/1968
+ Page Should Contain GEORGES
+ Page Should Contain JEAN
+
+
+Recherche électeurs archivés
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu consultation archive
+
+ # Recherche générale avec une date tronquée
+ Use Simple Search Tous 03/1981
+ Page Should Contain TRAWINSKI
+ # Recherche sur date de naissance avec une date tronquée
+ Use Simple Search Date de naissance 05/1984
+ Page Should Contain TESTOU

Copied: trunk/tests/040_jury.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/040_jury.robot)
===================================================================
--- trunk/tests/040_jury.robot (rev 0)
+++ trunk/tests/040_jury.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,63 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suite des jurys d'assises
+
+
+*** Test Cases ***
+Éditions des informations de juré
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu traitement jury # Traitement → Jury D'assises
+
+ Click Button Tirage aléatoire
+ Confirm Action
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Valid Message Should Contain Le traitement est terminé.
+ Click Link Liste préparatoire courante
+
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Element css=tr:nth-child(2) .edit-16 # Modifier le 1er électeur
+ Select From List name=jury_effectif Oui
+ Input Text name=profession ostréiculteur
+ Page Should Not Contain Errors
+ Click Button css=input[type='button'] # On enregistre les modifications
+ Page Should Contain Date de prefecture obligatoire
+
+ Input Text name=date_jeffectif 06/08/2013
+ # On enregistre les modifications
+ Click Button css=input[type='button']
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Vos modifications ont bien été enregistrées.
+ ${id_electeur} = Get Value name=id_electeur
+
+ Click Link Tirage aléatoire
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Liste préparatoire du jury d'assises
+ ${contenu_pdf} = Create List ostréiculteur
+ Vérifier Que Le PDF Contient Des Strings pdf_recapitulatif_jury ${contenu_pdf}
+
+ Click Link Export CSV des électeurs sélectionnés
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Button name=valid.reqmo
+ Page Should Contain Recherche${SPACE}${SPACE}EXPORT JURY D'ASSISES
+ Page Should Contain ostréiculteur
+
+ # Consultation → Liste électorale
+ Go To Submenu In Menu consultation electeurs
+ Use Simple Search Tous ${id_electeur}
+ Click Link ${id_electeur}
+ Page Should Contain Jury d'assises :
+ Page Should Contain L'électeur fait parti de la liste provisoire courante.
+ Page Should Contain Profession de l'électeur : ostréiculteur
+ Page Should Contain L'électeur est juré effectif le : 06/08/2013
+
+ Click Link Juré d'assises
+ Select From List name=jury_effectif Non
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Button css=input[type='button'] # On enregistre les modifications
+ Page Should Contain Vos modifications ont bien été enregistrées.
+ Click Link css=#sformulaire .formControls .retour
+ Page Should Not Contain Date préfecture # sous formulaire fermés
+ Page Should Not Contain L'électeur est juré effectif le : 06/08/2013

Copied: trunk/tests/050_pdfs.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/050_pdfs.robot)
===================================================================
--- trunk/tests/050_pdfs.robot (rev 0)
+++ trunk/tests/050_pdfs.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,199 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suites de génération des PDF
+
+
+*** Test Cases ***
+PDFs fiche électeur
+
+ Depuis la page d'accueil admin admin
+
+ # Consultation → Liste électorale
+ Go To Submenu In Menu consultation electeurs
+ Click Link ABAY
+
+ Click Link Attestation d'électeur
+ ${contenu_pdf} = Create List ATTESTATION D'INSCRIPTION M. ABAY BARAN
+ Vérifier Que Le PDF Contient Des Strings pdfetat ${contenu_pdf}
+
+ Click Link Carte d'électeur
+ ${contenu_pdf} = Create List M. ABAY BARAN
+ # À part le nom de la fenêtre et la personne, il ne semble pas possible
+ # d'arriver à vérifier que le PDF est ce celui de la carte d'électeur.
+ Vérifier Que Le PDF Contient Des Strings carteelecteur ${contenu_pdf}
+
+
+PDFs liste d'inscription
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu consultation inscriptions
+
+ # Ouverture de l'attestation de la 1ere ligne
+ Click Element css=.tab-data:nth-child(2) .pdf-16
+ ${contenu_pdf} = Create List ATTESTATION D'INSCRIPTION M. BONNET HERVE
+ Vérifier Que Le PDF Contient Des Strings pdfetat ${contenu_pdf}
+ # Ouverture du refus
+ Click Element css=.tab-data:nth-child(2) .courrierrefus-16
+ ${contenu_pdf} = Create List REFUS D'INSCRIPTION M. BONNET HERVE
+ Vérifier Que Le PDF Contient Des Strings pdfetat ${contenu_pdf}
+
+
+PDFs modifications
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu consultation modifications
+
+ # Ouverture de l'attestation de la 1ere ligne
+ Click Element css=.tab-data:nth-child(2) .pdf-16
+ ${contenu_pdf} = Create List AVIS DE MODIFICATION M. DUPONT GILBERT
+ Vérifier Que Le PDF Contient Des Strings pdfetat ${contenu_pdf}
+ # Ouverture du refus de modification
+ Click Element css=.tab-data:nth-child(2) .courrierrefus-16
+ ${contenu_pdf} = Create List REFUS DE MODIFICATION M. DUPONT GILBERT
+ Vérifier Que Le PDF Contient Des Strings pdfetat ${contenu_pdf}
+
+
+PDFs radiations
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu consultation radiations
+
+ # Ouverture de l'attestation de la 1ere ligne
+ Click Element css=.tab-data:nth-child(2) .pdf-16
+ ${contenu_pdf} = Create List ATTESTATION DE RADIATION M. AUBAGNE JEAN
+ Vérifier Que Le PDF Contient Des Strings pdfetat ${contenu_pdf}
+ # Ouverture du refus
+ Click Element css=.tab-data:nth-child(2) .courrierrefus-16
+ ${contenu_pdf} = Create List REFUS DE RADIATION M. AUBAGNE JEAN
+ Vérifier Que Le PDF Contient Des Strings pdfetat ${contenu_pdf}
+
+
+PDFs révision électorale
+
+ Depuis la page d'accueil admin admin
+ Click Link Édition
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Révision électorale
+
+ # on va sur une révision avec des mouvements et donc un tableau 5J
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=.pagination-prev
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=.pagination-prev
+
+ # Tableau 5J des commune 19/12/2012
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=.detail-premier-tableau tr:nth-child(2) [title='Tableau des cinq jours sur toute la commune']
+ ${contenu_pdf} = Create List TABLEAU DES CINQ JOURS
+ ${ne_doit_pas_contenir} = Create List HOTEL DE VILLE
+ Vérifier Que Le PDF Contient Des Strings Mais Pas D'Autres
+ ... commission ${contenu_pdf} ${ne_doit_pas_contenir}
+
+ # Tableau des 5J par bureau 19/12/2012
+ Click Link css=.detail-premier-tableau tr:nth-child(2) [title='Tableau des cinq jours avec coupure par bureau']
+ ${contenu_pdf} = Create List TABLEAU DES CINQ JOURS HOTEL DE VILLE
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+ # 19/12/2012 → Traitement J-5 → Nouvelles cartes électorales
+ Click Link css=.detail-premier-tableau tr:nth-child(4) [href*=carteelecteur]
+ ${contenu_pdf} = Create List NOUVELLES CARTES ÉLECTORALES SUITE AU TRAITEMENT
+ Vérifier Que Le PDF Contient Des Strings carteelecteur ${contenu_pdf}
+
+ # 19/12/2012 → Traitement J-5 → Récapitulatif
+ Click Link css=.detail-premier-tableau tr:nth-child(4) [href*=recap]
+ ${contenu_pdf} = Create List Détail des mouvements appliqués lors du traitement
+ Vérifier Que Le PDF Contient Des Strings
+ ... pdf_recapitulatif_traitement ${contenu_pdf}
+
+ # Tableau des 5J commune 21/12/2012
+ Click Link css=.detail-premier-tableau tr:nth-child(5) [title='Tableau des cinq jours sur toute la commune']
+ ${contenu_pdf} = Create List TABLEAU DES CINQ JOURS
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+ # Tableau des 5J par bureau 21/12/2012
+ Click Link css=.detail-premier-tableau tr:nth-child(5) [title='Tableau des cinq jours avec coupure par bureau']
+ ${contenu_pdf} = Create List TABLEAU DES CINQ JOURS
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+ # Premier tableau rectificatif → Récapitulatif
+ Click Link css=.tableau:nth-child(1) [href*=recapitulatif_tableau]
+ ${contenu_pdf} = Create List Récapitulatif du tableau rectificatif
+ ... 1 - HOTEL DE VILLE 2 - ECOLE MATERNELLE 3 - SALLE DES FETE
+ Vérifier Que Le PDF Contient Des Strings pdffromarray ${contenu_pdf}
+
+ # Premier tableau rectificatif → Tableau (commune)
+ Click Link css=.tableau:nth-child(1) [href*=globale]
+ ${contenu_pdf} = Create List TABLEAU RECTIFICATIF Commune : OPENELEC
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+ # Premier tableau rectificatif → Tableau (par bureau)
+ Click Link css=.tableau:nth-child(1) li:nth-child(1) a
+ ${contenu_pdf} = Create List TABLEAU RECTIFICATIF Commune : OPENELEC
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+ # Second tableau rectificatif → Nouvelles cartes électorales
+ Click Link css=.tableau:nth-child(2) li:nth-child(4) a
+ ${contenu_pdf} = Create List NOUVELLES CARTES ÉLECTORALES SUITE AU TRAITEMENT ANNUEL
+ Vérifier Que Le PDF Contient Des Strings carteelecteur ${contenu_pdf}
+
+ # Second tableau rectificatif → Récapitulatif
+ Click Link css=.tableau:nth-child(2) li:nth-child(3) a
+ ${contenu_pdf} = Create List Récapitulatif du tableau rectificatif
+ ... 1 - HOTEL DE VILLE 2 - ECOLE MATERNELLE 3 - SALLE DES FETE
+ Vérifier Que Le PDF Contient Des Strings pdffromarray ${contenu_pdf}
+
+ # Second tableau rectificatif → Tableau (commune)
+ Click Link css=tr:nth-child(6) [href*=globale]
+ ${contenu_pdf} = Create List TABLEAU RECTIFICATIF Commune : OPENELEC
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+ # Second tableau rectificatif → Tableau (par bureau)
+ Click Link css=tr:nth-child(6) li:nth-child(1) a
+ ${contenu_pdf} = Create List TABLEAU RECTIFICATIF Commune : OPENELEC
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+
+PDFs par bureau
+
+ Depuis la page d'accueil admin admin
+ Click Link Édition
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Par Bureau
+
+ # On vérifie tout les PDFs du bureau 1
+
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=[href*=listeemargement][href$="1"]
+ ${contenu_pdf} = Create List LISTE D'ÉMARGEMENT
+ Vérifier Que Le PDF Contient Des Strings listeemargement ${contenu_pdf}
+
+ Click Link css=[href*=listegenerale][href$="1"]
+ ${contenu_pdf} = Create List LISTE ÉLECTORALE
+ Vérifier Que Le PDF Contient Des Strings listegenerale ${contenu_pdf}
+
+ Click Link css=[href*=pdfetiquette][href$="1"]
+ # on check le numéro d'ordre, seule chose discriminante avec les autres PDFs
+ ${contenu_pdf} = Create List 1 - 29
+ Vérifier Que Le PDF Contient Des Strings pdfetiquette ${contenu_pdf}
+
+ Click Link css=[href*=carteelecteur][href$="1"]
+ ${contenu_pdf} = Create List CARTES ÉLECTORALES
+ Vérifier Que Le PDF Contient Des Strings carteelecteur ${contenu_pdf}
+
+ Click Link css=[href*=commission][href$="1"]
+ ${contenu_pdf} = Create List ÉTAT POUR LA COMMISSION
+ Vérifier Que Le PDF Contient Des Strings commission ${contenu_pdf}
+
+ Click Link css=[href*=listeprocuration][href$="1"]
+ ${contenu_pdf} = Create List LISTE DES PROCURATIONS
+ Vérifier Que Le PDF Contient Des Strings listeprocuration ${contenu_pdf}
+
+ Click Link css=[href*=listecarteretour][href$="1"]
+ ${contenu_pdf} = Create List LISTE DES CARTES RETOURNÉES
+ Vérifier Que Le PDF Contient Des Strings listecarteretour ${contenu_pdf}
+
+ Click Link css=[href*=listeregistreprocuration][href$="1"]
+ ${contenu_pdf} = Create List ÉDITION DU REGISTRE DES PROCURATIONS
+ Vérifier Que Le PDF Contient Des Strings listeregistreprocuration ${contenu_pdf}

Copied: trunk/tests/060_INSEE.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/060_INSEE.robot)
===================================================================
--- trunk/tests/060_INSEE.robot (rev 0)
+++ trunk/tests/060_INSEE.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,261 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suite des imports et exports INSEE
+
+*** Test Cases ***
+Import des inscriptions d'office depuis l'INSEE
+ [Documentation] Dependance de
+ ... "Export des mouvements des listes électorales: TXT"
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu traitement insee
+ Click Link Import IO
+
+ # Upload du fichier
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Element css=#traitement_insee_inscription_office_form .ui-icon-arrowthickstop-1-s
+ Select Window url=${PROJECT_URL}spg/upload.php?origine=fic1&form=f1
+ Input Text name=userfile[] ${PATH_BIN_FILES}io_import.xml
+ Click Button css=[type="submit"]
+ Sleep 1
+ Select Window # la pop up s'est fermée, on revient à la fenêtre principale
+
+ Click Button name=traitement.insee_inscription_office.form.valid
+ Confirm Action
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Le transfert s'est effectué
+ Page Should Contain Le traitement est terminé
+ Page Should Not Contain Errors
+
+ Click Link Validation des inscriptions d'office INSEE
+ Page Should Contain BELLOZ PHILIPPE 5 BOULEVARD MAQUIS MARCEAU 00000 OPENELEC
+ Page Should Contain BIG DADDY 15 BOULEVARD MAQUIS MARCEAU 00000 OPENELEC
+ Click Link Valider l'inscription d'office
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Input Text libelle_voie BOULEVARD MAQUIS MARCEAU
+ Click Link css=[href*="zorigine=libelle_voie"] # faire la correlation
+ Textfield Value Should Be code_voie 5
+ Click Button css=[type=submit]
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Vos modifications ont bien été enregistrées.
+ Click Link css=.retour
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Element css=.etat-trs # inscription validée
+
+
+Export des mouvements des listes électorales: TXT
+ [Documentation] Depend de "Import des inscriptions d'office depuis l'INSEE"
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu traitement insee
+
+ # On vérifie qu'il n'y a pas déjà de fichier exporté. Car si il y en avait
+ # il serait difficile de vérifier que l'export a marché et que ça n'est pas
+ # un ancien fichier.
+ Page Should Contain Element css=#insee_export_list_content
+ Page Should Not Contain Element css=#insee_export_list_content .file-16
+
+ Click Button Génération du fichier Export INSEE
+ Confirm Action
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Le traitement est terminé. Voir le détail
+ Page Should Not Contain Aucun mouvement à envoyer. Aucun fichier n'a été généré.
+ ${file_url}= Get Element Attribute css=#insee_export_list_content .file-16@href
+ Click Link css=#insee_export_list_content .file-16
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Select Window url=${file_url}
+ Page Should Contain BELLOZ*PHILIPPE
+ Close Window
+ Select Window
+
+
+Import des radiations depuis l'INSEE
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu traitement insee
+ Click Link Import Radiation
+
+ # Upload du fichier
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Element css=#traitement_insee_radiation_form .ui-icon-arrowthickstop-1-s
+ Select Window url=${PROJECT_URL}spg/upload.php?origine=fic1&form=f1
+ Input Text name=userfile[] ${PATH_BIN_FILES}radiation_import.xml
+ Click Button css=[type="submit"]
+ Sleep 1
+ Select Window # la pop up s'est fermée, on revient à la fenêtre principale
+
+ Click Button name=traitement.insee_radiation.form.valid
+ Confirm Action
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Le transfert s'est effectué
+ Page Should Contain Le traitement est terminé
+ Page Should Not Contain Errors
+
+ Click Link Validation des radiations INSEE
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain CAMILLE
+ Page Should Contain LOUIS
+ Page Should Contain DADOU
+ Page Should Contain DAVID
+
+
+*** Test Cases SKIPPED ***
+Paramétrage partenaires
+ [Documentation] Ajout de partenaire pour l'envoi d'export xml
+
+# La fonctionnalité ne marche pas. Depuis la v4.1.0-rc3, des colonnes ont été
+# supprimées et le code n'a pas été mit à jour. Il s'en sert toujours ce qui
+# déclenche l'erreur suivant au moment de la création de partenaire:
+# [19206-1] ERROR: column "identifiant_autorite" of relation "xml_partenaire" does not exist at character 52
+# [19206-2] STATEMENT: INSERT INTO public.xml_partenaire (type_partenaire,identifiant_autorite,identifiant,nom,type,role,contact_nom,contact_mail,contact_numerofax,contact_numerotelephone,contact_adresse_numerovoie,contact_adresse_typevoie,contact_adresse_nomvoie,contact_adresse_cedex,contact_adresse_libellebureaucedex,contact_adresse_divisionterritoriale,service_nom,service_fournisseur,service_version,service_accreditation,collectivite,xml_partenaire) VALUES ('origine',NULL,NULL,'LibreVille',NULL,NULL,'','','','','','','','','','',NULL,'',NULL,'','00000','1')
+
+# Depuis la page d'accueil admin admin
+# Go To Submenu In Menu traitement insee
+# Select From List format xml
+# Click Button Génération du fichier Export INSEE
+# Confirm Action
+#
+# SUITE DE L'ANCIEN TEST PHP Unit + Selenium.
+# Si un jour la fonctionalité est réparé, voici de quoi la tester
+# rapidement. Attention le test était obsolète, il faut ajouter un
+# mouvement (du bon type) pour que l'export INSEE se fasse.
+# Ou compter sur un autre test malgrès les problèmes que cela peut
+# impliquer.
+#
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // Vérification du message d'erreur
+# $result = $this->byXPath("//div[@id='traitement_insee_export_result']/div")->text();
+# $this->assertEquals("Le traitement à échoué. Voir le détail\n\nLes partenaires d'origine et de destination des exports xml n'ont pas été paramétré.\nParametrer les partenaires.", $result);
+# // Acces au module de test insee
+# $this->byLinkText("Parametrer les partenaires.")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // Ajout d'un partenaire
+# $this->byXPath("//div[@id='tabs-1']/table/tbody/tr/th/a/span")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // Saisie des infos du partenaire
+# $this->byName("identifiant")->value("00000");
+# $this->byName("nom")->value("LibreVille");
+# $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Xml_partenaire'\"]")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# try {
+# $result = $this->byCssSelector("span.text")->text();
+# $this->assertEquals("Vos modifications ont bien été enregistrées.", $result);
+# } catch (PHPUnit_Framework_AssertionFailedError $e) {
+# array_push($this->verificationErrors, $e->__toString());
+# }
+# // Retour au tableau pour vérification du lien vers le courrier de refus
+# $this->byLinkText("Retour")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // Ajout d'un partenaire
+# $this->byXPath("//div[@id='tabs-1']/table/tbody/tr/th/a/span")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // Saisie des infos
+# $this->byName("type_partenaire")->value("destination");
+# $this->byName("identifiant")->value("00001");
+# $this->byName("nom")->value("INSEE");
+# $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Xml_partenaire'\"]")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# try {
+# $result = $this->byCssSelector("span.text")->text();
+# $this->assertEquals("Vos modifications ont bien été enregistrées.", $result);
+# } catch (PHPUnit_Framework_AssertionFailedError $e) {
+# array_push($this->verificationErrors, $e->__toString());
+# }
+# // Retour
+# $this->byLinkText("Retour")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // On se déconnecte
+# $this->logout();
+# }
+
+
+Export des mouvements pour envoi à l'INSEE
+ [Documentation] Depend de "Paramétrage partenaires"
+# La fonctionnalité ne marche pas. Elle dépend de la création de partenaires.
+#
+# ANCIEN TEST PHP Unit + Selenium:
+# /**
+# * Méthode permettant de tester l'export des mouvements des listes électorales
+# * au format XML
+# */
+# public function test_export_insee_xml() {
+# // On se connecte
+# $this->login("admin", "admin");
+# // Accès au module insee
+# $this->byLinkText("Traitement")->click();
+# $this->byLinkText("Insee")->click();
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // Configuration de l'export xml
+# $this->byName("envoi")->value("1");
+# $this->byName("format")->value("xml");
+# $this->byName("traitement.insee_export.form.valid")->click();
+# $this->acceptAlert();
+# // Récupération du datetime
+# $date_traitement = date("d/m/Y H:i:s");
+# sleep(1);
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# $this->assertRegExp('/^Le traitement est terminé. Voir le détail$/',
+# $this->byCssSelector("span.text")->text());
+# $this->assertRegExp('/^[\s\S]*Export du '.str_replace(array("/"," ",":"), array("\\/","\\ ", "\\:"), $date_traitement).' \[1\][\s\S]*$/',$this->byId("insee_export_list_content")->text());
+# $result = $this->byLinkText("Export du ".$date_traitement." [1]")->text();
+# $this->assertEquals("Export du ".$date_traitement." [1]", $result);
+# // Ouverture du fichier généré
+# $this->byLinkText("Export du ".$date_traitement." [1]")->click();
+# sleep(5);
+# // Liste les fenêtres
+# $windows = $this->windowHandles();
+# // Change la fenêtre
+# $this->window($windows[1]);
+# // On vérifie qu'il n'y ait pas d'erreur
+# $this->verifynoerrors();
+# // Vérification des prestataires
+# $this->assertRegExp('/^[\s\S]*\<el\:Origine\>
+# \<io\:Identifiant autorite=\"http\:\/\/xml\.insee\.fr\/identifiants\/SIRET\"\>00000\<\/io\:Identifiant\>
+# \<io\:Nom\>LibreVille\<\/io\:Nom\>[\s\S]*$/',
+# $this->source());
+# $this->assertRegExp('/^[\s\S]*\<el\:Destination\>
+# \<io\:Identifiant autorite=\"http\:\/\/xml\.insee\.fr\/identifiants\/SIRET\"\>00001\<\/io\:Identifiant\>
+# \<io\:Nom\>INSEE\<\/io\:Nom\>[\s\S]*$/',
+# $this->source());
+# // Vérification de mouvements sur les électeurs
+# $this->assertRegExp('/^[\s\S]*\<el\:Noms\>
+# \<ie\:NomFamille\>BONNET\<\/ie\:NomFamille\>
+# \<\/el\:Noms\>
+# \<el\:Prenoms\>
+# \<ie\:Prenom\>HERVE\<\/ie\:Prenom\>
+# \<\/el\:Prenoms\>[\s\S]*$/',
+# $this->source());
+# $this->assertRegExp('/^[\s\S]*\<el\:Noms\>
+# \<ie\:NomFamille\>LACROIX\<\/ie\:NomFamille\>
+# \<\/el\:Noms\>
+# \<el\:Prenoms\>
+# \<ie\:Prenom\>HUBERT\<\/ie\:Prenom\>
+# \<\/el\:Prenoms\>[\s\S]*$/',
+# $this->source());
+# $this->assertRegExp('/^[\s\S]*\<el\:Noms\>
+# \<ie\:NomFamille\>LACROIX\<\/ie\:NomFamille\>
+# \<\/el\:Noms\>
+# \<el\:Prenoms\>
+# \<ie\:Prenom\>PAUL\<\/ie\:Prenom\>
+# \<\/el\:Prenoms\>[\s\S]*$/',
+# $this->source());
+# // On ferme la fenêtre
+# $this->closeWindow();
+# // On change le focus de la fenêtre
+# $this->window($windows[0]);
+#
+# // On se déconnecte
+# $this->logout();
+# }

Copied: trunk/tests/070_commission.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/070_commission.robot)
===================================================================
--- trunk/tests/070_commission.robot (rev 0)
+++ trunk/tests/070_commission.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,61 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suite des commissions
+
+*** Test Cases ***
+Message d'erreur convocation commission sans membre
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu traitement commission
+ Click Link Convocation
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain
+ ... Veuillez ajouter les membres participant à la commission (onglet "Membres").
+
+
+Ajout membre
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu traitement commission
+ Click Link Membres
+
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Ajouter # plus(+) vert dans le tableau
+ Input Text nom Engström
+ Input Text prenom Joline
+ Input Text adresse 43 Place Charles de Gaulle
+ Input Text complement Apt 25
+ Input Text cp 59650
+ Input Text ville VILLENEUVE-D'ASCQ
+ Click Button css=[onclick*=validation]
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Vos modifications ont bien été enregistrées.
+
+ Click Link Retour # à la liste des membres
+ Page Should Not Contain Apt 25 # check qu'on est bien sur la liste
+ Page Should Contain Joline
+
+ Click Link Ajouter # plus(+) vert dans le tableau
+ Input Text nom Jankovic
+ Input Text prenom Kazimir
+ Input Text adresse 72, boulevard Amiral Courbet
+ Input Text cp 69600
+ Input Text ville OULLINS
+ Click Button css=[onclick*=validation]
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Vos modifications ont bien été enregistrées.
+
+
+Génération PDF convocation
+
+ Depuis la page d'accueil admin admin
+ Go To Submenu In Menu traitement commission
+ Click Link Convocation
+
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Button css=[value="Télécharger l'édition des courriers de convocation"]
+
+ ${contenu_pdf} = Create List Joline Kazimir le ... à ...
+ Vérifier Que Le PDF Contient Des Strings convocationcommission ${contenu_pdf}

Copied: trunk/tests/080_procuration.robot (from rev 1248, branches/migrate-tests-to-robot-framework/tests/080_procuration.robot)
===================================================================
--- trunk/tests/080_procuration.robot (rev 0)
+++ trunk/tests/080_procuration.robot 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,120 @@
+*** Settings ***
+Resource resources/resources.robot
+Suite Setup For Suite Setup
+Suite Teardown For Suite Teardown
+Documentation Test suite des procurations
+
+*** Test Cases ***
+Refus procuration
+ [Documentation] Prérequis: Dans la base on compte sur le fait qu'il y a
+ ... déjà une procuration avec les dates 01/04/2014 à 16/04/2014 pour les
+ ... mêmes personnes que celles utilisées ici.
+
+ Depuis la page d'accueil admin admin
+ Click Link Consultation
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=[href*="tab.php?obj=procuration"]
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Ajouter # plus(+) vert
+
+ Input Text z_mandant BIG
+ Click Link css=[href*="correl=mandant"]
+
+ Input Text z_mandataire DADOU
+ Click Link css=[href*="correl=mandataire"]
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ # ↓ check que le champ n'est pas vide, ce qui veut dire que la correlation
+ # est finie
+ ... Run Keyword And Expect Error * Textfield Value Should Be mandataire ${EMPTY}
+
+ Input Text debut_validite 02/04/2014
+ Input Text fin_validite 15/04/2014
+ Input Text date_accord 15/08/2013
+ Input Text heure_accord 15:00:00
+ Click Button css=[type=submit]
+
+ Page Should Contain L'électeur numéro [100034] est déjà mandant pour la même période
+ Page Should Contain L'électeur numéro [100042] est déjà mandataire pour 1 procuration(s) EN FRANCE pour la même période
+
+ # Refus de procuration sans motif
+ Select From List By Label refus Oui
+ Click Button css=[type=submit]
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Le motif de refus est obligatoire si la procuration est refusée
+
+ Input Text motif_refus Ceci est un motif de refus en bonne et due forme
+ Click Button css=[type=submit]
+ Page Should Contain Vos modifications ont bien été enregistrées.
+
+ # Retour au tableau pour vérification du lien vers le courrier de refus
+ Click Link Retour
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Use Simple Search Tous BOB
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=[href*=refus_procuration]
+
+ ${contenu_pdf} = Create List Objet : Vote par procuration
+ ... M. BIG BOB
+ ... M. DADOU DAVID
+ ... Ceci est un motif de refus en bonne et due forme
+ Vérifier Que Le PDF Contient Des Strings refus_procuration ${contenu_pdf}
+
+ # Lancement du traitement élection afin de mettre les pdf à jour
+ Click Link Traitement
+ Sleep 1
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Élection
+
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Input Text dateelection1 08/04/2014
+ Click Button traitement.election_mention.form.valid
+ Confirm Action
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Page Should Contain Le traitement est terminé
+
+ # Vérification des éditions par bureau
+ Click Link Édition
+ Sleep 1
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Par Bureau
+
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=[href*=listeemargement][href$="3"]
+ ${contenu_pdf} = Create List LISTE D'ÉMARGEMENT
+ # dates de la 1re procuration qui était déjà en base
+ # c'est celle qui faisait conflit avec celle qu'on à voulu créer
+ ... 01/04/2014 16/04/2014
+ ${ne_doit_pas_contenir} = Create List 02/04/2014 # 2e procuration
+ Vérifier Que Le PDF Contient Des Strings Mais Pas D'Autres
+ ... listeemargement ${contenu_pdf} ${ne_doit_pas_contenir}
+
+ Click Link css=[href*=listeprocuration][href$="3"]
+ ${contenu_pdf} = Create List LISTE DES PROCURATIONS
+ ... BIG BOB DADOU DAVID
+ ... 01/04/2014 16/04/2014
+ ${ne_doit_pas_contenir} = Create List 02/04/2014 15/04/2014
+ Vérifier Que Le PDF Contient Des Strings Mais Pas D'Autres
+ ... listeprocuration ${contenu_pdf} ${ne_doit_pas_contenir}
+
+ Click Link css=[href*=listeregistreprocuration][href$="3"]
+ ${contenu_pdf} = Create List ÉDITION DU REGISTRE DES PROCURATIONS
+ # on veut qu'il y ait les deux procurations dont celle refusée
+ ... Ceci est un motif
+ ... 01/04/2014 16/04/2014
+ ... 02/04/2014 15/04/2014
+ Vérifier Que Le PDF Contient Des Strings listeregistreprocuration ${contenu_pdf}
+
+ # Vérification du registre général des procurations
+ Click Link Édition
+ Sleep 1
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link Générales
+ # Registre des procurations classées par mandant
+ Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
+ ... Click Link css=[href*=listeregistretotproc]
+ ${contenu_pdf} = Create List ÉDITION DU REGISTRE DES PROCURATIONS
+ # on veut qu'il y ait les deux procurations dont celle refusée
+ ... Ceci est un motif
+ ... 01/04/2014 16/04/2014
+ ... 02/04/2014 15/04/2014
+ Vérifier Que Le PDF Contient Des Strings listeregistretotproc ${contenu_pdf}

Deleted: trunk/tests/README.txt
===================================================================
--- trunk/tests/README.txt 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/README.txt 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,112 +0,0 @@
-openMairie - Tests unitaires et fonctionnels
-============================================
-
-Une partie des tests sont écrits en selenium 2, ils doivent être convertis en
-robotframework dès lors qu'un script existant est modifié.
-
-Installation
-############
-
-Pré-requis
-----------
-
-Le lancement des tests est destiné aux développeurs de l'application, il est
-donc convenu que l'environnement de tests se déploit sur un poste de
-développement linux. Les commandes d'installation indiquées ici supposent
-quelques pré-requis (paquets systèmes) pour fonctionner.
-
-Python
-------
-
-sudo apt-get install python
-
-
-PIP
----
-
-sudo apt-get install python-pip
-
-
-RobotFramework
---------------
-
-Installation :
-
-sudo pip install robotframework
-sudo pip install robotframework-selenium2library
-
-Mise à jour :
-
-sudo pip install robotframework --upgrade
-sudo pip install robotframework-selenium2library --upgrade
-
-
-Utilisation
-###########
-
-Pré-requis
-----------
-
-Les tests doivent être joués dans un environnement balisé et reproductible à
-l'identique. Pour ce faire il est nécessaire avant chaque lancement de test,
-de dérouler une routine qui permet de mettre en place un environnement de tests.
-Un script permet de dérouler cette routine de manière automatisée : ::
-
- ./init_testenv
-
-Ce script permet de :
-
-* supprimer la base de données
-* créer la base de données
-* initialiser la base de données grâce au script data/pgsql/install.sql
-* redémarrer apache pour prendre les traductions en compte
-* donner les droits à apache pour les dossiers dans lequel il peut écrire
-* faire un lien symbolique vers le dossier de l'applicatif pour que les tests
- en question dans le dossier /var/www/
-
-
-TestSuite
----------
-
-Lancer le test suite avec initialisation de l'environnement de tests
-
- ./run_testsuite
-
-
-TestCase
---------
-
-Lancer un test case avec initialisation de l'environnement de tests
-
- ./run_testcase testALancer.txt
-
-
-
-Développement
-#############
-
-Il est prévu de consigner ici les bonnes pratiques et les consignes pour pour
-le développement des tests.
-
-Documentation de la librairie Selenium2Library
-----------------------------------------------
-
-http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html
-
-
-Convention de nommage
----------------------
-
-* Un fichier de test par thème fonctionnel, une TestCase par fonctionnalité.
-* Convention de nommage :
- * des fichiers : mon_theme_fonctionnel.txt
- * des testcase : Saisir un nouvel élément
-
-
-Bonnes pratiques
-----------------
-
-* Éviter d'utiliser les sélecteurs XPATH, les sélecteurs CSS ou par ID sont
- largement préférables.
-
-

Deleted: trunk/tests/base.php
===================================================================
--- trunk/tests/base.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/base.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,169 +0,0 @@
-<?php
-/**
- * Ce script contient la déclaration de la classe Base2TestCase.
- *
- * @package openelec
- * @version SVN : $Id$
- */
-
-/**
- * Cette classe est une classe de base à utiliser par les tests (thèmes)
- * fonctionnels utilisant Selenium2 pour avoir les méthodes communes setUp,
- * tearDown ainsi que certaines méthodes utilitaires comme login, logout, ou
- * verifiynoerrors...
- */
-class Base2TestCase extends PHPUnit_Extensions_Selenium2TestCase {
-
- /**
- * Cette méthode est appelée avant le lancement de chaque test
- * (fonctionnalité).
- */
- protected function setUp() {
- // On positionne le navigateur
- $this->setBrowser("firefox");
- //$this->setBrowser("chrome");
- // On positionne l'URL de base
- $this->setBrowserUrl("http://localhost/");
- // Définition du fuseau horaire
- date_default_timezone_set("Europe/Paris");
- }
-
- /**
- * Cette méthode est appelée après le lancement de chaque test
- * (fonctionnalité).
- */
- protected function tearDown() {
- //
-
- }
-
- /**
- * Cette méthode permet de connecter l'utilisateur à l'application.
- */
- protected function connect($login, $password) {
- // On ouvre l'url openexemple
- $this->url("openelec/");
- // On saisit le login dans le champ login
- $this->byName("login")->value($login);
- // On saisit le mot de passe dans le champ mot de passe
- $this->byName("password")->value($password);
- // On clique sur le bouton de connexion
- $this->byname("login.action.connect")->click();
- }
-
- /**
- * Cette méthode permet de déconnecter l'utilisateur.
- */
- protected function deconnect() {
- // On clique sur le lien de déconnexion
- $element = $this->bycssselector("a.actions-logout");
- $element->click();
- }
-
- /**
- * Cette méthode permet de connecter l'utilisateur à l'application et de
- * vérifier que la connecion s'est bien déroulée.
- */
- protected function login($login, $password) {
- // On se connecte
- $this->connect($login, $password);
- // Allonge le temps d'attente lors de la recherche d'élément
- $this->timeouts()->implicitWait(10000);
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifynoerrors();
- // On vérifie qu'un message nous indique que la session est ouverte
- $element = $this->bycssselector("div.message span.text");
- $this->assertequals("Votre session est maintenant ouverte.", $element->text());
- }
-
- /**
- * Cette méthode permet de déconnecter l'utilisateur et de vérifier que la
- * déconnexion s'est bien déroulée.
- */
- protected function logout() {
- // On se déconnecte
- $this->deconnect();
- // Réduit le temps d'attente lors de la recherche d'élément
- $this->timeouts()->implicitWait(240);
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifynoerrors();
- // On vérifie qu'un message nous indique que la session est terminée
- $element = $this->bycssselector("div.message span.text");
- $this->assertequals("Votre session est maintenant terminée.", $element->text());
- // On vérifie que le lien de déconnexion n'est pas présent
- try {
- $el = $this->bycssselector("a.actions-logout");
- $this->fail("The element shouldn't exist.");
- } catch (RuntimeException $e) {}
- //Ferme la fenêtre
- $this->closeWindow();
- }
-
- /**
- * Cette méthode permet de fair un assert sur la NON présence d'un message
- * indiquant une erreur de base de données ou une notice PHP.
- * XXX Remplacer les tests par des expressions régulières pour améliorer
- * les performances et être plus exhaustif
- */
- public function verifynoerrors() {
- // On récupère le contenu du rendu de la page
- $source = $this->source();
- // On vérifie la présence du message d'erreur de base de données
- try {
- $this->assertNotContains("Erreur de base de données. Contactez votre administrateur.", $source);
- $this->assertNotContains("Erreur de base de donnees. Contactez votre administrateur.", $source);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- $this->fail("Failed asserting that the source does not contain \"Erreur de base de données\".");
- }
- // On vérifie la présence d'une erreur fatale PHP
- try {
- $this->assertNotContains("Fatal error:", $source);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- $this->fail("Failed asserting that the source does not contain \"PHP Fatal error:\".");
- }
- // On vérifie la présence d'une erreur fatale PHP
- try {
- $this->assertNotContains("<b>Fatal error</b>", $source);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- $this->fail("Failed asserting that the source does not contain \"PHP Fatal error:\".");
- }
- // On vérifie la présence d'une erreur de syntaxe PHP
- try {
- $this->assertNotContains("Parse error:", $source);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- $this->fail("Failed asserting that the source does not contain \"PHP Parse error:\".");
- }
- // On vérifie la présence d'une erreur de syntaxe PHP
- try {
- $this->assertNotContains("<b>Parse error</b>", $source);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- $this->fail("Failed asserting that the source does not contain \"PHP Parse error:\".");
- }
- // On vérifie la présence d'une notice PHP
- try {
- $this->assertNotContains("Notice:", $source);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- $this->fail("Failed asserting that the source does not contain \"PHP Notice:\".");
- }
- // On vérifie la présence d'une notice PHP
- try {
- $this->assertNotContains("<b>Notice</b>", $source);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- $this->fail("Failed asserting that the source does not contain \"PHP Notice:\".");
- }
- }
-
- /**
- * Cette méthode est un test (fonctionnalité) qui permet de tester le
- * fonctionnement de la classe Base2TestCase
- */
- //public function test_login_logout() {
- // // On se connecte avec l'utilisateur admin
- // $this->login("admin", "admin");
- // // On se déconnecte
- // $this->logout();
- //}
-
-}
-
-?>

Deleted: trunk/tests/bootstrap.php
===================================================================
--- trunk/tests/bootstrap.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/bootstrap.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,3 +0,0 @@
-<?php
-session_start();
-?>

Deleted: trunk/tests/config.xml
===================================================================
--- trunk/tests/config.xml 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/config.xml 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,11 +0,0 @@
-<phpunit>
- <testsuites>
- <testsuite name="openelec">
- <file>testGeneral.php</file>
- <file>testPdf.php</file>
- <file>testElecteur.php</file>
- <file>testProcuration.php</file>
- <file>testCommission.php</file>
- </testsuite>
- </testsuites>
-</phpunit>

Modified: trunk/tests/index.php
===================================================================
--- trunk/tests/index.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/index.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -3,8 +3,8 @@
* Ce fichier permet de faire une redirection vers le fichier index.php a la
* racine de l'application.
*
- * @package openmairie_exemple
- * @version SVN : $Id: index.php 2231 2013-04-03 12:37:50Z fmichon $
+ * @package openelec
+ * @version SVN : $Id$
*/

header("Location: ../index.php");

Deleted: trunk/tests/init_testenv
===================================================================
--- trunk/tests/init_testenv 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/init_testenv 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,59 +0,0 @@
-#! /bin/sh
-##
-# Ce script permet d'effectuer les initialisations nécessaires au bon
-# déroulement de ces tests
-#
-# @package openelec
-# @version SVN : $Id$
-##
-
-# Variables par défaut
-path_tests="/var/www/openelec"
-database_default="openelec"
-
-# On se positionne à la racine de l'applicatif
-cd ..
-
-# On cré le lien symbolique qui est utilisé par les tests en fonction de
-# l'emplacement actuel uniquement si cet emplacement est un lien symbolique
-# ou n'existe pas
-if ([ -e $path_tests ] && [ -L $path_tests ]) || ([ ! -e $path_tests ]) ;
-then
- if [ -e $path_tests ] ;
- then
- sudo rm $path_tests
- fi
- path_current=`pwd`
- sudo ln -s $path_current $path_tests
-fi
-
-# On positionne les droits sur le dossier de storage pour ne pas obtenir
-# d'erreurs dans les tests qui serait liées à la configuration
-sudo chmod -R 777 trs/
-sudo chmod -R 777 tmp/
-sudo chmod -R 777 tests/binary_files/
-
-# On récupère un éventuel paramètre - si ce paramètre est renseigné alors on
-# l'utilisera tel quel comme nom de la base de données - si ce n'est pas le cas
-# alors le nom de la base de données sera openads
-database=$1
-if [ "$database" = "" ] ;
-then
- database=$database_default
-fi
-
-# On redémarre apache pour être sur de prendre en compte les derniers fichiers
-# de traduction
-sudo apache2ctl graceful > /dev/null
-
-# On réinitialise la base de données pour avoir les données nécessaires aux
-# tests
-cd data/pgsql/
-echo " Suppression de la base $database ..."
-sudo su postgres -c "dropdb $database"
-echo " Création et initialisation de la base $database ..."
-sudo su postgres -c "createdb $database && psql $database -q -f install.sql > /dev/null"
-cd ../..
-
-# On se re-positionne dans le dossier tests
-cd tests/

Copied: trunk/tests/om-tests (from rev 1248, branches/migrate-tests-to-robot-framework/tests/om-tests)
===================================================================
--- trunk/tests/om-tests (rev 0)
+++ trunk/tests/om-tests 2017-06-16 11:08:37 UTC (rev 1249)
@@ -0,0 +1,8 @@
+#!/usr/bin/python2 -u
+# -*- coding: utf-8 -*-
+# -u permet de régler des problèmes d'ordre d'affichage des tests dans la console
+
+from resources.app.om_tests import om_tests
+
+tests = om_tests()
+tests.main()

Deleted: trunk/tests/resource.txt
===================================================================
--- trunk/tests/resource.txt 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/resource.txt 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,268 +0,0 @@
-*** Settings ***
-Documentation A resource file with reusable keywords and variables.
-...
-... The system specific keywords created here form our own
-... domain specific language. They utilize keywords provided
-... by the imported Selenium2Library.
-Library Selenium2Library
-
-*** Variables ***
-${SERVER} localhost
-${BROWSER} Firefox
-${DELAY} 0
-${VALID USER} admin
-${VALID PASSWORD} admin
-${LOGIN URL} http://${SERVER}/openelec/
-${WELCOME URL} http://${SERVER}/openelec/scr/dashboard.php
-${ERROR URL} http://${SERVER}/openelec/scr/login.php
-
-*** Keywords ***
-Open Browser To Login Page
- Open Browser ${LOGIN URL} ${BROWSER}
- Maximize Browser Window
- Set Selenium Speed ${DELAY}
- Login Page Should Be Open
-
-Open Browser And Login
- [Arguments] ${username} ${password}
- Login With Credentials ${username} ${password}
-
-Login Page Should Be Open
- Element Text Should Be css=#title h2 Veuillez Vous Connecter
- Title Should Be :: openMairie :: openElec - Gestion des listes électorales
-
-Go To Login Page
- Go To ${LOGIN URL}
- Login Page Should Be Open
- Page Should Not Contain Errors
-
-Go To Dashboard
- Click Link css=#logo h1 a.logo
- Page Title Should Be Tableau De Bord
- Page Should Not Contain Errors
-
-Input Username
- [Arguments] ${username}
- Input Text login ${username}
-
-Input Password
- [Arguments] ${password}
- Input Text password ${password}
-
-Submit Credentials
- Click Button login.action.connect
-
-Simple Search
- [Arguments] ${search}
- Input Text xpath=//input[@name='recherche'] ${search}
- Click Button xpath=//button[@name='s1']
- Page Should Not Contain Errors
-
-Error On Login Page Should Be Open
- Location Should Be ${ERROR URL}
- Error Message Should Be Votre identifiant ou votre mot de passe est incorrect.
-
-Welcome Page Should Be Open
- Location Should Be ${WELCOME URL}
- Valid Message Should Be Votre session est maintenant ouverte.
-
-Login With Credentials
- [Arguments] ${username} ${password}
- Open Browser To Login Page
- Input Username ${username}
- Input Password ${password}
- Submit Credentials
- Wait Until Element Is Visible css=#actions a.actions-logout
- Element Should Contain css=#actions a.actions-logout Déconnexion
- Page Should Not Contain Errors
-
-Logout
- Click Link css=#actions a.actions-logout
- Login Page Should Be Open
- Page Should Not Contain Errors
-
-Click On Back Button
- Click Element css=a.retour
- Page Should Not Contain Errors
-
-Click On Menu Rubrik
- [Arguments] ${rubrikclass}
- Click Element css=#menu ul#menu-list li.rubrik h3 > a.${rubrikclass}-20
-
-Click On Menu Element In Rubrik
- [Arguments] ${rubrikclass} ${elemclass}
- Click On Menu Rubrik ${rubrikclass}
- Wait Until Element Is Visible css=#menu ul#menu-list li.rubrik ul.rubrik li.elem a.${elemclass}-16
- Click Element css=#menu ul#menu-list li.rubrik ul.rubrik li.elem a.${elemclass}-16
- Page Should Not Contain Errors
-
-Menu Element In Rubrik Should Be Selected
- [Arguments] ${rubrikclass} ${elemclass}
- Element Should Be Visible css=#menu ul#menu-list li.rubrik ul.rubrik li.elem.ui-state-focus.${elemclass}
-
-Page Title Should Be
- [Arguments] ${messagetext}
- Wait Until Element Is Visible css=#title h2
- Element Text Should Be css=#title h2 ${messagetext}
-
-First Tab Title Should Be
- [Arguments] ${messagetext}
- Element Text Should Be css=#formulaire ul.ui-tabs-nav li a ${messagetext}
-
-Click On Tab
- [Arguments] ${libelle}
- Click Link ${libelle}
- Sleep 0.5
- Page Should Not Contain Errors
-
-Page Should Not Contain Errors
- Page Should Not Contain Erreur de base de données.
- Page Should Not Contain Droits insuffisants.
- Page Should Not Contain Fatal error
- Page Should Not Contain Parse error
- Page Should Not Contain Notice
-
-Page Should Contain Menu
- [Arguments] ${rubrikclass}
- Page Should Contain Element css=#menu-list a.${rubrikclass}-20
-
-Page Should Not Contain Menu
- [Arguments] ${rubrikclass}
- Page Should Not Contain Element css=#menu-list a.${rubrikclass}-20
-
-Menu Should Contain Submenu
- [Arguments] ${elemclass}
- Page Should Contain Element css=#menu-list a.${elemclass}-16
-
-Menu Should Not Contain Submenu
- [Arguments] ${elemclass}
- Page Should Not Contain Element css=#menu-list a.${elemclass}-16
-
-Open Menu
- [Arguments] ${rubrikclass}
- Go To Dashboard
- Click On Menu Rubrik ${rubrikclass}
-
-Go To Submenu
- [Arguments] ${elemclass}
- Click Element css=#menu ul#menu-list li.rubrik ul.rubrik li.elem a.${elemclass}-16
- Sleep 0.5
- Page Should Not Contain Errors
-
-Go To Submenu In Menu
- [Arguments] ${rubrikclass} ${elemclass}
- Open Menu ${rubrikclass}
- Sleep 0.5
- Go To Submenu ${elemclass}
-
-Click On Add Button
- Click Element css=span.add-16
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Edit Button
- Click Element css=span.edit-16
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Delete Button
- Click Element css=#formulaire span.delete-16
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Delete Button In Subform
- Click Element css=#sformulaire span.delete-16
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Submit Button
- Click Button css=#formulaire form div.formControls input
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Submit Button In Subform
- Click Button css=#sformulaire form div.formControls input
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Back Button
- Click Element css=a.retour
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Back Button In Subform
- Click Element css=#sformulaire form a.retour
- Sleep 0.5
- Page Should Not Contain Errors
-
-Click On Form Tab
- Click Link main
- Sleep 0.5
- Page Should Not Contain Errors
-
-First Tab Title Should Be
- [Arguments] ${messagetext}
- Element Text Should Be css=#formulaire ul.ui-tabs-nav li a ${messagetext}
-
-Input HTML
- [Arguments] ${field} ${value}
- Select Frame ${field}_ifr
- Focus tinymce
- Input Text tinymce ${value}
- Select Window title=${TITLE}
-
-Numeric Value Should Be
- [Arguments] ${champ} ${valeurAttendue}
- ${valeurRecuperee} = Get Text css=#${champ}
- Should Be Equal As Integers ${valeurAttendue} ${valeurRecuperee}
-
-Form Value Should Be
- [Arguments] ${champ} ${valeurAttendue}
- ${valeurRecuperee} = Get Value css=#${champ}
- Should Be Equal As Integers ${valeurAttendue} ${valeurRecuperee}
-
-Message Should Be
- [Arguments] ${messagetext}
- Element Text Should Be css=div.message p span.text ${messagetext}
-
-Error Message Should Contain
- [Arguments] ${messagetext}
- Wait Until Keyword Succeeds 5 sec 0.5 sec Element Should Contain css=div.message.ui-state-error p span.text ${messagetext}
-
-Error Message Should Be
- [Arguments] ${messagetext}
- Wait Until Keyword Succeeds 5 sec 0.5 sec Element Text Should Be css=div.message.ui-state-error p span.text ${messagetext}
-
-Valid Message Should Be
- [Arguments] ${messagetext}
- Wait Until Keyword Succeeds 5 sec 0.5 sec Element Text Should Be css=div.message.ui-state-valid p span.text ${messagetext}
-
-Valid Message Should Contain
- [Arguments] ${messagetext}
- Wait Until Keyword Succeeds 5 sec 0.5 sec Element Should Contain css=div.message.ui-state-valid p span.text ${messagetext}
-
-Get Object In Form
- ${url} Get Location
- ${url} Fetch From Right ${url} obj=
- ${objInForm} Fetch From Left ${url} &
- Set Suite Variable ${objInForm}
-
-Add File
- [Arguments] ${field} ${file}
- Click Element css=#${field}_upload + a.upload > span.ui-icon
- Sleep 0.5
- Choose File css=#upload-form > input.champFormulaire ${/}tests/binary_files/${file}
- Sleep 0.5
- Click Button css=form#upload-form input.ui-button
- Sleep 0.5
- ${filename} = Get Value css=#${field}_upload
- Should Be Equal ${filename} ${file}
-
-Form Actions Should Be
- [Arguments] ${actions}
- ${length} Get Length ${actions}
- Log Length = ${length}
- Xpath Should Match X Times //div[@id="portlet-actions"]/ul/li ${length}
-
- :FOR ${index} IN @{actions}
- \ Element Should Contain css=#portlet-actions ul.portlet-list ${index}
\ No newline at end of file

Deleted: trunk/tests/run_testcase
===================================================================
--- trunk/tests/run_testcase 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/run_testcase 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,18 +0,0 @@
-#! /bin/sh
-##
-# Ce script permet d'exécuter un test de l'application après avoir
-# effectuer les initialisations nécessaires au bon déroulement de ces tests
-#
-# @package openmairie_exemple
-# @version SVN : $Id: run_testcase 2466 2013-09-05 16:59:36Z fmichon $
-##
-
-# Initialisation de l'environnement de tests
-./init_testenv
-
-# Suppression des anciens résultats
-rm -rf results
-mkdir results
-
-# On exécute le test
-pybot -d results $1

Deleted: trunk/tests/run_testsuite
===================================================================
--- trunk/tests/run_testsuite 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/run_testsuite 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,18 +0,0 @@
-#! /bin/sh
-##
-# Ce script permet d'exécuter la suite de tests de l'application après avoir
-# effectuer les initialisations nécessaires au bon déroulement de ces tests
-#
-# @package openmairie_exemple
-# @version SVN : $Id: run_testsuite 2465 2013-09-05 16:46:37Z fmichon $
-##
-
-# Initialisation de l'environnement de tests
-./init_testenv $1
-
-# Suppression des anciens résultats
-rm -rf results
-mkdir results
-
-# On exécute la suite de tests
-pybot -d results .

Deleted: trunk/tests/testCommission.php
===================================================================
--- trunk/tests/testCommission.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/testCommission.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,115 +0,0 @@
-<?php
-/**
- * @package openelec
- * @version SVN : $Id$
- */
-
-//
-require_once "base.php";
-
-/**
- * Cette classe représente un testcase (thème) Commission qui contient des
- * tests
- * (fonctionnalités).
- */
-class Commission extends Base2TestCase {
-
- public function test_verif_membre() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès à la liste des procurations
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Commissions")->click();
- $this->byLinkText("Convocation")->click();
- // Vérification du message d'erreur
- $this->assertRegExp(
- '/^[\s\S]*Veuillez ajouter les membres participant à la commission \(onglet \"Membres\"\).[\s\S]*$/',
- $this->byCssSelector("div.message span.text")->text()
- );
- // On se déconnecte
- $this->logout();
- }
-
- public function test_ajout_membre() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès à la liste des procurations
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Commissions")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ouverture de l'onglet de gestion des membres
- $this->byLinkText("Membres")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ajout d'un membre
- $this->byXPath("//div[@id='sousform-membre_commission']/table/tbody/tr/th/a/span")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Saisie du formulaire
- $this->byName("nom")->value("TEST");
- $this->byName("prenom")->value("JÉRÉMY");
- $this->byName("adresse")->value("test");
- $this->byName("complement")->value("test");
- $this->byName("cp")->value("12345");
- $this->byName("ville")->value("test");
- // Validation du formulaire
- $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Membre_commission'\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- sleep(1);
- $this->assertRegExp('/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/',$this->source());
- // Retour à la liste des membres
- $this->byLinkText("Retour")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ajout d'un membre
- $this->byXPath("//div[@id='sousform-membre_commission']/table/tbody/tr/th/a/span")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Saisie du formulaire
- $this->byName("nom")->value("AZERTY");
- $this->byName("prenom")->value("TEST");
- $this->byName("adresse")->value("test");
- $this->byName("complement")->value("test");
- $this->byName("cp")->value("12345");
- $this->byName("ville")->value("test");
- // Validation du formulaire
- $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Membre_commission'\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- sleep(1);
- $this->assertRegExp('/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/',$this->source());
- // On se déconnecte
- $this->logout();
- }
-
- public function test_generation_convocation() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès à la liste des procurations
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Commissions")->click();
- $this->byLinkText("Convocation")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->byXPath("//input[@value=\"Télécharger l'édition des courriers de convocation\"]")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*le \.\.\. à \.\.\.[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // On se déconnecte
- $this->logout();
- }
-}
-?>
\ No newline at end of file

Deleted: trunk/tests/testElecteur.php
===================================================================
--- trunk/tests/testElecteur.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/testElecteur.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,205 +0,0 @@
-<?php
-/**
- * @package openelec
- * @version SVN : $Id$
- */
-
-//
-require_once "base.php";
-
-/**
- * Cette classe représente un testcase (thème) général qui contient des tests
- * (fonctionnalités).
- */
-class Electeur extends Base2TestCase {
-
- public function test_recherche_electeur() {
- // On se connecte
- $this->login("admin", "admin");
-
- // Accès à une fiche électeur
- $this->byLinkText("Consultation")->click();
- $this->byLinkText("Liste électorale")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Recherche générale avec une date complète
- $this->byName("recherche")->value("09/08/1994");
- $this->byName("s1")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*ABAY[\s\S]*$/',$this->source());
-
- // Recherche générale avec une date tronquée
- $this->byName("recherche")->clear();
- $this->byName("recherche")->value("08/1994");
- $this->byName("s1")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*ABAY[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*ABEUDJE[\s\S]*$/',$this->source());
-
- // Recherche générale avec l'année
- $this->byName("recherche")->clear();
- $this->byName("recherche")->value("1994");
- $this->byName("s1")->click();
-
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*ABAY[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*ABEUDJE[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*DURAND[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*FABRE[\s\S]*$/',$this->source());
-
- // Recherche sur date de naissance avec une date tronquée
- $this->byName("recherche")->clear();
- $this->byName("recherche")->value("08/1994");
- $this->byName("selectioncol")->value("5");
- $this->byName("s1")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*ABAY[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*ABEUDJE[\s\S]*$/',$this->source());
-
- // On se déconnecte
- $this->logout();
- }
-
- public function test_recherche_electeur_archive() {
- // On se connecte
- $this->login("admin", "admin");
-
- // Accès à une fiche électeur
- $this->byLinkText("Consultation")->click();
- $this->byLinkText("Archive")->click();
-
- // Recherche générale avec une date tronquée
- $this->byName("recherche")->value("10/1994");
- $this->byName("s1")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*ANATOLE[\s\S]*$/',$this->source());
-
- // Recherche sur date de naissance avec une date tronquée
- $this->byName("recherche")->clear();
- $this->byName("recherche")->value("10/1994");
- $this->byName("selectioncol")->value("4");
- $this->byName("s1")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*ANATOLE[\s\S]*$/',$this->source());
-
- // On se déconnecte
- $this->logout();
- }
-
- /**
- * Éditions des informations de juré
- * @return [type] [description]
- */
- public function test_electeur_jure() {
- // On se connecte
- $this->login("admin", "admin");
-
- // Accès à la liste provisoire des jurés
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Jury D'assises")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Génération d'une liste provisoire
- $this->byName("traitement.jury.form.valid")->click();
- $this->acceptAlert();
- sleep(2);
- $this->assertRegExp('/^[\s\S]*Le traitement est terminé.[\s\S]*$/',$this->source());
- // Accès à la liste préparatoire
- $this->byLinkText("Liste préparatoire courante")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- sleep(1);
- // Modification des info du 1er électeur
- $this->byXPath("//div[@id='sousform-electeur_jury']/table/tbody/tr[2]/td/a/span")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- sleep(1);
- $this->byName("jury_effectif")->value("oui");
- $this->byName("profession")->value("ostréiculteur");
- $this->byXPath("//input[@value=\"Modifier l'enregistrement de la table : 'électeur'\"]")->click();
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*Date de prefecture obligatoire[\s\S]*$/',$this->source());
- $this->byName("date_jeffectif")->value("06/08/2013");
- $this->byXPath("//input[@value=\"Modifier l'enregistrement de la table : 'électeur'\"]")->click();
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/',$this->source());
- $id_electeur = $this->byName("id_electeur")->value();
-
- // Vérification de l'ouverture du pdf
- $this->byLinkText("Tirage aléatoire")->click();
- $this->byLinkText("Liste préparatoire du jury d'assises")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*ostréiculteur[\s\S]*$/',$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- $this->byLinkText("Export CSV des électeurs sélectionnés")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->byName("valid.reqmo")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- try {
- $result = $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[2]/td[27]")->text();
- $this->assertEquals("ostréiculteur", $result);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- array_push($this->verificationErrors, $e->__toString());
- }
-
- // verification dans la fiche de l'électeur
- $this->byLinkText("Consultation")->click();
- $this->byLinkText("Liste électorale")->click();
-
- // Recherche générale avec une date tronquée
- $this->byName("recherche")->value($id_electeur);
- $this->byName("s1")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->byLinkText($id_electeur)->click();
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Vérification de la présence des info jurés
- $this->assertRegExp('/^[\s\S]*Jury d\'assises :[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*L\'électeur fait parti de la liste provisoire courante.[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*Profession de l\'électeur : ostréiculteur[\s\S]*$/',$this->source());
- $this->assertRegExp('/^[\s\S]*L\'électeur est juré effectif le : 06\/08\/2013[\s\S]*$/',$this->source());
-
- // Suppression des info en enlevant l'utilisateur du jury effectif
- $this->byLinkText("Juré d'assises")->click();
- $this->byName("jury_effectif")->value("non");
- $this->byXPath("//input[@value=\"Modifier l'enregistrement de la table : 'électeur'\"]")->click();
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/',$this->source());
- $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
- sleep(2);
- // On vérifie que la profession et la date de juré n'est plus affichée.
- $this->assertNotContains(
- 'L\'électeur est juré effectif le : 06/08/2013',
- $this->byCssSelector("div #jury_assise")->text()
- );
-
- // On se déconnecte
- $this->logout();
- }
-}
-?>
\ No newline at end of file

Deleted: trunk/tests/testGeneral.php
===================================================================
--- trunk/tests/testGeneral.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/testGeneral.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,107 +0,0 @@
-<?php
-/**
- *
- *
- * @package openmairie_exemple
- * @version SVN : $Id$
- */
-
-//
-require_once "base.php";
-
-/**
- * Cette classe représente un testcase (thème) général qui contient des tests
- * (fonctionnalités).
- */
-class General extends Base2TestCase {
-
- /**
- * Ce test permet de vérifier la connexion et la déconnexion de
- * l'utilisateur admin
- */
- public function test_01_login_logout() {
- // On se connecte
- $this->login("admin", "admin");
- // On se déconnecte
- $this->logout();
- }
-
- /**
- * Ce test permet de vérifier qu'aucune requête mémorisée reqmo du menu
- * "Export" -> "Requêtes mémorisées" ne produit d'erreur de base de données.
- */
- public function test_92_verifier_tous_les_exports_reqmo_inc() {
- // On récupère la liste des objets à traiter
- $reqmos = $this->get_list_of_files_in_sql_pgsql("reqmo");
- // On se connecte en tant que "admin"
- $this->login("admin", "admin");
- // On clique sur la rubrique Export du menu
- $this->byCssSelector("#menu li.rubrik a.edition-20")->click();
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifynoerrors();
- // On clique sur l'élément Requêtes mémorisées dans le menu
- $this->byCssSelector("#menu li.elem a.reqmo-16")->click();
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifynoerrors();
- // On boucle sur les requêtes mémorisées disponibles ( *.reqmo.inc.php )
- foreach ($reqmos as $reqmo) {
- // On clique sur le lien qui correspond à la requête mémorisée
- $this->byCssSelector("#reqmo a.reqmo-16[href=\"../scr/requeteur.php?obj=".$reqmo["file"]."\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On valide le formulaire
- $this->byName("valid.reqmo")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On clique sur le bouton retour
- $this->byCssSelector("a.retour")->click();
- // On clique sur le bouton retour
- $this->byCssSelector("a.retour")->click();
- }
- // On se déconnecte
- $this->logout();
- }
-
- // {{{ Fonctions utilitaires pour le fonctionnement des tests
-
- /**
- * Cette méthode permet de récupérer un tableau contentant la liste des
- * fichiers présents dans le dossier sql/pgsql. En fonction du paramètre
- * passé la liste concerne les fichiers *.pdf.inc.php soit les fichiers
- * *.reqmo.inc.php.
- */
- private function get_list_of_files_in_sql_pgsql($type = NULL) {
- //
- if (is_null($type) || !in_array($type, array("pdf", "reqmo",))) {
- //
- return array();
- }
- //
- $dir = getcwd();
- $dir = substr($dir, 0, strlen($dir) - 6)."/sql/pgsql/";
- $dossier = opendir($dir);
- $tab = array();
- while ($entree = readdir($dossier)) {
- if (strstr($entree, $type)) {
- // Si l'extention du fichier $entree est .inc.php
- if (strpos($entree, ".inc.php")) {
- $filext = strlen(".".$type.".inc.php");
- } else {
- // Sinon on considere qu'elle est -> .inc (compatibilite)
- $filext = strlen(".".$type.".inc");
- }
- //
- array_push($tab, array('file' => substr($entree, 0, strlen($entree) - $filext)));
- }
- }
- closedir($dossier);
- asort($tab);
- //
- return $tab;
- }
-
- // }}}
-
-}
-
-?>

Deleted: trunk/tests/testINSEE.php
===================================================================
--- trunk/tests/testINSEE.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/testINSEE.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,322 +0,0 @@
-<?php
-/**
- * @package openelec
- * @version SVN : $Id$
- */
-
-//
-require_once "base.php";
-
-/**
- * Cette classe représente un testcase (thème) général qui contient des tests
- * (fonctionnalités).
- */
-class Electeur extends Base2TestCase {
-
- /**
- * Méthode permettant l'ajout de partenaire pour l'envoi d'export xml
- */
- public function test_parametrage_partenaire() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès au module INSEE
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Insee")->click();
- // Vérification du message d'erreur si pas de partenaires paramétrés.
- // Accès au module insee
- // Configuration de l'export xml
- $this->byName("format")->value("xml");
- $this->byName("traitement.insee_export.form.valid")->click();
- $this->acceptAlert();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Vérification du message d'erreur
- $result = $this->byXPath("//div[@id='traitement_insee_export_result']/div")->text();
- $this->assertEquals("Le traitement à échoué. Voir le détail\n\nLes partenaires d'origine et de destination des exports xml n'ont pas été paramétré.\nParametrer les partenaires.", $result);
- // Acces au module de test insee
- $this->byLinkText("Parametrer les partenaires.")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ajout d'un partenaire
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr/th/a/span")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Saisie des infos du partenaire
- $this->byName("identifiant")->value("00000");
- $this->byName("nom")->value("LibreVille");
- $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Xml_partenaire'\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- try {
- $result = $this->byCssSelector("span.text")->text();
- $this->assertEquals("Vos modifications ont bien été enregistrées.", $result);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- array_push($this->verificationErrors, $e->__toString());
- }
- // Retour au tableau pour vérification du lien vers le courrier de refus
- $this->byLinkText("Retour")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ajout d'un partenaire
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr/th/a/span")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Saisie des infos
- $this->byName("type_partenaire")->value("destination");
- $this->byName("identifiant")->value("00001");
- $this->byName("nom")->value("INSEE");
- $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Xml_partenaire'\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- try {
- $result = $this->byCssSelector("span.text")->text();
- $this->assertEquals("Vos modifications ont bien été enregistrées.", $result);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- array_push($this->verificationErrors, $e->__toString());
- }
- // Retour
- $this->byLinkText("Retour")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On se déconnecte
- $this->logout();
-
- }
-
- /**
- * Méthode permettant de tester l'export des mouvements des listes électorales
- * au format TXT
- */
- public function test_export_insee_txt() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès au module insee
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Insee")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Génération du fichier d'export
- $this->byName("traitement.insee_export.form.valid")->click();
- $this->acceptAlert();
- // récupération du datetime de l'execution
- $date_traitement = date("d/m/Y H:i:s");
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Vérification des erreurs
- try {
- $this->assertRegExp('/^Le traitement est terminé. Voir le détail$/',
- $this->byCssSelector("span.text")->text());
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- array_push($this->verificationErrors, $e->__toString());
- }
- $this->assertRegExp('/^[\s\S]*Export du '.str_replace(array("/"," ",":"), array("\\/","\\ ", "\\:"), $date_traitement).' \[1\][\s\S]*$/',$this->byId("insee_export_list_content")->text());
- try {
- $result = $this->byLinkText("Export du ".$date_traitement." [1]")->text();
- $this->assertEquals("Export du ".$date_traitement." [1]", $result);
- } catch (PHPUnit_Framework_AssertionFailedError $e) {
- array_push($this->verificationErrors, $e->__toString());
- }
- // Ouverture du fichier généré
- $this->byLinkText("Export du ".$date_traitement." [1]")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*BONNET\*HERVE[\s\S]*$/',
- $this->byCssSelector("pre")->text());
- $this->assertRegExp('/^[\s\S]*LACROIX\*HUBERT[\s\S]*$/',
- $this->byCssSelector("pre")->text());
- $this->assertRegExp('/^[\s\S]*LACROIX\*PAUL[\s\S]*$/',
- $this->byCssSelector("pre")->text());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // On se déconnecte
- $this->logout();
- }
-
- /**
- * Méthode permettant de tester l'export des mouvements des listes électorales
- * au format XML
- */
- public function test_export_insee_xml() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès au module insee
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Insee")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Configuration de l'export xml
- $this->byName("envoi")->value("1");
- $this->byName("format")->value("xml");
- $this->byName("traitement.insee_export.form.valid")->click();
- $this->acceptAlert();
- // Récupération du datetime
- $date_traitement = date("d/m/Y H:i:s");
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^Le traitement est terminé. Voir le détail$/',
- $this->byCssSelector("span.text")->text());
- $this->assertRegExp('/^[\s\S]*Export du '.str_replace(array("/"," ",":"), array("\\/","\\ ", "\\:"), $date_traitement).' \[1\][\s\S]*$/',$this->byId("insee_export_list_content")->text());
- $result = $this->byLinkText("Export du ".$date_traitement." [1]")->text();
- $this->assertEquals("Export du ".$date_traitement." [1]", $result);
- // Ouverture du fichier généré
- $this->byLinkText("Export du ".$date_traitement." [1]")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Vérification des prestataires
- $this->assertRegExp('/^[\s\S]*\<el\:Origine\>
- \<io\:Identifiant autorite=\"http\:\/\/xml\.insee\.fr\/identifiants\/SIRET\"\>00000\<\/io\:Identifiant\>
- \<io\:Nom\>LibreVille\<\/io\:Nom\>[\s\S]*$/',
- $this->source());
- $this->assertRegExp('/^[\s\S]*\<el\:Destination\>
- \<io\:Identifiant autorite=\"http\:\/\/xml\.insee\.fr\/identifiants\/SIRET\"\>00001\<\/io\:Identifiant\>
- \<io\:Nom\>INSEE\<\/io\:Nom\>[\s\S]*$/',
- $this->source());
- // Vérification de mouvements sur les électeurs
- $this->assertRegExp('/^[\s\S]*\<el\:Noms\>
- \<ie\:NomFamille\>BONNET\<\/ie\:NomFamille\>
- \<\/el\:Noms\>
- \<el\:Prenoms\>
- \<ie\:Prenom\>HERVE\<\/ie\:Prenom\>
- \<\/el\:Prenoms\>[\s\S]*$/',
- $this->source());
- $this->assertRegExp('/^[\s\S]*\<el\:Noms\>
- \<ie\:NomFamille\>LACROIX\<\/ie\:NomFamille\>
- \<\/el\:Noms\>
- \<el\:Prenoms\>
- \<ie\:Prenom\>HUBERT\<\/ie\:Prenom\>
- \<\/el\:Prenoms\>[\s\S]*$/',
- $this->source());
- $this->assertRegExp('/^[\s\S]*\<el\:Noms\>
- \<ie\:NomFamille\>LACROIX\<\/ie\:NomFamille\>
- \<\/el\:Noms\>
- \<el\:Prenoms\>
- \<ie\:Prenom\>PAUL\<\/ie\:Prenom\>
- \<\/el\:Prenoms\>[\s\S]*$/',
- $this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // On se déconnecte
- $this->logout();
- }
-
- /**
- * Méthode permettant l'import XML des inscrits d'office depuis l'INSEE
- */
- function test_import_io_insee_xml() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès au module insee
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Insee")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->byLinkText("Import IO")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Upload de fichier
- $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
- sleep(1);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifyNoErrors();
- // Saisie de fichier
- $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/io_import.xml");
- $this->byCssSelector("input[name=submit]")->click();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifyNoErrors();
- $this->byName("traitement.insee_inscription_office.form.valid")->click();
- $this->acceptAlert();
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*Le transfert s\'est effectué[\s\S]*$/',
- $this->byId("traitement_insee_inscription_office_result")->text());
- $this->assertRegExp('/^[\s\S]*Le traitement est terminé[\s\S]*$/',
- $this->byCssSelector("span.text")->text());
- $this->byLinkText("Validation des inscriptions d'office INSEE")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*BELLOZ PHILIPPE 5 BOULEVARD MAQUIS MARCEAU 00000 OPENELEC[\s\S]*$/',
- $this->byCssSelector("#tabs-1 .tab-tab")->text());
- $this->assertRegExp('/^[\s\S]*BIG DADDY 15 BOULEVARD MAQUIS MARCEAU 00000 OPENELEC[\s\S]*$/',
- $this->byCssSelector("#tabs-1 .tab-tab")->text());
-
- }
-
- /**
- * Méthode permettant l'import XML de radiation depuis l'INSEE
- */
- function test_import_radiation_insee_xml() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès au module insee
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Insee")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->byLinkText("Import Radiation")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Upload de fichier
- $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
- sleep(1);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifyNoErrors();
- // Saisie de fichier
- $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/radiation_import.xml");
- $this->byCssSelector("input[name=submit]")->click();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
- $this->verifyNoErrors();
- $this->byName("traitement.insee_radiation.form.valid")->click();
- $this->acceptAlert();
- sleep(1);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*Le transfert s\'est effectué[\s\S]*$/',
- $this->byId("traitement_insee_radiation_result")->text());
- $this->assertRegExp('/^[\s\S]*Le traitement est terminé[\s\S]*$/',
- $this->byCssSelector("span.text")->text());
- $this->byLinkText("Validation des radiations INSEE")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp('/^[\s\S]*CAMILLE
-LOUIS[\s\S]*$/',
- $this->byCssSelector("#tabs-1 .tab-tab")->text());
- $this->assertRegExp('/^[\s\S]*DADOU
-DAVID[\s\S]*$/',
- $this->byCssSelector("#tabs-1 .tab-tab")->text());
-
- }
-
-
-}
-?>
\ No newline at end of file

Deleted: trunk/tests/testPdf.php
===================================================================
--- trunk/tests/testPdf.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/testPdf.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,487 +0,0 @@
-<?php
-/**
- * @package openelec
- * @version SVN : $Id$
- */
-
-//
-require_once "base.php";
-
-/**
- * Cette classe représente un testcase (thème) général qui contient des tests
- * (fonctionnalités).
- */
-class Pdf extends Base2TestCase {
-
- /**
- * Méthode de test des pdf accessible sur la fiche électeur.
- */
- public function test_pdf_electeur() {
- // On se connecte
- $this->login("admin", "admin");
-
- // Accès à une fiche électeur
- $this->byLinkText("Consultation")->click();
- $this->byLinkText("Liste électorale")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->byLinkText("ABAY")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
-
- // On click sur le lien "Attestation d'électeur"
- $this->byLinkText("Attestation d'électeur")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*ATTESTATION D'INSCRIPTION[\s\S]*$/",$this->source());
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. ABAY BARAN[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // On click sur le lien "Attestation d'électeur"
- $this->byLinkText("Carte d'électeur")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. ABAY BARAN[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
-
- $this->byLinkText("Retour")->click();
- // On se déconnecte
- $this->logout();
- }
-
- /**
- * Méthode de test des pdf de mouvements
- */
- public function test_pdf_mouvement() {
- // On se connecte
- $this->login("admin", "admin");
-
- // Accès à la liste des mouvevements d'inscription
- $this->byLinkText("Consultation")->click();
- // Vérification des mouvements d'inscription
- $this->byCssSelector("a.inscriptions-16")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ouverture de l'attestation de la 1ere ligne
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[2]/td/a[3]/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*ATTESTATION D'INSCRIPTION[\s\S]*$/",$this->source());
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. BONNET HERVE[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- // Ouverture du refus d'inscription de la 1ere ligne
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[2]/td/a[4]/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*REFUS D'INSCRIPTION[\s\S]*$/",$this->source());
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. BONNET HERVE[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Accès à la liste des mouvements de consultation
- $this->byLinkText("Consultation")->click();
- // Vérification des mouvements de modification
- $this->byCssSelector("a.modifications-16")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ouverture de l'attestation de la 1ere ligne
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[2]/td/a[3]/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*AVIS DE MODIFICATION[\s\S]*$/",$this->source());
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. DUPONT GILBERT[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- // Ouverture du refus de modidfcation de la 1ere ligne
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[2]/td/a[4]/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*REFUS DE MODIFICATION[\s\S]*$/",$this->source());
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. DUPONT GILBERT[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Accès à la liste des mouvements de radiation
- $this->byLinkText("Consultation")->click();
- // Vérification des mouvements de modification
- $this->byCssSelector("a.radiations-16")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ouverture de l'attestation de la 1ere ligne
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[2]/td/a[3]/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*ATTESTATION DE RADIATION[\s\S]*$/",$this->source());
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. AUBAGNE JEAN[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- // Ouverture du refus de radiation
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[2]/td/a[4]/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*REFUS DE RADIATION[\s\S]*$/",$this->source());
- // On vérifie que le nom de l'électeur est présent
- $this->assertRegExp("/^[\s\S]*M\. AUBAGNE JEAN[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // On se déconnecte
- $this->logout();
-
- }
-
- /**
- * Méthode de test des pdf de révision électorale
- */
- public function test_pdf_revision_electorale() {
- // On se connecte
- $this->login("admin", "admin");
-
- // Accès aux éditions de révisions électorale
- $this->byLinkText("Édition")->click();
- // Vérification des mouvements de modification
- $this->byLinkText("Révision électorale")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
-
-
- // Ouverture du tableau commune
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[2]/td/fieldset/table/tbody/tr[2]/td/ul/li[2]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*TABLEAU DES CINQ JOURS[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*pdf\/commission\.php\?mode\_edition\=tableau\&tableau\=tableau\_des\_cinq\_jours\&globale[\s\S]*$/",$this->url());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau par bureau
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[2]/td/fieldset/table/tbody/tr[2]/td/ul/li/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*TABLEAU DES CINQ JOURS[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*pdf\/commission\.php\?mode\_edition\=tableau\&tableau\=tableau\_des\_cinq\_jours\&datetableau[\s\S]*$/",$this->url());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture des nouvelles cartes électorales
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[2]/td/fieldset/table/tbody/tr[4]/td/ul/li[2]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis bien de l'attestation
- $this->assertRegExp("/^[\s\S]*NOUVELLES CARTES ÉLECTORALES SUITE AU TRAITEMENT[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du recapitulatif des traitement j-5
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[2]/td/fieldset/table/tbody/tr[4]/td/ul/li/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*Détail des mouvements appliqués lors du traitement[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau des 5 jours par commune
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[2]/td/fieldset/table/tbody/tr[5]/td/ul/li[2]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*TABLEAU DES CINQ JOURS[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*BONNET[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*HERVE[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau des 5 jours par bureau
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[2]/td/fieldset/table/tbody/tr[5]/td/ul/li/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*TABLEAU DES CINQ JOURS[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*pdf\/commission\.php\?mode\_edition\=tableau\&tableau\=tableau\_des\_cinq\_jours\&datetableau[\s\S]*$/",$this->url());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau du 1er rectificatif du récapitulatif
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[3]/td/ul/li[3]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*Récapitulatif du tableau rectificatif[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*1 - HOTEL DE VILLE[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*2 - ECOLE MATERNELLE[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*3 - SALLE DES FETE[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau du 1er rectificatif du tableau par commune
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[3]/td/ul/li[2]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*TABLEAU RECTIFICATIF[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*Commune : OPENELEC[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau du 1er rectificatif du tableau par bureau
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[3]/td/ul/li/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*TABLEAU RECTIFICATIF[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*Commune : OPENELEC[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*pdf\/commission\.php\?mode\_edition\=tableau\&tableau\=tableau\_rectificatif\&datetableau[\s\S]*$/",$this->url());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau du 2nd rectificatif des cartes électorales
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[6]/td/ul/li[4]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*NOUVELLES CARTES ÉLECTORALES SUITE AU TRAITEMENT ANNUEL[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau du 2nd rectificatif du récapitulatif
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[6]/td/ul/li[3]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*Récapitulatif du tableau rectificatif[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*1 - HOTEL DE VILLE[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*2 - ECOLE MATERNELLE[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*3 - SALLE DES FETE[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau du 2d rectificatif du tableau par commune
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[6]/td/ul/li[2]/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*TABLEAU RECTIFICATIF[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*Commune : OPENELEC[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Ouverture du tableau du 1er rectificatif du tableau par bureau
- $this->byXPath("/html/body/div[3]/div[2]/table/tbody/tr[6]/td/ul/li/a")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On vérifie qu'il s'agis du bon pdf
- $this->assertRegExp("/^[\s\S]*TABLEAU RECTIFICATIF[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*Commune : OPENELEC[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*pdf\/commission\.php\?mode_edition\=tableau\&tableau\=tableau\_rectificatif\&datetableau[\s\S]*$/",$this->url());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // On se déconnecte
- $this->logout();
- }
-
- /**
- * Méthode de test des pdf par bureau
- */
- public function test_pdf_par_bureau() {
- // On se connecte
- $this->login("admin", "admin");
-
- // Accès aux éditions de révisions électorale
- $this->byLinkText("Édition")->click();
- // Vérification des mouvements de modification
- $this->byLinkText("Par Bureau")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
-
- // Vérification des erreurs sur tous les pdf de la page
- for($y = 2; $y<5; $y++) {
- for($x = 2; $x<10; $x++) {
- $this->byXPath("/html/body/div[3]/div[3]/table/tbody/tr[".$y."]/td[".$x."]/a/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- }
- }
- // On se déconnecte
- $this->logout();
- }
-
-
-}
\ No newline at end of file

Deleted: trunk/tests/testProcuration.php
===================================================================
--- trunk/tests/testProcuration.php 2017-06-16 10:47:24 UTC (rev 1248)
+++ trunk/tests/testProcuration.php 2017-06-16 11:08:37 UTC (rev 1249)
@@ -1,178 +0,0 @@
-<?php
-/**
- * @package openelec
- * @version SVN : $Id$
- */
-
-//
-require_once "base.php";
-
-/**
- * Cette classe représente un testcase (thème) général qui contient des tests
- * (fonctionnalités).
- */
-class Procuration extends Base2TestCase {
-
- public function test_refus_procuration() {
- // On se connecte
- $this->login("admin", "admin");
- // Accès à la liste des procurations
- $this->byLinkText("Consultation")->click();
- $this->byLinkText("Procuration")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Ajout d'une procuration sur électeurs déjà mandant et mandataire
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr/th/a/span")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Saisie du mandant
- $this->byName("z_mandant")->value("BIG");
- // Correlation
- $this->byCssSelector("span.ui-icon.ui-icon-circle-arrow-w")->click();
- // Saisie du mandataire
- $this->byName("z_mandataire")->value("DADOU");
- // Correlation
- $this->byXPath("//div[@id='tabs-1']/form/table/tbody/tr[4]/td/fieldset/table/tbody/tr[2]/td[4]/a/span")->click();
- // Saisie de l'interval de validité
- $this->byName("debut_validite")->value("01/04/2014");
- $this->byName("fin_validite")->value("16/04/2014");
- // Saisie de la date d'accord
- $this->byName("date_accord")->value("15/08/2013");
- $this->byName("heure_accord")->value("15:00:00");
- // Validation du formulaire
- $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Procuration'\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // Aucun électeur ne peut être mandant ou mandataire
- $this->assertRegExp(
- "/^[\s\S]*L\'électeur numéro \[100034\] est déjà mandant pour la même période[\s\S]*$/",
- $this->byCssSelector("form[name=f1] span.text")->text()
- );
- $this->assertRegExp(
- "/^[\s\S]*L\'électeur numéro \[100042\] est déjà mandataire pour 1 procuration\(s\) EN FRANCE pour la même période[\s\S]*$/",
- $this->byCssSelector("form[name=f1] span.text")->text()
- );
- // Refus de procuration sans motif
- $this->byName("refus")->value("O");
- // Validation du formulaire
- $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Procuration'\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp(
- "/^[\s\S]*Le motif de refus est obligatoire si la procuration est refusée[\s\S]*$/",
- $this->byCssSelector("form[name=f1] span.text")->text()
- );
- // Saisie d'un motif de refus
- $this->byName("motif_refus")->value("Ceci est un motif de refus en bonne et due forme");
- // Validation du formulaire
- $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Procuration'\"]")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp(
- "/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",
- $this->byCssSelector("span.text")->text()
- );
- // Retour au tableau pour vérification du lien vers le courrier de refus
- $this->byLinkText("Retour")->click();
- // On ouvre le lien du courrier de refus
- $this->byXPath("//div[@id='tabs-1']/table/tbody/tr[3]/td/a[3]/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp("/^[\s\S]*Objet : Vote par procuration[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*M. BIG BOB[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*M. DADOU DAVID[\s\S]*$/",$this->source());
- $this->assertRegExp("/^[\s\S]*Ceci est un motif de refus en bonne et due forme[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
-
- // Lancement du traitement élection afin de mettre les pdf à jour
- $this->byLinkText("Traitement")->click();
- $this->byLinkText("Élection")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->byName("traitement.election_mention.form.valid")->click();
- $this->acceptAlert();
- sleep(1);
- $this->assertRegExp('/^[\s\S]*Le traitement est terminé[\s\S]*$/',$this->source());
-
- // Vérification des éditions par bureau
- $this->byLinkText("Édition")->click();
- $this->byLinkText("Par Bureau")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
-
- $this->byXPath("//div[@id='bureau_edition']/table/tbody/tr[4]/td[2]/a/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // XXX vérifier que la mention de procuration n'est pas affichée
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- $this->byXPath("//div[@id='bureau_edition']/table/tbody/tr[4]/td[7]/a/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- // XXX vérifier que la mention de procuration n'est pas affichée
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- $this->byXPath("//div[@id='bureau_edition']/table/tbody/tr[4]/td[9]/a/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp("/^[\s\S]*Ceci est un motif[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- // Vérification du registre général des procurations
- $this->byLinkText("Édition")->click();
- $this->byLinkText("Générales")->click();
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
-
- $this->byXPath("//div[@id='content']/table/tbody/tr[5]/td[3]/a/span")->click();
- sleep(5);
- // Liste les fenêtres
- $windows = $this->windowHandles();
- // Change la fenêtre
- $this->window($windows[1]);
- // On vérifie qu'il n'y ait pas d'erreur
- $this->verifynoerrors();
- $this->assertRegExp("/^[\s\S]*Ceci est un motif[\s\S]*$/",$this->source());
- // On ferme la fenêtre
- $this->closeWindow();
- // On change le focus de la fenêtre
- $this->window($windows[0]);
- // On se déconnecte
- $this->logout();
-
- }
-
-
-
-
-}
-?>
\ No newline at end of file

Reply all
Reply to author
Forward
0 new messages