From 4b8af4996fbbdc28eac29da34b4ebf62b4895b4e Mon Sep 17 00:00:00 2001 From: pbarroca <pbarroca@afi-sa.fr> Date: Wed, 6 Jun 2018 15:43:17 +0200 Subject: [PATCH] hotline #75070 : add captcha in Nanook pre-registration --- VERSIONS_HOTLINE/75970 | 1 + .../ZendAfi/Form/PreRegistration/Nanook.php | 5 ++- .../AuthControllerPreRegistrationTest.php | 41 ++++++++++++++++++- 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 VERSIONS_HOTLINE/75970 diff --git a/VERSIONS_HOTLINE/75970 b/VERSIONS_HOTLINE/75970 new file mode 100644 index 00000000000..63683c744c7 --- /dev/null +++ b/VERSIONS_HOTLINE/75970 @@ -0,0 +1 @@ + - ticket #75970 : Abonné : Pré-inscription Nanook : ajout de contre-mesures antispam \ No newline at end of file diff --git a/library/ZendAfi/Form/PreRegistration/Nanook.php b/library/ZendAfi/Form/PreRegistration/Nanook.php index e6e3a7561f9..ea929951cbb 100644 --- a/library/ZendAfi/Form/PreRegistration/Nanook.php +++ b/library/ZendAfi/Form/PreRegistration/Nanook.php @@ -25,7 +25,6 @@ class ZendAfi_Form_PreRegistration_Nanook extends ZendAfi_Form { parent::init(); $this - ->addElement('select', 'site', ['label' => $this->_('Médiathèque'), @@ -56,6 +55,10 @@ class ZendAfi_Form_PreRegistration_Nanook extends ZendAfi_Form { 'allowEmpty' => false, 'validators' => [new ZendAfi_Validate_MailEquals('mail')]]) + ->addElement('text', + 'emailCheck', + ['data-spambots' => 'true']) + ->addElement('password', 'password', ['label' => $this->_('Mot de passe'), diff --git a/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php b/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php index 4142899c34c..9397349268d 100644 --- a/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php +++ b/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php @@ -319,6 +319,12 @@ class AuthControllerPreRegistrationNanookDispatchTest public function selectSiteShouldContainsOptionAcardia() { $this->assertXPathContentContains('//form//select[@name="site"]//option[@value="1"]', 'Arcadia'); } + + + /** @test */ + public function formShouldContainsCaptcha() { + $this->assertXPath('//input[@name="emailCheck"]'); + } } @@ -353,7 +359,8 @@ class AuthControllerPreRegistrationNanookPostDispatchTest 'birthDate' => '2001-05-05', 'town' => 'titi', 'zipcode' => '123456', - 'address' => '123']); + 'address' => '123', + 'emailCheck' => '']); } @@ -419,7 +426,8 @@ class AuthControllerPreRegistrationNanookPostDispatchErrorTest 'birthDate' => '2001-05-05', 'town' => 'titi', 'zipcode' => '123456', - 'address' => '123']); + 'address' => '123', + 'emailCheck' => '']); } @@ -431,6 +439,35 @@ class AuthControllerPreRegistrationNanookPostDispatchErrorTest +class AuthControllerPreRegistrationNanookPostDispatchSpamTest + extends AuthControllerPreRegistrationNanookTestCase { + + public function setUp() { + parent::setUp(); + + $this->postDispatch('/opac/auth/pre-registration', ['site' => '1', + 'lastName' => 'Jiro', + 'firstName' => 'Tom', + 'mail' => 'test@test.fr', + 'mail2' => 'test@test.fr', + 'password' => 'pwd123456', + 'password2' => 'pwd123456', + 'birthDate' => '2001-05-05', + 'town' => 'titi', + 'zipcode' => '123456', + 'address' => '123', + 'emailCheck' => 'russian-pal@poutine.ru']); + } + + + /** @test */ + public function shouldRedirectToHome() { + $this->assertRedirectTo('/'); + } +} + + + class AuthControllerPreRegistrationWithNoPreRegistrationTest extends AuthControllerPreRegistrationNanookTestCase { public function setUp() { -- GitLab