Skip to content
Snippets Groups Projects
Commit 920efa41 authored by pbarroca's avatar pbarroca
Browse files

OAI : prise en charge bad verb

parent 05cdd5f2
No related merge requests found
......@@ -39,7 +39,7 @@ class Class_WebService_OAI_Response_Null {
}
public function buildXmlOn($builder) {
return '';
return $builder->error(array('code' => 'badVerb'), 'Illegal OAI verb');
}
}
......
......@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class Class_WebService_OAI_ResponseFactory {
const RESPONSE_PREFIX = 'Class_WebService_OAI_Response_';
public static function verbAndBaseUrl($verb, $baseUrl) {
$instance = new self();
return $instance->responseForVerbAndBaseUrl($verb, $baseUrl);
......@@ -32,7 +34,9 @@ class Class_WebService_OAI_ResponseFactory {
public function getResponseClassByVerb($verb) {
return 'Class_WebService_OAI_Response_'.$verb;
if (!class_exists(self::RESPONSE_PREFIX . $verb))
$verb = 'Null';
return self::RESPONSE_PREFIX . $verb;
}
}
......
......@@ -20,7 +20,7 @@ rf<?php
*/
require_once 'AbstractControllerTestCase.php';
abstract class OaiControllerListSetsRequestTestCase extends AbstractControllerTestCase {
abstract class OaiControllerRequestTestCase extends AbstractControllerTestCase {
protected $_xpath;
public function setUp() {
......@@ -58,7 +58,7 @@ abstract class OaiControllerListSetsRequestTestCase extends AbstractControllerTe
class OaiControllerIndentifyRequestTest extends OaiControllerListSetsRequestTestCase {
class OaiControllerIndentifyRequestTest extends OaiControllerRequestTestCase {
protected $_xpath;
public function setUp() {
......@@ -68,7 +68,7 @@ class OaiControllerIndentifyRequestTest extends OaiControllerListSetsRequestTest
/** @test */
public function identifyShouldReturnIdentifyResponse() {
public function shouldReturnIdentifyResponse() {
$this->_xpath->assertXPath($this->_response->getBody(),
'//oai:request[@verb="Identify"]');
}
......@@ -77,7 +77,7 @@ class OaiControllerIndentifyRequestTest extends OaiControllerListSetsRequestTest
class OaiControllerListSetsRequestTest extends OaiControllerListSetsRequestTestCase {
class OaiControllerListSetsRequestTest extends OaiControllerRequestTestCase {
protected $_xpath;
public function setUp() {
......@@ -87,9 +87,29 @@ class OaiControllerListSetsRequestTest extends OaiControllerListSetsRequestTestC
/** @test */
public function identifyShouldReturnIdentifyResponse() {
public function shouldReturnListSetsResponse() {
$this->_xpath->assertXPath($this->_response->getBody(),
'//oai:request[@verb="ListSets"]');
}
}
class OaiControllerUnknownVerbRequestTest extends OaiControllerRequestTestCase {
protected $_xpath;
public function setUp() {
parent::setUp();
$this->dispatch('/opac/oai/request?verb=DoASpecialThing');
}
/** @test */
public function shouldReturnErrorResponse() {
$this->_xpath->assertXpathContentContains($this->_response->getBody(),
'//oai:error[@code="badVerb"]',
'Illegal OAI verb');
}
}
?>
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment