aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2013-07-12 13:40:30 -0400
committerMarc Alexander <admin@m-a-styles.de>2013-07-12 13:40:30 -0400
commitda8e35ac77c5d78f327d08fa1a9d0ff21ed38e83 (patch)
treeebf8f4f42807850c879130d7c0543e91f80b91b5
parent16aeaed7bda590268c621216a42818ec64c1f37b (diff)
downloadforums-da8e35ac77c5d78f327d08fa1a9d0ff21ed38e83.tar
forums-da8e35ac77c5d78f327d08fa1a9d0ff21ed38e83.tar.gz
forums-da8e35ac77c5d78f327d08fa1a9d0ff21ed38e83.tar.bz2
forums-da8e35ac77c5d78f327d08fa1a9d0ff21ed38e83.tar.xz
forums-da8e35ac77c5d78f327d08fa1a9d0ff21ed38e83.zip
[ticket/11548] Fix incorrect usage of array_map on acp groups page
The array_map was only ran on small parts of the actual error array instead of the whole one. This resulted in the output of the language variables' names rather than their actual value. PHPBB3-11548
-rw-r--r--phpBB/includes/acp/acp_groups.php3
-rw-r--r--tests/functional/common_groups_test.php49
-rw-r--r--tests/functional/ucp_groups_test.php49
3 files changed, 51 insertions, 50 deletions
diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php
index 9b9ea38e07..c9d476b8ae 100644
--- a/phpBB/includes/acp/acp_groups.php
+++ b/phpBB/includes/acp/acp_groups.php
@@ -437,7 +437,7 @@ class acp_groups
if ($validation_error = validate_data($submit_ary, $validation_checks))
{
// Replace "error" string with its real, localised form
- $error = array_merge($error, array_map(array(&$user, 'lang'), $validation_error));
+ $error = array_merge($error, $validation_error);
}
if (!sizeof($error))
@@ -530,6 +530,7 @@ class acp_groups
if (sizeof($error))
{
+ $error = array_map(array(&$user, 'lang'), $error);
$group_rank = $submit_ary['rank'];
$group_desc_data = array(
diff --git a/tests/functional/common_groups_test.php b/tests/functional/common_groups_test.php
index 7c88ec900d..427a930cb9 100644
--- a/tests/functional/common_groups_test.php
+++ b/tests/functional/common_groups_test.php
@@ -14,6 +14,26 @@ abstract class phpbb_functional_common_groups_test extends phpbb_functional_test
{
abstract protected function get_url();
+ // Enable all avatars in the ACP
+ protected function enable_all_avatars()
+ {
+ $this->add_lang('acp/board');
+
+ $crawler = self::request('GET', 'adm/index.php?i=board&mode=avatar&sid=' . $this->sid);
+ // Check the default entries we should have
+ $this->assertContains($this->lang('ALLOW_REMOTE'), $crawler->text());
+ $this->assertContains($this->lang('ALLOW_AVATARS'), $crawler->text());
+ $this->assertContains($this->lang('ALLOW_LOCAL'), $crawler->text());
+
+ // Now start setting the needed settings
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $form['config[allow_avatar_local]']->select(1);
+ $form['config[allow_avatar_remote]']->select(1);
+ $form['config[allow_avatar_remote_upload]']->select(1);
+ $crawler = self::submit($form);
+ $this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->text());
+ }
+
public function groups_manage_test_data()
{
return array(
@@ -41,4 +61,33 @@ abstract class phpbb_functional_common_groups_test extends phpbb_functional_test
$crawler = self::submit($form);
$this->assertContains($this->lang($expected), $crawler->text());
}
+
+ public function group_avatar_min_max_data()
+ {
+ return array(
+ array('uploadurl', 'foo', 'TOO_SHORT'),
+ array('uploadurl', 'foobar', 'AVATAR_URL_INVALID'),
+ array('uploadurl', str_repeat('f', 256), 'TOO_LONG'),
+ array('remotelink', 'foo', 'TOO_SHORT'),
+ array('remotelink', 'foobar', 'AVATAR_URL_INVALID'),
+ array('remotelink', str_repeat('f', 256), 'TOO_LONG'),
+ );
+ }
+
+ /**
+ * @dataProvider group_avatar_min_max_data
+ */
+ public function test_group_avatar_min_max($form_name, $input, $expected)
+ {
+ $this->login();
+ $this->admin_login();
+ $this->add_lang(array('ucp', 'acp/groups'));
+ $this->enable_all_avatars();
+
+ $crawler = self::request('GET', $this->get_url() . '&g=5&sid=' . $this->sid);
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $form[$form_name]->setValue($input);
+ $crawler = self::submit($form);
+ $this->assertContains($this->lang($expected), $crawler->text());
+ }
}
diff --git a/tests/functional/ucp_groups_test.php b/tests/functional/ucp_groups_test.php
index 0d9ef22798..9c6b1edc5e 100644
--- a/tests/functional/ucp_groups_test.php
+++ b/tests/functional/ucp_groups_test.php
@@ -18,53 +18,4 @@ class phpbb_functional_ucp_groups_test extends phpbb_functional_common_groups_te
{
return 'ucp.php?i=groups&mode=manage&action=edit';
}
-
- // Enable all avatars in the ACP
- private function enable_all_avatars()
- {
- $this->add_lang('acp/board');
-
- $crawler = self::request('GET', 'adm/index.php?i=board&mode=avatar&sid=' . $this->sid);
- // Check the default entries we should have
- $this->assertContains($this->lang('ALLOW_REMOTE'), $crawler->text());
- $this->assertContains($this->lang('ALLOW_AVATARS'), $crawler->text());
- $this->assertContains($this->lang('ALLOW_LOCAL'), $crawler->text());
-
- // Now start setting the needed settings
- $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
- $form['config[allow_avatar_local]']->select(1);
- $form['config[allow_avatar_remote]']->select(1);
- $form['config[allow_avatar_remote_upload]']->select(1);
- $crawler = self::submit($form);
- $this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->text());
- }
-
- public function group_avatar_min_max_data()
- {
- return array(
- array('uploadurl', 'foo', 'TOO_SHORT'),
- array('uploadurl', 'foobar', 'AVATAR_URL_INVALID'),
- array('uploadurl', str_repeat('f', 256), 'TOO_LONG'),
- array('remotelink', 'foo', 'TOO_SHORT'),
- array('remotelink', 'foobar', 'AVATAR_URL_INVALID'),
- array('remotelink', str_repeat('f', 256), 'TOO_LONG'),
- );
- }
-
- /**
- * @dataProvider group_avatar_min_max_data
- */
- public function test_group_avatar_min_max($form_name, $input, $expected)
- {
- $this->login();
- $this->admin_login();
- $this->add_lang(array('ucp', 'acp/groups'));
- $this->enable_all_avatars();
-
- $crawler = self::request('GET', $this->get_url() . '&g=5&sid=' . $this->sid);
- $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
- $form[$form_name]->setValue($input);
- $crawler = self::submit($form);
- $this->assertContains($this->lang($expected), $crawler->text());
- }
}