@@ -49,126 +49,171 @@ public static function versionsProvider()
49
49
'version ' => '' ,
50
50
'keep_stability_flag ' => false ,
51
51
'normalized ' => '' ,
52
+ 'major ' => '' ,
53
+ 'intermediate ' => '' ,
52
54
'stable ' => true ,
53
55
'dev ' => false ,
54
56
],
55
57
[
56
58
'version ' => '9.5+2.0 ' ,
57
59
'keep_stability_flag ' => false ,
58
60
'normalized ' => '9.5+2.0 ' , // not semver compatible, cannot be normalized
61
+ 'major ' => '9 ' ,
62
+ 'intermediate ' => '9.5 ' ,
59
63
'stable ' => true ,
60
64
'dev ' => false ,
61
65
],
62
66
[
63
67
'version ' => '0.89 ' ,
64
68
'keep_stability_flag ' => false ,
65
69
'normalized ' => '0.89.0 ' ,
70
+ 'major ' => '0 ' ,
71
+ 'intermediate ' => '0.89 ' ,
66
72
'stable ' => true ,
67
73
'dev ' => false ,
68
74
],
69
75
[
70
76
'version ' => '9.2 ' ,
71
77
'keep_stability_flag ' => false ,
72
78
'normalized ' => '9.2.0 ' ,
79
+ 'major ' => '9 ' ,
80
+ 'intermediate ' => '9.2 ' ,
73
81
'stable ' => true ,
74
82
'dev ' => false ,
75
83
],
76
84
[
77
85
'version ' => '9.2 ' ,
78
86
'keep_stability_flag ' => true , // should have no effect
79
87
'normalized ' => '9.2.0 ' ,
88
+ 'major ' => '9 ' ,
89
+ 'intermediate ' => '9.2 ' ,
80
90
'stable ' => true ,
81
91
'dev ' => false ,
82
92
],
83
93
[
84
94
'version ' => '9.4.1.1 ' ,
85
95
'keep_stability_flag ' => false ,
86
96
'normalized ' => '9.4.1 ' ,
97
+ 'major ' => '9 ' ,
98
+ 'intermediate ' => '9.4 ' ,
87
99
'stable ' => true ,
88
100
'dev ' => false ,
89
101
],
90
102
[
91
103
'version ' => '10.0.0-dev ' ,
92
104
'keep_stability_flag ' => false ,
93
105
'normalized ' => '10.0.0 ' ,
106
+ 'major ' => '10 ' ,
107
+ 'intermediate ' => '10.0 ' ,
94
108
'stable ' => false ,
95
109
'dev ' => true ,
96
110
],
97
111
[
98
112
'version ' => '10.0.0-dev ' ,
99
113
'keep_stability_flag ' => true ,
100
114
'normalized ' => '10.0.0-dev ' ,
115
+ 'major ' => '10 ' ,
116
+ 'intermediate ' => '10.0 ' ,
101
117
'stable ' => false ,
102
118
'dev ' => true ,
103
119
],
104
120
[
105
121
'version ' => '10.0.0-alpha ' ,
106
122
'keep_stability_flag ' => false ,
107
123
'normalized ' => '10.0.0 ' ,
124
+ 'major ' => '10 ' ,
125
+ 'intermediate ' => '10.0 ' ,
108
126
'stable ' => false ,
109
127
'dev ' => false ,
110
128
],
111
129
[
112
130
'version ' => '10.0.0-alpha2 ' ,
113
131
'keep_stability_flag ' => true ,
114
132
'normalized ' => '10.0.0-alpha2 ' ,
133
+ 'major ' => '10 ' ,
134
+ 'intermediate ' => '10.0 ' ,
115
135
'stable ' => false ,
116
136
'dev ' => false ,
117
137
],
118
138
[
119
139
'version ' => '10.0.0-beta1 ' ,
120
140
'keep_stability_flag ' => false ,
121
141
'normalized ' => '10.0.0 ' ,
142
+ 'major ' => '10 ' ,
143
+ 'intermediate ' => '10.0 ' ,
122
144
'stable ' => false ,
123
145
'dev ' => false ,
124
146
],
125
147
[
126
148
'version ' => '10.0.0-beta1 ' ,
127
149
'keep_stability_flag ' => true ,
128
150
'normalized ' => '10.0.0-beta1 ' ,
151
+ 'major ' => '10 ' ,
152
+ 'intermediate ' => '10.0 ' ,
129
153
'stable ' => false ,
130
154
'dev ' => false ,
131
155
],
132
156
[
133
157
'version ' => '10.0.0-rc3 ' ,
134
158
'keep_stability_flag ' => false ,
135
159
'normalized ' => '10.0.0 ' ,
160
+ 'major ' => '10 ' ,
161
+ 'intermediate ' => '10.0 ' ,
136
162
'stable ' => false ,
137
163
'dev ' => false ,
138
164
],
139
165
[
140
166
'version ' => '10.0.0-rc ' ,
141
167
'keep_stability_flag ' => true ,
142
168
'normalized ' => '10.0.0-rc ' ,
169
+ 'major ' => '10 ' ,
170
+ 'intermediate ' => '10.0 ' ,
143
171
'stable ' => false ,
144
172
'dev ' => false ,
145
173
],
146
174
[
147
175
'version ' => '10.0.3 ' ,
148
176
'keep_stability_flag ' => true ,
149
177
'normalized ' => '10.0.3 ' ,
178
+ 'major ' => '10 ' ,
179
+ 'intermediate ' => '10.0 ' ,
150
180
'stable ' => true ,
151
181
'dev ' => false ,
152
182
],
153
183
];
154
184
}
155
185
156
186
#[DataProvider('versionsProvider ' )]
157
- public function testGetNormalizeVersion (string $ version , bool $ keep_stability_flag , string $ normalized , bool $ stable , bool $ dev ): void
187
+ public function testGetNormalizeVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
158
188
{
159
189
$ version_parser = new \Glpi \Toolbox \VersionParser ();
160
190
$ this ->assertEquals ($ normalized , $ version_parser ->getNormalizedVersion ($ version , $ keep_stability_flag ));
161
191
}
162
192
163
193
#[DataProvider('versionsProvider ' )]
164
- public function testIsStableRelease (string $ version , bool $ keep_stability_flag , string $ normalized , bool $ stable , bool $ dev ): void
194
+ public function testGetMajorVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
195
+ {
196
+ $ version_parser = new \Glpi \Toolbox \VersionParser ();
197
+ $ this ->assertEquals ($ major , $ version_parser ->getMajorVersion ($ version ));
198
+ }
199
+
200
+ #[DataProvider('versionsProvider ' )]
201
+ public function testGetIntermediateVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
202
+ {
203
+ $ version_parser = new \Glpi \Toolbox \VersionParser ();
204
+ $ this ->assertEquals ($ intermediate , $ version_parser ->getIntermediateVersion ($ version ));
205
+ }
206
+
207
+
208
+ #[DataProvider('versionsProvider ' )]
209
+ public function testIsStableRelease (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
165
210
{
166
211
$ version_parser = new \Glpi \Toolbox \VersionParser ();
167
212
$ this ->assertSame ($ stable , $ version_parser ->isStableRelease ($ version ));
168
213
}
169
214
170
215
#[DataProvider('versionsProvider ' )]
171
- public function testIsDevVersion (string $ version , bool $ keep_stability_flag , string $ normalized , bool $ stable , bool $ dev ): void
216
+ public function testIsDevVersion (string $ version , bool $ keep_stability_flag , string $ normalized , string $ major , string $ intermediate , bool $ stable , bool $ dev ): void
172
217
{
173
218
$ version_parser = new \Glpi \Toolbox \VersionParser ();
174
219
$ this ->assertSame ($ dev , $ version_parser ->isDevVersion ($ version ));
0 commit comments