Skip to content

Latest commit

 

History

History
3671 lines (3208 loc) · 141 KB

tst_qjsvalue.cpp

File metadata and controls

3671 lines (3208 loc) · 141 KB
 
1
2
/****************************************************************************
**
Jan 5, 2012
Jan 5, 2012
3
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
Jan 23, 2012
Jan 23, 2012
4
** Contact: http://www.qt-project.org/
5
6
7
8
9
**
** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
Sep 16, 2011
Sep 16, 2011
10
11
12
13
14
15
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16
17
**
** In addition, as a special exception, Nokia gives you certain additional
Sep 16, 2011
Sep 16, 2011
18
** rights. These rights are described in the Nokia Qt LGPL Exception
19
20
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
Sep 16, 2011
Sep 16, 2011
21
22
23
24
25
26
27
28
29
30
31
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
32
33
34
35
36
**
**
**
**
**
Jan 30, 2012
Jan 30, 2012
37
**
38
39
40
41
42
** $QT_END_LICENSE$
**
****************************************************************************/
#include "tst_qjsvalue.h"
Aug 24, 2011
Aug 24, 2011
43
#include <QtWidgets/QPushButton>
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
QT_BEGIN_NAMESPACE
extern bool qt_script_isJITEnabled();
QT_END_NAMESPACE
tst_QJSValue::tst_QJSValue()
: engine(0)
{
}
tst_QJSValue::~tst_QJSValue()
{
if (engine)
delete engine;
}
void tst_QJSValue::ctor_invalid()
{
QJSEngine eng;
{
QJSValue v;
Feb 2, 2012
Feb 2, 2012
65
QVERIFY(v.isUndefined());
66
67
68
69
70
71
72
73
QCOMPARE(v.engine(), (QJSEngine *)0);
}
}
void tst_QJSValue::ctor_undefinedWithEngine()
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
74
QJSValue v = eng.toScriptValue(QVariant());
Feb 2, 2012
Feb 2, 2012
75
QVERIFY(v.isUndefined());
76
77
78
79
80
81
82
83
84
QCOMPARE(v.isObject(), false);
QCOMPARE(v.engine(), &eng);
}
}
void tst_QJSValue::ctor_nullWithEngine()
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
85
QJSValue v = eng.evaluate("null");
Feb 2, 2012
Feb 2, 2012
86
QVERIFY(!v.isUndefined());
87
88
89
90
91
92
93
94
95
96
QCOMPARE(v.isNull(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.engine(), &eng);
}
}
void tst_QJSValue::ctor_boolWithEngine()
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
97
QJSValue v = eng.toScriptValue(false);
Feb 2, 2012
Feb 2, 2012
98
QVERIFY(!v.isUndefined());
Jan 11, 2012
Jan 11, 2012
99
QCOMPARE(v.isBool(), true);
100
QCOMPARE(v.isObject(), false);
Jan 11, 2012
Jan 11, 2012
101
QCOMPARE(v.toBool(), false);
102
103
104
105
106
107
108
109
QCOMPARE(v.engine(), &eng);
}
}
void tst_QJSValue::ctor_intWithEngine()
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
110
QJSValue v = eng.toScriptValue(int(1));
Feb 2, 2012
Feb 2, 2012
111
QVERIFY(!v.isUndefined());
112
113
114
115
116
117
118
119
120
121
122
123
QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), &eng);
}
}
void tst_QJSValue::ctor_int()
{
{
QJSValue v(int(0x43211234));
QVERIFY(v.isNumber());
Jan 20, 2012
Jan 20, 2012
124
QCOMPARE(v.toInt(), 0x43211234);
125
126
127
}
{
QJSValue v(int(1));
Feb 2, 2012
Feb 2, 2012
128
QVERIFY(!v.isUndefined());
129
130
131
132
133
134
135
136
137
138
139
QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), (QJSEngine *)0);
}
}
void tst_QJSValue::ctor_uintWithEngine()
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
140
QJSValue v = eng.toScriptValue(uint(1));
Feb 2, 2012
Feb 2, 2012
141
QVERIFY(!v.isUndefined());
142
143
144
145
146
147
148
149
150
151
152
153
QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), &eng);
}
}
void tst_QJSValue::ctor_uint()
{
{
QJSValue v(uint(0x43211234));
QVERIFY(v.isNumber());
Jan 20, 2012
Jan 20, 2012
154
QCOMPARE(v.toUInt(), uint(0x43211234));
155
156
157
}
{
QJSValue v(uint(1));
Feb 2, 2012
Feb 2, 2012
158
QVERIFY(!v.isUndefined());
159
160
161
162
163
164
165
166
167
168
169
QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), (QJSEngine *)0);
}
}
void tst_QJSValue::ctor_floatWithEngine()
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
170
QJSValue v = eng.toScriptValue(float(1.0));
Feb 2, 2012
Feb 2, 2012
171
QVERIFY(!v.isUndefined());
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), &eng);
}
}
void tst_QJSValue::ctor_float()
{
{
QJSValue v(12345678910.5);
QVERIFY(v.isNumber());
QCOMPARE(v.toNumber(), 12345678910.5);
}
{
QJSValue v(1.0);
Feb 2, 2012
Feb 2, 2012
188
QVERIFY(!v.isUndefined());
189
190
191
192
193
194
195
196
197
198
199
QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), (QJSEngine *)0);
}
}
void tst_QJSValue::ctor_stringWithEngine()
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
200
QJSValue v = eng.toScriptValue(QString::fromLatin1("ciao"));
Feb 2, 2012
Feb 2, 2012
201
QVERIFY(!v.isUndefined());
202
203
204
205
206
207
208
209
210
211
212
QCOMPARE(v.isString(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toString(), QLatin1String("ciao"));
QCOMPARE(v.engine(), &eng);
}
}
void tst_QJSValue::ctor_string()
{
{
QJSValue v(QString("ciao"));
Feb 2, 2012
Feb 2, 2012
213
QVERIFY(!v.isUndefined());
214
215
216
217
218
219
220
QCOMPARE(v.isString(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toString(), QLatin1String("ciao"));
QCOMPARE(v.engine(), (QJSEngine *)0);
}
{
QJSValue v("ciao");
Feb 2, 2012
Feb 2, 2012
221
QVERIFY(!v.isUndefined());
222
223
224
225
226
227
228
229
230
231
232
233
QCOMPARE(v.isString(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.toString(), QLatin1String("ciao"));
QCOMPARE(v.engine(), (QJSEngine *)0);
}
}
void tst_QJSValue::ctor_copyAndAssignWithEngine()
{
QJSEngine eng;
// copy constructor, operator=
{
Feb 2, 2012
Feb 2, 2012
234
QJSValue v = eng.toScriptValue(1.0);
235
236
237
238
239
240
241
242
243
QJSValue v2(v);
QCOMPARE(v2.strictlyEquals(v), true);
QCOMPARE(v2.engine(), &eng);
QJSValue v3(v);
QCOMPARE(v3.strictlyEquals(v), true);
QCOMPARE(v3.strictlyEquals(v2), true);
QCOMPARE(v3.engine(), &eng);
Feb 2, 2012
Feb 2, 2012
244
QJSValue v4 = eng.toScriptValue(2.0);
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
QCOMPARE(v4.strictlyEquals(v), false);
v3 = v4;
QCOMPARE(v3.strictlyEquals(v), false);
QCOMPARE(v3.strictlyEquals(v4), true);
v2 = QJSValue();
QCOMPARE(v2.strictlyEquals(v), false);
QCOMPARE(v.toNumber(), 1.0);
QJSValue v5(v);
QCOMPARE(v5.strictlyEquals(v), true);
v = QJSValue();
QCOMPARE(v5.strictlyEquals(v), false);
QCOMPARE(v5.toNumber(), 1.0);
}
}
void tst_QJSValue::ctor_undefined()
{
QJSValue v(QJSValue::UndefinedValue);
Feb 2, 2012
Feb 2, 2012
265
QVERIFY(v.isUndefined());
266
267
268
269
270
271
272
QCOMPARE(v.isObject(), false);
QCOMPARE(v.engine(), (QJSEngine *)0);
}
void tst_QJSValue::ctor_null()
{
QJSValue v(QJSValue::NullValue);
Feb 2, 2012
Feb 2, 2012
273
QVERIFY(!v.isUndefined());
274
275
276
277
278
279
280
281
QCOMPARE(v.isNull(), true);
QCOMPARE(v.isObject(), false);
QCOMPARE(v.engine(), (QJSEngine *)0);
}
void tst_QJSValue::ctor_bool()
{
QJSValue v(false);
Feb 2, 2012
Feb 2, 2012
282
QVERIFY(!v.isUndefined());
Jan 11, 2012
Jan 11, 2012
283
QCOMPARE(v.isBool(), true);
284
285
QCOMPARE(v.isBool(), true);
QCOMPARE(v.isObject(), false);
Jan 11, 2012
Jan 11, 2012
286
QCOMPARE(v.toBool(), false);
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
QCOMPARE(v.engine(), (QJSEngine *)0);
}
void tst_QJSValue::ctor_copyAndAssign()
{
QJSValue v(1.0);
QJSValue v2(v);
QCOMPARE(v2.strictlyEquals(v), true);
QCOMPARE(v2.engine(), (QJSEngine *)0);
QJSValue v3(v);
QCOMPARE(v3.strictlyEquals(v), true);
QCOMPARE(v3.strictlyEquals(v2), true);
QCOMPARE(v3.engine(), (QJSEngine *)0);
QJSValue v4(2.0);
QCOMPARE(v4.strictlyEquals(v), false);
v3 = v4;
QCOMPARE(v3.strictlyEquals(v), false);
QCOMPARE(v3.strictlyEquals(v4), true);
v2 = QJSValue();
QCOMPARE(v2.strictlyEquals(v), false);
QCOMPARE(v.toNumber(), 1.0);
QJSValue v5(v);
QCOMPARE(v5.strictlyEquals(v), true);
v = QJSValue();
QCOMPARE(v5.strictlyEquals(v), false);
QCOMPARE(v5.toNumber(), 1.0);
}
#if 0 // FIXME: No c-style callbacks currently
static QJSValue myFunction(QScriptContext *, QScriptEngine *eng)
{
return eng->undefinedValue();
}
#endif
void tst_QJSValue::toString()
{
QJSEngine eng;
Feb 2, 2012
Feb 2, 2012
330
QJSValue undefined = eng.toScriptValue(QVariant());
331
332
333
QCOMPARE(undefined.toString(), QString("undefined"));
QCOMPARE(qjsvalue_cast<QString>(undefined), QString());
Feb 2, 2012
Feb 2, 2012
334
QJSValue null = eng.evaluate("null");
335
336
337
338
QCOMPARE(null.toString(), QString("null"));
QCOMPARE(qjsvalue_cast<QString>(null), QString());
{
Feb 2, 2012
Feb 2, 2012
339
QJSValue falskt = eng.toScriptValue(false);
340
341
342
QCOMPARE(falskt.toString(), QString("false"));
QCOMPARE(qjsvalue_cast<QString>(falskt), QString("false"));
Feb 2, 2012
Feb 2, 2012
343
QJSValue sant = eng.toScriptValue(true);
344
345
346
347
QCOMPARE(sant.toString(), QString("true"));
QCOMPARE(qjsvalue_cast<QString>(sant), QString("true"));
}
{
Feb 2, 2012
Feb 2, 2012
348
QJSValue number = eng.toScriptValue(123);
349
350
351
352
QCOMPARE(number.toString(), QString("123"));
QCOMPARE(qjsvalue_cast<QString>(number), QString("123"));
}
{
Feb 2, 2012
Feb 2, 2012
353
QJSValue number = eng.toScriptValue(6.37e-8);
354
355
356
QCOMPARE(number.toString(), QString("6.37e-8"));
}
{
Feb 2, 2012
Feb 2, 2012
357
QJSValue number = eng.toScriptValue(-6.37e-8);
358
359
QCOMPARE(number.toString(), QString("-6.37e-8"));
Feb 2, 2012
Feb 2, 2012
360
QJSValue str = eng.toScriptValue(QString("ciao"));
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
QCOMPARE(str.toString(), QString("ciao"));
QCOMPARE(qjsvalue_cast<QString>(str), QString("ciao"));
}
QJSValue object = eng.newObject();
QCOMPARE(object.toString(), QString("[object Object]"));
QCOMPARE(qjsvalue_cast<QString>(object), QString("[object Object]"));
// FIXME: No c-style callbacks currently
#if 0
QJSValue fun = eng.newFunction(myFunction);
QCOMPARE(fun.toString().simplified(), QString("function () { [native code] }"));
QCOMPARE(qscriptvalue_cast<QString>(fun).simplified(), QString("function () { [native code] }"));
#endif
// toString() that throws exception
{
QJSValue objectObject = eng.evaluate(
"(function(){"
" o = { };"
" o.toString = function() { throw new Error('toString'); };"
" return o;"
"})()");
QCOMPARE(objectObject.toString(), QLatin1String("Error: toString"));
QVERIFY(eng.hasUncaughtException());
QCOMPARE(eng.uncaughtException().toString(), QLatin1String("Error: toString"));
}
{
eng.clearExceptions();
QJSValue objectObject = eng.evaluate(
"(function(){"
" var f = function() {};"
" f.prototype = Date;"
" return new f;"
"})()");
QVERIFY(!eng.hasUncaughtException());
QVERIFY(objectObject.isObject());
QCOMPARE(objectObject.toString(), QString::fromLatin1("TypeError: Function.prototype.toString is not generic"));
QVERIFY(eng.hasUncaughtException());
eng.clearExceptions();
}
QJSValue inv = QJSValue();
Feb 2, 2012
Feb 2, 2012
404
QCOMPARE(inv.toString(), QString::fromLatin1("undefined"));
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
// V2 constructors
{
QJSValue falskt = QJSValue(false);
QCOMPARE(falskt.toString(), QString("false"));
QCOMPARE(qjsvalue_cast<QString>(falskt), QString("false"));
QJSValue sant = QJSValue(true);
QCOMPARE(sant.toString(), QString("true"));
QCOMPARE(qjsvalue_cast<QString>(sant), QString("true"));
QJSValue number = QJSValue(123);
QCOMPARE(number.toString(), QString("123"));
QCOMPARE(qjsvalue_cast<QString>(number), QString("123"));
QJSValue number2(int(0x43211234));
QCOMPARE(number2.toString(), QString("1126240820"));
QJSValue str = QJSValue(QString("ciao"));
QCOMPARE(str.toString(), QString("ciao"));
QCOMPARE(qjsvalue_cast<QString>(str), QString("ciao"));
}
// variant should use internal valueOf(), then fall back to QVariant::toString(),
// then fall back to "QVariant(typename)"
Feb 1, 2012
Feb 1, 2012
430
QJSValue variant = eng.toScriptValue(QPoint(10, 20));
431
432
QVERIFY(variant.isVariant());
QCOMPARE(variant.toString(), QString::fromLatin1("QVariant(QPoint)"));
Feb 1, 2012
Feb 1, 2012
433
434
variant = eng.toScriptValue(QUrl());
QVERIFY(variant.isVariant());
435
436
437
438
439
440
441
QVERIFY(variant.toString().isEmpty());
}
void tst_QJSValue::toNumber()
{
QJSEngine eng;
Feb 2, 2012
Feb 2, 2012
442
QJSValue undefined = eng.toScriptValue(QVariant());
443
444
445
QCOMPARE(qIsNaN(undefined.toNumber()), true);
QCOMPARE(qIsNaN(qjsvalue_cast<qreal>(undefined)), true);
Feb 2, 2012
Feb 2, 2012
446
QJSValue null = eng.evaluate("null");
447
448
449
450
QCOMPARE(null.toNumber(), 0.0);
QCOMPARE(qjsvalue_cast<qreal>(null), 0.0);
{
Feb 2, 2012
Feb 2, 2012
451
QJSValue falskt = eng.toScriptValue(false);
452
453
454
QCOMPARE(falskt.toNumber(), 0.0);
QCOMPARE(qjsvalue_cast<qreal>(falskt), 0.0);
Feb 2, 2012
Feb 2, 2012
455
QJSValue sant = eng.toScriptValue(true);
456
457
458
QCOMPARE(sant.toNumber(), 1.0);
QCOMPARE(qjsvalue_cast<qreal>(sant), 1.0);
Feb 2, 2012
Feb 2, 2012
459
QJSValue number = eng.toScriptValue(123.0);
460
461
462
QCOMPARE(number.toNumber(), 123.0);
QCOMPARE(qjsvalue_cast<qreal>(number), 123.0);
Feb 2, 2012
Feb 2, 2012
463
QJSValue str = eng.toScriptValue(QString("ciao"));
464
465
466
QCOMPARE(qIsNaN(str.toNumber()), true);
QCOMPARE(qIsNaN(qjsvalue_cast<qreal>(str)), true);
Feb 2, 2012
Feb 2, 2012
467
QJSValue str2 = eng.toScriptValue(QString("123"));
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
QCOMPARE(str2.toNumber(), 123.0);
QCOMPARE(qjsvalue_cast<qreal>(str2), 123.0);
}
QJSValue object = eng.newObject();
QCOMPARE(qIsNaN(object.toNumber()), true);
QCOMPARE(qIsNaN(qjsvalue_cast<qreal>(object)), true);
// FIXME: No c-style callbacks currently
#if 0
QJSValue fun = eng.newFunction(myFunction);
QCOMPARE(qIsNaN(fun.toNumber()), true);
QCOMPARE(qIsNaN(qscriptvalue_cast<qreal>(fun)), true);
#endif
QJSValue inv = QJSValue();
Feb 2, 2012
Feb 2, 2012
484
485
QVERIFY(qIsNaN(inv.toNumber()));
QVERIFY(qIsNaN(qjsvalue_cast<qreal>(inv)));
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
// V2 constructors
{
QJSValue falskt = QJSValue(false);
QCOMPARE(falskt.toNumber(), 0.0);
QCOMPARE(qjsvalue_cast<qreal>(falskt), 0.0);
QJSValue sant = QJSValue(true);
QCOMPARE(sant.toNumber(), 1.0);
QCOMPARE(qjsvalue_cast<qreal>(sant), 1.0);
QJSValue number = QJSValue(123.0);
QCOMPARE(number.toNumber(), 123.0);
QCOMPARE(qjsvalue_cast<qreal>(number), 123.0);
QJSValue number2(int(0x43211234));
QCOMPARE(number2.toNumber(), 1126240820.0);
QJSValue str = QJSValue(QString("ciao"));
QCOMPARE(qIsNaN(str.toNumber()), true);
QCOMPARE(qIsNaN(qjsvalue_cast<qreal>(str)), true);
QJSValue str2 = QJSValue(QString("123"));
QCOMPARE(str2.toNumber(), 123.0);
QCOMPARE(qjsvalue_cast<qreal>(str2), 123.0);
}
}
void tst_QJSValue::toBoolean() // deprecated
{
QJSEngine eng;
Feb 2, 2012
Feb 2, 2012
518
QJSValue undefined = eng.toScriptValue(QVariant());
Jan 11, 2012
Jan 11, 2012
519
QCOMPARE(undefined.toBool(), false);
520
521
QCOMPARE(qjsvalue_cast<bool>(undefined), false);
Feb 2, 2012
Feb 2, 2012
522
QJSValue null = eng.evaluate("null");
Jan 11, 2012
Jan 11, 2012
523
QCOMPARE(null.toBool(), false);
524
525
526
QCOMPARE(qjsvalue_cast<bool>(null), false);
{
Feb 2, 2012
Feb 2, 2012
527
QJSValue falskt = eng.toScriptValue(false);
Jan 11, 2012
Jan 11, 2012
528
QCOMPARE(falskt.toBool(), false);
529
530
QCOMPARE(qjsvalue_cast<bool>(falskt), false);
Feb 2, 2012
Feb 2, 2012
531
QJSValue sant = eng.toScriptValue(true);
Jan 11, 2012
Jan 11, 2012
532
QCOMPARE(sant.toBool(), true);
533
534
QCOMPARE(qjsvalue_cast<bool>(sant), true);
Feb 2, 2012
Feb 2, 2012
535
QJSValue number = eng.toScriptValue(0.0);
Jan 11, 2012
Jan 11, 2012
536
QCOMPARE(number.toBool(), false);
537
538
QCOMPARE(qjsvalue_cast<bool>(number), false);
Feb 2, 2012
Feb 2, 2012
539
QJSValue number2 = eng.toScriptValue(qSNaN());
Jan 11, 2012
Jan 11, 2012
540
QCOMPARE(number2.toBool(), false);
541
542
QCOMPARE(qjsvalue_cast<bool>(number2), false);
Feb 2, 2012
Feb 2, 2012
543
QJSValue number3 = eng.toScriptValue(123.0);
Jan 11, 2012
Jan 11, 2012
544
QCOMPARE(number3.toBool(), true);
545
546
QCOMPARE(qjsvalue_cast<bool>(number3), true);
Feb 2, 2012
Feb 2, 2012
547
QJSValue number4 = eng.toScriptValue(-456.0);
Jan 11, 2012
Jan 11, 2012
548
QCOMPARE(number4.toBool(), true);
549
550
QCOMPARE(qjsvalue_cast<bool>(number4), true);
Feb 2, 2012
Feb 2, 2012
551
QJSValue str = eng.toScriptValue(QString(""));
Jan 11, 2012
Jan 11, 2012
552
QCOMPARE(str.toBool(), false);
553
554
QCOMPARE(qjsvalue_cast<bool>(str), false);
Feb 2, 2012
Feb 2, 2012
555
QJSValue str2 = eng.toScriptValue(QString("123"));
Jan 11, 2012
Jan 11, 2012
556
QCOMPARE(str2.toBool(), true);
557
558
559
560
QCOMPARE(qjsvalue_cast<bool>(str2), true);
}
QJSValue object = eng.newObject();
Jan 11, 2012
Jan 11, 2012
561
QCOMPARE(object.toBool(), true);
562
563
564
565
566
567
568
569
570
571
QCOMPARE(qjsvalue_cast<bool>(object), true);
// FIXME: No c-style callbacks currently
#if 0
QJSValue fun = eng.newFunction(myFunction);
QCOMPARE(fun.toBoolean(), true);
QCOMPARE(qscriptvalue_cast<bool>(fun), true);
#endif
QJSValue inv = QJSValue();
Jan 11, 2012
Jan 11, 2012
572
QCOMPARE(inv.toBool(), false);
573
574
575
576
577
QCOMPARE(qjsvalue_cast<bool>(inv), false);
// V2 constructors
{
QJSValue falskt = QJSValue(false);
Jan 11, 2012
Jan 11, 2012
578
QCOMPARE(falskt.toBool(), false);
579
580
581
QCOMPARE(qjsvalue_cast<bool>(falskt), false);
QJSValue sant = QJSValue(true);
Jan 11, 2012
Jan 11, 2012
582
QCOMPARE(sant.toBool(), true);
583
584
585
QCOMPARE(qjsvalue_cast<bool>(sant), true);
QJSValue number = QJSValue(0.0);
Jan 11, 2012
Jan 11, 2012
586
QCOMPARE(number.toBool(), false);
587
588
589
QCOMPARE(qjsvalue_cast<bool>(number), false);
QJSValue number2 = QJSValue(qSNaN());
Jan 11, 2012
Jan 11, 2012
590
QCOMPARE(number2.toBool(), false);
591
592
593
QCOMPARE(qjsvalue_cast<bool>(number2), false);
QJSValue number3 = QJSValue(123.0);
Jan 11, 2012
Jan 11, 2012
594
QCOMPARE(number3.toBool(), true);
595
596
597
QCOMPARE(qjsvalue_cast<bool>(number3), true);
QJSValue number4 = QJSValue(-456.0);
Jan 11, 2012
Jan 11, 2012
598
QCOMPARE(number4.toBool(), true);
599
600
601
QCOMPARE(qjsvalue_cast<bool>(number4), true);
QJSValue number5 = QJSValue(0x43211234);
Jan 11, 2012
Jan 11, 2012
602
QCOMPARE(number5.toBool(), true);
603
604
QJSValue str = QJSValue(QString(""));
Jan 11, 2012
Jan 11, 2012
605
QCOMPARE(str.toBool(), false);
606
607
608
QCOMPARE(qjsvalue_cast<bool>(str), false);
QJSValue str2 = QJSValue(QString("123"));
Jan 11, 2012
Jan 11, 2012
609
QCOMPARE(str2.toBool(), true);
610
611
612
613
614
615
616
617
QCOMPARE(qjsvalue_cast<bool>(str2), true);
}
}
void tst_QJSValue::toBool()
{
QJSEngine eng;
Feb 2, 2012
Feb 2, 2012
618
QJSValue undefined = eng.toScriptValue(QVariant());
619
620
621
QCOMPARE(undefined.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(undefined), false);
Feb 2, 2012
Feb 2, 2012
622
QJSValue null = eng.evaluate("null");
623
624
625
626
QCOMPARE(null.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(null), false);
{
Feb 2, 2012
Feb 2, 2012
627
QJSValue falskt = eng.toScriptValue(false);
628
629
630
QCOMPARE(falskt.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(falskt), false);
Feb 2, 2012
Feb 2, 2012
631
QJSValue sant = eng.toScriptValue(true);
632
633
634
QCOMPARE(sant.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(sant), true);
Feb 2, 2012
Feb 2, 2012
635
QJSValue number = eng.toScriptValue(0.0);
636
637
638
QCOMPARE(number.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(number), false);
Feb 2, 2012
Feb 2, 2012
639
QJSValue number2 = eng.toScriptValue(qSNaN());
640
641
642
QCOMPARE(number2.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(number2), false);
Feb 2, 2012
Feb 2, 2012
643
QJSValue number3 = eng.toScriptValue(123.0);
644
645
646
QCOMPARE(number3.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(number3), true);
Feb 2, 2012
Feb 2, 2012
647
QJSValue number4 = eng.toScriptValue(-456.0);
648
649
650
QCOMPARE(number4.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(number4), true);
Feb 2, 2012
Feb 2, 2012
651
QJSValue str = eng.toScriptValue(QString(""));
652
653
654
QCOMPARE(str.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(str), false);
Feb 2, 2012
Feb 2, 2012
655
QJSValue str2 = eng.toScriptValue(QString("123"));
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
QCOMPARE(str2.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(str2), true);
}
QJSValue object = eng.newObject();
QCOMPARE(object.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(object), true);
// FIXME: No c-style callbacks currently
#if 0
QJSValue fun = eng.newFunction(myFunction);
QCOMPARE(fun.toBool(), true);
QCOMPARE(qscriptvalue_cast<bool>(fun), true);
#endif
QJSValue inv = QJSValue();
QCOMPARE(inv.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(inv), false);
// V2 constructors
{
QJSValue falskt = QJSValue(false);
QCOMPARE(falskt.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(falskt), false);
QJSValue sant = QJSValue(true);
QCOMPARE(sant.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(sant), true);
QJSValue number = QJSValue(0.0);
QCOMPARE(number.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(number), false);
QJSValue number2 = QJSValue(qSNaN());
QCOMPARE(number2.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(number2), false);
QJSValue number3 = QJSValue(123.0);
QCOMPARE(number3.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(number3), true);
QJSValue number4 = QJSValue(-456.0);
QCOMPARE(number4.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(number4), true);
QJSValue number5 = QJSValue(0x43211234);
QCOMPARE(number5.toBool(), true);
QJSValue str = QJSValue(QString(""));
QCOMPARE(str.toBool(), false);
QCOMPARE(qjsvalue_cast<bool>(str), false);
QJSValue str2 = QJSValue(QString("123"));
QCOMPARE(str2.toBool(), true);
QCOMPARE(qjsvalue_cast<bool>(str2), true);
}
}
Jan 20, 2012
Jan 20, 2012
714
void tst_QJSValue::toInt()
715
716
717
718
{
QJSEngine eng;
{
Feb 2, 2012
Feb 2, 2012
719
QJSValue zer0 = eng.toScriptValue(0.0);
Jan 20, 2012
Jan 20, 2012
720
QCOMPARE(zer0.toInt(), 0);
721
722
QCOMPARE(qjsvalue_cast<qint32>(zer0), 0);
Feb 2, 2012
Feb 2, 2012
723
QJSValue number = eng.toScriptValue(123.0);
Jan 20, 2012
Jan 20, 2012
724
QCOMPARE(number.toInt(), 123);
725
726
QCOMPARE(qjsvalue_cast<qint32>(number), 123);
Feb 2, 2012
Feb 2, 2012
727
QJSValue number2 = eng.toScriptValue(qSNaN());
Jan 20, 2012
Jan 20, 2012
728
QCOMPARE(number2.toInt(), 0);
729
730
QCOMPARE(qjsvalue_cast<qint32>(number2), 0);
Feb 2, 2012
Feb 2, 2012
731
QJSValue number3 = eng.toScriptValue(+qInf());
Jan 20, 2012
Jan 20, 2012
732
QCOMPARE(number3.toInt(), 0);
733
734
QCOMPARE(qjsvalue_cast<qint32>(number3), 0);
Feb 2, 2012
Feb 2, 2012
735
QJSValue number3_2 = eng.toScriptValue(-qInf());
Jan 20, 2012
Jan 20, 2012
736
QCOMPARE(number3_2.toInt(), 0);
737
738
QCOMPARE(qjsvalue_cast<qint32>(number3_2), 0);
Feb 2, 2012
Feb 2, 2012
739
QJSValue number4 = eng.toScriptValue(0.5);
Jan 20, 2012
Jan 20, 2012
740
QCOMPARE(number4.toInt(), 0);
741
742
QCOMPARE(qjsvalue_cast<qint32>(number4), 0);
Feb 2, 2012
Feb 2, 2012
743
QJSValue number5 = eng.toScriptValue(123.5);
Jan 20, 2012
Jan 20, 2012
744
QCOMPARE(number5.toInt(), 123);
745
746
QCOMPARE(qjsvalue_cast<qint32>(number5), 123);
Feb 2, 2012
Feb 2, 2012
747
QJSValue number6 = eng.toScriptValue(-456.5);
Jan 20, 2012
Jan 20, 2012
748
QCOMPARE(number6.toInt(), -456);
749
750
QCOMPARE(qjsvalue_cast<qint32>(number6), -456);
Feb 2, 2012
Feb 2, 2012
751
QJSValue str = eng.toScriptValue(QString::fromLatin1("123.0"));
Jan 20, 2012
Jan 20, 2012
752
QCOMPARE(str.toInt(), 123);
753
754
QCOMPARE(qjsvalue_cast<qint32>(str), 123);
Feb 2, 2012
Feb 2, 2012
755
QJSValue str2 = eng.toScriptValue(QString::fromLatin1("NaN"));
Jan 20, 2012
Jan 20, 2012
756
QCOMPARE(str2.toInt(), 0);
757
758
QCOMPARE(qjsvalue_cast<qint32>(str2), 0);
Feb 2, 2012
Feb 2, 2012
759
QJSValue str3 = eng.toScriptValue(QString::fromLatin1("Infinity"));
Jan 20, 2012
Jan 20, 2012
760
QCOMPARE(str3.toInt(), 0);
761
762
QCOMPARE(qjsvalue_cast<qint32>(str3), 0);
Feb 2, 2012
Feb 2, 2012
763
QJSValue str3_2 = eng.toScriptValue(QString::fromLatin1("-Infinity"));
Jan 20, 2012
Jan 20, 2012
764
QCOMPARE(str3_2.toInt(), 0);
765
766
QCOMPARE(qjsvalue_cast<qint32>(str3_2), 0);
Feb 2, 2012
Feb 2, 2012
767
QJSValue str4 = eng.toScriptValue(QString::fromLatin1("0.5"));
Jan 20, 2012
Jan 20, 2012
768
QCOMPARE(str4.toInt(), 0);
769
770
QCOMPARE(qjsvalue_cast<qint32>(str4), 0);
Feb 2, 2012
Feb 2, 2012
771
QJSValue str5 = eng.toScriptValue(QString::fromLatin1("123.5"));
Jan 20, 2012
Jan 20, 2012
772
QCOMPARE(str5.toInt(), 123);
773
774
QCOMPARE(qjsvalue_cast<qint32>(str5), 123);
Feb 2, 2012
Feb 2, 2012
775
QJSValue str6 = eng.toScriptValue(QString::fromLatin1("-456.5"));
Jan 20, 2012
Jan 20, 2012
776
QCOMPARE(str6.toInt(), -456);
777
778
779
780
781
QCOMPARE(qjsvalue_cast<qint32>(str6), -456);
}
// V2 constructors
{
QJSValue zer0 = QJSValue(0.0);
Jan 20, 2012
Jan 20, 2012
782
QCOMPARE(zer0.toInt(), 0);
783
784
785
QCOMPARE(qjsvalue_cast<qint32>(zer0), 0);
QJSValue number = QJSValue(123.0);
Jan 20, 2012
Jan 20, 2012
786
QCOMPARE(number.toInt(), 123);
787
788
789
QCOMPARE(qjsvalue_cast<qint32>(number), 123);
QJSValue number2 = QJSValue(qSNaN());
Jan 20, 2012
Jan 20, 2012
790
QCOMPARE(number2.toInt(), 0);
791
792
793
QCOMPARE(qjsvalue_cast<qint32>(number2), 0);
QJSValue number3 = QJSValue(+qInf());
Jan 20, 2012
Jan 20, 2012
794
QCOMPARE(number3.toInt(), 0);
795
796
797
QCOMPARE(qjsvalue_cast<qint32>(number3), 0);
QJSValue number3_2 = QJSValue(-qInf());
Jan 20, 2012
Jan 20, 2012
798
QCOMPARE(number3_2.toInt(), 0);
799
800
801
QCOMPARE(qjsvalue_cast<qint32>(number3_2), 0);
QJSValue number4 = QJSValue(0.5);
Jan 20, 2012
Jan 20, 2012
802
QCOMPARE(number4.toInt(), 0);
803
804
805
QCOMPARE(qjsvalue_cast<qint32>(number4), 0);
QJSValue number5 = QJSValue(123.5);
Jan 20, 2012
Jan 20, 2012
806
QCOMPARE(number5.toInt(), 123);
807
808
809
QCOMPARE(qjsvalue_cast<qint32>(number5), 123);
QJSValue number6 = QJSValue(-456.5);
Jan 20, 2012
Jan 20, 2012
810
QCOMPARE(number6.toInt(), -456);
811
812
813
QCOMPARE(qjsvalue_cast<qint32>(number6), -456);
QJSValue number7 = QJSValue(0x43211234);
Jan 20, 2012
Jan 20, 2012
814
QCOMPARE(number7.toInt(), 0x43211234);
815
816
QJSValue str = QJSValue("123.0");
Jan 20, 2012
Jan 20, 2012
817
QCOMPARE(str.toInt(), 123);
818
819
820
QCOMPARE(qjsvalue_cast<qint32>(str), 123);
QJSValue str2 = QJSValue("NaN");
Jan 20, 2012
Jan 20, 2012
821
QCOMPARE(str2.toInt(), 0);
822
823
824
QCOMPARE(qjsvalue_cast<qint32>(str2), 0);
QJSValue str3 = QJSValue("Infinity");
Jan 20, 2012
Jan 20, 2012
825
QCOMPARE(str3.toInt(), 0);
826
827
828
QCOMPARE(qjsvalue_cast<qint32>(str3), 0);
QJSValue str3_2 = QJSValue("-Infinity");
Jan 20, 2012
Jan 20, 2012
829
QCOMPARE(str3_2.toInt(), 0);
830
831
832
QCOMPARE(qjsvalue_cast<qint32>(str3_2), 0);
QJSValue str4 = QJSValue("0.5");
Jan 20, 2012
Jan 20, 2012
833
QCOMPARE(str4.toInt(), 0);
834
835
836
QCOMPARE(qjsvalue_cast<qint32>(str4), 0);
QJSValue str5 = QJSValue("123.5");
Jan 20, 2012
Jan 20, 2012
837
QCOMPARE(str5.toInt(), 123);
838
839
840
QCOMPARE(qjsvalue_cast<qint32>(str5), 123);
QJSValue str6 = QJSValue("-456.5");
Jan 20, 2012
Jan 20, 2012
841
QCOMPARE(str6.toInt(), -456);
842
843
844
845
QCOMPARE(qjsvalue_cast<qint32>(str6), -456);
}
QJSValue inv;
Jan 20, 2012
Jan 20, 2012
846
QCOMPARE(inv.toInt(), 0);
847
848
849
QCOMPARE(qjsvalue_cast<qint32>(inv), 0);
}
Jan 20, 2012
Jan 20, 2012
850
void tst_QJSValue::toUInt()
851
852
853
854
{
QJSEngine eng;
{
Jan 20, 2012
Jan 20, 2012
855
856
QJSValue zer0 = eng.toScriptValue(0.0);
QCOMPARE(zer0.toUInt(), quint32(0));
857
858
QCOMPARE(qjsvalue_cast<quint32>(zer0), quint32(0));
Jan 20, 2012
Jan 20, 2012
859
860
QJSValue number = eng.toScriptValue(123.0);
QCOMPARE(number.toUInt(), quint32(123));
861
862
QCOMPARE(qjsvalue_cast<quint32>(number), quint32(123));
Jan 20, 2012
Jan 20, 2012
863
864
QJSValue number2 = eng.toScriptValue(qSNaN());
QCOMPARE(number2.toUInt(), quint32(0));
865
866
QCOMPARE(qjsvalue_cast<quint32>(number2), quint32(0));
Jan 20, 2012
Jan 20, 2012
867
868
QJSValue number3 = eng.toScriptValue(+qInf());
QCOMPARE(number3.toUInt(), quint32(0));
869
870
QCOMPARE(qjsvalue_cast<quint32>(number3), quint32(0));
Jan 20, 2012
Jan 20, 2012
871
872
QJSValue number3_2 = eng.toScriptValue(-qInf());
QCOMPARE(number3_2.toUInt(), quint32(0));
873
874
QCOMPARE(qjsvalue_cast<quint32>(number3_2), quint32(0));
Jan 20, 2012
Jan 20, 2012
875
876
QJSValue number4 = eng.toScriptValue(0.5);
QCOMPARE(number4.toUInt(), quint32(0));
Jan 20, 2012
Jan 20, 2012
878
879
QJSValue number5 = eng.toScriptValue(123.5);
QCOMPARE(number5.toUInt(), quint32(123));
Jan 20, 2012
Jan 20, 2012
881
882
QJSValue number6 = eng.toScriptValue(-456.5);
QCOMPARE(number6.toUInt(), quint32(-456));
883
884
QCOMPARE(qjsvalue_cast<quint32>(number6), quint32(-456));
Jan 20, 2012
Jan 20, 2012
885
886
QJSValue str = eng.toScriptValue(QString::fromLatin1("123.0"));
QCOMPARE(str.toUInt(), quint32(123));
887
888
QCOMPARE(qjsvalue_cast<quint32>(str), quint32(123));
Jan 20, 2012
Jan 20, 2012
889
890
QJSValue str2 = eng.toScriptValue(QString::fromLatin1("NaN"));
QCOMPARE(str2.toUInt(), quint32(0));
891
892
QCOMPARE(qjsvalue_cast<quint32>(str2), quint32(0));
Jan 20, 2012
Jan 20, 2012
893
894
QJSValue str3 = eng.toScriptValue(QString::fromLatin1("Infinity"));
QCOMPARE(str3.toUInt(), quint32(0));
895
896
QCOMPARE(qjsvalue_cast<quint32>(str3), quint32(0));
Jan 20, 2012
Jan 20, 2012
897
898
QJSValue str3_2 = eng.toScriptValue(QString::fromLatin1("-Infinity"));
QCOMPARE(str3_2.toUInt(), quint32(0));
899
900
QCOMPARE(qjsvalue_cast<quint32>(str3_2), quint32(0));
Jan 20, 2012
Jan 20, 2012
901
902
QJSValue str4 = eng.toScriptValue(QString::fromLatin1("0.5"));
QCOMPARE(str4.toUInt(), quint32(0));
903
904
QCOMPARE(qjsvalue_cast<quint32>(str4), quint32(0));
Jan 20, 2012
Jan 20, 2012
905
906
QJSValue str5 = eng.toScriptValue(QString::fromLatin1("123.5"));
QCOMPARE(str5.toUInt(), quint32(123));
907
908
QCOMPARE(qjsvalue_cast<quint32>(str5), quint32(123));
Jan 20, 2012
Jan 20, 2012
909
910
QJSValue str6 = eng.toScriptValue(QString::fromLatin1("-456.5"));
QCOMPARE(str6.toUInt(), quint32(-456));
911
912
913
914
915
QCOMPARE(qjsvalue_cast<quint32>(str6), quint32(-456));
}
// V2 constructors
{
QJSValue zer0 = QJSValue(0.0);
Jan 20, 2012
Jan 20, 2012
916
QCOMPARE(zer0.toUInt(), quint32(0));
917
918
919
QCOMPARE(qjsvalue_cast<quint32>(zer0), quint32(0));
QJSValue number = QJSValue(123.0);
Jan 20, 2012
Jan 20, 2012
920
QCOMPARE(number.toUInt(), quint32(123));
921
922
923
QCOMPARE(qjsvalue_cast<quint32>(number), quint32(123));
QJSValue number2 = QJSValue(qSNaN());
Jan 20, 2012
Jan 20, 2012
924
QCOMPARE(number2.toUInt(), quint32(0));
925
926
927
QCOMPARE(qjsvalue_cast<quint32>(number2), quint32(0));
QJSValue number3 = QJSValue(+qInf());
Jan 20, 2012
Jan 20, 2012
928
QCOMPARE(number3.toUInt(), quint32(0));
929
930
931
QCOMPARE(qjsvalue_cast<quint32>(number3), quint32(0));
QJSValue number3_2 = QJSValue(-qInf());
Jan 20, 2012
Jan 20, 2012
932
QCOMPARE(number3_2.toUInt(), quint32(0));
933
934
935
QCOMPARE(qjsvalue_cast<quint32>(number3_2), quint32(0));
QJSValue number4 = QJSValue(0.5);
Jan 20, 2012
Jan 20, 2012
936
QCOMPARE(number4.toUInt(), quint32(0));
937
938
QJSValue number5 = QJSValue(123.5);
Jan 20, 2012
Jan 20, 2012
939
QCOMPARE(number5.toUInt(), quint32(123));
940
941
QJSValue number6 = QJSValue(-456.5);
Jan 20, 2012
Jan 20, 2012
942
QCOMPARE(number6.toUInt(), quint32(-456));
943
944
945
QCOMPARE(qjsvalue_cast<quint32>(number6), quint32(-456));
QJSValue number7 = QJSValue(0x43211234);
Jan 20, 2012
Jan 20, 2012
946
QCOMPARE(number7.toUInt(), quint32(0x43211234));
947
948
QJSValue str = QJSValue(QLatin1String("123.0"));
Jan 20, 2012
Jan 20, 2012
949
QCOMPARE(str.toUInt(), quint32(123));
950
951
952
QCOMPARE(qjsvalue_cast<quint32>(str), quint32(123));
QJSValue str2 = QJSValue(QLatin1String("NaN"));
Jan 20, 2012
Jan 20, 2012
953
QCOMPARE(str2.toUInt(), quint32(0));
954
955
956
QCOMPARE(qjsvalue_cast<quint32>(str2), quint32(0));
QJSValue str3 = QJSValue(QLatin1String("Infinity"));
Jan 20, 2012
Jan 20, 2012
957
QCOMPARE(str3.toUInt(), quint32(0));
958
959
960
QCOMPARE(qjsvalue_cast<quint32>(str3), quint32(0));
QJSValue str3_2 = QJSValue(QLatin1String("-Infinity"));
Jan 20, 2012
Jan 20, 2012
961
QCOMPARE(str3_2.toUInt(), quint32(0));
962
963
964
QCOMPARE(qjsvalue_cast<quint32>(str3_2), quint32(0));
QJSValue str4 = QJSValue(QLatin1String("0.5"));
Jan 20, 2012
Jan 20, 2012
965
QCOMPARE(str4.toUInt(), quint32(0));
966
967
968
QCOMPARE(qjsvalue_cast<quint32>(str4), quint32(0));
QJSValue str5 = QJSValue(QLatin1String("123.5"));
Jan 20, 2012
Jan 20, 2012
969
QCOMPARE(str5.toUInt(), quint32(123));
970
971
972
QCOMPARE(qjsvalue_cast<quint32>(str5), quint32(123));
QJSValue str6 = QJSValue(QLatin1String("-456.5"));
Jan 20, 2012
Jan 20, 2012
973
QCOMPARE(str6.toUInt(), quint32(-456));
974
975
976
977
QCOMPARE(qjsvalue_cast<quint32>(str6), quint32(-456));
}
QJSValue inv;
Jan 20, 2012
Jan 20, 2012
978
QCOMPARE(inv.toUInt(), quint32(0));
979
980
981
982
983
984
985
986
987
988
QCOMPARE(qjsvalue_cast<quint32>(inv), quint32(0));
}
#if defined Q_CC_MSVC && _MSC_VER < 1300
Q_DECLARE_METATYPE(QVariant)
#endif
void tst_QJSValue::toVariant()
{
QJSEngine eng;
Mar 15, 2012
Mar 15, 2012
989
QObject temp;
Feb 2, 2012
Feb 2, 2012
991
QJSValue undefined = eng.toScriptValue(QVariant());
992
993
994
QCOMPARE(undefined.toVariant(), QVariant());
QCOMPARE(qjsvalue_cast<QVariant>(undefined), QVariant());
Feb 2, 2012
Feb 2, 2012
995
QJSValue null = eng.evaluate("null");
Mar 20, 2012
Mar 20, 2012
996
997
QCOMPARE(null.toVariant(), QVariant(QMetaType::VoidStar, 0));
QCOMPARE(qjsvalue_cast<QVariant>(null), QVariant(QMetaType::VoidStar, 0));
Feb 2, 2012
Feb 2, 2012
1000
QJSValue number = eng.toScriptValue(123.0);