aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/ucp/ucp_groups.php10
-rw-r--r--tests/functional/ucp_groups_test.php61
2 files changed, 71 insertions, 0 deletions
diff --git a/phpBB/includes/ucp/ucp_groups.php b/phpBB/includes/ucp/ucp_groups.php
index d62dbb1866..c1db19774a 100644
--- a/phpBB/includes/ucp/ucp_groups.php
+++ b/phpBB/includes/ucp/ucp_groups.php
@@ -597,6 +597,16 @@ class ucp_groups
if (!sizeof($error))
{
+ // Make sure maximum length of 6 of group color is not exceeded
+ if (strpos($submit_ary['colour'], '#') === 0)
+ {
+ $submit_ary['colour'] = substr($submit_ary['colour'], 1, 6);
+ }
+ else
+ {
+ $submit_ary['colour'] = substr($submit_ary['colour'], 0, 6);
+ }
+
// Only set the rank, colour, etc. if it's changed or if we're adding a new
// group. This prevents existing group members being updated if no changes
// were made.
diff --git a/tests/functional/ucp_groups_test.php b/tests/functional/ucp_groups_test.php
new file mode 100644
index 0000000000..010727cb55
--- /dev/null
+++ b/tests/functional/ucp_groups_test.php
@@ -0,0 +1,61 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2013 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+/**
+* @group functional
+*/
+class phpbb_functional_ucp_groups_test extends phpbb_functional_test_case
+{
+ public function test_groups_manage()
+ {
+ $values = array();
+ $this->login();
+ $this->add_lang(array('ucp', 'acp/groups'));
+
+ $crawler = $this->request('GET', 'ucp.php?i=groups&mode=manage&action=edit&g=5&sid=' . $this->sid);
+ $this->assert_response_success();
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $form['group_colour']->setValue('#AA0000');
+ $crawler = $this->client->submit($form);
+ $this->assertContains($this->lang('GROUP_UPDATED'), $crawler->text());
+
+ $crawler = $this->request('GET', 'ucp.php?i=groups&mode=manage&action=edit&g=5&sid=' . $this->sid);
+ $this->assert_response_success();
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $values = $form->getValues();
+ $this->assertContains('AA0000', $values['group_colour']);
+ $form['group_colour']->setValue('AA0000');
+ $crawler = $this->client->submit($form);
+ $this->assertContains($this->lang('GROUP_UPDATED'), $crawler->text());
+
+ $crawler = $this->request('GET', 'ucp.php?i=groups&mode=manage&action=edit&g=5&sid=' . $this->sid);
+ $this->assert_response_success();
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $values = $form->getValues();
+ $this->assertContains('AA0000', $values['group_colour']);
+ $form['group_colour']->setValue('AA0000v');
+ $crawler = $this->client->submit($form);
+ $this->assertContains($this->lang('GROUP_UPDATED'), $crawler->text());
+
+ $crawler = $this->request('GET', 'ucp.php?i=groups&mode=manage&action=edit&g=5&sid=' . $this->sid);
+ $this->assert_response_success();
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $values = $form->getValues();
+ $this->assertContains('AA0000', $values['group_colour']);
+ $form['group_colour']->setValue('vAA0000');
+ $crawler = $this->client->submit($form);
+ $this->assertContains($this->lang('GROUP_UPDATED'), $crawler->text());
+
+ $crawler = $this->request('GET', 'ucp.php?i=groups&mode=manage&action=edit&g=5&sid=' . $this->sid);
+ $this->assert_response_success();
+ $form = $crawler->selectButton($this->lang('SUBMIT'))->form();
+ $values = $form->getValues();
+ $this->assertContains('vAA000', $values['group_colour']);
+ }
+}