Ilya Sigunov
13 years ago
3 changed files with 628 additions and 0 deletions
@ -0,0 +1,262 @@ |
|||
<?php |
|||
/** |
|||
* @copyright NetMonsters <team@netmonsters.ru> |
|||
* @link http://netmonsters.ru |
|||
* @package Majestic |
|||
* @subpackage form |
|||
* @since 2010-04-25 |
|||
* @version SVN: $Id$ |
|||
* @filesource $URL$ |
|||
*/ |
|||
|
|||
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'; |
|||
require_once '/var/www/majesticV/lib/core/validator/RegexValidator.php'; |
|||
require_once '/var/www/majesticV/lib/core/validator/EmailValidator.php'; |
|||
require_once '/var/www/majesticV/lib/core/form/Form.php'; |
|||
require_once '/var/www/majesticV/lib/core/form/FormField.php'; |
|||
|
|||
|
|||
class FormFieldTest extends PHPUnit_Framework_TestCase |
|||
{ |
|||
public function setUp() |
|||
{ |
|||
$this->ff = new NotEmptyForm; |
|||
$this->obj_fields = $this->ff->getProp('fields'); |
|||
} |
|||
|
|||
public function testSetRequired() |
|||
{ |
|||
$this->assertNotNull($this->obj_fields['login']->setRequired(1)); |
|||
} |
|||
|
|||
public function testSetIgnored() |
|||
{ |
|||
$this->assertNotNull($this->obj_fields['login']->setIgnored(1)); |
|||
} |
|||
|
|||
public function testIsIgnored() |
|||
{ |
|||
$this->assertNotNull($this->obj_fields['login']->isIgnored()); |
|||
} |
|||
|
|||
public function testIsRequired() |
|||
{ |
|||
$this->assertNotNull($this->obj_fields['login']->isRequired()); |
|||
} |
|||
|
|||
public function testAddValidators() |
|||
{ |
|||
$fields = array( |
|||
'NotEmpty' => new NotEmptyValidator(), |
|||
'Email' => new EmailValidator() |
|||
); |
|||
|
|||
$this->assertInstanceOf('iValidator', $fields['NotEmpty']); |
|||
$this->assertInstanceOf('iValidator', $fields['Email']); |
|||
|
|||
$this->obj_fields['login']->addValidators($fields); |
|||
} |
|||
|
|||
public function testAddValidatorObject() |
|||
{ |
|||
$validator = new NotEmptyValidator; |
|||
|
|||
$this->assertInstanceOf('iValidator', new NotEmptyValidator); |
|||
|
|||
$this->obj_fields['login']->addValidator($validator); |
|||
} |
|||
|
|||
public function testAddValidatorString() |
|||
{ |
|||
$validator = 'NotEmpty'; |
|||
|
|||
$this->obj_fields['login']->addValidator($validator); |
|||
|
|||
$this->assertAttributeContainsOnly($validator . 'Validator', 'validators', $this->obj_fields['login']); |
|||
} |
|||
|
|||
public function testAddValidatorElse() |
|||
{ |
|||
$validator = true; |
|||
|
|||
$this->setExpectedException('Exception'); |
|||
|
|||
$this->obj_fields['login']->addValidator($validator); |
|||
} |
|||
|
|||
|
|||
|
|||
public function testAddFilters() |
|||
{ |
|||
$fields = array( |
|||
'fff2' => new loginFilter(), |
|||
'fff1' => 'login' |
|||
); |
|||
|
|||
$this->assertInstanceOf('iFilter', $fields['fff2']); |
|||
|
|||
$this->obj_fields['login']->addFilters($fields); |
|||
} |
|||
|
|||
public function testAddFilterObject() |
|||
{ |
|||
$filter = new loginFilter; |
|||
|
|||
$this->assertInstanceOf('iFilter', $filter); |
|||
|
|||
$this->obj_fields['login']->addFilter($filter); |
|||
} |
|||
|
|||
public function testAddFilterString() |
|||
{ |
|||
$this->obj_fields['login']->addFilter('login'); |
|||
|
|||
$this->assertAttributeContainsOnly('loginFilter', 'filters', $this->obj_fields['login']); |
|||
} |
|||
|
|||
public function testAddFilterElse() |
|||
{ |
|||
$this->setExpectedException('Exception'); |
|||
|
|||
$filter = new NotEmptyValidator; |
|||
$this->obj_fields['login']->addFilter($filter); |
|||
} |
|||
|
|||
|
|||
public function testGetValueArray() |
|||
{ |
|||
$form = new NotEmptyForm(); |
|||
|
|||
$test_array = array( |
|||
'login'=> 'login', |
|||
'password'=> 'password' |
|||
); |
|||
|
|||
$this->assertSame(1, $form->isValid($test_array)); |
|||
|
|||
$this->assertTrue($this->obj_fields['login']->isValid($test_array)); |
|||
|
|||
$this->assertAttributeInternalType('array', 'value', $this->obj_fields['login']); |
|||
$this->assertArrayHasKey('login', $this->obj_fields['login']->getSourceValue()); |
|||
} |
|||
|
|||
public function testGetValueString() |
|||
{ |
|||
$test_array = array( |
|||
'login'=> 'login', |
|||
'password'=> 'password' |
|||
); |
|||
|
|||
$this->assertTrue($this->obj_fields['login']->isValid($test_array['login'])); |
|||
$this->assertAttributeNotInternalType('array', 'value', $this->obj_fields['login']); |
|||
|
|||
$this->assertEquals('login',$this->obj_fields['login']->getSourceValue()); |
|||
} |
|||
|
|||
public function testGetMessage() |
|||
{ |
|||
$this->assertNotNull($this->obj_fields['login']->getMessage()); |
|||
} |
|||
|
|||
public function testIsValidMissing1() |
|||
{ |
|||
$test_array = array( |
|||
'login'=> '', |
|||
'password'=> '' |
|||
); |
|||
|
|||
$this->setExpectedException('Exception'); |
|||
|
|||
$this->assertSame(1, $this->obj_fields['login']->isValid($test_array)); |
|||
} |
|||
|
|||
public function testIsValidMissing11() |
|||
{ |
|||
$test_array = array( |
|||
'login'=> '', |
|||
'password'=> '' |
|||
); |
|||
|
|||
$this->obj_fields['login']->__construct('ssssssss'); |
|||
|
|||
$this->assertFalse($this->obj_fields['login']->isValid($test_array)); |
|||
} |
|||
|
|||
public function testIsValidMissing2() |
|||
{ |
|||
$this->obj_fields2 = $this->ff->getProp('fields'); |
|||
|
|||
$this->assertFalse($this->obj_fields2['login']->isValid('')); |
|||
} |
|||
|
|||
public function testIsValidMissing3() |
|||
{ |
|||
$this->obj_fields2 = $this->ff->getProp('fields'); |
|||
|
|||
$this->obj_fields2['login']->setRequired(false); |
|||
$this->obj_fields2['login']->isValid(''); |
|||
|
|||
$this->assertFalse($this->obj_fields2['login']->isRequired()); |
|||
} |
|||
|
|||
public function testFilterValue() |
|||
{ |
|||
$this->obj_fields['login']->isValid('login'); |
|||
$this->obj_fields['login']->addFilter('login'); |
|||
|
|||
$lf = new loginFilter; |
|||
|
|||
$this->assertSame($this->obj_fields['login']->getValue(), $lf->filter('login')); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
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; |
|||
} |
|||
} |
|||
|
|||
|
|||
interface iFilter |
|||
{ |
|||
public function isValid($value, $context = null); |
|||
public function getMessage(); |
|||
} |
|||
|
|||
Class loginFilter implements iFilter |
|||
{ |
|||
public function filter($value) |
|||
{ |
|||
return $value; |
|||
} |
|||
|
|||
public function isValid($value, $context = null) |
|||
{ |
|||
|
|||
} |
|||
|
|||
public function getMessage() |
|||
{ |
|||
|
|||
} |
|||
} |
@ -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; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,84 @@ |
|||
<?php |
|||
/** |
|||
* @copyright NetMonsters <team@netmonsters.ru> |
|||
* @link http://netmonsters.ru |
|||
* @package Majestic |
|||
* @subpackage Form |
|||
* @since 2010-04-25 |
|||
* @version SVN: $Id$ |
|||
* @filesource $URL$ |
|||
*/ |
|||
|
|||
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/view/iView.php'; |
|||
require_once '/var/www/majesticV/lib/core/view/PHPView.php'; |
|||
require_once '/var/www/majesticV/lib/core/view/helpers/ViewHelper.php'; |
|||
require_once '/var/www/majesticV/lib/core/form/FormViewHelper.php'; |
|||
require_once '/var/www/majesticV/lib/core/session/Session.php'; |
|||
|
|||
class FormViewHelperTest extends PHPUnit_Framework_TestCase |
|||
{ |
|||
public function setUp() |
|||
{ |
|||
Session::start(); |
|||
|
|||
$phpview = new PHPView(array('path' => 'document_root')); |
|||
|
|||
$this->form = new FormViewHelper($phpview); |
|||
|
|||
$_SESSION['path'] = array( |
|||
'values'=>array( |
|||
'path'=>'path' |
|||
), |
|||
'messages'=>array( |
|||
'path'=>'path' |
|||
) |
|||
); |
|||
} |
|||
|
|||
public function testForm2() |
|||
{ |
|||
$this->assertNull($this->assertAttributeEquals(null,'data',$this->form)); |
|||
|
|||
$this->setExpectedException('Exception'); |
|||
|
|||
$this->form->form(null); |
|||
} |
|||
|
|||
public function testForm1() |
|||
{ |
|||
$this->assertNull($this->assertAttributeEquals(null,'data',$this->form)); //аналог getProp
|
|||
|
|||
$this->form->form('path'); |
|||
} |
|||
|
|||
public function testValueIsset() |
|||
{ |
|||
$this->form->form('path'); |
|||
|
|||
$this->assertEquals('path', $this->form->value('path')); |
|||
} |
|||
|
|||
public function testValueNotIsset() |
|||
{ |
|||
$this->form->form('path'); |
|||
|
|||
$this->assertEquals('param2', $this->form->value('param1','param2')); |
|||
} |
|||
|
|||
public function testMessageIsset() |
|||
{ |
|||
$this->form->form('path'); |
|||
|
|||
$this->assertNotEmpty($this->form->message('path')); |
|||
} |
|||
|
|||
public function testMessageNotIsset() |
|||
{ |
|||
$this->form->form('path'); |
|||
|
|||
$this->assertEmpty($this->form->message('')); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue