public function testBase() { $field = Builder::collectionMultiple(['section' => ['title' => Builder::text()->label('Title'), 'text' => Builder::textarea()->label('Text')], 'picture' => ['caption' => Builder::text()->label('Caption'), 'image' => Builder::file()->label('Image')], 'quote' => ['cite' => Builder::textarea()->label('Cite'), 'author' => Builder::text()->label('Author')]]); $this->assertInstanceOf('FormManager\\Containers\\CollectionMultiple', $field); $this->assertInstanceOf('FormManager\\Containers\\Group', $field->template['section']); return $field; }
public function testBase() { $field = Builder::group(['name' => Builder::text()->label('Name'), 'email' => Builder::email()->label('email'), 'age' => Builder::number()->label('Age'), 'image' => Builder::file()->label('Image')]); $this->assertInstanceOf('FormManager\\Containers\\Group', $field); $this->assertInstanceOf('FormManager\\Fields\\Text', $field['name']); return $field; }
public function testTwo() { $input = Builder::text()->id('my-id')->label('Hello'); $input->label->id('my-label-id'); $this->assertEquals('my-id', $input->attr('id')); $this->assertEquals('<label id="my-label-id" for="my-id">Hello</label> <input type="text" id="my-id" aria-labelledby="my-label-id"> ', (string) $input); }
public function testOne() { $input = Builder::text()->datalist(['Hello' => 'World'])->id('my-id'); $input->datalist->id('my-datalist-id'); $this->assertEquals('my-id', $input->attr('id')); $this->assertEquals(' <input type="text" id="my-id" list="my-datalist-id"><datalist id="my-datalist-id"><option value="Hello">World</option></datalist> ', (string) $input); }
public function testLocales() { $input = Builder::text()->required(); $message = 'custom error message'; FormManager\Validators\Required::$error_message = $message; $this->assertFalse($input->isValid()); $this->assertEquals($message, $input->error()); }
public function testBasic() { $this->_testElement(Builder::text()); $this->_testField(Builder::text()); $this->_testRequired(Builder::text()); $this->_testMaxlength(Builder::text()); $this->_testPattern(Builder::text()); $this->_testValidator(Builder::text()); }
public function testFieldsets() { $form = Builder::form(['submit' => Builder::submit()])->fieldsets(['personal' => ['name' => Builder::text(), 'surname' => Builder::text(), 'age' => Builder::number()]]); $this->assertCount(4, $form); $this->assertCount(1, $form->fieldsets()); $this->assertCount(3, $form->fieldsets()['personal']); $form->clear()->add(['other' => Builder::text()]); $this->assertCount(1, $form); }
public function testValidation() { $form = Builder::form(['name' => Builder::text()->maxlength(200)->label('Name'), 'email' => Builder::email()->label('Email'), 'password' => Builder::password()->label('Password'), 'repeat_password' => Builder::password()->label('Repeat password')])->addValidator(function ($form) { $password1 = $form['password']->val(); $password2 = $form['repeat_password']->val(); if ($password1 != $password2) { throw new InvalidValueException('The passwords does not match'); } }); $form->val(['name' => 'Oscar', 'email' => '*****@*****.**', 'password' => '1234', 'repeat_password' => '12345']); $this->assertFalse($form->isValid()); $this->assertEquals('The passwords does not match', $form->error()); $this->assertCount(1, $form->getElementsWithErrors()); $form['repeat_password']->val('1234'); $this->assertTrue($form->isValid()); $this->assertNull($form->error()); $this->assertCount(0, $form->getElementsWithErrors()); }
<?php require __DIR__ . '/src/autoloader.php'; ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); ini_set('log_errors', 1); ini_set('error_log', __DIR__ . '/php.log'); use FormManager\Builder as F; use FormManager\InvalidValueException; $form = F::Form(['data' => F::group(['dia' => F::number()->label('Dia'), 'mes' => F::number()->label('Mes')]), 'colores' => F::choose(['red' => F::radio()->label('Red'), 'blue' => F::radio()->label('Blue'), 'green' => F::radio()->label('Green')]), 'personas' => F::collection(['nome' => F::text()->label('Nome'), 'apelido' => F::text()->label('Apelidos')]), 'bloques' => F::collectionMultiple(['texto' => ['titulo' => F::text()->label('Titulo'), 'texto' => F::textarea()->label('Texto')], 'cita' => ['texto' => F::textarea()->label('Texto'), 'autor' => F::text()->label('Autor')]]), 'enviar' => F::submit()->html('Enviar')]); $form->fieldsets(['personal' => ['nome' => F::text()->label('O teu nome')->addValidator(function ($input) { if ($input->val() !== 'Lolo') { throw new InvalidValueException('Nome non valido, debe ser Lolo'); } })->datalist(['Lolo' => 'Lolo', 'Manolo' => 'Manolo']), 'apelido' => F::text()->label('O teu apelido'), 'idade' => F::select()->options([1 => 'Menor de idade', 2 => 'Maiore de idade'])->label('Idade')->render(function ($input) { return '<p>' . $input . '</p>'; })]]); $form['nome']->errorLabel->class('my-error'); $form->loadFromGlobals(); if (!$form->isValid()) { echo 'Invalid values'; } echo $form;
public function __construct() { return $this->method('post')->add(['id' => B::hidden(), '_processor' => B::hidden()->value('edit'), 'name' => B::text()->required()->attr(['placeholder' => __('Name')]), 'user' => B::text()->required()->attr(['placeholder' => __('User')]), 'password' => B::password()->attr(['placeholder' => __('Password')]), 'password_repeat' => B::password()->attr(['placeholder' => __('Repeat Password')]), 'admin' => B::checkbox()->attr(['placeholder' => __('Admin'), 'value' => '1']), 'enabled' => B::checkbox()->attr(['placeholder' => __('Enabled'), 'value' => '1'])])->setRender('Bootstrap'); }
public function __construct() { return $this->method('post')->add(['_processor' => B::hidden()->val('login'), 'user' => B::text()->attr(['placeholder' => __('Tu usuario'), 'autofocus' => true, 'required' => true]), 'password' => B::password()->attr(['placeholder' => __('Tu contraseña'), 'required' => true]), 'remember' => B::checkbox()->attr(['placeholder' => __('Recuérdame'), 'value' => '1'])])->setRender('Bootstrap'); }