1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-01-18 06:38:43 +01:00
php-phpbb/tests/wrapper/version_compare_test.php
2012-01-02 16:18:32 +00:00

131 lines
2.8 KiB
PHP

<?php
/**
*
* @package testing
* @copyright (c) 2011 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
class phpbb_wrapper_version_compare_test extends phpbb_test_case
{
public function test_two_parameters()
{
$this->assertEquals(-1, phpbb_version_compare('1.0.0', '1.0.1'));
$this->assertEquals(0, phpbb_version_compare('1.0.0', '1.0.0'));
$this->assertEquals(1, phpbb_version_compare('1.0.1', '1.0.0'));
}
public function test_three_parameters()
{
$this->assertEquals(true, phpbb_version_compare('1.0.0', '1.0.1', '<'));
$this->assertEquals(true, phpbb_version_compare('1.0.0', '1.0.0', '<='));
$this->assertEquals(true, phpbb_version_compare('1.0.0', '1.0.0', '='));
$this->assertEquals(true, phpbb_version_compare('1.0.0', '1.0.0', '>='));
$this->assertEquals(true, phpbb_version_compare('1.0.1', '1.0.0', '>'));
}
public function test_strict_order()
{
$releases = array(
'2.0.0',
'2.0.1',
// Those are not version_compare() compatible
//'2.0.6a',
//'2.0.6b',
//'2.0.6c',
//'2.0.6d',
'2.0.7',
'2.0.23',
'3.0.A1',
'3.0.A2',
'3.0.A3',
'3.0.B1',
'3.0.B2',
'3.0.B4',
'3.0.B5',
'3.0.RC1',
'3.0.RC5',
'3.0.0',
'3.0.1',
'3.0.2',
'3.0.7',
'3.0.7-PL1',
'3.0.8-RC1',
'3.0.8',
'3.0.9-dev',
'3.0.9-RC1',
'3.0.9-RC2',
'3.0.9-RC4',
'3.0.10-RC1',
'3.1-dev',
'3.2-A1',
);
for ($i = 0, $size = sizeof($releases); $i < $size - 1; ++$i)
{
$version1 = $releases[$i];
$version2 = $releases[$i + 1];
$this->assertEquals(
true,
phpbb_version_compare($version1, $version2, '<'),
"Result of version comparison $version1 < $version2 is incorrect."
);
}
}
/**
* @dataProvider equality_test_data
*/
public function test_equality($version1, $version2)
{
$this->assertEquals(
0,
phpbb_version_compare($version1, $version2),
"Result of version comparison $version1 = $version2 is incorrect."
);
$this->assertEquals(
true,
phpbb_version_compare($version1, $version2, '='),
"Result of version comparison $version1 = $version2 is incorrect."
);
}
public function equality_test_data()
{
return array(
array('1.1.0-A2', '1.1.0-a2'),
array('1.1.0-B1', '1.1.0-b1'),
);
}
/**
* @dataProvider alpha_beta_test_data
*/
public function test_alpha_beta($expected, $version1, $version2)
{
$this->assertEquals(
$expected,
phpbb_version_compare($version1, $version2),
"Result of version comparison ($version1, $version2) = $expected is incorrect."
);
}
public function alpha_beta_test_data()
{
return array(
array(-1, '1.1.0-A2', '1.1.0-B1'),
array(-1, '1.1.0-a2', '1.1.0-b1'),
array(-1, '1.1.0-a2', '1.1.0-B1'),
array(-1, '1.1.0-A2', '1.1.0-b1'),
);
}
}