From e84f5db4f5f24a2cfb06dc89fc371685e95380fb Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Sun, 26 May 2013 17:24:03 +0200 Subject: [PATCH 1/3] [ticket/11538] Add unit tests for phpbb_validate_hex_colour(). PHPBB3-11538 --- tests/functions/validate_hex_colour_test.php | 121 +++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 tests/functions/validate_hex_colour_test.php 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 @@ +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." + ); + } +} From 401e9466bffb3c312228a99aa6a63a15342fe79b Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Sun, 26 May 2013 17:51:41 +0200 Subject: [PATCH 2/3] [ticket/11538] Compare to '' instead of using empty(), so '0' does not pass. PHPBB3-11538 --- phpBB/includes/functions_user.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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'); } From 3faae5c98cfe9d3b6245a892808aee19bc9c1fcc Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Sun, 26 May 2013 17:55:23 +0200 Subject: [PATCH 3/3] [ticket/11538] Cut functional tests down a bit as these are more expensive. PHPBB3-11538 --- tests/functional/common_groups_test.php | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) 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'), ); }