1/****************************************************************************
2**
3** Copyright (C) 2018 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the test suite of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 as published by the Free Software
20** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21** included in the packaging of this file. Please review the following
22** information to ensure the GNU General Public License requirements will
23** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24**
25** $QT_END_LICENSE$
26**
27****************************************************************************/
28
29#ifndef TST_QSCRIPTVALUE_H
30#define TST_QSCRIPTVALUE_H
31
32#include <QtCore/qobject.h>
33#include <QtCore/qnumeric.h>
34#include <QtScript/qscriptclass.h>
35#include <QtScript/qscriptengine.h>
36#include <QtScript/qscriptvalue.h>
37#include <QtTest/QtTest>
38
39#define DEFINE_TEST_VALUE(expr) m_values.insert(QString::fromLatin1(#expr), expr)
40
41Q_DECLARE_METATYPE(QVariant)
42Q_DECLARE_METATYPE(QScriptValue)
43
44class tst_QScriptValueGenerated : public QObject
45{
46 Q_OBJECT
47
48public:
49 tst_QScriptValueGenerated();
50 virtual ~tst_QScriptValueGenerated();
51
52private slots:
53 // Generated test functions
54 void isArray_data();
55 void isArray();
56
57 void isBool_data();
58 void isBool();
59
60 void isBoolean_data();
61 void isBoolean();
62
63 void isDate_data();
64 void isDate();
65
66 void isError_data();
67 void isError();
68
69 void isFunction_data();
70 void isFunction();
71
72 void isNull_data();
73 void isNull();
74
75 void isNumber_data();
76 void isNumber();
77
78 void isObject_data();
79 void isObject();
80
81 void isQMetaObject_data();
82 void isQMetaObject();
83
84 void isQObject_data();
85 void isQObject();
86
87 void isRegExp_data();
88 void isRegExp();
89
90 void isString_data();
91 void isString();
92
93 void isUndefined_data();
94 void isUndefined();
95
96 void isValid_data();
97 void isValid();
98
99 void isVariant_data();
100 void isVariant();
101
102 void toBool_data();
103 void toBool();
104
105 void toBoolean_data();
106 void toBoolean();
107
108// void toDateTime_data();
109// void toDateTime();
110
111 void toInt32_data();
112 void toInt32();
113
114 void toInteger_data();
115 void toInteger();
116
117 void toNumber_data();
118 void toNumber();
119
120// void toQMetaObject_data();
121// void toQMetaObject();
122
123// void toQObject_data();
124// void toQObject();
125
126// void toRegExp_data();
127// void toRegExp();
128
129 void toString_data();
130 void toString();
131
132 void toUInt16_data();
133 void toUInt16();
134
135 void toUInt32_data();
136 void toUInt32();
137
138// void toVariant_data();
139// void toVariant();
140
141 void equals_data();
142 void equals();
143
144 void strictlyEquals_data();
145 void strictlyEquals();
146
147 void lessThan_data();
148 void lessThan();
149
150 void instanceOf_data();
151 void instanceOf();
152
153 void assignAndCopyConstruct_data();
154 void assignAndCopyConstruct();
155
156 void qscriptvalue_castQString_data();
157 void qscriptvalue_castQString();
158
159 void qscriptvalue_castqsreal_data();
160 void qscriptvalue_castqsreal();
161
162 void qscriptvalue_castbool_data();
163 void qscriptvalue_castbool();
164
165 void qscriptvalue_castqint32_data();
166 void qscriptvalue_castqint32();
167
168 void qscriptvalue_castquint32_data();
169 void qscriptvalue_castquint32();
170
171 void qscriptvalue_castquint16_data();
172 void qscriptvalue_castquint16();
173
174private:
175 typedef void (tst_QScriptValueGenerated::*InitDataFunction)();
176 typedef void (tst_QScriptValueGenerated::*DefineDataFunction)(const char *);
177 void dataHelper(InitDataFunction init, DefineDataFunction define);
178 QTestData &newRow(const char *tag);
179
180 typedef void (tst_QScriptValueGenerated::*TestFunction)(const char *, const QScriptValue &);
181 void testHelper(TestFunction fun);
182
183 // Generated functions
184
185 void initScriptValues();
186
187 void isArray_initData();
188 void isArray_makeData(const char *expr);
189 void isArray_test(const char *expr, const QScriptValue &value);
190
191 void isBool_initData();
192 void isBool_makeData(const char *expr);
193 void isBool_test(const char *expr, const QScriptValue &value);
194
195 void isBoolean_initData();
196 void isBoolean_makeData(const char *expr);
197 void isBoolean_test(const char *expr, const QScriptValue &value);
198
199 void isDate_initData();
200 void isDate_makeData(const char *expr);
201 void isDate_test(const char *expr, const QScriptValue &value);
202
203 void isError_initData();
204 void isError_makeData(const char *expr);
205 void isError_test(const char *expr, const QScriptValue &value);
206
207 void isFunction_initData();
208 void isFunction_makeData(const char *expr);
209 void isFunction_test(const char *expr, const QScriptValue &value);
210
211 void isNull_initData();
212 void isNull_makeData(const char *expr);
213 void isNull_test(const char *expr, const QScriptValue &value);
214
215 void isNumber_initData();
216 void isNumber_makeData(const char *expr);
217 void isNumber_test(const char *expr, const QScriptValue &value);
218
219 void isObject_initData();
220 void isObject_makeData(const char *expr);
221 void isObject_test(const char *expr, const QScriptValue &value);
222
223 void isQMetaObject_initData();
224 void isQMetaObject_makeData(const char *expr);
225 void isQMetaObject_test(const char *expr, const QScriptValue &value);
226
227 void isQObject_initData();
228 void isQObject_makeData(const char *expr);
229 void isQObject_test(const char *expr, const QScriptValue &value);
230
231 void isRegExp_initData();
232 void isRegExp_makeData(const char *expr);
233 void isRegExp_test(const char *expr, const QScriptValue &value);
234
235 void isString_initData();
236 void isString_makeData(const char *expr);
237 void isString_test(const char *expr, const QScriptValue &value);
238
239 void isUndefined_initData();
240 void isUndefined_makeData(const char *expr);
241 void isUndefined_test(const char *expr, const QScriptValue &value);
242
243 void isValid_initData();
244 void isValid_makeData(const char *expr);
245 void isValid_test(const char *expr, const QScriptValue &value);
246
247 void isVariant_initData();
248 void isVariant_makeData(const char *expr);
249 void isVariant_test(const char *expr, const QScriptValue &value);
250
251 void toBool_initData();
252 void toBool_makeData(const char *);
253 void toBool_test(const char *, const QScriptValue &value);
254
255 void toBoolean_initData();
256 void toBoolean_makeData(const char *);
257 void toBoolean_test(const char *, const QScriptValue &value);
258
259 void toDateTime_initData();
260 void toDateTime_makeData(const char *);
261 void toDateTime_test(const char *, const QScriptValue &value);
262
263 void toInt32_initData();
264 void toInt32_makeData(const char *);
265 void toInt32_test(const char *, const QScriptValue &value);
266
267 void toInteger_initData();
268 void toInteger_makeData(const char *);
269 void toInteger_test(const char *, const QScriptValue &value);
270
271 void toNumber_initData();
272 void toNumber_makeData(const char *);
273 void toNumber_test(const char *, const QScriptValue &value);
274
275 void toQMetaObject_initData();
276 void toQMetaObject_makeData(const char *);
277 void toQMetaObject_test(const char *, const QScriptValue &value);
278
279 void toQObject_initData();
280 void toQObject_makeData(const char *);
281 void toQObject_test(const char *, const QScriptValue &value);
282
283 void toRegExp_initData();
284 void toRegExp_makeData(const char *);
285 void toRegExp_test(const char *, const QScriptValue &value);
286
287 void toString_initData();
288 void toString_makeData(const char *);
289 void toString_test(const char *, const QScriptValue &value);
290
291 void toUInt16_initData();
292 void toUInt16_makeData(const char *);
293 void toUInt16_test(const char *, const QScriptValue &value);
294
295 void toUInt32_initData();
296 void toUInt32_makeData(const char *);
297 void toUInt32_test(const char *, const QScriptValue &value);
298
299 void toVariant_initData();
300 void toVariant_makeData(const char *);
301 void toVariant_test(const char *, const QScriptValue &value);
302
303 void equals_initData();
304 void equals_makeData(const char *);
305 void equals_test(const char *, const QScriptValue &value);
306
307 void strictlyEquals_initData();
308 void strictlyEquals_makeData(const char *);
309 void strictlyEquals_test(const char *, const QScriptValue &value);
310
311 void lessThan_initData();
312 void lessThan_makeData(const char *);
313 void lessThan_test(const char *, const QScriptValue &value);
314
315 void instanceOf_initData();
316 void instanceOf_makeData(const char *);
317 void instanceOf_test(const char *, const QScriptValue &value);
318
319 void assignAndCopyConstruct_initData();
320 void assignAndCopyConstruct_makeData(const char *);
321 void assignAndCopyConstruct_test(const char *, const QScriptValue &value);
322
323 void qscriptvalue_castQString_initData();
324 void qscriptvalue_castQString_makeData(const char *);
325 void qscriptvalue_castQString_test(const char *, const QScriptValue &value);
326
327 void qscriptvalue_castqsreal_initData();
328 void qscriptvalue_castqsreal_makeData(const char *);
329 void qscriptvalue_castqsreal_test(const char *, const QScriptValue &value);
330
331 void qscriptvalue_castbool_initData();
332 void qscriptvalue_castbool_makeData(const char *);
333 void qscriptvalue_castbool_test(const char *, const QScriptValue &value);
334
335 void qscriptvalue_castqint32_initData();
336 void qscriptvalue_castqint32_makeData(const char *);
337 void qscriptvalue_castqint32_test(const char *, const QScriptValue &value);
338
339 void qscriptvalue_castquint32_initData();
340 void qscriptvalue_castquint32_makeData(const char *);
341 void qscriptvalue_castquint32_test(const char *, const QScriptValue &value);
342
343 void qscriptvalue_castquint16_initData();
344 void qscriptvalue_castquint16_makeData(const char *);
345 void qscriptvalue_castquint16_test(const char *, const QScriptValue &value);
346
347private:
348 QScriptEngine *engine;
349 QHash<QString, QScriptValue> m_values;
350 QString m_currentExpression;
351};
352
353static inline QSet<QString> charArrayToQStringSet(const char **array, int size)
354{
355 QSet<QString> result;
356 result.reserve(asize: size);
357 for (int i = 0; i < size; ++i)
358 result.insert(value: QLatin1String(array[i]));
359 return result;
360}
361
362static inline QHash<QString, QString> charArraysToStringHash(const char **keys, const char **values, int size)
363{
364 QHash<QString, QString > result;
365 result.reserve(asize: size);
366 for (int i = 0; i < size; ++i)
367 result.insert(akey: QLatin1String(keys[i]), avalue: QLatin1String(values[i]));
368 return result;
369}
370
371template <class Value>
372QHash<QString, Value> charValueArraysToHash(const char **keys, const Value *values, int size)
373{
374 QHash<QString, Value> result;
375 result.reserve(size);
376 for (int i = 0; i < size; ++i)
377 result.insert(QLatin1String(keys[i]), values[i]);
378 return result;
379}
380
381#define DEFINE_TEST_FUNCTION(name) \
382void tst_QScriptValueGenerated::name##_data() { dataHelper(&tst_QScriptValueGenerated::name##_initData, &tst_QScriptValueGenerated::name##_makeData); } \
383void tst_QScriptValueGenerated::name() { testHelper(&tst_QScriptValueGenerated::name##_test); }
384
385#endif
386

source code of qtscript/tests/auto/qscriptvaluegenerated/tst_qscriptvalue.h