1
+ <?php
2
+ require 'simpletest/simpletest.phar ' ;
3
+ require 'version.php ' ;
4
+ class versioningTest extends UnitTestCase {
5
+ function testKeepSimpleversion () {
6
+ $ t =array (
7
+ '1.0.0 ' ,
8
+ '2.0.0 ' ,
9
+ '1.0.1 ' ,
10
+ '1.3.2 ' ,
11
+ '1.02.0 ' =>'1.2.0 ' ,
12
+ '0.2.5 ' ,
13
+ '01.2.6 ' =>'1.2.6 ' ,
14
+ '2.0.03 ' =>'2.0.3 ' ,
15
+ '0.0.0 '
16
+ );
17
+ foreach ($ t as $ original =>$ result ) {
18
+ if (!is_string ($ original )) $ original =$ result ;
19
+ $ v =new versionExpression ($ original );
20
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
21
+ }
22
+ }
23
+ function testKeepSimpleversionComparator () {
24
+ $ t =array (
25
+ '>1.0.0 ' ,
26
+ '>1.1.0 ' ,
27
+ '>1.2.3 ' ,
28
+ '>0.5.6 ' ,
29
+ '>0.025.6 ' =>'>0.25.6 ' ,
30
+ '>=1.0.0 ' ,
31
+ '>=1.2.0 ' ,
32
+ '>=1.4.5 ' ,
33
+ '>=0.9.3 ' ,
34
+ '>=05.3.6 ' =>'>=5.3.6 ' ,
35
+ '<2.0.0 ' ,
36
+ '<5.6.0 ' ,
37
+ '<2.3.5 ' ,
38
+ '<0.2.3 ' ,
39
+ '<0.2.05 ' =>'<0.2.5 ' ,
40
+ '<=7.0.0 ' ,
41
+ '<=1.3.0 ' ,
42
+ '<=1.4.3 ' ,
43
+ '<=0.2.6 ' ,
44
+ '<=00.05.6 ' =>'<=0.5.6 '
45
+ );
46
+ foreach ($ t as $ original =>$ result ) {
47
+ if (!is_string ($ original )) $ original =$ result ;
48
+ $ v =new versionExpression ($ original );
49
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
50
+ }
51
+ }
52
+ function testShortSimpleversion () {
53
+ $ t =array (
54
+ '1 ' =>'>=1.0.0 <2.0.0 ' ,
55
+ '1.2 ' =>'>=1.2.0 <1.3.0 ' ,
56
+ '1.0 ' =>'>=1.0.0 <1.1.0 ' ,
57
+ '501 ' =>'>=501.0.0 <502.0.0 '
58
+ );
59
+ foreach ($ t as $ original =>$ result ) {
60
+ $ v =new versionExpression ($ original );
61
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
62
+ }
63
+ }
64
+ function testShortSimpleversionComparator () {
65
+ $ t =array (
66
+ '>1 ' =>'>1.0.0 ' ,
67
+ '<2.0 ' =>'<2.0.0 ' ,
68
+ '<=5.2 ' =>'<=5.2.0 ' ,
69
+ '>=3 ' =>'>=3.0.0 '
70
+ );
71
+ foreach ($ t as $ original =>$ result ) {
72
+ $ v =new versionExpression ($ original );
73
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
74
+ }
75
+ }
76
+ function testSimpleversionWildcard () {
77
+ $ t =array (
78
+ '1.x.x ' =>'>=1.0.0 <2.0.0 ' ,
79
+ '1.x ' =>'>=1.0.0 <2.0.0 ' ,
80
+ '1.x.5 ' =>'>=1.0.0 <2.0.0 ' ,
81
+ '3.x2 ' =>'>=3.0.0 <4.0.0 ' ,
82
+ '1.X.X ' =>'>=1.0.0 <2.0.0 ' ,
83
+ '1.*.* ' =>'>=1.0.0 <2.0.0 ' ,
84
+ '2.X.x ' =>'>=2.0.0 <3.0.0 ' ,
85
+ '5.*.x ' =>'>=5.0.0 <6.0.0 ' ,
86
+ 'x ' =>'>=0.0.0 '
87
+ );
88
+ foreach ($ t as $ original =>$ result ) {
89
+ $ v =new versionExpression ($ original );
90
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
91
+ }
92
+ }
93
+ function testSimpleversionRange () {
94
+ $ t =array (
95
+ '1.0.0 - 2.0.0 ' =>'>=1.0.0 <2.0.0 ' ,
96
+ '1.2.3 - 1.3.0 ' =>'>=1.2.3 <1.3.0 ' ,
97
+ '4.3.0 - 4.3.1 ' => '>=4.3.0 <4.3.1 '
98
+ );
99
+ foreach ($ t as $ original =>$ result ) {
100
+ $ v =new versionExpression ($ original );
101
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
102
+ }
103
+ }
104
+ function testShortversionRange () {
105
+ $ t =array (
106
+ '1 - 2 ' =>'>=1.0.0 <2.0.0 ' ,
107
+ '1.2 - 2.1 ' =>'>=1.2.0 <2.1.0 '
108
+ );
109
+ foreach ($ t as $ original =>$ result ) {
110
+ $ v =new versionExpression ($ original );
111
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
112
+ }
113
+ }
114
+ function testAndOperator () {
115
+ $ t =array (
116
+ '<1.2.0 >=1.3.2 ' =>array (array ('<1.2.0 ' ,'>=1.3.2 ' )),
117
+ '>2.3.4 <5.0 ' =>array (array ('>2.3.4 ' ,'<5.0.0 ' )),
118
+ '>1.0.0 <=1.2.0 ' =>array (array ('>1.0.0 ' ,'<=1.2.0 ' )),
119
+ '>=1.2.4 ' =>array (array ('>=1.2.4 ' ))
120
+ );
121
+ foreach ($ t as $ original =>$ result ) {
122
+ $ v =new versionExpression ($ original );
123
+ $ this ->assertEqual ($ v ->getChunks (),$ result ,'[ ' .$ original .'] %s ' );
124
+ }
125
+ }
126
+ function testOrOperator () {
127
+ $ t =array (
128
+ '<1.2.0 || >2.1 ' =>array (array ('<1.2.0 ' ),array ('>2.1.0 ' )),
129
+ '<1.3 || >3.0 <3.5 || >4 ' =>array (array ('<1.3.0 ' ),array ('>3.0.0 ' ,'<3.5.0 ' ),array ('>4.0.0 ' ))
130
+ );
131
+ foreach ($ t as $ original =>$ result ) {
132
+ $ v =new versionExpression ($ original );
133
+ $ this ->assertEqual ($ v ->getChunks (),$ result ,'[ ' .$ original .'] %s ' );
134
+ }
135
+ }
136
+ function testComplexExpessions () {
137
+ $ t =array (
138
+ '1.x || 2.0 - 2.3 || >4.x.x ' =>'>=1.0.0 <2.0.0||>=2.0.0 <2.3.0||>4.0.0 ' ,
139
+ '2.0.x || 2.1 - 4 || 4 - 4.5 ' => '>=2.0.0 <2.1.0||>=2.1.0 <4.0.0||>=4.0.0 <4.5.0 '
140
+ );
141
+ foreach ($ t as $ original =>$ result ) {
142
+ $ v =new versionExpression ($ original );
143
+ $ this ->assertEqual ($ v ->getString (),$ result ,'[ ' .$ original .'] %s ' );
144
+ }
145
+ }
146
+ function testSatisfiedBy () {
147
+ $ t =array (
148
+ '1.0.0 ' =>'1.0.0 ' ,
149
+ '1.2.3 ' =>'1.2.3 '
150
+ );
151
+ foreach ($ t as $ range =>$ version ) {
152
+ $ e =new versionExpression ($ range );
153
+ $ v =new version ($ version );
154
+ $ this ->assertTrue ($ e ->satisfiedBy ($ v ), '[ ' .$ range .' :: ' .$ version .'] %s ' );
155
+ }
156
+ }
157
+ }
0 commit comments