diff options
author | Andreas Fischer <bantu@phpbb.com> | 2013-05-26 17:24:03 +0200 |
---|---|---|
committer | Andreas Fischer <bantu@phpbb.com> | 2013-05-26 19:24:09 +0200 |
commit | e84f5db4f5f24a2cfb06dc89fc371685e95380fb (patch) | |
tree | 402ac307cf6d83d58ca4fc96da4872e359e7686c /tests/functions | |
parent | 2b356e766f8d0f3e9dfc2d1fdd6bc857fdb63497 (diff) | |
download | forums-e84f5db4f5f24a2cfb06dc89fc371685e95380fb.tar forums-e84f5db4f5f24a2cfb06dc89fc371685e95380fb.tar.gz forums-e84f5db4f5f24a2cfb06dc89fc371685e95380fb.tar.bz2 forums-e84f5db4f5f24a2cfb06dc89fc371685e95380fb.tar.xz forums-e84f5db4f5f24a2cfb06dc89fc371685e95380fb.zip |
[ticket/11538] Add unit tests for phpbb_validate_hex_colour().
PHPBB3-11538
Diffstat (limited to 'tests/functions')
-rw-r--r-- | tests/functions/validate_hex_colour_test.php | 121 |
1 files changed, 121 insertions, 0 deletions
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." + ); + } +} |