wined3d: Recognize Nvidia GT520 cards.
[wine] / dlls / vbscript / tests / api.vbs
1 '
2 ' Copyright 2011 Jacek Caban for CodeWeavers
3 '
4 ' This library is free software; you can redistribute it and/or
5 ' modify it under the terms of the GNU Lesser General Public
6 ' License as published by the Free Software Foundation; either
7 ' version 2.1 of the License, or (at your option) any later version.
8 '
9 ' This library is distributed in the hope that it will be useful,
10 ' but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 ' Lesser General Public License for more details.
13 '
14 ' You should have received a copy of the GNU Lesser General Public
15 ' License along with this library; if not, write to the Free Software
16 ' Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 '
18
19 Option Explicit
20
21 Dim x
22
23 Class EmptyClass
24 End Class
25
26 Call ok(vbSunday = 1, "vbSunday = " & vbSunday)
27 Call ok(getVT(vbSunday) = "VT_I2", "getVT(vbSunday) = " & getVT(vbSunday))
28 Call ok(vbMonday = 2, "vbMonday = " & vbMonday)
29 Call ok(getVT(vbMonday) = "VT_I2", "getVT(vbMonday) = " & getVT(vbMonday))
30 Call ok(vbTuesday = 3, "vbTuesday = " & vbTuesday)
31 Call ok(getVT(vbTuesday) = "VT_I2", "getVT(vbTuesday) = " & getVT(vbTuesday))
32 Call ok(vbWednesday = 4, "vbWednesday = " & vbWednesday)
33 Call ok(getVT(vbWednesday) = "VT_I2", "getVT(vbWednesday) = " & getVT(vbWednesday))
34 Call ok(vbThursday = 5, "vbThursday = " & vbThursday)
35 Call ok(getVT(vbThursday) = "VT_I2", "getVT(vbThursday) = " & getVT(vbThursday))
36 Call ok(vbFriday = 6, "vbFriday = " & vbFriday)
37 Call ok(getVT(vbFriday) = "VT_I2", "getVT(vbFriday) = " & getVT(vbFriday))
38 Call ok(vbSaturday = 7, "vbSaturday = " & vbSaturday)
39 Call ok(getVT(vbSaturday) = "VT_I2", "getVT(vbSaturday) = " & getVT(vbSaturday))
40
41 Sub TestConstant(name, val, exval)
42     Call ok(val = exval, name & " =  " & val & " expected " & exval)
43     Call ok(getVT(val) = "VT_I2*", "getVT(" & name & ") = " & getVT(val))
44 End Sub
45
46 TestConstant "vbEmpty", vbEmpty, 0
47 TestConstant "vbNull", vbNull, 1
48 TestConstant "vbLong", vbLong, 3
49 TestConstant "vbSingle", vbSingle, 4
50 TestConstant "vbDouble", vbDouble, 5
51 TestConstant "vbCurrency", vbCurrency, 6
52 TestConstant "vbDate", vbDate, 7
53 TestConstant "vbString", vbString, 8
54 TestConstant "vbObject", vbObject, 9
55 TestConstant "vbError", vbError, 10
56 TestConstant "vbBoolean", vbBoolean, 11
57 TestConstant "vbVariant", vbVariant, 12
58 TestConstant "vbDataObject", vbDataObject, 13
59 TestConstant "vbDecimal", vbDecimal, 14
60 TestConstant "vbByte", vbByte, 17
61 TestConstant "vbArray", vbArray, 8192
62
63 Sub TestCStr(arg, exval)
64     dim x
65     x = CStr(arg)
66     Call ok(getVT(x) = "VT_BSTR*", "getVT(x) = " & getVT(x))
67     Call ok(x = exval, "CStr(" & arg & ") = " & x)
68 End Sub
69
70 TestCStr "test", "test"
71 TestCStr 3, "3"
72 if isEnglishLang then TestCStr 3.5, "3.5"
73 if isEnglishLang then TestCStr true, "True"
74
75 Call ok(getVT(Chr(120)) = "VT_BSTR", "getVT(Chr(120)) = " & getVT(Chr(120)))
76 Call ok(getVT(Chr(255)) = "VT_BSTR", "getVT(Chr(255)) = " & getVT(Chr(255)))
77 Call ok(Chr(120) = "x", "Chr(120) = " & Chr(120))
78
79 Call ok(isObject(new EmptyClass), "isObject(new EmptyClass) is not true?")
80 Set x = new EmptyClass
81 Call ok(isObject(x), "isObject(x) is not true?")
82 Call ok(isObject(Nothing), "isObject(Nothing) is not true?")
83 Call ok(not isObject(true), "isObject(true) is true?")
84 Call ok(not isObject(4), "isObject(4) is true?")
85 Call ok(not isObject("x"), "isObject(""x"") is true?")
86 Call ok(not isObject(Null), "isObject(Null) is true?")
87
88 Call ok(not isEmpty(new EmptyClass), "isEmpty(new EmptyClass) is true?")
89 Set x = new EmptyClass
90 Call ok(not isEmpty(x), "isEmpty(x) is true?")
91 x = empty
92 Call ok(isEmpty(x), "isEmpty(x) is not true?")
93 Call ok(isEmpty(empty), "isEmpty(empty) is not true?")
94 Call ok(not isEmpty(Nothing), "isEmpty(Nothing) is not true?")
95 Call ok(not isEmpty(true), "isEmpty(true) is true?")
96 Call ok(not isEmpty(4), "isEmpty(4) is true?")
97 Call ok(not isEmpty("x"), "isEmpty(""x"") is true?")
98 Call ok(not isEmpty(Null), "isEmpty(Null) is true?")
99
100 Call ok(not isNull(new EmptyClass), "isNull(new EmptyClass) is true?")
101 Set x = new EmptyClass
102 Call ok(not isNull(x), "isNull(x) is true?")
103 x = null
104 Call ok(isNull(x), "isNull(x) is not true?")
105 Call ok(not isNull(empty), "isNull(empty) is true?")
106 Call ok(not isNull(Nothing), "isNull(Nothing) is true?")
107 Call ok(not isNull(true), "isNull(true) is true?")
108 Call ok(not isNull(4), "isNull(4) is true?")
109 Call ok(not isNull("x"), "isNull(""x"") is true?")
110 Call ok(isNull(Null), "isNull(Null) is not true?")
111
112 Call ok(getVT(err) = "VT_DISPATCH", "getVT(err) = " & getVT(err))
113
114 Sub TestHex(x, ex)
115     Call ok(hex(x) = ex, "hex(" & x & ") = " & hex(x) & " expected " & ex)
116 End Sub
117
118 TestHex 0, "0"
119 TestHex 6, "6"
120 TestHex 16, "10"
121 TestHex &hdeadbeef&, "DEADBEEF"
122 TestHex -1, "FFFF"
123 TestHex -16, "FFF0"
124 TestHex -934859845, "C8472BBB"
125 TestHex empty, "0"
126
127 Call ok(getVT(hex(null)) = "VT_NULL", "getVT(hex(null)) = " & getVT(hex(null)))
128 Call ok(getVT(hex(empty)) = "VT_BSTR", "getVT(hex(empty)) = " & getVT(hex(empty)))
129
130 x = InStr(1, "abcd", "bc")
131 Call ok(x = 2, "InStr returned " & x)
132
133 x = InStr("abcd", "bc")
134 Call ok(x = 2, "InStr returned " & x)
135
136 x = InStr("abc", "bc")
137 Call ok(x = 2, "InStr returned " & x)
138
139 x = InStr("abcbc", "bc")
140 Call ok(x = 2, "InStr returned " & x)
141
142 x = InStr("bcabc", "bc")
143 Call ok(x = 1, "InStr returned " & x)
144
145 x = InStr(3, "abcd", "bc")
146 Call ok(x = 0, "InStr returned " & x)
147
148 x = InStr("abcd", "bcx")
149 Call ok(x = 0, "InStr returned " & x)
150
151 x = InStr(5, "abcd", "bc")
152 Call ok(x = 0, "InStr returned " & x)
153
154 x = "abcd"
155 x = InStr(x, "bc")
156 Call ok(x = 2, "InStr returned " & x)
157
158 x = InStr("abcd", null)
159 Call ok(isNull(x), "InStr returned " & x)
160 x = InStr(null, "abcd")
161 Call ok(isNull(x), "InStr returned " & x)
162 x = InStr(2, null, "abcd")
163 Call ok(isNull(x), "InStr returned " & x)
164
165 x = InStr(1.3, "abcd", "bc")
166 Call ok(x = 2, "InStr returned " & x)
167
168 x = InStr(2.3, "abcd", "bc")
169 Call ok(x = 2, "InStr returned " & x)
170
171 x = InStr(2.6, "abcd", "bc")
172 Call ok(x = 0, "InStr returned " & x)
173
174 Sub TestMid(str, start, len, ex)
175     x = Mid(str, start, len)
176     Call ok(x = ex, "Mid(" & str & ", " & start & ", " & len & ") = " & x & " expected " & ex)
177 End Sub
178
179 Sub TestMid2(str, start, ex)
180     x = Mid(str, start)
181     Call ok(x = ex, "Mid(" & str & ", " & start & ") = " & x & " expected " & ex)
182 End Sub
183
184 TestMid "test", 2, 2, "es"
185 TestMid "test", 2, 4, "est"
186 TestMid "test", 1, 2, "te"
187 TestMid "test", 1, 0, ""
188 TestMid "test", 1, 0, ""
189 TestMid "test", 5, 2, ""
190 TestMid2 "test", 1, "test"
191 TestMid2 "test", 2, "est"
192 TestMid2 "test", 4, "t"
193 TestMid2 "test", 5, ""
194
195 Sub TestUCase(str, ex)
196     x = UCase(str)
197     Call ok(x = ex, "UCase(" & str & ") = " & x & " expected " & ex)
198 End Sub
199
200 TestUCase "test", "TEST"
201 TestUCase "123aBC?", "123ABC?"
202 TestUCase "", ""
203 TestUCase 1, "1"
204 if isEnglishLang then TestUCase true, "TRUE"
205 TestUCase 0.123, doubleAsString(0.123)
206 TestUCase Empty, ""
207 Call ok(getVT(UCase(Null)) = "VT_NULL", "getVT(UCase(Null)) = " & getVT(UCase(Null)))
208
209 Sub TestLCase(str, ex)
210     x = LCase(str)
211     Call ok(x = ex, "LCase(" & str & ") = " & x & " expected " & ex)
212 End Sub
213
214 TestLCase "test", "test"
215 TestLCase "123aBC?", "123abc?"
216 TestLCase "", ""
217 TestLCase 1, "1"
218 if isEnglishLang then TestLCase true, "true"
219 TestLCase 0.123, doubleAsString(0.123)
220 TestLCase Empty, ""
221 Call ok(getVT(LCase(Null)) = "VT_NULL", "getVT(LCase(Null)) = " & getVT(LCase(Null)))
222
223 Call ok(Len("abc") = 3, "Len(abc) = " & Len("abc"))
224 Call ok(Len("") = 0, "Len() = " & Len(""))
225 Call ok(Len(1) = 1, "Len(1) = " & Len(1))
226 Call ok(isNull(Len(null)), "Len(null) = " & Len(null))
227 Call ok(Len(empty) = 0, "Len(empty) = " & Len(empty))
228
229 Call ok(Space(1) = " ", "Space(1) = " & Space(1) & """")
230 Call ok(Space(0) = "", "Space(0) = " & Space(0) & """")
231 Call ok(Space(false) = "", "Space(false) = " & Space(false) & """")
232 Call ok(Space(5) = "     ", "Space(5) = " & Space(5) & """")
233 Call ok(Space(5.2) = "     ", "Space(5.2) = " & Space(5.2) & """")
234 Call ok(Space(5.8) = "      ", "Space(5.8) = " & Space(5.8) & """")
235 Call ok(Space(5.5) = "      ", "Space(5.5) = " & Space(5.5) & """")
236
237 Sub TestStrReverse(str, ex)
238     Call ok(StrReverse(str) = ex, "StrReverse(" & str & ") = " & StrReverse(str))
239 End Sub
240
241 TestStrReverse "test", "tset"
242 TestStrReverse "", ""
243 TestStrReverse 123, "321"
244 if isEnglishLang then TestStrReverse true, "eurT"
245
246 Sub TestLeft(str, len, ex)
247     Call ok(Left(str, len) = ex, "Left(" & str & ", " & len & ") = " & Left(str, len))
248 End Sub
249
250 TestLeft "test", 2, "te"
251 TestLeft "test", 5, "test"
252 TestLeft "test", 0, ""
253 TestLeft 123, 2, "12"
254 if isEnglishLang then TestLeft true, 2, "Tr"
255
256 Sub TestRight(str, len, ex)
257     Call ok(Right(str, len) = ex, "Right(" & str & ", " & len & ") = " & Right(str, len))
258 End Sub
259
260 TestRight "test", 2, "st"
261 TestRight "test", 5, "test"
262 TestRight "test", 0, ""
263 TestRight 123, 2, "23"
264 if isEnglishLang then TestRight true, 2, "ue"
265
266 Sub TestTrim(str, exstr)
267     Call ok(Trim(str) = exstr, "Trim(" & str & ") = " & Trim(str))
268 End Sub
269
270 TestTrim "   test    ", "test"
271 TestTrim "test    ", "test"
272 TestTrim "   test", "test"
273 TestTrim "test", "test"
274 TestTrim "", ""
275 TestTrim 123, "123"
276 if isEnglishLang then TestTrim true, "True"
277
278 Sub TestLTrim(str, exstr)
279     Call ok(LTrim(str) = exstr, "LTrim(" & str & ") = " & LTrim(str))
280 End Sub
281
282 TestLTrim "   test    ", "test    "
283 TestLTrim "test    ", "test    "
284 TestLTrim "   test", "test"
285 TestLTrim "test", "test"
286 TestLTrim "", ""
287 TestLTrim 123, "123"
288 if isEnglishLang then TestLTrim true, "True"
289
290 Sub TestRound(val, exval, vt)
291     Call ok(Round(val) = exval, "Round(" & val & ") = " & Round(val))
292     Call ok(getVT(Round(val)) = vt, "getVT(Round(" & val & ")) = " & getVT(Round(val)))
293 End Sub
294
295 Sub TestRTrim(str, exstr)
296     Call ok(RTrim(str) = exstr, "RTrim(" & str & ") = " & RTrim(str))
297 End Sub
298
299 TestRTrim "   test    ", "   test"
300 TestRTrim "test    ", "test"
301 TestRTrim "   test", "   test"
302 TestRTrim "test", "test"
303 TestRTrim "", ""
304 TestRTrim 123, "123"
305 if isEnglishLang then TestRTrim true, "True"
306
307 TestRound 3, 3, "VT_I2"
308 TestRound 3.3, 3, "VT_R8"
309 TestRound 3.8, 4, "VT_R8"
310 TestRound 3.5, 4, "VT_R8"
311 TestRound -3.3, -3, "VT_R8"
312 TestRound -3.5, -4, "VT_R8"
313 TestRound "2", 2, "VT_R8"
314 TestRound true, true, "VT_BOOL"
315 TestRound false, false, "VT_BOOL"
316
317 if isEnglishLang then
318     Call ok(WeekDayName(1) = "Sunday", "WeekDayName(1) = " & WeekDayName(1))
319     Call ok(WeekDayName(3) = "Tuesday", "WeekDayName(3) = " & WeekDayName(3))
320     Call ok(WeekDayName(7) = "Saturday", "WeekDayName(7) = " & WeekDayName(7))
321     Call ok(WeekDayName(1.1) = "Sunday", "WeekDayName(1.1) = " & WeekDayName(1.1))
322     Call ok(WeekDayName(1, false) = "Sunday", "WeekDayName(1, false) = " & WeekDayName(1, false))
323     Call ok(WeekDayName(1, true) = "Sun", "WeekDayName(1, true) = " & WeekDayName(1, true))
324     Call ok(WeekDayName(1, 10) = "Sun", "WeekDayName(1, 10) = " & WeekDayName(1, 10))
325     Call ok(WeekDayName(1, true, 0) = "Sun", "WeekDayName(1, true, 0) = " & WeekDayName(1, true, 0))
326     Call ok(WeekDayName(1, true, 2) = "Mon", "WeekDayName(1, true, 2) = " & WeekDayName(1, true, 2))
327     Call ok(WeekDayName(1, true, 7) = "Sat", "WeekDayName(1, true, 7) = " & WeekDayName(1, true, 7))
328     Call ok(WeekDayName(1, true, 7.1) = "Sat", "WeekDayName(1, true, 7.1) = " & WeekDayName(1, true, 7.1))
329
330     Call ok(MonthName(1) = "January", "MonthName(1) = " & MonthName(1))
331     Call ok(MonthName(12) = "December", "MonthName(12) = " & MonthName(12))
332     Call ok(MonthName(1, 0) = "January", "MonthName(1, 0) = " & MonthName(1, 0))
333     Call ok(MonthName(12, false) = "December", "MonthName(12, false) = " & MonthName(12, false))
334     Call ok(MonthName(1, 10) = "Jan", "MonthName(1, 10) = " & MonthName(1, 10))
335     Call ok(MonthName(12, true) = "Dec", "MonthName(12, true) = " & MonthName(12, true))
336 end if
337
338 Call ok(getVT(Now()) = "VT_DATE", "getVT(Now()) = " & getVT(Now()))
339
340 Call ok(vbOKOnly = 0, "vbOKOnly = " & vbOKOnly)
341 Call ok(getVT(vbOKOnly) = "VT_I2", "getVT(vbOKOnly) = " & getVT(vbOKOnly))
342 Call ok(vbOKCancel = 1, "vbOKCancel = " & vbOKCancel)
343 Call ok(getVT(vbOKCancel) = "VT_I2", "getVT(vbOKCancel) = " & getVT(vbOKCancel))
344 Call ok(vbAbortRetryIgnore = 2, "vbAbortRetryIgnore = " & vbAbortRetryIgnore)
345 Call ok(getVT(vbAbortRetryIgnore) = "VT_I2", "getVT(vbAbortRetryIgnore) = " & getVT(vbAbortRetryIgnore))
346 Call ok(vbYesNoCancel = 3, "vbYesNoCancel = " & vbYesNoCancel)
347 Call ok(getVT(vbYesNoCancel) = "VT_I2", "getVT(vbYesNoCancel) = " & getVT(vbYesNoCancel))
348 Call ok(vbYesNo = 4, "vbYesNo = " & vbYesNo)
349 Call ok(getVT(vbYesNo) = "VT_I2", "getVT(vbYesNo) = " & getVT(vbYesNo))
350 Call ok(vbRetryCancel = 5, "vbRetryCancel = " & vbRetryCancel)
351 Call ok(getVT(vbRetryCancel) = "VT_I2", "getVT(vbRetryCancel) = " & getVT(vbRetryCancel))
352
353 Call ok(vbOK = 1, "vbOK = " & vbOK)
354 Call ok(getVT(vbOK) = "VT_I2", "getVT(vbOK) = " & getVT(vbOK))
355 Call ok(vbCancel = 2, "vbCancel = " & vbCancel)
356 Call ok(getVT(vbCancel) = "VT_I2", "getVT(vbCancel) = " & getVT(vbCancel))
357 Call ok(vbAbort = 3, "vbAbort = " & vbAbort)
358 Call ok(getVT(vbAbort) = "VT_I2", "getVT(vbAbort) = " & getVT(vbAbort))
359 Call ok(vbRetry = 4, "vbRetry = " & vbRetry)
360 Call ok(getVT(vbRetry) = "VT_I2", "getVT(vbRetry) = " & getVT(vbRetry))
361 Call ok(vbIgnore = 5, "vbIgnore = " & vbIgnore)
362 Call ok(getVT(vbIgnore) = "VT_I2", "getVT(vbIgnore) = " & getVT(vbIgnore))
363 Call ok(vbYes = 6, "vbYes = " & vbYes)
364 Call ok(getVT(vbYes) = "VT_I2", "getVT(vbYes) = " & getVT(vbYes))
365 Call ok(vbNo = 7, "vbNo = " & vbNo)
366 Call ok(getVT(vbNo) = "VT_I2", "getVT(vbNo) = " & getVT(vbNo))
367
368 Call reportSuccess()