Tizen 2.0 Release
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-mobile-1.2.0 / node_modules / grunt-junit / node_modules / semver / test.js
1 var tap = require("tap")
2   , test = tap.test
3   , semver = require("./semver.js")
4   , eq = semver.eq
5   , gt = semver.gt
6   , lt = semver.lt
7   , neq = semver.neq
8   , cmp = semver.cmp
9   , gte = semver.gte
10   , lte = semver.lte
11   , satisfies = semver.satisfies
12   , validRange = semver.validRange
13   , inc = semver.inc
14   , replaceStars = semver.replaceStars
15   , toComparators = semver.toComparators
16
17 tap.plan(8)
18
19 test("\ncomparison tests", function (t) {
20 ; [ ["0.0.0", "0.0.0foo"]
21   , ["0.0.1", "0.0.0"]
22   , ["1.0.0", "0.9.9"]
23   , ["0.10.0", "0.9.0"]
24   , ["0.99.0", "0.10.0"]
25   , ["2.0.0", "1.2.3"]
26   , ["v0.0.0", "0.0.0foo"]
27   , ["v0.0.1", "0.0.0"]
28   , ["v1.0.0", "0.9.9"]
29   , ["v0.10.0", "0.9.0"]
30   , ["v0.99.0", "0.10.0"]
31   , ["v2.0.0", "1.2.3"]
32   , ["0.0.0", "v0.0.0foo"]
33   , ["0.0.1", "v0.0.0"]
34   , ["1.0.0", "v0.9.9"]
35   , ["0.10.0", "v0.9.0"]
36   , ["0.99.0", "v0.10.0"]
37   , ["2.0.0", "v1.2.3"]
38   , ["1.2.3", "1.2.3-asdf"]
39   , ["1.2.3-4", "1.2.3"]
40   , ["1.2.3-4-foo", "1.2.3"]
41   , ["1.2.3-5", "1.2.3-5-foo"]
42   , ["1.2.3-5", "1.2.3-4"]
43   , ["1.2.3-5-foo", "1.2.3-5-Foo"]
44   , ["3.0.0", "2.7.2+"]
45   ].forEach(function (v) {
46     var v0 = v[0]
47       , v1 = v[1]
48     t.ok(gt(v0, v1), "gt('"+v0+"', '"+v1+"')")
49     t.ok(lt(v1, v0), "lt('"+v1+"', '"+v0+"')")
50     t.ok(!gt(v1, v0), "!gt('"+v1+"', '"+v0+"')")
51     t.ok(!lt(v0, v1), "!lt('"+v0+"', '"+v1+"')")
52     t.ok(eq(v0, v0), "eq('"+v0+"', '"+v0+"')")
53     t.ok(eq(v1, v1), "eq('"+v1+"', '"+v1+"')")
54     t.ok(neq(v0, v1), "neq('"+v0+"', '"+v1+"')")
55     t.ok(cmp(v1, "==", v1), "cmp('"+v1+"' == '"+v1+"')")
56     t.ok(cmp(v0, ">=", v1), "cmp('"+v0+"' >= '"+v1+"')")
57     t.ok(cmp(v1, "<=", v0), "cmp('"+v1+"' <= '"+v0+"')")
58     t.ok(cmp(v0, "!=", v1), "cmp('"+v0+"' != '"+v1+"')")
59   })
60   t.end()
61 })
62
63 test("\nequality tests", function (t) {
64 ; [ ["1.2.3", "v1.2.3"]
65   , ["1.2.3", "=1.2.3"]
66   , ["1.2.3", "v 1.2.3"]
67   , ["1.2.3", "= 1.2.3"]
68   , ["1.2.3", " v1.2.3"]
69   , ["1.2.3", " =1.2.3"]
70   , ["1.2.3", " v 1.2.3"]
71   , ["1.2.3", " = 1.2.3"]
72   , ["1.2.3-0", "v1.2.3-0"]
73   , ["1.2.3-0", "=1.2.3-0"]
74   , ["1.2.3-0", "v 1.2.3-0"]
75   , ["1.2.3-0", "= 1.2.3-0"]
76   , ["1.2.3-0", " v1.2.3-0"]
77   , ["1.2.3-0", " =1.2.3-0"]
78   , ["1.2.3-0", " v 1.2.3-0"]
79   , ["1.2.3-0", " = 1.2.3-0"]
80   , ["1.2.3-01", "v1.2.3-1"]
81   , ["1.2.3-01", "=1.2.3-1"]
82   , ["1.2.3-01", "v 1.2.3-1"]
83   , ["1.2.3-01", "= 1.2.3-1"]
84   , ["1.2.3-01", " v1.2.3-1"]
85   , ["1.2.3-01", " =1.2.3-1"]
86   , ["1.2.3-01", " v 1.2.3-1"]
87   , ["1.2.3-01", " = 1.2.3-1"]
88   , ["1.2.3beta", "v1.2.3beta"]
89   , ["1.2.3beta", "=1.2.3beta"]
90   , ["1.2.3beta", "v 1.2.3beta"]
91   , ["1.2.3beta", "= 1.2.3beta"]
92   , ["1.2.3beta", " v1.2.3beta"]
93   , ["1.2.3beta", " =1.2.3beta"]
94   , ["1.2.3beta", " v 1.2.3beta"]
95   , ["1.2.3beta", " = 1.2.3beta"]
96   ].forEach(function (v) {
97     var v0 = v[0]
98       , v1 = v[1]
99     t.ok(eq(v0, v1), "eq('"+v0+"', '"+v1+"')")
100     t.ok(!neq(v0, v1), "!neq('"+v0+"', '"+v1+"')")
101     t.ok(cmp(v0, "==", v1), "cmp("+v0+"=="+v1+")")
102     t.ok(!cmp(v0, "!=", v1), "!cmp("+v0+"!="+v1+")")
103     t.ok(!cmp(v0, "===", v1), "!cmp("+v0+"==="+v1+")")
104     t.ok(cmp(v0, "!==", v1), "cmp("+v0+"!=="+v1+")")
105     t.ok(!gt(v0, v1), "!gt('"+v0+"', '"+v1+"')")
106     t.ok(gte(v0, v1), "gte('"+v0+"', '"+v1+"')")
107     t.ok(!lt(v0, v1), "!lt('"+v0+"', '"+v1+"')")
108     t.ok(lte(v0, v1), "lte('"+v0+"', '"+v1+"')")
109   })
110   t.end()
111 })
112
113
114 test("\nrange tests", function (t) {
115 ; [ ["1.0.0 - 2.0.0", "1.2.3"]
116   , ["1.0.0", "1.0.0"]
117   , [">=*", "0.2.4"]
118   , ["", "1.0.0"]
119   , ["*", "1.2.3"]
120   , ["*", "v1.2.3-foo"]
121   , [">=1.0.0", "1.0.0"]
122   , [">=1.0.0", "1.0.1"]
123   , [">=1.0.0", "1.1.0"]
124   , [">1.0.0", "1.0.1"]
125   , [">1.0.0", "1.1.0"]
126   , ["<=2.0.0", "2.0.0"]
127   , ["<=2.0.0", "1.9999.9999"]
128   , ["<=2.0.0", "0.2.9"]
129   , ["<2.0.0", "1.9999.9999"]
130   , ["<2.0.0", "0.2.9"]
131   , [">= 1.0.0", "1.0.0"]
132   , [">=  1.0.0", "1.0.1"]
133   , [">=   1.0.0", "1.1.0"]
134   , ["> 1.0.0", "1.0.1"]
135   , [">  1.0.0", "1.1.0"]
136   , ["<=   2.0.0", "2.0.0"]
137   , ["<= 2.0.0", "1.9999.9999"]
138   , ["<=  2.0.0", "0.2.9"]
139   , ["<    2.0.0", "1.9999.9999"]
140   , ["<\t2.0.0", "0.2.9"]
141   , [">=0.1.97", "v0.1.97"]
142   , [">=0.1.97", "0.1.97"]
143   , ["0.1.20 || 1.2.4", "1.2.4"]
144   , [">=0.2.3 || <0.0.1", "0.0.0"]
145   , [">=0.2.3 || <0.0.1", "0.2.3"]
146   , [">=0.2.3 || <0.0.1", "0.2.4"]
147   , ["||", "1.3.4"]
148   , ["2.x.x", "2.1.3"]
149   , ["1.2.x", "1.2.3"]
150   , ["1.2.x || 2.x", "2.1.3"]
151   , ["1.2.x || 2.x", "1.2.3"]
152   , ["x", "1.2.3"]
153   , ["2.*.*", "2.1.3"]
154   , ["1.2.*", "1.2.3"]
155   , ["1.2.* || 2.*", "2.1.3"]
156   , ["1.2.* || 2.*", "1.2.3"]
157   , ["*", "1.2.3"]
158   , ["2", "2.1.2"]
159   , ["2.3", "2.3.1"]
160   , ["~2.4", "2.4.0"] // >=2.4.0 <2.5.0
161   , ["~2.4", "2.4.5"]
162   , ["~>3.2.1", "3.2.2"] // >=3.2.1 <3.3.0
163   , ["~1", "1.2.3"] // >=1.0.0 <2.0.0
164   , ["~>1", "1.2.3"]
165   , ["~> 1", "1.2.3"]
166   , ["~1.0", "1.0.2"] // >=1.0.0 <1.1.0
167   , ["~ 1.0", "1.0.2"]
168   , [">=1", "1.0.0"]
169   , [">= 1", "1.0.0"]
170   , ["<1.2", "1.1.1"]
171   , ["< 1.2", "1.1.1"]
172   , ["1", "1.0.0beta"]
173   , ["~v0.5.4-pre", "0.5.5"]
174   , ["~v0.5.4-pre", "0.5.4"]
175   , ["=0.7.x", "0.7.2"]
176   , [">=0.7.x", "0.7.2"]
177   , ["=0.7.x", "0.7.0-asdf"]
178   , [">=0.7.x", "0.7.0-asdf"]
179   , ["<=0.7.x", "0.6.2"]
180   ].forEach(function (v) {
181     t.ok(satisfies(v[1], v[0]), v[0]+" satisfied by "+v[1])
182   })
183   t.end()
184 })
185
186 test("\nnegative range tests", function (t) {
187 ; [ ["1.0.0 - 2.0.0", "2.2.3"]
188   , ["1.0.0", "1.0.1"]
189   , [">=1.0.0", "0.0.0"]
190   , [">=1.0.0", "0.0.1"]
191   , [">=1.0.0", "0.1.0"]
192   , [">1.0.0", "0.0.1"]
193   , [">1.0.0", "0.1.0"]
194   , ["<=2.0.0", "3.0.0"]
195   , ["<=2.0.0", "2.9999.9999"]
196   , ["<=2.0.0", "2.2.9"]
197   , ["<2.0.0", "2.9999.9999"]
198   , ["<2.0.0", "2.2.9"]
199   , [">=0.1.97", "v0.1.93"]
200   , [">=0.1.97", "0.1.93"]
201   , ["0.1.20 || 1.2.4", "1.2.3"]
202   , [">=0.2.3 || <0.0.1", "0.0.3"]
203   , [">=0.2.3 || <0.0.1", "0.2.2"]
204   , ["2.x.x", "1.1.3"]
205   , ["2.x.x", "3.1.3"]
206   , ["1.2.x", "1.3.3"]
207   , ["1.2.x || 2.x", "3.1.3"]
208   , ["1.2.x || 2.x", "1.1.3"]
209   , ["2.*.*", "1.1.3"]
210   , ["2.*.*", "3.1.3"]
211   , ["1.2.*", "1.3.3"]
212   , ["1.2.* || 2.*", "3.1.3"]
213   , ["1.2.* || 2.*", "1.1.3"]
214   , ["2", "1.1.2"]
215   , ["2.3", "2.4.1"]
216   , ["~2.4", "2.5.0"] // >=2.4.0 <2.5.0
217   , ["~2.4", "2.3.9"]
218   , ["~>3.2.1", "3.3.2"] // >=3.2.1 <3.3.0
219   , ["~>3.2.1", "3.2.0"] // >=3.2.1 <3.3.0
220   , ["~1", "0.2.3"] // >=1.0.0 <2.0.0
221   , ["~>1", "2.2.3"]
222   , ["~1.0", "1.1.0"] // >=1.0.0 <1.1.0
223   , ["<1", "1.0.0"]
224   , [">=1.2", "1.1.1"]
225   , ["1", "2.0.0beta"]
226   , ["~v0.5.4-beta", "0.5.4-alpha"]
227   , ["<1", "1.0.0beta"]
228   , ["< 1", "1.0.0beta"]
229   , ["=0.7.x", "0.8.2"]
230   , [">=0.7.x", "0.6.2"]
231   , ["<=0.7.x", "0.7.2"]
232   ].forEach(function (v) {
233     t.ok(!satisfies(v[1], v[0]), v[0]+" not satisfied by "+v[1])
234   })
235   t.end()
236 })
237
238 test("\nincrement versions test", function (t) {
239 ; [ [ "1.2.3",   "major", "2.0.0"   ]
240   , [ "1.2.3",   "minor", "1.3.0"   ]
241   , [ "1.2.3",   "patch", "1.2.4"   ]
242   , [ "1.2.3",   "build", "1.2.3-1" ]
243   , [ "1.2.3-4", "build", "1.2.3-5" ]
244   , [ "1.2.3tag",    "major", "2.0.0"   ]
245   , [ "1.2.3-tag",   "major", "2.0.0"   ]
246   , [ "1.2.3tag",    "build", "1.2.3-1" ]
247   , [ "1.2.3-tag",   "build", "1.2.3-1" ]
248   , [ "1.2.3-4-tag", "build", "1.2.3-5" ]
249   , [ "1.2.3-4tag",  "build", "1.2.3-5" ]
250   , [ "1.2.3", "fake",  null ]
251   , [ "fake",  "major", null ]
252   ].forEach(function (v) {
253     t.equal(inc(v[0], v[1]), v[2], "inc("+v[0]+", "+v[1]+") === "+v[2])
254   })
255
256   t.end()
257 })
258
259 test("\nreplace stars test", function (t) {
260 ; [ [ "", "" ]
261   , [ "*", "" ]
262   , [ "> *", "" ]
263   , [ "<*", "" ]
264   , [ " >=  *", "" ]
265   , [ "* || 1.2.3", " || 1.2.3" ]
266   ].forEach(function (v) {
267     t.equal(replaceStars(v[0]), v[1], "replaceStars("+v[0]+") === "+v[1])
268   })
269
270   t.end()
271 })
272
273 test("\nvalid range test", function (t) {
274 ; [ ["1.0.0 - 2.0.0", ">=1.0.0 <=2.0.0"]
275   , ["1.0.0", "1.0.0"]
276   , [">=*", ""]
277   , ["", ""]
278   , ["*", ""]
279   , ["*", ""]
280   , [">=1.0.0", ">=1.0.0"]
281   , [">1.0.0", ">1.0.0"]
282   , ["<=2.0.0", "<=2.0.0"]
283   , ["1", ">=1.0.0- <2.0.0-"]
284   , ["<=2.0.0", "<=2.0.0"]
285   , ["<=2.0.0", "<=2.0.0"]
286   , ["<2.0.0", "<2.0.0"]
287   , ["<2.0.0", "<2.0.0"]
288   , [">= 1.0.0", ">=1.0.0"]
289   , [">=  1.0.0", ">=1.0.0"]
290   , [">=   1.0.0", ">=1.0.0"]
291   , ["> 1.0.0", ">1.0.0"]
292   , [">  1.0.0", ">1.0.0"]
293   , ["<=   2.0.0", "<=2.0.0"]
294   , ["<= 2.0.0", "<=2.0.0"]
295   , ["<=  2.0.0", "<=2.0.0"]
296   , ["<    2.0.0", "<2.0.0"]
297   , ["< 2.0.0", "<2.0.0"]
298   , [">=0.1.97", ">=0.1.97"]
299   , [">=0.1.97", ">=0.1.97"]
300   , ["0.1.20 || 1.2.4", "0.1.20||1.2.4"]
301   , [">=0.2.3 || <0.0.1", ">=0.2.3||<0.0.1"]
302   , [">=0.2.3 || <0.0.1", ">=0.2.3||<0.0.1"]
303   , [">=0.2.3 || <0.0.1", ">=0.2.3||<0.0.1"]
304   , ["||", "||"]
305   , ["2.x.x", ">=2.0.0- <3.0.0-"]
306   , ["1.2.x", ">=1.2.0- <1.3.0-"]
307   , ["1.2.x || 2.x", ">=1.2.0- <1.3.0-||>=2.0.0- <3.0.0-"]
308   , ["1.2.x || 2.x", ">=1.2.0- <1.3.0-||>=2.0.0- <3.0.0-"]
309   , ["x", ""]
310   , ["2.*.*", null]
311   , ["1.2.*", null]
312   , ["1.2.* || 2.*", null]
313   , ["1.2.* || 2.*", null]
314   , ["*", ""]
315   , ["2", ">=2.0.0- <3.0.0-"]
316   , ["2.3", ">=2.3.0- <2.4.0-"]
317   , ["~2.4", ">=2.4.0- <2.5.0-"]
318   , ["~2.4", ">=2.4.0- <2.5.0-"]
319   , ["~>3.2.1", ">=3.2.1- <3.3.0-"]
320   , ["~1", ">=1.0.0- <2.0.0-"]
321   , ["~>1", ">=1.0.0- <2.0.0-"]
322   , ["~> 1", ">=1.0.0- <2.0.0-"]
323   , ["~1.0", ">=1.0.0- <1.1.0-"]
324   , ["~ 1.0", ">=1.0.0- <1.1.0-"]
325   , ["<1", "<1.0.0-"]
326   , ["< 1", "<1.0.0-"]
327   , [">=1", ">=1.0.0-"]
328   , [">= 1", ">=1.0.0-"]
329   , ["<1.2", "<1.2.0-"]
330   , ["< 1.2", "<1.2.0-"]
331   , ["1", ">=1.0.0- <2.0.0-"]
332   ].forEach(function (v) {
333     t.equal(validRange(v[0]), v[1], "validRange("+v[0]+") === "+v[1])
334   })
335
336   t.end()
337 })
338
339 test("\ncomparators test", function (t) {
340 ; [ ["1.0.0 - 2.0.0", [[">=1.0.0", "<=2.0.0"]] ]
341   , ["1.0.0", [["1.0.0"]] ]
342   , [">=*", [[">=0.0.0-"]] ]
343   , ["", [[""]]]
344   , ["*", [[""]] ]
345   , ["*", [[""]] ]
346   , [">=1.0.0", [[">=1.0.0"]] ]
347   , [">=1.0.0", [[">=1.0.0"]] ]
348   , [">=1.0.0", [[">=1.0.0"]] ]
349   , [">1.0.0", [[">1.0.0"]] ]
350   , [">1.0.0", [[">1.0.0"]] ]
351   , ["<=2.0.0", [["<=2.0.0"]] ]
352   , ["1", [[">=1.0.0-", "<2.0.0-"]] ]
353   , ["<=2.0.0", [["<=2.0.0"]] ]
354   , ["<=2.0.0", [["<=2.0.0"]] ]
355   , ["<2.0.0", [["<2.0.0"]] ]
356   , ["<2.0.0", [["<2.0.0"]] ]
357   , [">= 1.0.0", [[">=1.0.0"]] ]
358   , [">=  1.0.0", [[">=1.0.0"]] ]
359   , [">=   1.0.0", [[">=1.0.0"]] ]
360   , ["> 1.0.0", [[">1.0.0"]] ]
361   , [">  1.0.0", [[">1.0.0"]] ]
362   , ["<=   2.0.0", [["<=2.0.0"]] ]
363   , ["<= 2.0.0", [["<=2.0.0"]] ]
364   , ["<=  2.0.0", [["<=2.0.0"]] ]
365   , ["<    2.0.0", [["<2.0.0"]] ]
366   , ["<\t2.0.0", [["<2.0.0"]] ]
367   , [">=0.1.97", [[">=0.1.97"]] ]
368   , [">=0.1.97", [[">=0.1.97"]] ]
369   , ["0.1.20 || 1.2.4", [["0.1.20"], ["1.2.4"]] ]
370   , [">=0.2.3 || <0.0.1", [[">=0.2.3"], ["<0.0.1"]] ]
371   , [">=0.2.3 || <0.0.1", [[">=0.2.3"], ["<0.0.1"]] ]
372   , [">=0.2.3 || <0.0.1", [[">=0.2.3"], ["<0.0.1"]] ]
373   , ["||", [[""], [""]] ]
374   , ["2.x.x", [[">=2.0.0-", "<3.0.0-"]] ]
375   , ["1.2.x", [[">=1.2.0-", "<1.3.0-"]] ]
376   , ["1.2.x || 2.x", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
377   , ["1.2.x || 2.x", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
378   , ["x", [[""]] ]
379   , ["2.*.*", [[">=2.0.0-", "<3.0.0-"]] ]
380   , ["1.2.*", [[">=1.2.0-", "<1.3.0-"]] ]
381   , ["1.2.* || 2.*", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
382   , ["1.2.* || 2.*", [[">=1.2.0-", "<1.3.0-"], [">=2.0.0-", "<3.0.0-"]] ]
383   , ["*", [[""]] ]
384   , ["2", [[">=2.0.0-", "<3.0.0-"]] ]
385   , ["2.3", [[">=2.3.0-", "<2.4.0-"]] ]
386   , ["~2.4", [[">=2.4.0-", "<2.5.0-"]] ]
387   , ["~2.4", [[">=2.4.0-", "<2.5.0-"]] ]
388   , ["~>3.2.1", [[">=3.2.1-", "<3.3.0-"]] ]
389   , ["~1", [[">=1.0.0-", "<2.0.0-"]] ]
390   , ["~>1", [[">=1.0.0-", "<2.0.0-"]] ]
391   , ["~> 1", [[">=1.0.0-", "<2.0.0-"]] ]
392   , ["~1.0", [[">=1.0.0-", "<1.1.0-"]] ]
393   , ["~ 1.0", [[">=1.0.0-", "<1.1.0-"]] ]
394   , ["<1", [["<1.0.0-"]] ]
395   , ["< 1", [["<1.0.0-"]] ]
396   , [">=1", [[">=1.0.0-"]] ]
397   , [">= 1", [[">=1.0.0-"]] ]
398   , ["<1.2", [["<1.2.0-"]] ]
399   , ["< 1.2", [["<1.2.0-"]] ]
400   , ["1", [[">=1.0.0-", "<2.0.0-"]] ]
401   ].forEach(function (v) {
402     t.equivalent(toComparators(v[0]), v[1], "toComparators("+v[0]+") === "+JSON.stringify(v[1]))
403   })
404
405   t.end()
406 })