mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
Merge branch 'ticket/bantu/10042' into develop-olympus
* ticket/bantu/10042: [ticket/10042] GD CAPTCHA: Call phpbb_mt_rand() where required. [ticket/10042] GD CAPTCHA: Round offset to the next pixel. [ticket/10042] Add mt_rand() wrapper which allows swapping $min and $max.
This commit is contained in:
commit
893d0ae96f
3 changed files with 63 additions and 1 deletions
|
@ -77,7 +77,7 @@ class captcha
|
|||
{
|
||||
$denom = ($code_len - $i);
|
||||
$denom = max(1.3, $denom);
|
||||
$offset[$i] = mt_rand(0, (1.5 * $width_avail) / $denom);
|
||||
$offset[$i] = phpbb_mt_rand(0, (int) round((1.5 * $width_avail) / $denom));
|
||||
$width_avail -= $offset[$i];
|
||||
}
|
||||
|
||||
|
|
|
@ -249,6 +249,22 @@ function unique_id($extra = 'c')
|
|||
return substr($val, 4, 16);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for mt_rand() which allows swapping $min and $max parameters.
|
||||
*
|
||||
* PHP does not allow us to swap the order of the arguments for mt_rand() anymore.
|
||||
* (since PHP 5.3.4, see http://bugs.php.net/46587)
|
||||
*
|
||||
* @param int $min Lowest value to be returned
|
||||
* @param int $max Highest value to be returned
|
||||
*
|
||||
* @return int Random integer between $min and $max (or $max and $min)
|
||||
*/
|
||||
function phpbb_mt_rand($min, $max)
|
||||
{
|
||||
return ($min > $max) ? mt_rand($max, $min) : mt_rand($min, $max);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return formatted string for filesizes
|
||||
*
|
||||
|
|
46
tests/random/mt_rand.php
Normal file
46
tests/random/mt_rand.php
Normal file
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2011 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
|
||||
|
||||
class phpbb_random_mt_rand_test extends phpbb_test_case
|
||||
{
|
||||
public function test_max_equals_min()
|
||||
{
|
||||
$result = phpbb_mt_rand(42, 42);
|
||||
$this->assertEquals(42, $result);
|
||||
}
|
||||
|
||||
public function test_max_equals_min_negative()
|
||||
{
|
||||
$result = phpbb_mt_rand(-42, -42);
|
||||
$this->assertEquals(-42, $result);
|
||||
}
|
||||
|
||||
public function test_max_greater_min()
|
||||
{
|
||||
$result = phpbb_mt_rand(3, 4);
|
||||
$this->assertGreaterThanOrEqual(3, $result);
|
||||
$this->assertLessThanOrEqual(4, $result);
|
||||
}
|
||||
|
||||
public function test_min_greater_max()
|
||||
{
|
||||
$result = phpbb_mt_rand(4, 3);
|
||||
$this->assertGreaterThanOrEqual(3, $result);
|
||||
$this->assertLessThanOrEqual(4, $result);
|
||||
}
|
||||
|
||||
public function test_min_greater_max_negative()
|
||||
{
|
||||
$result = phpbb_mt_rand(-3, -4);
|
||||
$this->assertGreaterThanOrEqual(-4, $result);
|
||||
$this->assertLessThanOrEqual(-3, $result);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue