/[openfoncier]/trunk/tests/base.php
ViewVC logotype

Annotation of /trunk/tests/base.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2008 - (hide annotations)
Fri Jun 14 14:20:00 2013 UTC (11 years, 7 months ago) by softime
File size: 8515 byte(s)
Modification des url pour les test 

1 fmichon 1649 <?php
2     /**
3     *
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8    
9 fmichon 1654 class BaseTestCase extends PHPUnit_Extensions_SeleniumTestCase {
10 fmichon 1649
11     protected function setUp() {
12     $this->setBrowser("firefox");
13 fmichon 1654 $this->setBrowserUrl("http://localhost/");
14 softime 1990 $this->setSleep(1);
15 fmichon 1649 }
16    
17     protected function tearDown() {
18    
19     }
20    
21     protected function connect($login, $password) {
22 fmichon 1654 $this->open("openfoncier/");
23 fmichon 1649 $this->type("id=login", $login);
24     $this->type("id=password", $password);
25     $this->click("name=login.action.connect");
26     $this->waitForPageToLoad("30000");
27     }
28    
29     protected function deconnect() {
30     $this->click("link=Déconnexion");
31     $this->waitForPageToLoad("30000");
32     }
33    
34 fmichon 1727 protected function login($login, $password) {
35     // on commence par se connecter
36     $this->connect($login, $password);
37 fmichon 1816 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
38     $this->verifyNoErrors();
39 fmichon 1727 // On doit être connecté
40     $this->assertTrue($this->isTextPresent("Votre session est maintenant ouverte."));
41     }
42    
43     protected function logout() {
44     // puis on se déconnecte
45     $this->deconnect();
46 fmichon 1816 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
47     $this->verifyNoErrors();
48 fmichon 1727 // on doit avoir un message nous indiquant que la session est finie
49     $this->assertTrue($this->isTextPresent("Votre session est maintenant terminée."));
50     // on ne doit plus avoir de lien de déconnexion
51     $this->assertFalse($this->isElementPresent("link=Déconnexion"));
52     }
53    
54 fmichon 1674 /**
55     * Cette méthode permet de fair un assert sur la NON présence d'un message
56 fmichon 1719 * indiquant une erreur de base de données ou une notice PHP
57 fmichon 1674 */
58 fmichon 1719 public function verifyNoErrors() {
59 fmichon 1674 try {
60     $this->assertFalse($this->isTextPresent("Erreur de base de données. Contactez votre administrateur."));
61     } catch (PHPUnit_Framework_AssertionFailedError $e) {
62     array_push($this->verificationErrors, "Erreur de base de données.");
63     }
64 fmichon 1719 try {
65     $this->assertFalse($this->isTextPresent("Parse error:"));
66     } catch (PHPUnit_Framework_AssertionFailedError $e) {
67     array_push($this->verificationErrors, "PHP Parse error:");
68     }
69     try {
70     $this->assertFalse($this->isTextPresent("Fatal error:"));
71     } catch (PHPUnit_Framework_AssertionFailedError $e) {
72     array_push($this->verificationErrors, "PHP Fatal error:");
73     }
74     try {
75     $this->assertFalse($this->isTextPresent("Notice:"));
76     } catch (PHPUnit_Framework_AssertionFailedError $e) {
77     array_push($this->verificationErrors, "PHP Notice:");
78     }
79 fmichon 1674 }
80    
81 fmichon 1649 }
82    
83 softime 1990 /**
84     * Cette classe est une classe de base à utiliser par les tests (thèmes)
85     * fonctionnels utilisant Selenium2 pour avoir les méthodes communes setUp,
86     * tearDown ainsi que certaines méthodes utilitaires comme login, logout, ou
87     * verifiynoerrors...
88     */
89     class Base2TestCase extends PHPUnit_Extensions_Selenium2TestCase {
90    
91     /**
92     * Cette méthode est appelée avant le lancement de chaque test
93     * (fonctionnalité).
94     */
95     protected function setUp() {
96     // On positionne le navigateur
97     $this->setBrowser("firefox");
98     //$this->setBrowser("chrome");
99     // On positionne l'URL de base
100     $this->setBrowserUrl("http://localhost/");
101     }
102    
103     /**
104     * Cette méthode est appelée après le lancement de chaque test
105     * (fonctionnalité).
106     */
107     protected function tearDown() {
108     //
109    
110     }
111    
112     /**
113     * Cette méthode permet de connecter l'utilisateur à l'application et de
114     * vérifier que la connecion s'est bien déroulée.
115     */
116     protected function connect($login, $password) {
117     // On ouvre l'url openexemple
118 softime 2008 $this->url("openfoncier/");
119 softime 1990 // On vérifie que le titre de la page HTML est le bon
120     $this->assertequals(":: openMairie :: openADS", $this->title());
121     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
122     $this->verifynoerrors();
123     // On saisit le login dans le champ login
124     $this->byName("login")->value($login);
125     // On saisit le mot de passe dans le champ mot de passe
126     $this->byName("password")->value($password);
127     // On clique sur le bouton de connexion
128     $this->byname("login.action.connect")->click();
129     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
130     $this->verifynoerrors();
131     // On vérifie qu'un message nous indique que la session est ouverte
132     $element = $this->bycssselector("div.message span.text");
133     $this->assertequals("Votre session est maintenant ouverte.", $element->text());
134     }
135    
136     /**
137     * Cette méthode permet de déconnecter l'utilisateur et de vérifier que la
138     * déconnexion s'est bien déroulée.
139     */
140     protected function deconnect() {
141     // On clique sur le lien de déconnexion
142     $element = $this->bycssselector("a.actions-logout");
143     $element->click();
144     // Réduit le temps d'attente lors de la recherche d'élément
145     $this->timeouts()->implicitWait(0);
146     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
147     $this->verifynoerrors();
148     // On vérifie qu'un message nous indique que la session est terminée
149     $element = $this->bycssselector("div.message span.text");
150     $this->assertequals("Votre session est maintenant terminée.", $element->text());
151     // On vérifie que le lien de déconnexion n'est pas présent
152     try {
153     $el = $this->bycssselector("a.actions-logout");
154     $this->fail("The element shouldn't exist.");
155     } catch (RuntimeException $e) {}
156     }
157    
158     /**
159     * Cette méthode permet de connecter l'utilisateur à l'application et de
160     * vérifier que la connecion s'est bien déroulée.
161     */
162     protected function login($login, $password) {
163     // On se connecte
164     $this->connect($login, $password);
165     // Allonge le temps d'attente lors de la recherche d'élément
166     $this->timeouts()->implicitWait(10000);
167     }
168    
169     /**
170     * Cette méthode permet de déconnecter l'utilisateur et de vérifier que la
171     * déconnexion s'est bien déroulée.
172     */
173     protected function logout() {
174     // On se déconnecte
175     $this->deconnect();
176     //Ferme la fenêtre
177     $this->closeWindow();
178     }
179    
180     /**
181     * Cette méthode permet de fair un assert sur la NON présence d'un message
182     * indiquant une erreur de base de données ou une notice PHP.
183     */
184     public function verifynoerrors() {
185     // On récupère le contenu du rendu de la page
186     $source = $this->source();
187     // On vérifie la présence du message d'erreur de base de données
188     try {
189     $this->assertNotContains("Erreur de base de données. Contactez votre administrateur.", $source);
190     } catch (PHPUnit_Framework_AssertionFailedError $e) {
191     $this->fail("Failed asserting that the source does not contain \"Erreur de base de données\".");
192     }
193     // On vérifie la présence d'une erreur fatale PHP
194     try {
195     $this->assertNotContains("Fatal error:", $source);
196     } catch (PHPUnit_Framework_AssertionFailedError $e) {
197     $this->fail("Failed asserting that the source does not contain \"PHP Fatal error:\".");
198     }
199     // On vérifie la présence d'une erreur de syntaxe PHP
200     try {
201     $this->assertNotContains("Parse error:", $source);
202     } catch (PHPUnit_Framework_AssertionFailedError $e) {
203     $this->fail("Failed asserting that the source does not contain \"PHP Parse error:\".");
204     }
205     // On vérifie la présence d'une notice PHP
206     try {
207     $this->assertNotContains("Notice:", $source);
208     } catch (PHPUnit_Framework_AssertionFailedError $e) {
209     $this->fail("Failed asserting that the source does not contain \"PHP Notice:\".");
210     }
211     }
212    
213     /**
214     * Cette méthode est un test (fonctionnalité) qui permet de tester le
215     * fonctionnement de la classe Base2TestCase
216     */
217     //public function test_login_logout() {
218     // // On se connecte avec l'utilisateur admin
219     // $this->login("admin", "admin");
220     // // On se déconnecte
221     // $this->logout();
222     //}
223    
224     }
225    
226 fmichon 1649 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26