This commit is contained in:
Ilya Sigunov
2011-10-20 12:40:13 +04:00
parent 2cb0e0441f
commit 9c4d1e2f95
3 changed files with 628 additions and 0 deletions

282
tests/form/FormTest.php Normal file
View File

@ -0,0 +1,282 @@
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
require_once '/var/www/majesticV/lib/core/form/Form.php';
require_once '/var/www/majesticV/lib/core/form/FormField.php';
require_once '/var/www/majesticV/lib/core/session/Session.php';
class FormTest extends PHPUnit_Framework_TestCase
{
public function testIsValidWithNotArray()
{
$form = new NotEmptyForm();
$this->setExpectedException('Exception');
$form->isValid('');
}
public function testIsValidCorrectFields()
{
$form = new NotEmptyForm();
$test_array = array(
'login'=> 'login',
'password'=> 'password'
);
$this->assertSame(1, $form->isValid($test_array));
}
public function testIsValidMissingField()
{
$form = new NotEmptyForm();
$test_array = array(
'password'=> 'password'
);
$this->assertSame(0, $form->isValid($test_array));
}
public function testGetValues()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> 'login',
'password'=>'password'
);
$obj_fields = $form->getProp('fields');
$this->assertTrue(!$obj_fields['login']->isIgnored());
$this->assertTrue(!$obj_fields['password']->isIgnored());
$this->assertSame(1, $form->isValid($fields));
$this->assertEquals($fields, $form->getValues());
}
public function testGetValueCorrect()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> 'login',
'password'=>'password'
);
$this->assertSame(1, $form->isValid($fields));
$this->assertEquals($fields['login'], $form->getValue('login'));
$this->assertEquals($fields['password'], $form->getValue('password'));
}
public function testGetValueMissing()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> ''
);
$this->assertSame(0, $form->isValid($fields));
$this->assertEquals('', $form->getValue('login'));
$this->assertEquals('', $form->getValue('password'));
}
public function testGetValueMissingFieldLogin()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> ''
);
$this->assertSame(0, $form->isValid($fields));
$this->assertFalse($form->getValue('loginw'));
$this->assertEquals('', $form->getValue('passwordw'));
}
public function testGetValueMissingFieldPassword()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> ''
);
$this->assertSame(0, $form->isValid($fields));
$this->assertFalse($form->getValue('loginw'));
$this->assertEquals('', $form->getValue('password'));
}
public function testGetMessageTypeCorrect()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> 'login',
'password'=>'password'
);
$this->assertEquals(1, $form->isValid($fields));
$this->assertEquals('success', Form::SUCCESS);
$this->assertEquals($form->getMessageType(), Form::SUCCESS);
}
public function testGetMessageTypeMissing()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> '',
'password'=>''
);
$this->assertSame(0, $form->isValid($fields));
$this->assertSame(0, $form->getProp('valid'));
$this->assertEquals('error', Form::ERROR);
$this->assertEquals($form->getMessageType(), Form::ERROR);
}
public function testGetMessageCorrect()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> 'login',
'password'=>'password'
);
$this->assertSame(1, $form->isValid($fields));
$messages = $form->getProp('messages');
$this->assertEquals($messages[Form::SUCCESS], $form->getMessage());
}
public function testGetMessageMissing()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> ''
);
$this->assertSame(0, $form->isValid($fields));
$messages = $form->getProp('messages');//attributeEq ?
$this->assertEquals($messages[Form::ERROR], $form->getMessage());
}
public function testSetSuccessMessage()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> 'login',
'password'=>'password'
);
$this->assertSame(1, $form->isValid($fields));
$message = 'Form data valid';
$form->setSuccessMessage($message);
$this->assertNotNull($form->getMessage());
}
public function testSetErrorMessage()
{
$form = new NotEmptyForm();
$fields = array(
'login'=> ''
);
$this->assertSame(0, $form->isValid($fields));
$message = 'Form data invalid';
$form->setErrorMessage($message);
$this->assertNotNull($form->getMessage());
}
}
require_once '/var/www/majesticV/lib/core/validator/iValidator.php';
require_once '/var/www/majesticV/lib/core/validator/Validator.php';
require_once '/var/www/majesticV/lib/core/validator/NotEmptyValidator.php';
class NotEmptyForm extends Form
{
public function init()
{
///*
$validator = new NotEmptyValidator();
$validator->setMessage('Enter login name.');
$this->addField('login')->addValidator($validator);
// User password
$validator = new NotEmptyValidator();
$validator->setMessage('Enter your password.');
$this->addField('password')->addValidator($validator);
}
public function getProp($name)
{
return $this->$name;
}
}
require_once '/var/www/majesticV/lib/core/validator/RegexValidator.php';
require_once '/var/www/majesticV/lib/core/validator/EmailValidator.php';
class DiffForm extends Form
{
public function init()
{
///*
$validator = new EmailValidator();
$validator->setMessage('Enter login name.');
$this->addField('login')->addValidator($validator);
// User password
$validator = new NotEmptyValidator();
$validator->setMessage('Enter your password.');
$this->addField('password')->addValidator($validator);
}
public function getProp($name)
{
return $this->$name;
}
}