From 6ba61785f8da8df917866055e0119bc4fceeae0d Mon Sep 17 00:00:00 2001
From: Nicofuma <github@nicofuma.fr>
Date: Sat, 26 Apr 2014 15:46:50 +0200
Subject: [PATCH] [ticket/12097] Bug fix and adding unit test

PHPBB3-12097
---
 phpBB/includes/functions_user.php             |  2 +-
 tests/functions/validate_with_method_test.php | 39 +++++++++++++++++++
 2 files changed, 40 insertions(+), 1 deletion(-)
 create mode 100644 tests/functions/validate_with_method_test.php

diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index 354e79a672..97af7ada04 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -1329,7 +1329,7 @@ function validate_data($data, $val_ary)
 
 			if (is_array($function))
 			{
-				$result = call_user_func_array($function[0], 'validate_' . $function[1], $validate);
+				$result = call_user_func_array(array($function[0], 'validate_' . $function[1]), $validate);
 			}
 			else
 			{
diff --git a/tests/functions/validate_with_method_test.php b/tests/functions/validate_with_method_test.php
new file mode 100644
index 0000000000..86d7b9571c
--- /dev/null
+++ b/tests/functions/validate_with_method_test.php
@@ -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;
+	}
+}