form.test.php

来自「Cake Framwork , Excellent」· PHP 代码 · 共 1,949 行 · 第 1/5 页

PHP
1,949
字号
 */	var $name = 'ValidateProfile';/** * hasOne property * * @var array * @access public */	var $hasOne = array('ValidateItem' => array('className' => 'ValidateItem', 'foreignKey' => 'profile_id'));/** * belongsTo property * * @var array * @access public */	var $belongsTo = array('ValidateUser' => array('className' => 'ValidateUser', 'foreignKey' => 'user_id'));/** * schema method * * @access public * @return void */	function schema() {		$this->_schema = array(			'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'),			'user_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'),			'full_name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'),			'city' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'),			'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''),			'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null)		);		return $this->_schema;	}/** * beforeValidate method * * @access public * @return void */	function beforeValidate() {		$this->invalidate('full_name');		$this->invalidate('city');		return false;	}}/** * ValidateItem class * * @package              cake * @subpackage           cake.tests.cases.libs.view.helpers */class ValidateItem extends CakeTestModel {/** * primaryKey property * * @var string 'id' * @access public */	var $primaryKey = 'id';/** * useTable property * * @var bool false * @access public */	var $useTable = false;/** * name property * * @var string 'ValidateItem' * @access public */	var $name = 'ValidateItem';/** * belongsTo property * * @var array * @access public */	var $belongsTo = array('ValidateProfile' => array('className' => 'ValidateProfile', 'foreignKey' => 'profile_id'));/** * schema method * * @access public * @return void */	function schema() {		$this->_schema = array(			'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'),			'profile_id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'),			'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'),			'description' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'),			'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''),			'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null)		);		return $this->_schema;	}/** * beforeValidate method * * @access public * @return void */	function beforeValidate() {		$this->invalidate('description');		return false;	}}/** * TestMail class * * @package              cake * @subpackage           cake.tests.cases.libs.view.helpers */class TestMail extends CakeTestModel {/** * primaryKey property * * @var string 'id' * @access public */	var $primaryKey = 'id';/** * useTable property * * @var bool false * @access public */	var $useTable = false;/** * name property * * @var string 'TestMail' * @access public */	var $name = 'TestMail';}/** * Short description for class. * * @package		cake.tests * @subpackage	cake.tests.cases.libs.view.helpers */class FormHelperTest extends CakeTestCase {/** * fixtures property * * @var array * @access public */	var $fixtures = array(null);/** * setUp method * * @access public * @return void */	function setUp() {		parent::setUp();		Router::reload();		$this->Form =& new FormHelper();		$this->Form->Html =& new HtmlHelper();		$this->Controller =& new ContactTestController();		$this->View =& new View($this->Controller);		ClassRegistry::addObject('view', $view);		ClassRegistry::addObject('Contact', new Contact());		ClassRegistry::addObject('ContactNonStandardPk', new ContactNonStandardPk());		ClassRegistry::addObject('OpenidUrl', new OpenidUrl());		ClassRegistry::addObject('UserForm', new UserForm());		ClassRegistry::addObject('ValidateItem', new ValidateItem());		ClassRegistry::addObject('ValidateUser', new ValidateUser());		ClassRegistry::addObject('ValidateProfile', new ValidateProfile());	}/** * testFormCreateWithSecurity method * * @access public * @return void */	function testFormCreateWithSecurity() {		$this->Form->params['_Token'] = array('key' => 'testKey');		$result = $this->Form->create('Contact', array('url' => '/contacts/add'));		$expected = array(			'form' => array('method' => 'post', 'action' => '/contacts/add'),			'fieldset' => array('style' => 'display:none;'),			array('input' => array('type' => 'hidden', 'name' => '_method', 'value' => 'POST')),			array('input' => array('type' => 'hidden', 'name' => 'data[__Token][key]', 'value' => 'testKey', 'id')),			'/fieldset'		);		$this->assertTags($result, $expected);		$result = $this->Form->create('Contact', array('url' => '/contacts/add', 'id' => 'MyForm'));		$expected['form']['id'] = 'MyForm';		$this->assertTags($result, $expected);	}/** * testFormSecurityFields method * * @access public * @return void */	function testFormSecurityFields() {		$key = 'testKey';		$fields = array(			'Model' => array('password', 'username', 'valid'),			'_Model' => array('valid' => '0'),			'__Token' => array('key' => $key)		);		$this->Form->params['_Token']['key'] = $key;		$result = $this->Form->secure($fields);		$fields = $this->__sortFields($fields);		$expected = urlencode(Security::hash(serialize($fields) . Configure::read('Security.salt')));		$expected = array(			'fieldset' => array('style' => 'display:none;'),			'input' => array('type' => 'hidden', 'name' => 'data[__Token][fields]', 'value' => $expected, 'id' => 'preg:/TokenFields\d+/'),			'/fieldset'		);		$this->assertTags($result, $expected);	}/** * testFormSecurityMultipleFields method * * @access public * @return void */	function testFormSecurityMultipleFields() {		$key = 'testKey';		$fields = array(			'Model' => array(				0 => array('username', 'password', 'valid'),				1 => array('username', 'password', 'valid')),			'_Model' => array(				0 => array('hidden' => 'value', 'valid' => '0'),				1 => array('hidden' => 'value', 'valid' => '0')),			'__Token' => array('key' => $key));		$this->Form->params['_Token']['key'] = $key;		$result = $this->Form->secure($fields);		$fields = $this->__sortFields($fields);		$expected = urlencode(Security::hash(serialize($fields) . Configure::read('Security.salt')));		$expected = array(			'fieldset' => array('style' => 'display:none;'),			'input' => array('type' => 'hidden', 'name' => 'data[__Token][fields]', 'value' => $expected, 'id' => 'preg:/TokenFields\d+/'),			'/fieldset'		);		$this->assertTags($result, $expected);	}/** * testFormSecurityMultipleInputFields method * * @access public * @return void */	function testFormSecurityMultipleInputFields() {		$key = 'testKey';		$this->Form->params['_Token']['key'] = $key;		$this->Form->create();		$this->Form->hidden('Addresses.0.id', array('value' => '123456'));		$this->Form->input('Addresses.0.title');		$this->Form->input('Addresses.0.first_name');		$this->Form->input('Addresses.0.last_name');		$this->Form->input('Addresses.0.address');		$this->Form->input('Addresses.0.city');		$this->Form->input('Addresses.0.phone');		$this->Form->hidden('Addresses.1.id', array('value' => '654321'));		$this->Form->input('Addresses.1.title');		$this->Form->input('Addresses.1.first_name');		$this->Form->input('Addresses.1.last_name');		$this->Form->input('Addresses.1.address');		$this->Form->input('Addresses.1.city');		$this->Form->input('Addresses.1.phone');		$fields = array(			'Addresses' => array(				0 => array('title', 'first_name', 'last_name', 'address', 'city', 'phone'),				1 => array('title', 'first_name', 'last_name', 'address', 'city', 'phone')),			'_Addresses' => array(				0 => array('id' => '123456'),				1 => array('id' => '654321')),			'__Token' => array('key' => $key));		$fields = $this->__sortFields($fields);		$result = $this->Form->secure($this->Form->fields);		$expected = urlencode(Security::hash(serialize($fields) . Configure::read('Security.salt')));		$expected = array(			'fieldset' => array('style' => 'display:none;'),			'input' => array('type' => 'hidden', 'name' => 'data[__Token][fields]', 'value' => $expected, 'id' => 'preg:/TokenFields\d+/'),			'/fieldset'		);		$this->assertTags($result, $expected);	}/** * testFormSecurityMultipleInputDisabledFields method * * @access public * @return void */	function testFormSecurityMultipleInputDisabledFields() {		$key = 'testKey';		$this->Form->params['_Token']['key'] = $key;		$this->Form->params['_Token']['disabledFields'] = array('first_name', 'address');		$this->Form->create();		$this->Form->hidden('Addresses.0.id', array('value' => '123456'));		$this->Form->input('Addresses.0.title');		$this->Form->input('Addresses.0.first_name');		$this->Form->input('Addresses.0.last_name');		$this->Form->input('Addresses.0.address');		$this->Form->input('Addresses.0.city');		$this->Form->input('Addresses.0.phone');		$this->Form->hidden('Addresses.1.id', array('value' => '654321'));		$this->Form->input('Addresses.1.title');		$this->Form->input('Addresses.1.first_name');		$this->Form->input('Addresses.1.last_name');		$this->Form->input('Addresses.1.address');		$this->Form->input('Addresses.1.city');		$this->Form->input('Addresses.1.phone');		$fields = array(			'Addresses' => array(				0 => array('title', 'last_name', 'city', 'phone'),				1 => array('title', 'last_name', 'city', 'phone')),			'_Addresses' => array(				0 => array('id' => '123456'),				1 => array('id' => '654321')),			'__Token' => array('key' => $key));		$fields = $this->__sortFields($fields);		$result = $this->Form->secure($this->Form->fields);		$expected = urlencode(Security::hash(serialize($fields) . Configure::read('Security.salt')));		$expected = array(			'fieldset' => array('style' => 'display:none;'),			'input' => array('type' => 'hidden', 'name' => 'data[__Token][fields]', 'value' => $expected, 'id' => 'preg:/TokenFields\d+/'),			'/fieldset'		);		$this->assertTags($result, $expected);	}/** * testFormSecurityInputDisabledFields method * * @access public * @return void */	function testFormSecurityInputDisabledFields() {		$key = 'testKey';		$this->Form->params['_Token']['key'] = $key;		$this->Form->params['_Token']['disabledFields'] = array('first_name', 'address');		$this->Form->create();		$this->Form->hidden('Addresses.id', array('value' => '123456'));		$this->Form->input('Addresses.title');		$this->Form->input('Addresses.first_name');		$this->Form->input('Addresses.last_name');		$this->Form->input('Addresses.address');		$this->Form->input('Addresses.city');		$this->Form->input('Addresses.phone');		$fields = array(			'Addresses' => array('title', 'last_name', 'city', 'phone'),			'_Addresses' => array('id' => '123456'),			'__Token' => array('key' => $key));		$fields = $this->__sortFields($fields);		$result = $this->Form->secure($this->Form->fields);		$expected = urlencode(Security::hash(serialize($fields) . Configure::read('Security.salt')));		$expected = array(			'fieldset' => array('style' => 'display:none;'),			'input' => array('type' => 'hidden', 'name' => 'data[__Token][fields]', 'value' => $expected, 'id' => 'preg:/TokenFields\d+/'),			'/fieldset'		);		$this->assertTags($result, $expected);	}/** * testFormSecuredInput method * * @access public * @return void */	function testFormSecuredInput() {		$fields = array(			'UserForm' => array('0' => 'published', '1' => 'other', '2' => 'something'),			'_UserForm' => array('stuff' => '', 'something' => '0'),			'__Token' => array('key' => 'testKey'		));

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?