diff --git a/application/modules/admin/controllers/IndexController.php b/application/modules/admin/controllers/IndexController.php index 2fdbe8da7df5cfc9a50274c2d7eb8a232002e9d0..c12ea844fabd464d15c179169bea9c056236ac42 100644 --- a/application/modules/admin/controllers/IndexController.php +++ b/application/modules/admin/controllers/IndexController.php @@ -70,6 +70,7 @@ class Admin_IndexController extends ZendAfi_Controller_Action { $this->view->url(['action' => 'adminvar'])); if ($this->_request->isPost() && $form->isValid($this->_request->getPost())) { + xdebug_break(); $new_valeur = $form->getAdminVarValue(); $var->setValeur($new_valeur); diff --git a/library/ZendAfi/Validate/Dilicom/IpAdresses.php b/library/ZendAfi/Validate/Dilicom/IpAdresses.php index a7abfe37f35605974313e883a77eafd4587300e3..ec2e36066efb55dbdc16a39f5d3f486f9b6982b4 100644 --- a/library/ZendAfi/Validate/Dilicom/IpAdresses.php +++ b/library/ZendAfi/Validate/Dilicom/IpAdresses.php @@ -45,7 +45,7 @@ class ZendAfi_Validate_Dilicom_IpAdresses extends Zend_Validate_Abstract{ $this->_setValue(implode(',', $result->returnMessage)); - if ('OK' !== $result->returnStatus) { + if (!in_array($result->returnStatus, ['OK', 'WARNING'])) { $this->_error(self::DECLARE_IP_FAIL); return false; } diff --git a/tests/application/modules/admin/controllers/AdminIndexControllerTest.php b/tests/application/modules/admin/controllers/AdminIndexControllerTest.php index e4e5b415c647190e45e3e9484a28227b5e0a0453..5938cfe307509afac31d27b748e3e04073350edc 100644 --- a/tests/application/modules/admin/controllers/AdminIndexControllerTest.php +++ b/tests/application/modules/admin/controllers/AdminIndexControllerTest.php @@ -534,8 +534,12 @@ abstract class AdminIndexControllerDilicomPnbIpAdressesTestCase extends Admin_Ab ->whenCalled('setAuth')->answers(null) ->whenCalled('open_url')->answers(json_encode(['returnStatus' => 'OK', 'returnMessage' => []])); + + Class_AdminVar::set('DILICOM_PNB_IP_ADRESSES', ''); + RessourcesNumeriquesFixtures::activateDilicom(); + Class_WebService_BibNumerique_Dilicom_Hub::setDefaultHttpClient($this->_http); } @@ -604,8 +608,8 @@ class AdminIndexControllerAdminVarDilicomDeclareIpPostTest extends AdminIndexCon $this->postDispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES', ['cle' => 'DILICOM_PNB_IP_ADRESSES', - 'valeurs' => ['xxx', - '123.156.15.3']]); + 'values' => ['xxx', + '123.156.15.3']]); $this->assertXPathContentContains('//div//ul[@class="errors"]/li', 'xxx is not a valid address'); } @@ -617,8 +621,8 @@ class AdminIndexControllerAdminVarDilicomDeclareIpPostTest extends AdminIndexCon $this->postDispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES', ['cle' => 'DILICOM_PNB_IP_ADRESSES', - 'valeurs' => ['xxx', - '123.156.15.3']]); + 'values' => ['xxx', + '123.156.15.3']]); $this->assertXPathContentContains('//div//ul[@class="errors"]/li', 'configuration du PNB Dilicom incomplète'); } @@ -631,11 +635,26 @@ class AdminIndexControllerAdminVarDilicomDeclareIpPostTest extends AdminIndexCon $this->postDispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES', ['cle' => 'DILICOM_PNB_IP_ADRESSES', - 'valeur' => ['xxx', + 'values' => ['xxx', '123.156.15.3']]); $this->assertXPathContentContains('//div//ul[@class="errors"]/li', 'échec de communication avec le serveur PNB Dilicom'); } + + + /** @test */ + public function hubWarningMessageShouldNotPreventSave() { + $this->_http->whenCalled('open_url') + ->answers(json_encode(['requestId' => 'xxx', + 'returnStatus' => 'WARNING', + 'returnMessage' => ['xxx is already declared']])); + + $this->postDispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES', + ['cle' => 'DILICOM_PNB_IP_ADRESSES', + 'values' => ['123.156.15.3']]); + + $this->assertEquals('123.156.15.3', Class_AdminVar::get('DILICOM_PNB_IP_ADRESSES')); + } }