diff options
| author | Joas Schilling <nickvergessen@gmx.de> | 2013-05-27 11:51:26 +0200 |
|---|---|---|
| committer | Joas Schilling <nickvergessen@gmx.de> | 2013-05-27 11:51:26 +0200 |
| commit | f77111fe0e2f590898bea89ec771ba87aeceee6e (patch) | |
| tree | 897e2c9291ec1d9a760b9bf479e410e3d53e0bc8 /tests/functions/validate_hex_colour_test.php | |
| parent | 2b356e766f8d0f3e9dfc2d1fdd6bc857fdb63497 (diff) | |
| parent | 3faae5c98cfe9d3b6245a892808aee19bc9c1fcc (diff) | |
| download | forums-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().
Diffstat (limited to 'tests/functions/validate_hex_colour_test.php')
| -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." + ); + } +} |
