mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-24 03:54:10 +01:00
Merge pull request #2359 from Nicofuma/ticket/12097
[ticket/12097] Validate_data() should work with class method * Nicofuma/ticket/12097: [ticket/12097] Bug fix and adding unit test [ticket/12097] Validate_data() should work with class method
This commit is contained in:
commit
0b6accf1ac
@ -1326,9 +1326,18 @@ function validate_data($data, $val_ary)
|
||||
{
|
||||
$function = array_shift($validate);
|
||||
array_unshift($validate, $data[$var]);
|
||||
$function_prefix = (function_exists('phpbb_validate_' . $function)) ? 'phpbb_validate_' : 'validate_';
|
||||
|
||||
if ($result = call_user_func_array($function_prefix . $function, $validate))
|
||||
if (is_array($function))
|
||||
{
|
||||
$result = call_user_func_array(array($function[0], 'validate_' . $function[1]), $validate);
|
||||
}
|
||||
else
|
||||
{
|
||||
$function_prefix = (function_exists('phpbb_validate_' . $function)) ? 'phpbb_validate_' : 'validate_';
|
||||
$result = call_user_func_array($function_prefix . $function, $validate);
|
||||
}
|
||||
|
||||
if ($result)
|
||||
{
|
||||
// Since errors are checked later for their language file existence, we need to make sure custom errors are not adjusted.
|
||||
$error[] = (empty($user->lang[$result . '_' . strtoupper($var)])) ? $result : $result . '_' . strtoupper($var);
|
||||
|
39
tests/functions/validate_with_method_test.php
Normal file
39
tests/functions/validate_with_method_test.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2014 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php';
|
||||
require_once dirname(__FILE__) . '/validate_data_helper.php';
|
||||
|
||||
class phpbb_functions_validate_with_method_test extends phpbb_test_case
|
||||
{
|
||||
protected $helper;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->helper = new phpbb_functions_validate_data_helper($this);
|
||||
}
|
||||
|
||||
public function test_validate_date()
|
||||
{
|
||||
$this->helper->assert_valid_data(array(
|
||||
'method_call' => array(
|
||||
array(),
|
||||
true,
|
||||
array(array(array($this, 'with_method'), false)),
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
public function validate_with_method($bool, $optional = false)
|
||||
{
|
||||
return ! $bool;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user