aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2013-05-27 11:51:26 +0200
committerJoas Schilling <nickvergessen@gmx.de>2013-05-27 11:51:26 +0200
commitf77111fe0e2f590898bea89ec771ba87aeceee6e (patch)
tree897e2c9291ec1d9a760b9bf479e410e3d53e0bc8
parent2b356e766f8d0f3e9dfc2d1fdd6bc857fdb63497 (diff)
parent3faae5c98cfe9d3b6245a892808aee19bc9c1fcc (diff)
downloadforums-f77111fe0e2f590898bea89ec771ba87aeceee6e.tar
forums-f77111fe0e2f590898bea89ec771ba87aeceee6e.tar.gz
forums-f77111fe0e2f590898bea89ec771ba87aeceee6e.tar.bz2
forums-f77111fe0e2f590898bea89ec771ba87aeceee6e.tar.xz
forums-f77111fe0e2f590898bea89ec771ba87aeceee6e.zip
Merge remote-tracking branch 'remotes/bantu/ticket/11538' into develop-olympus
* remotes/bantu/ticket/11538: [ticket/11538] Cut functional tests down a bit as these are more expensive. [ticket/11538] Compare to '' instead of using empty(), so '0' does not pass. [ticket/11538] Add unit tests for phpbb_validate_hex_colour().
-rw-r--r--phpBB/includes/functions_user.php2
-rw-r--r--tests/functional/common_groups_test.php18
-rw-r--r--tests/functions/validate_hex_colour_test.php121
3 files changed, 126 insertions, 15 deletions
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index 61972c3876..6b6a9b1f9f 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -1910,7 +1910,7 @@ function validate_jabber($jid)
*/
function phpbb_validate_hex_colour($colour, $optional = false)
{
- if (empty($colour))
+ if ($colour === '')
{
return (($optional) ? false : 'WRONG_DATA');
}
diff --git a/tests/functional/common_groups_test.php b/tests/functional/common_groups_test.php
index 02a538d46e..7ccd78421e 100644
--- a/tests/functional/common_groups_test.php
+++ b/tests/functional/common_groups_test.php
@@ -17,21 +17,11 @@ abstract class phpbb_functional_common_groups_test extends phpbb_functional_test
public function groups_manage_test_data()
{
return array(
- array('#AA0000', 'WRONG_DATA_COLOUR'),
- array('AA0000', 'GROUP_UPDATED'),
- array('AA0000v', 'WRONG_DATA_COLOUR'),
- array('AA00000', 'WRONG_DATA_COLOUR'),
- array('vAA0000', 'WRONG_DATA_COLOUR'),
- array('AAG000','WRONG_DATA_COLOUR'),
- array('a00', 'GROUP_UPDATED'),
- array('ag0', 'WRONG_DATA_COLOUR'),
- array('#aa0', 'WRONG_DATA_COLOUR'),
- array('AA0000 ', 'GROUP_UPDATED'),
- array('AA0000 abf', 'WRONG_DATA_COLOUR'),
- array('AA0000 AA0000', 'WRONG_DATA_COLOUR'),
array('', 'GROUP_UPDATED'),
- array('000', 'GROUP_UPDATED'),
- array('000000', 'GROUP_UPDATED'),
+ array('aa0000', 'GROUP_UPDATED'),
+
+ array('AAG000','WRONG_DATA_COLOUR'),
+ array('#AA0000', 'WRONG_DATA_COLOUR'),
);
}
diff --git a/tests/functions/validate_hex_colour_test.php b/tests/functions/validate_hex_colour_test.php
new file mode 100644
index 0000000000..812ebe5eeb
--- /dev/null
+++ b/tests/functions/validate_hex_colour_test.php
@@ -0,0 +1,121 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2013 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';
+
+class phpbb_functions_validate_hex_colour_test extends phpbb_test_case
+{
+ public function positive_match_data()
+ {
+ return array(
+ array('a00'),
+ array('AFF'),
+ array('AA0000'),
+ array('aa00FF'),
+ array('000'),
+ array('000000'),
+ );
+ }
+
+ public function negative_match_data()
+ {
+ return array(
+ // Invalid prefix
+ array('#aa0'),
+ array('#AA0000'),
+ array('vAA0000'),
+
+ // Invalid suffix
+ array('AA0000v'),
+
+ // Correct length, but out of hex range
+ array('ag0'),
+ array('AAG000'),
+
+ // Too long
+ array('AA00000'),
+ array('AA0000 '),
+ array('AA0000 abf'),
+ array('AA0000 AA0000'),
+
+ // empty()
+ array('0'),
+ );
+ }
+
+ public function optional_only_data()
+ {
+ return array(
+ // The empty colour, i.e. "no colour".
+ array(''),
+ );
+ }
+
+ public function strict_negative_match_data()
+ {
+ return array_merge(
+ $this->negative_match_data(),
+ $this->optional_only_data()
+ );
+ }
+
+ public function nonstrict_positive_match_data()
+ {
+ return array_merge(
+ $this->positive_match_data(),
+ $this->optional_only_data()
+ );
+ }
+
+ /**
+ * @dataProvider positive_match_data
+ */
+ public function test_strict_positive_match($input)
+ {
+ $this->assertFalse(
+ phpbb_validate_hex_colour($input, false),
+ "Failed asserting that $input passes as a valid hex colour."
+ );
+ }
+
+ /**
+ * @dataProvider strict_negative_match_data
+ */
+ public function test_strict_negative_match($input)
+ {
+ $this->assertSame(
+ 'WRONG_DATA',
+ phpbb_validate_hex_colour($input, false),
+ "Failed asserting that $input does not pass as a valid hex colour."
+ );
+ }
+
+ /**
+ * @dataProvider nonstrict_positive_match_data
+ */
+ public function test_nonstrict_positive_match($input)
+ {
+ $this->assertFalse(
+ phpbb_validate_hex_colour($input, true),
+ "Failed asserting that $input passes as a valid or optional hex colour."
+ );
+ }
+
+ /**
+ * @dataProvider negative_match_data
+ */
+ public function test_nonstrict_negative_match($input)
+ {
+ $this->assertSame(
+ 'WRONG_DATA',
+ phpbb_validate_hex_colour($input, true),
+ "Failed asserting that $input does not pass as a valid or optional hex colour."
+ );
+ }
+}