Rev 796 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phprequire_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;}}?>