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 :". "
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 :". "
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; } } ?>