]> git.agnieray.net Git - galette.git/blobdiff - tests/Galette/Entity/tests/units/FieldsConfig.php
Missing required fields on self subscription page; closes #1441
[galette.git] / tests / Galette / Entity / tests / units / FieldsConfig.php
index 0c8fbb910bb9c88db45475e8350c8a28160c57b5..2885ab5d7a857abcf477d66c527bae6b4d7f4950 100644 (file)
@@ -493,13 +493,55 @@ class FieldsConfig extends atoum
         $this->integer($elements['fieldsets'][1]->id)->isIdenticalTo(3);
         $this->array($elements['fieldsets'][1]->elements)->hasSize(11);
 
+        $mail = $elements['fieldsets'][1]->elements['email_adh'];
+        $this->boolean($mail->required)->isFalse(); //email is not required per default
+
         $this->object($elements['fieldsets'][2])->isInstanceOf('\stdClass');
         $this->integer($elements['fieldsets'][2]->id)->isIdenticalTo(2);
         $this->array($elements['fieldsets'][2]->elements)
             ->hasSize(4)
             ->notHasKey('info_adh');
 
+        $login = $elements['fieldsets'][2]->elements['login_adh'];
+        $this->boolean($login->required)->isTrue();
+        $pass  = $elements['fieldsets'][2]->elements['mdp_adh'];
+        $this->boolean($pass->required)->isTrue();
+
         $this->array($elements['hiddens'])
             ->hasSize(2);
+
+        //form elements for self subscription
+        $no_login = new \mock\Galette\Core\Login(
+            $this->zdb,
+            new \Galette\Core\I18n(),
+            $session
+        );
+        $elements = $fields_config->getFormElements($no_login, false, true);
+        $this->array($elements)
+            ->hasSize(2)
+            ->hasKeys(['fieldsets', 'hiddens']);
+
+        $this->array($elements['fieldsets'])
+            ->hasSize(3);
+
+        $this->object($elements['fieldsets'][0])->isInstanceOf('\stdClass');
+        $this->integer($elements['fieldsets'][0]->id)->isIdenticalTo(1);
+        $this->array($elements['fieldsets'][0]->elements)->hasSize(10);
+
+        $this->object($elements['fieldsets'][1])->isInstanceOf('\stdClass');
+        $this->integer($elements['fieldsets'][1]->id)->isIdenticalTo(3);
+        $this->array($elements['fieldsets'][1]->elements)->hasSize(11);
+
+        $mail = $elements['fieldsets'][1]->elements['email_adh'];
+        $this->boolean($mail->required)->isTrue(); //email is required for self subscription
+
+        $this->object($elements['fieldsets'][2])->isInstanceOf('\stdClass');
+        $this->integer($elements['fieldsets'][2]->id)->isIdenticalTo(2);
+        $this->array($elements['fieldsets'][2]->elements)
+            ->hasSize(4)
+            ->notHasKey('info_adh');
+
+        $this->array($elements['hiddens'])
+             ->hasSize(2);
     }
 }