Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 861 → Rev 862

/trunk/services/modules/0.1/coste/Textes.php
26,6 → 26,12
// simplifie et accélère la sanitization de l'input:
// SELECT MAX(num_nom) FROM coste_v2_00;
define('_COSTE_TEXTE_MAX_COSTE_NN', 7015 + 1000);
// SELECT MAX(page) FROM coste_v2_00;
define('_COSTE_TEXTE_MAX_COSTE_PAGE', 4126);
// SELECT MAX(tome) FROM coste_v2_00;
define('_COSTE_TEXTE_MAX_COSTE_TOME', 3);
// SELECT MAX(num_taxonomique) FROM coste_v2_00;
define('_COSTE_TEXTE_MAX_BDTFX_NT', 37809);
// SELECT MAX(num_nom) FROM bdtfx_v1_02;
define('_COSTE_TEXTE_MAX_BDTFX_NN', 103386 + 10000);
 
36,7 → 42,7
static $allow_params = array(
'txt.format', 'retour.format', 'retour.champs',
'recherche',
'masque.ns', 'masque.txt', 'masque.page', 'masque.tome', 'masque.famille',
'masque.ns', 'masque.txt', 'masque.page', 'masque.tome', 'masque.famille', 'masque.nt',
'masque.titre', // masque sur titre de la page wiki correspondante (page "clef" OR page "description")
'navigation.depart', 'navigation.limite');
// et valeurs par défaut
265,6 → 271,10
$stack[] = 'c.tome = ' . intval($params['masque.tome']);
}
 
if(array_key_exists('masque.nt', $params)) {
$stack[] = 'c.flore_bdtfx_nt = ' . intval($params['masque.nt']);
}
 
// ajout de la contrainte sur coste:nn ou bdtfx:nn si un composant d'URL supplémentaire
// comportant un #id existe, cf self::requestFilterIds()
$o_stack = array();
387,6 → 397,21
array('options' => array('default' => NULL,
'min_range' => 0,
'max_range' => _COSTE_TEXTE_MAX_COSTE_NN)));
$p['masque.page'] = filter_var(@$params['masque.page'],
FILTER_VALIDATE_INT,
array('options' => array('default' => NULL,
'min_range' => 0,
'max_range' => _COSTE_TEXTE_MAX_COSTE_PAGE)));
$p['masque.tome'] = filter_var(@$params['masque.tome'],
FILTER_VALIDATE_INT,
array('options' => array('default' => NULL,
'min_range' => 0,
'max_range' => _COSTE_TEXTE_MAX_COSTE_TOME)));
$p['masque.nt'] = filter_var(@$params['masque.nt'],
FILTER_VALIDATE_INT,
array('options' => array('default' => NULL,
'min_range' => 0,
'max_range' => _COSTE_TEXTE_MAX_BDTFX_NT)));
 
// on filtre les NULL, FALSE et '', mais pas les 0, d'où le callback()
// TODO: PHP-5.3
/trunk/services/tests/0.1/coste/CosteNomsTest.php
80,8 → 80,8
}
 
public function testRessourceChamps() {
$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array('retour.champs' => 'titre,tome,page,famille'));
$retour = $this->consulterJson(self::$S, self::$P, array(182), array('retour.champs' => 'titre,tome,page,famille'));
$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array('retour.champs' => 'titre,tome,page,famille,bdtfx:nt'));
$retour = $this->consulterJson(self::$S, self::$P, array(182), array('retour.champs' => 'titre,tome,page,famille,bdtfx:nt'));
$this->assertEquals(1, count($retour['resultats']), "error: ['resultats'][182]. Voir : $url");
$this->assertArrayHasKey("coste:nn", $retour['resultats'][182], "error: ['resultats'][182], clef coste:nn. Voir : $url");
$this->assertArrayHasKey("titre", $retour['resultats'][182], "error: ['resultats'][182], clef titre. Voir : $url");
88,9 → 88,11
$this->assertArrayHasKey("tome", $retour['resultats'][182], "error: ['resultats'][182], clef tome. Voir : $url");
$this->assertArrayHasKey("page", $retour['resultats'][182], "error: ['resultats'][182], clef page. Voir : $url");
$this->assertArrayHasKey("famille", $retour['resultats'][182], "error: ['resultats'][182], clef famille. Voir : $url");
$this->assertEquals("1", $retour['resultats'][182]['tome'], "error: ['resultats'][182]['tome']. Voir : $url");
$this->assertEquals("62", $retour['resultats'][182]['page'], "error: ['resultats'][182]['page']. Voir : $url");
$this->assertArrayHasKey("bdtfx:nt", $retour['resultats'][182], "error: ['resultats'][182], clef bdtfx:nt. Voir : $url");
$this->assertEquals(1, $retour['resultats'][182]['tome'], "error: ['resultats'][182]['tome']. Voir : $url");
$this->assertEquals(62, $retour['resultats'][182]['page'], "error: ['resultats'][182]['page']. Voir : $url");
$this->assertEquals("Papaveraceae", $retour['resultats'][182]['famille'], "error: ['resultats'][182]['famille']. Voir : $url");
$this->assertEquals(4057, $retour['resultats'][182]['bdtfx:nt'], "error: ['resultats'][182]['bdtfx:nt']. Voir : $url");
}
 
 
142,6 → 144,15
$this->assertEquals("Esp0131RoemeriaViolacea", $retour['resultats'][182]['tag'], "error: ['resultats'][182]['tag']. Voir : $url");
}
 
public function testRechercheNT() {
$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.nt" => 8523));
$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.nt" => 8523));
$this->commonTestHeader($retour, $url);
$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");
$this->commonTest($retour, $url, 1027);
$this->assertEquals("Acer monspessulanum", $retour['resultats'][1027]['titre'], "error: ['resultats'][182]['titre']. Voir : $url");
}
 
public function testRechercheFamille() {
// unknown famille
$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.famille" => "ABC"));