aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wrapper/version_compare_test.php
diff options
context:
space:
mode:
authorIgor Wiedler <igor@wiedler.ch>2011-08-18 22:31:25 +0200
committerIgor Wiedler <igor@wiedler.ch>2011-08-18 22:31:25 +0200
commit38c65da553c83e787d8a8adc1d40d789713579c4 (patch)
tree3aff0778b74cfbf328991aa83af50e9d07aff4e6 /tests/wrapper/version_compare_test.php
parentf84460c710f528724fac68278361af7fe18e458c (diff)
parent9589fbffe4cdad9fa35df2597c21fc0753ed1d52 (diff)
downloadforums-38c65da553c83e787d8a8adc1d40d789713579c4.tar
forums-38c65da553c83e787d8a8adc1d40d789713579c4.tar.gz
forums-38c65da553c83e787d8a8adc1d40d789713579c4.tar.bz2
forums-38c65da553c83e787d8a8adc1d40d789713579c4.tar.xz
forums-38c65da553c83e787d8a8adc1d40d789713579c4.zip
Merge branch 'develop' into feature/request-class
* develop: (157 commits) [ticket/10316] Resolve inconsistent move topic behavior [ticket/9297] Add network to class name of unit tests. [ticket/9297] Fix typo in localhost. [ticket/9297] Rename test class to reflect its contents. [ticket/9297] Adjust comment - IPv6 is needed for IPv6 connections to work. [ticket/9297] Fix markTestSkipped call in setUpBeforeClass. [ticket/9608] Remove use of references in topic_review [ticket/9297] Skip FTP PASV/EPSV test if FTP connection fails. [ticket/9297] Separate ipv4 and ipv6 tests into separate functions. [ticket/9297] Update copyright year of unit test file. [feature/template-engine] Delete _get_locator function. [feature/template-engine] Clean up template locator usage in bbcode. [ticket/9297] Make EPSV unit tests work without IPv6. [ticket/9297] Unit tests for ftp_fsock PASV and EPSV. [ticket/9297] Add support for Extended Passive Mode (EPSV) in ftp_fsock class. [ticket/10312] Un-check the shadow option while moving. [feature/template-engine] Need to call set_template on template. [feature/template-engine] Update installer for template engine changes. [feature/template-engine] Dependency inject locator into template. [feature/template-engine] Delete useless code from set_template. ... Conflicts: phpBB/includes/functions.php
Diffstat (limited to 'tests/wrapper/version_compare_test.php')
-rw-r--r--tests/wrapper/version_compare_test.php130
1 files changed, 130 insertions, 0 deletions
diff --git a/tests/wrapper/version_compare_test.php b/tests/wrapper/version_compare_test.php
new file mode 100644
index 0000000000..f718cfd16b
--- /dev/null
+++ b/tests/wrapper/version_compare_test.php
@@ -0,0 +1,130 @@
+<?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_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'),
+ );
+ }
+
+}