Rev 790 | Blame | Last modification | View Log | RSS feed
<?php
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
class ChorodepCartesTest extends ServiceEflorePhpUnit {
private $retour = '';
private $svg = '';
public function __construct() {
$this->projet = 'chorodep';
$this->service = 'cartes';
}
public function setUp() {
$this->retour = '';
$this->svg = '';
}
public function testCarteGenerique() {
$ressources = array();
$parametres = array('version.projet' => '2012.01');
$this->retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
$this->verifierPresenceMessage("A implémenter : carte proportionnelle ensemble des infos");
}
public function testCarteGeneriqueLegende() {
$ressources = array('legende');
$parametres = array('version.projet' => '2012.01');
$this->retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
$this->verifierPresenceMessage("A implémenter : légende carte proportionnelle ensemble des infos");
}
public function testErreurRessource1() {
$ressources = array('ressource1Erreur');
$parametres = array('version.projet' => '2012.01');
$this->retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
$this->verifierPresenceMessage("La ressource n°1 '{$ressources[0]} indiquée n'est pas valable.");
}
public function testCarteSvgIdentifiants() {
$ressourcesListe = array(
array('3237'),
array('nn:3237'),
array('bdtfx.nn:3237')
);
$parametres = array('version.projet' => '2012.01',
'retour' => 'image/svg+xml');
foreach ($ressourcesListe as $ressources) {
$this->retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
$this->chargerXml();
$this->etreSvg();
$this->verifierDepartementsPresence(array(63, 81));
}
}
public function testCarteSvgPlusieursLegendes() {
$ressources = array('bdtfx.nn:71574');
$parametres = array('version.projet' => '2012.01',
'retour' => 'image/svg+xml');
$this->retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
$this->chargerXml();
$this->etreSvg();
$this->verifierDepartementsPresence(array('02', '07', '57', '67', '88', '68', '90', '25', '21', '39', '01', '74', '73', '38', '46', '83'));
$this->verifierDepartementsPresenceAConfirmer(array('62', '71'));
$this->verifierDepartementsDisparu(array('70'));
$this->verifierDepartementsErreur(array('06'));
}
private function verifierPresenceMessage($messageAttendu) {
$this->assertEquals($messageAttendu, $this->retour);
}
private function chargerXml() {
$this->svg = new DOMDocument();
$chargement = $this->svg->loadXML($this->retour);
$this->assertTrue($chargement);
}
private function etreSvg() {
$racineElement = $this->svg->documentElement;
$this->assertEquals('svg', $racineElement->tagName);
}
private function verifierDepartementsPresence($departements) {
$this->verifierReglesCssCouleur('A0FF7D', $departements);
}
private function verifierDepartementsPresenceAConfirmer($departements) {
$this->verifierReglesCssCouleur('FFFF32', $departements);
}
private function verifierDepartementsDouteux($departements) {
$this->verifierReglesCssCouleur('FFCB30', $departements);
}
private function verifierDepartementsDisparu($departements) {
$this->verifierReglesCssCouleur('F88017', $departements);
}
private function verifierDepartementsErreur($departements) {
$this->verifierReglesCssCouleur('FF2850', $departements);
}
private function verifierDepartementsErreurAConfirmer($departements) {
$this->verifierReglesCssCouleur('9F0016', $departements);
}
private function verifierReglesCssCouleur($couleur, $departements) {
sort($departements);
$cssRegles = $this->getListeReglesCss($departements);
$cssAttendu = "$cssRegles{\nfill:#$couleur;\n}";
$cssPresent = $this->svg->getElementsByTagName('style')->item(0)->nodeValue;
$this->assertContains($cssAttendu, $cssPresent);
}
private function getListeReglesCss($departements) {
foreach ($departements as $id => $val) {
$departements[$id] = '.departement'.$val;
}
$cssRegle = implode(', ', $departements);
return $cssRegle;
}
}
?>