mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-24 12:03:21 +01:00
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().
This commit is contained in:
commit
f77111fe0e
@ -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');
|
||||
}
|
||||
|
@ -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'),
|
||||
);
|
||||
}
|
||||
|
||||
|
121
tests/functions/validate_hex_colour_test.php
Normal file
121
tests/functions/validate_hex_colour_test.php
Normal file
@ -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."
|
||||
);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user