New file |
0,0 → 1,267 |
<?php |
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php'; |
|
class GraphiquesBaseflorTest extends ServiceEflorePhpUnit { |
|
private $svg; |
|
public function __construct() { |
$this->projet = 'baseflor'; |
$this->service = 'graphiques'; |
} |
|
//++ ------------------------------------Test des ressources -----------------------------++ |
|
public function testRessourceTypeGraphiqueInexistante() { |
$ressources = array('','bdtfx.nn:73256'); |
$parametres = array(); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Erreur dans l'url de votre requête :". |
"</br> precisez le graphique -> \"sol\" ou \"climat\"."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer l'absence de la ressource 'sol' ou 'climat'."); |
} |
|
public function testRessourceReferentielNnInexistante() { |
$ressources = array('sol',''); |
$parametres = array(); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = |
"Erreur dans l'url de votre requête : précisez le référentiel et le numéro nomenclatural sous la forme {bdnt}.nn:{nn}."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer l'absence de la ressource {bdnt}.nn:{nn}."); |
} |
|
public function testRessourceReferentielTypeGraphiqueErronee() { |
$ressources = array('humdite','bdtfx.nn:73256'); |
$parametres = array(); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Erreur dans l'url de votre requête :". |
"</br> precisez le graphique -> \"sol\" ou \"climat\"."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la ressource type de graphique n'est ni sol' ni 'climat'."); |
} |
|
public function testRessourceReferentielNnEronne() { |
$ressources = array('sol','gnnyh'); |
$parametres = array(); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = |
"Erreur dans l'url de votre requête : précisez le référentiel et le numéro nomenclatural sous la forme {bdnt}.nn:{nn}."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la ressource {bdnt}.nn:{nn} est erronée."); |
} |
|
public function testRessourceReferentielInconnu() { |
$ressources = array('climat','btdjv.nn:73256'); |
$parametres = array(); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Le référentiel btdjv n'existe pas."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si le référentiel est inconnu."); |
} |
|
public function testRessourceNNInconnu() { |
$ressources = array('sol','bdtfx.nn:3'); |
$parametres = array(); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Les données recherchées sont introuvables."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si une requête ne renvoie pas de résultats."); |
} |
|
//++ ------------------------------------Test des paramètres -----------------------------++ |
|
public function testParametreInconnu() { |
$ressources = array('sol','bdtfx.nn:73256'); |
$parametres = array('paramatre' => 'image/jpeg'); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Erreur : Le paramètre paramatre est inconnu."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si un paramètre est inconnu."); |
} |
|
public function testParametreRetourInconnu() { |
$ressources = array('sol','bdtfx.nn:73256'); |
$parametres = array('retour' => 'image/jpeg'); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = |
"Erreur : valeur inconnue. Choisissez le format de retour pour le paramètre retour : image/svg%2Bxml ou image/png."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la valeur du paramètre retour est inconnue."); |
} |
|
public function testParametreRetourAbsent() { |
$ressources = array('sol','bdtfx.nn:73256'); |
$parametres = array('retour' => ''); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = |
"Erreur : valeur inconnue. Choisissez le format de retour pour le paramètre retour : image/svg%2Bxml ou image/png."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la valeur du paramètre retour est absente."); |
} |
|
public function testParametreRetourFormatAbsent() { |
$ressources = array('sol','bdtfx.nn:73256'); |
$parametres = array('retour.format' => ''); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Erreur : valeur inconnue. Entrez la largeur voulue (en pixels) pour le paramètre retour.format."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la valeur du paramètre retour.format est absente."); |
} |
|
public function testParametreRetourFormatInconnu() { |
$ressources = array('sol','bdtfx.nn:73256'); |
$parametres = array('retour.format' => 'dhgkg22'); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Erreur : valeur inconnue. Entrez la largeur voulue (en pixels) pour le paramètre retour.format."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la valeur du paramètre retour.format est inconnue."); |
} |
|
public function testParametreVersionProjetInconnu() { |
$ressources = array('sol','bdtfx.nn:73256'); |
$parametres = array('version.projet' => 'dhgkg22'); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Erreur : La version est inconnue."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la valeur du paramètre version.projet est inconnue."); |
} |
|
public function testParametreVersionProjetAbsent() { |
$ressources = array('sol','bdtfx.nn:73256'); |
$parametres = array('version.projet' => ''); |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$messageAttendu = "Erreur : La version est inconnue."; |
$this->assertEquals($messageAttendu, $retour, |
"Il faut indiquer si la valeur du paramètre version.projet est absente."); |
} |
|
//++------------------------------------------test des fichiers -------------------------++ |
|
public function testRetourEstUnSVG(){ |
$ressourcesListe = array( |
array('sol','bdtfx.nn:73256'), |
array('climat','bdtfx.nn:73256'), |
array('climat','bdtfx.nn:101128'), |
array('sol','bdtfx.nn:101128') |
); |
$parametresListe = array( |
array('retour' => 'image/svg+xml'), |
array() |
); |
foreach ($ressourcesListe as $ressources) { |
foreach ($parametresListe as $parametres) { |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres); |
$this->chargerXml($retour); |
$this->etreSvg($retour); |
} |
} |
} |
|
public function testSVGPresenceValeursEcolo_baseflor(){ |
$ressourcesListe = array( |
array('sol','bdtfx.nn:73256'), |
array('climat','bdtfx.nn:73256'), |
); |
$parametresListe = array(); |
foreach ($ressourcesListe as $ressources) { |
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametresListe); |
$this->chargerXml($retour); |
$this->etreSvg($retour); |
$test = false; |
$curseurs = $this->svg->getElementsByTagName('circle'); |
foreach ($curseurs as $curseur){ |
$classe = $curseur->getAttribute('class'); |
if ($classe == 'curseur') { |
$test = true; |
break; |
} |
} |
} |
$this->assertTrue($test,"Le graphique renvoyé par $retour est vide de données écologiques."); |
} |
|
public function testSVGPresenceValeursEcolo_rangSup(){ |
$ressourcesListe = array( |
array('climat','bdtfx.nn:101128'), |
array('sol','bdtfx.nn:101128') |
); |
$parametresListe = array(); |
foreach ($ressourcesListe as $ressources) { |
|
$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametresListe); |
$this->chargerXml($retour); |
$this->etreSvg($retour); |
$test = false; |
|
|
$cases = $this->svg->getElementsByTagName('rect'); |
// ne fonctionne pas : |
/*$dompath = new DOMXPath($this->svg); |
$dompath->registerNamespace("svg", "http://www.w3.org/2000/svg"); |
$cases = $dompath->query('svg:rect[@fill and not(@id="fond" or @id="cache")]');*/ |
|
foreach ($cases as $case){ |
$classe = $case->getAttribute('class'); |
if ($classe != 'fond' and $classe != 'cache' and $case->getAttribute('fill') != 'none') { |
$test = true; |
break; |
} |
} |
} |
$this->assertTrue($test,"Le graphique renvoyé par $retour est vide de données écologiques."); |
} |
|
public function testExistenceDesSvgDeBase(){ |
$this->assertFileExists(config::get('chemin')."sol.svg","le svg de base sol.svg n'existe pas."); |
$this->assertFileExists(config::get('chemin')."climat.svg","le svg de base climat.svg n'existe pas."); |
$this->assertFileExists(config::get('chemin')."sol_min_max.svg","le svg de base sol_min_max.svg n'existe pas."); |
$this->assertFileExists(config::get('chemin')."climat_min_max.svg","le svg de base climat_min_max.svg n'existe pas."); |
|
} |
|
|
|
public function testCreationSvgEtPngDansCache(){ |
$convertisseur = config::get('convertisseur'); |
if ($convertisseur == 'rsvg') { |
$ressourcesListe = array( |
array('sol','bdtfx.nn:73256'), |
array('climat','bdtfx.nn:73256'), |
array('climat','bdtfx.nn:101128'), |
array('sol','bdtfx.nn:101128')); |
$parametresListe = array('retour' => 'image/png'); |
foreach ($ressourcesListe as $ressources) { |
ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametresListe); |
$fichier = config::get('cache_stockageChemin') . $this->getFichier($ressources); |
$this->assertFileExists($fichier.".svg"," {$fichier}.svg n'existe pas."); |
$this->assertFileExists($fichier.".png"," {$fichier}.png n'existe pas."); |
} |
} |
} |
|
//++------------------------------------------fonctions utiles-------------------------++ |
|
private function chargerXml($retour) { |
$this->svg = new DOMDocument(); |
$chargement = $this->svg->loadXML($retour); |
|
$this->assertTrue($chargement,"le fichier ne s'est pas chargé."); |
} |
|
|
private function etreSvg($retour) { |
$racineElement = $this->svg->documentElement; |
$this->assertEquals('svg', $racineElement->tagName,"$retour ne renvoie pas un svg." ); |
} |
|
private function getFichier($ressources) { |
$idfichier = str_replace(".","-",$ressources[1]); |
$idfichier = str_replace(':','-',$idfichier); |
$idfichier .= "-".$ressources[0]; |
return $idfichier; |
} |
} |
|
?> |