mirror of
https://github.com/phpbb/phpbb.git
synced 2025-01-18 06:38:43 +01:00
17991823ea
PHPBB3-9916
131 lines
2.8 KiB
PHP
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'),
|
|
);
|
|
}
|
|
|
|
}
|