From: Tobias Schultze Date: Thu, 26 Jan 2012 13:52:41 +0000 (+0100) Subject: improve test coverage and support negative int for random function X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=814cefdad769be6db2865b60c405daf6f7699142;p=web%2Fkonrad%2Ftwig.git improve test coverage and support negative int for random function --- diff --git a/lib/Twig/Extension/Core.php b/lib/Twig/Extension/Core.php index a32946e..312286c 100644 --- a/lib/Twig/Extension/Core.php +++ b/lib/Twig/Extension/Core.php @@ -299,7 +299,7 @@ function twig_random($values = null) } if (is_int($values) || is_float($values)) { - return mt_rand(0, $values); + return ($values < 0) ? mt_rand($values, 0) : mt_rand(0, $values); } if ($values instanceof Traversable) { diff --git a/test/Twig/Tests/Extension/CoreTest.php b/test/Twig/Tests/Extension/CoreTest.php index 15d6d19..e1936c3 100644 --- a/test/Twig/Tests/Extension/CoreTest.php +++ b/test/Twig/Tests/Extension/CoreTest.php @@ -48,6 +48,10 @@ class Twig_Tests_Extension_CoreTest extends PHPUnit_Framework_TestCase 5.9, range(0, 5, 1), ), + array( // negative + -2, + array(0, -1, -2), + ), ); } @@ -61,6 +65,14 @@ class Twig_Tests_Extension_CoreTest extends PHPUnit_Framework_TestCase } } + public function testRandomFunctionReturnsAsIs() + { + $this->assertSame('', twig_random('')); + + $instance = new stdClass(); + $this->assertSame($instance, twig_random($instance)); + } + /** * @expectedException Twig_Error_Runtime */