98 |
* Chemin dossier des screenshots |
* Chemin dossier des screenshots |
99 |
* @var string |
* @var string |
100 |
*/ |
*/ |
101 |
var $screenshotPath = '/var/www/openads/tests/screenshots/'; |
var $screenshotPath = '/var/www/openads/tests/results/'; |
102 |
|
|
103 |
/** |
/** |
104 |
* Option capture d'écran |
* Option capture d'écran |
116 |
//$this->setBrowser("chrome"); |
//$this->setBrowser("chrome"); |
117 |
// On positionne l'URL de base |
// On positionne l'URL de base |
118 |
$this->setBrowserUrl("http://localhost/"); |
$this->setBrowserUrl("http://localhost/"); |
119 |
|
// Instancie la timezone |
120 |
|
date_default_timezone_set('Europe/Paris'); |
121 |
} |
} |
122 |
|
|
123 |
/** |
/** |
155 |
protected function connect($login, $password) { |
protected function connect($login, $password) { |
156 |
// On ouvre l'url openexemple |
// On ouvre l'url openexemple |
157 |
$this->url($this->url); |
$this->url($this->url); |
158 |
|
$this->timeouts()->implicitWait(2000); |
159 |
// On saisit le login dans le champ login |
// On saisit le login dans le champ login |
160 |
$this->byName("login")->value($login); |
$this->byId("login")->clear(); |
161 |
|
$this->byId("login")->value($login); |
162 |
// On saisit le mot de passe dans le champ mot de passe |
// On saisit le mot de passe dans le champ mot de passe |
163 |
$this->byName("password")->value($password); |
$this->byId("password")->clear(); |
164 |
|
$this->byId("password")->value($password); |
165 |
// On clique sur le bouton de connexion |
// On clique sur le bouton de connexion |
166 |
$this->byname("login.action.connect")->click(); |
$this->byname("login.action.connect")->click(); |
167 |
} |
} |
192 |
} |
} |
193 |
|
|
194 |
/** |
/** |
195 |
* Cette méthode permet de déconnecter l'utilisateur et de vérifier que la |
* Cette méthode vérifier que la déconnexion s'est bien déroulée. |
|
* déconnexion s'est bien déroulée. |
|
196 |
*/ |
*/ |
197 |
protected function logout() { |
protected function verifyDeconnect() { |
|
// On se déconnecte |
|
|
$this->deconnect(); |
|
198 |
// Réduit le temps d'attente lors de la recherche d'élément |
// Réduit le temps d'attente lors de la recherche d'élément |
199 |
$this->timeouts()->implicitWait(240); |
$this->timeouts()->implicitWait(240); |
200 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
212 |
} |
} |
213 |
|
|
214 |
/** |
/** |
215 |
|
* Cette méthode permet de déconnecter l'utilisateur et de vérifier que la |
216 |
|
* déconnexion s'est bien déroulée. |
217 |
|
*/ |
218 |
|
protected function logout() { |
219 |
|
// On se déconnecte |
220 |
|
$this->deconnect(); |
221 |
|
// On vérifie que la déconnexion s'est bien déroulée |
222 |
|
$this->verifyDeconnect(); |
223 |
|
} |
224 |
|
|
225 |
|
/** |
226 |
* Cette méthode permet de fair un assert sur la NON présence d'un message |
* Cette méthode permet de fair un assert sur la NON présence d'un message |
227 |
* indiquant une erreur de base de données ou une notice PHP. |
* indiquant une erreur de base de données ou une notice PHP. |
228 |
* XXX Remplacer les tests par des expressions régulières pour améliorer |
* XXX Remplacer les tests par des expressions régulières pour améliorer |
277 |
} |
} |
278 |
|
|
279 |
/** |
/** |
280 |
* Cette méthode est un test (fonctionnalité) qui permet de tester le |
* Cette fonction permet de cliquer sur le menu si celui-ci n'est pas déjà |
281 |
* fonctionnement de la classe Base2TestCase |
* ouvert de base en fonction de l'utilisateur |
282 |
|
* @param string $menu Titre du menu |
283 |
|
* @param array $utilisateur Login et mdp de l'utilisateur |
284 |
*/ |
*/ |
285 |
//public function test_login_logout() { |
public function openMenu($menu, $utilisateur) { |
286 |
// // On se connecte avec l'utilisateur admin |
// Si le menu est 'Guichet Unique' |
287 |
// $this->login("admin", "admin"); |
if ($menu == 'Guichet Unique') { |
288 |
// // On se déconnecte |
// Vérifie les utilisateurs |
289 |
// $this->logout(); |
if ($utilisateur["login"] != "guichet") { |
290 |
//} |
// Clique sur le menu |
291 |
|
$this->byLinkText($menu)->click(); |
292 |
|
$this->verifyNoErrors(); |
293 |
|
} |
294 |
|
} |
295 |
|
// Si le menu est 'Instruction' |
296 |
|
if ($menu == 'Instruction') { |
297 |
|
// Vérifie les utilisateurs |
298 |
|
if ($utilisateur["login"] != "instr" |
299 |
|
&& $utilisateur["login"] != "visudadi" |
300 |
|
&& $utilisateur["login"] != "divi" |
301 |
|
&& $utilisateur["login"] != "chef" |
302 |
|
&& $utilisateur["login"] != "adminfonct") { |
303 |
|
// Clique sur le menu |
304 |
|
$this->byLinkText($menu)->click(); |
305 |
|
$this->verifyNoErrors(); |
306 |
|
} |
307 |
|
} |
308 |
|
// Si le menu est 'Suivi' |
309 |
|
if ($menu == 'Suivi') { |
310 |
|
// Vérifie les utilisateurs |
311 |
|
if ($utilisateur["login"] != "suivi") { |
312 |
|
// Clique sur le menu |
313 |
|
$this->byLinkText($menu)->click(); |
314 |
|
$this->verifyNoErrors(); |
315 |
|
} |
316 |
|
} |
317 |
|
// Si le menu est 'Demandes D'avis' |
318 |
|
if ($menu == "Demandes D'avis") { |
319 |
|
// Vérifie les utilisateurs |
320 |
|
if ($utilisateur["login"] != "consu" |
321 |
|
&& $utilisateur["login"] != "consu1" |
322 |
|
&& $utilisateur["login"] != "consu2") { |
323 |
|
// Clique sur le menu |
324 |
|
$this->byLinkText($menu)->click(); |
325 |
|
$this->verifyNoErrors(); |
326 |
|
} |
327 |
|
} |
328 |
|
} |
329 |
|
|
330 |
|
/** |
331 |
|
* COPIE DE LA FONCTION mois_date() DE LA CLASSE utils |
332 |
|
*/ |
333 |
|
/** |
334 |
|
* Calcule uen date avec l'ajout ou le soustrait de mois. |
335 |
|
* @param date $date Date de base |
336 |
|
* @param integer $delay Délais à ajouter (en mois) |
337 |
|
* @param string $operator Opérateur pour le calcul ("-" ou "+") |
338 |
|
* |
339 |
|
* @return date Date calculée |
340 |
|
*/ |
341 |
|
function mois_date($date, $delay, $operator = "+") { |
342 |
|
|
343 |
|
// Découpage de la date |
344 |
|
$temp = explode("-", $date); |
345 |
|
$day = (int) $temp[2]; |
346 |
|
$month = (int) $temp[1]; |
347 |
|
$year = (int) $temp[0]; |
348 |
|
|
349 |
|
// Si c'est une addition |
350 |
|
if ($operator == '+') { |
351 |
|
// Année à ajouter |
352 |
|
$year += floor($delay / 12); |
353 |
|
// Mois restant |
354 |
|
$nb_month = ($delay % 12); |
355 |
|
// S'il y a des mois restant |
356 |
|
if ($nb_month != 0) { |
357 |
|
// Ajout des mois restant |
358 |
|
$month += $nb_month; |
359 |
|
// Si ça dépasse le mois 12 (décembre) |
360 |
|
if ($month > 12) { |
361 |
|
// Soustrait 12 au mois |
362 |
|
$month -= 12; |
363 |
|
// Ajoute 1 à l'année |
364 |
|
$year += 1; |
365 |
|
} |
366 |
|
} |
367 |
|
} |
368 |
|
|
369 |
|
// Si c'est une soustraction |
370 |
|
if ($operator == "-") { |
371 |
|
// Année à soustraire |
372 |
|
$year -= floor($delay / 12); |
373 |
|
// Mois restant |
374 |
|
$nb_month = ($delay % 12); |
375 |
|
// S'il y a des mois restant |
376 |
|
if ($nb_month != 0) { |
377 |
|
// Soustrait le délais |
378 |
|
$month -= $nb_month; |
379 |
|
// Si ça dépasse le mois 1 (janvier) |
380 |
|
if ($month < 1) { |
381 |
|
// Soustrait 12 au mois |
382 |
|
$month += 12; |
383 |
|
// Ajoute 1 à l'année |
384 |
|
$year -= 1; |
385 |
|
} |
386 |
|
} |
387 |
|
} |
388 |
|
|
389 |
|
// Calcul du nombre de jours dans le mois sélectionné |
390 |
|
switch($month) { |
391 |
|
// Mois de février |
392 |
|
case "2": |
393 |
|
if ($year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0) { |
394 |
|
$day_max = 29; |
395 |
|
} else { |
396 |
|
$day_max = 28; |
397 |
|
} |
398 |
|
break; |
399 |
|
// Mois d'avril, juin, septembre et novembre |
400 |
|
case "4": |
401 |
|
case "6": |
402 |
|
case "9": |
403 |
|
case "11": |
404 |
|
$day_max = 30; |
405 |
|
break; |
406 |
|
// Mois de janvier, mars, mai, juillet, août, octobre et décembre |
407 |
|
default: |
408 |
|
$day_max = 31; |
409 |
|
} |
410 |
|
|
411 |
|
// Si le jour est supérieur au jour maximum du mois |
412 |
|
if ($day > $day_max) { |
413 |
|
// Le jour devient le jour maximum |
414 |
|
$day = $day_max; |
415 |
|
} |
416 |
|
|
417 |
|
// Compléte le mois et le jour par un 0 à gauche si c'est un chiffre |
418 |
|
$month = str_pad($month, 2, "0", STR_PAD_LEFT); |
419 |
|
$day = str_pad($day, 2, "0", STR_PAD_LEFT); |
420 |
|
|
421 |
|
// Retourne la date calculée |
422 |
|
return $year."-".$month."-".$day ; |
423 |
|
} |
424 |
|
|
425 |
} |
} |
426 |
|
|