2 Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
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 Library General Public License for more details.
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
20 /****************************************************************************
21 *************** This file has been generated. DO NOT MODIFY! ****************
22 ****************************************************************************/
24 #include "tst_qscriptvalue.h"
26 static const QString toString_tagArray[] = {
28 "QScriptValue(QScriptValue::UndefinedValue)",
29 "QScriptValue(QScriptValue::NullValue)",
31 "QScriptValue(false)",
32 "QScriptValue(int(122))",
33 "QScriptValue(uint(124))",
36 "QScriptValue(123.0)",
37 "QScriptValue(6.37e-8)",
38 "QScriptValue(-6.37e-8)",
39 "QScriptValue(0x43211234)",
40 "QScriptValue(0x10000)",
41 "QScriptValue(0x10001)",
42 "QScriptValue(qSNaN())",
43 "QScriptValue(qQNaN())",
44 "QScriptValue(qInf())",
45 "QScriptValue(-qInf())",
46 "QScriptValue(\"NaN\")",
47 "QScriptValue(\"Infinity\")",
48 "QScriptValue(\"-Infinity\")",
49 "QScriptValue(\"ciao\")",
50 "QScriptValue(QString::fromLatin1(\"ciao\"))",
51 "QScriptValue(QString(\"\"))",
52 "QScriptValue(QString())",
53 "QScriptValue(QString(\"0\"))",
54 "QScriptValue(QString(\"123\"))",
55 "QScriptValue(QString(\"12.4\"))",
56 "QScriptValue(0, QScriptValue::UndefinedValue)",
57 "QScriptValue(0, QScriptValue::NullValue)",
58 "QScriptValue(0, true)",
59 "QScriptValue(0, false)",
60 "QScriptValue(0, int(122))",
61 "QScriptValue(0, uint(124))",
63 "QScriptValue(0, 0.0)",
64 "QScriptValue(0, 123.0)",
65 "QScriptValue(0, 6.37e-8)",
66 "QScriptValue(0, -6.37e-8)",
67 "QScriptValue(0, 0x43211234)",
68 "QScriptValue(0, 0x10000)",
69 "QScriptValue(0, 0x10001)",
70 "QScriptValue(0, qSNaN())",
71 "QScriptValue(0, qQNaN())",
72 "QScriptValue(0, qInf())",
73 "QScriptValue(0, -qInf())",
74 "QScriptValue(0, \"NaN\")",
75 "QScriptValue(0, \"Infinity\")",
76 "QScriptValue(0, \"-Infinity\")",
77 "QScriptValue(0, \"ciao\")",
78 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
79 "QScriptValue(0, QString(\"\"))",
80 "QScriptValue(0, QString())",
81 "QScriptValue(0, QString(\"0\"))",
82 "QScriptValue(0, QString(\"123\"))",
83 "QScriptValue(0, QString(\"12.3\"))",
84 "QScriptValue(engine, QScriptValue::UndefinedValue)",
85 "QScriptValue(engine, QScriptValue::NullValue)",
86 "QScriptValue(engine, true)",
87 "QScriptValue(engine, false)",
88 "QScriptValue(engine, int(122))",
89 "QScriptValue(engine, uint(124))",
90 "QScriptValue(engine, 0)",
91 "QScriptValue(engine, 0.0)",
92 "QScriptValue(engine, 123.0)",
93 "QScriptValue(engine, 6.37e-8)",
94 "QScriptValue(engine, -6.37e-8)",
95 "QScriptValue(engine, 0x43211234)",
96 "QScriptValue(engine, 0x10000)",
97 "QScriptValue(engine, 0x10001)",
98 "QScriptValue(engine, qSNaN())",
99 "QScriptValue(engine, qQNaN())",
100 "QScriptValue(engine, qInf())",
101 "QScriptValue(engine, -qInf())",
102 "QScriptValue(engine, \"NaN\")",
103 "QScriptValue(engine, \"Infinity\")",
104 "QScriptValue(engine, \"-Infinity\")",
105 "QScriptValue(engine, \"ciao\")",
106 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
107 "QScriptValue(engine, QString(\"\"))",
108 "QScriptValue(engine, QString())",
109 "QScriptValue(engine, QString(\"0\"))",
110 "QScriptValue(engine, QString(\"123\"))",
111 "QScriptValue(engine, QString(\"1.23\"))",
112 "engine->evaluate(\"[]\")",
113 "engine->evaluate(\"{}\")",
114 "engine->evaluate(\"Object.prototype\")",
115 "engine->evaluate(\"Date.prototype\")",
116 "engine->evaluate(\"Array.prototype\")",
117 "engine->evaluate(\"Function.prototype\")",
118 "engine->evaluate(\"Error.prototype\")",
119 "engine->evaluate(\"Object\")",
120 "engine->evaluate(\"Array\")",
121 "engine->evaluate(\"Number\")",
122 "engine->evaluate(\"Function\")",
123 "engine->evaluate(\"(function() { return 1; })\")",
124 "engine->evaluate(\"(function() { return 'ciao'; })\")",
125 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
126 "engine->evaluate(\"/foo/\")",
127 "engine->evaluate(\"new Object()\")",
128 "engine->evaluate(\"new Array()\")",
129 "engine->evaluate(\"new Error()\")",
130 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
131 "engine->evaluate(\"Undefined\")",
132 "engine->evaluate(\"Null\")",
133 "engine->evaluate(\"True\")",
134 "engine->evaluate(\"False\")",
135 "engine->evaluate(\"undefined\")",
136 "engine->evaluate(\"null\")",
137 "engine->evaluate(\"true\")",
138 "engine->evaluate(\"false\")",
139 "engine->evaluate(\"122\")",
140 "engine->evaluate(\"124\")",
141 "engine->evaluate(\"0\")",
142 "engine->evaluate(\"0.0\")",
143 "engine->evaluate(\"123.0\")",
144 "engine->evaluate(\"6.37e-8\")",
145 "engine->evaluate(\"-6.37e-8\")",
146 "engine->evaluate(\"0x43211234\")",
147 "engine->evaluate(\"0x10000\")",
148 "engine->evaluate(\"0x10001\")",
149 "engine->evaluate(\"NaN\")",
150 "engine->evaluate(\"Infinity\")",
151 "engine->evaluate(\"-Infinity\")",
152 "engine->evaluate(\"'ciao'\")",
153 "engine->evaluate(\"''\")",
154 "engine->evaluate(\"'0'\")",
155 "engine->evaluate(\"'123'\")",
156 "engine->evaluate(\"'12.4'\")",
157 "engine->nullValue()",
158 "engine->undefinedValue()",
159 "engine->newObject()",
160 "engine->newArray()",
161 "engine->newArray(10)"};
163 static const QString toString_valueArray[] = {
169 "6.37e-8", "-6.37e-8",
170 "1126240820", "65536",
174 "Infinity", "-Infinity",
183 "6.37e-8", "-6.37e-8",
184 "1126240820", "65536",
188 "Infinity", "-Infinity",
197 "6.37e-8", "-6.37e-8",
198 "1126240820", "65536",
202 "Infinity", "-Infinity",
207 "undefined", "[object Object]",
209 "function () {\n [native code]\n}", "Error: Unknown error",
210 "function Object() {\n [native code]\n}", "function Array() {\n [native code]\n}",
211 "function Number() {\n [native code]\n}", "function Function() {\n [native code]\n}",
212 "function () { return 1; }", "function () { return 'ciao'; }",
213 "function () { throw new Error('foo'); }", "/foo/",
214 "[object Object]", "",
215 "Error: Unknown error", "22",
216 "ReferenceError: Can't find variable: Undefined", "ReferenceError: Can't find variable: Null",
217 "ReferenceError: Can't find variable: True", "ReferenceError: Can't find variable: False",
223 "-6.37e-8", "1126240820",
230 "[object Object]", "",
233 void tst_QScriptValue::toString_data()
235 QTest::addColumn<QScriptValue>("value");
236 QTest::addColumn<QString>("expected");
239 m_engine = new QScriptEngine();
240 QHash<QString, QString> expectedValue;
241 expectedValue.reserve(135);
242 for (uint i = 0; i < 135; ++i)
243 expectedValue.insert(toString_tagArray[i], toString_valueArray[i]);
244 for (uint i = 0; i < 135; ++i) {
245 QPair<QString, QScriptValue> testcase = initScriptValues(i);
246 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
250 void tst_QScriptValue::toString()
252 QFETCH(QScriptValue, value);
253 QFETCH(QString, expected);
254 QCOMPARE(value.toString(), expected);
255 QCOMPARE(value.toString(), expected);
258 static const QString toNumber_tagArray[] = {
260 "QScriptValue(QScriptValue::UndefinedValue)",
261 "QScriptValue(QScriptValue::NullValue)",
262 "QScriptValue(true)",
263 "QScriptValue(false)",
264 "QScriptValue(int(122))",
265 "QScriptValue(uint(124))",
268 "QScriptValue(123.0)",
269 "QScriptValue(6.37e-8)",
270 "QScriptValue(-6.37e-8)",
271 "QScriptValue(0x43211234)",
272 "QScriptValue(0x10000)",
273 "QScriptValue(0x10001)",
274 "QScriptValue(qSNaN())",
275 "QScriptValue(qQNaN())",
276 "QScriptValue(qInf())",
277 "QScriptValue(-qInf())",
278 "QScriptValue(\"NaN\")",
279 "QScriptValue(\"Infinity\")",
280 "QScriptValue(\"-Infinity\")",
281 "QScriptValue(\"ciao\")",
282 "QScriptValue(QString::fromLatin1(\"ciao\"))",
283 "QScriptValue(QString(\"\"))",
284 "QScriptValue(QString())",
285 "QScriptValue(QString(\"0\"))",
286 "QScriptValue(QString(\"123\"))",
287 "QScriptValue(QString(\"12.4\"))",
288 "QScriptValue(0, QScriptValue::UndefinedValue)",
289 "QScriptValue(0, QScriptValue::NullValue)",
290 "QScriptValue(0, true)",
291 "QScriptValue(0, false)",
292 "QScriptValue(0, int(122))",
293 "QScriptValue(0, uint(124))",
294 "QScriptValue(0, 0)",
295 "QScriptValue(0, 0.0)",
296 "QScriptValue(0, 123.0)",
297 "QScriptValue(0, 6.37e-8)",
298 "QScriptValue(0, -6.37e-8)",
299 "QScriptValue(0, 0x43211234)",
300 "QScriptValue(0, 0x10000)",
301 "QScriptValue(0, 0x10001)",
302 "QScriptValue(0, qSNaN())",
303 "QScriptValue(0, qQNaN())",
304 "QScriptValue(0, qInf())",
305 "QScriptValue(0, -qInf())",
306 "QScriptValue(0, \"NaN\")",
307 "QScriptValue(0, \"Infinity\")",
308 "QScriptValue(0, \"-Infinity\")",
309 "QScriptValue(0, \"ciao\")",
310 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
311 "QScriptValue(0, QString(\"\"))",
312 "QScriptValue(0, QString())",
313 "QScriptValue(0, QString(\"0\"))",
314 "QScriptValue(0, QString(\"123\"))",
315 "QScriptValue(0, QString(\"12.3\"))",
316 "QScriptValue(engine, QScriptValue::UndefinedValue)",
317 "QScriptValue(engine, QScriptValue::NullValue)",
318 "QScriptValue(engine, true)",
319 "QScriptValue(engine, false)",
320 "QScriptValue(engine, int(122))",
321 "QScriptValue(engine, uint(124))",
322 "QScriptValue(engine, 0)",
323 "QScriptValue(engine, 0.0)",
324 "QScriptValue(engine, 123.0)",
325 "QScriptValue(engine, 6.37e-8)",
326 "QScriptValue(engine, -6.37e-8)",
327 "QScriptValue(engine, 0x43211234)",
328 "QScriptValue(engine, 0x10000)",
329 "QScriptValue(engine, 0x10001)",
330 "QScriptValue(engine, qSNaN())",
331 "QScriptValue(engine, qQNaN())",
332 "QScriptValue(engine, qInf())",
333 "QScriptValue(engine, -qInf())",
334 "QScriptValue(engine, \"NaN\")",
335 "QScriptValue(engine, \"Infinity\")",
336 "QScriptValue(engine, \"-Infinity\")",
337 "QScriptValue(engine, \"ciao\")",
338 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
339 "QScriptValue(engine, QString(\"\"))",
340 "QScriptValue(engine, QString())",
341 "QScriptValue(engine, QString(\"0\"))",
342 "QScriptValue(engine, QString(\"123\"))",
343 "QScriptValue(engine, QString(\"1.23\"))",
344 "engine->evaluate(\"[]\")",
345 "engine->evaluate(\"{}\")",
346 "engine->evaluate(\"Object.prototype\")",
347 "engine->evaluate(\"Date.prototype\")",
348 "engine->evaluate(\"Array.prototype\")",
349 "engine->evaluate(\"Function.prototype\")",
350 "engine->evaluate(\"Error.prototype\")",
351 "engine->evaluate(\"Object\")",
352 "engine->evaluate(\"Array\")",
353 "engine->evaluate(\"Number\")",
354 "engine->evaluate(\"Function\")",
355 "engine->evaluate(\"(function() { return 1; })\")",
356 "engine->evaluate(\"(function() { return 'ciao'; })\")",
357 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
358 "engine->evaluate(\"/foo/\")",
359 "engine->evaluate(\"new Object()\")",
360 "engine->evaluate(\"new Array()\")",
361 "engine->evaluate(\"new Error()\")",
362 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
363 "engine->evaluate(\"Undefined\")",
364 "engine->evaluate(\"Null\")",
365 "engine->evaluate(\"True\")",
366 "engine->evaluate(\"False\")",
367 "engine->evaluate(\"undefined\")",
368 "engine->evaluate(\"null\")",
369 "engine->evaluate(\"true\")",
370 "engine->evaluate(\"false\")",
371 "engine->evaluate(\"122\")",
372 "engine->evaluate(\"124\")",
373 "engine->evaluate(\"0\")",
374 "engine->evaluate(\"0.0\")",
375 "engine->evaluate(\"123.0\")",
376 "engine->evaluate(\"6.37e-8\")",
377 "engine->evaluate(\"-6.37e-8\")",
378 "engine->evaluate(\"0x43211234\")",
379 "engine->evaluate(\"0x10000\")",
380 "engine->evaluate(\"0x10001\")",
381 "engine->evaluate(\"NaN\")",
382 "engine->evaluate(\"Infinity\")",
383 "engine->evaluate(\"-Infinity\")",
384 "engine->evaluate(\"'ciao'\")",
385 "engine->evaluate(\"''\")",
386 "engine->evaluate(\"'0'\")",
387 "engine->evaluate(\"'123'\")",
388 "engine->evaluate(\"'12.4'\")",
389 "engine->nullValue()",
390 "engine->undefinedValue()",
391 "engine->newObject()",
392 "engine->newArray()",
393 "engine->newArray(10)"};
395 static const qsreal toNumber_valueArray[] = {
396 0, qQNaN(), 0, 1, 0, 122, 124, 0, 0, 123,
397 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(),
398 qInf(), qInf(), qQNaN(), qQNaN(), 0, 0, 0, 123, 12.4, qQNaN(),
399 0, 1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08,
400 1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), qInf(), qInf(),
401 qQNaN(), qQNaN(), 0, 0, 0, 123, 12.3, qQNaN(), 0, 1,
402 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536,
403 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), qInf(), qInf(), qQNaN(), qQNaN(),
404 0, 0, 0, 123, 1.23, 0, qQNaN(), qQNaN(), qQNaN(), 0,
405 qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(),
406 qQNaN(), 0, qQNaN(), 22, qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), 0,
407 1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820,
408 65536, 65537, qQNaN(), qInf(), qInf(), qQNaN(), 0, 0, 123, 12.4,
409 0, qQNaN(), qQNaN(), 0, qQNaN()};
411 void tst_QScriptValue::toNumber_data()
413 QTest::addColumn<QScriptValue>("value");
414 QTest::addColumn<qsreal>("expected");
417 m_engine = new QScriptEngine();
418 QHash<QString, qsreal> expectedValue;
419 expectedValue.reserve(135);
420 for (uint i = 0; i < 135; ++i)
421 expectedValue.insert(toNumber_tagArray[i], toNumber_valueArray[i]);
422 for (uint i = 0; i < 135; ++i) {
423 QPair<QString, QScriptValue> testcase = initScriptValues(i);
424 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
428 void tst_QScriptValue::toNumber()
430 QFETCH(QScriptValue, value);
431 QFETCH(qsreal, expected);
432 if (qIsNaN(expected)) {
433 QVERIFY(qIsNaN(value.toNumber()));
436 if (qIsInf(expected)) {
437 QVERIFY(qIsInf(value.toNumber()));
438 QVERIFY(qIsInf(value.toNumber()));
441 QCOMPARE(value.toNumber(), expected);
442 QCOMPARE(value.toNumber(), expected);
445 static const QString toBool_tagArray[] = {
447 "QScriptValue(QScriptValue::UndefinedValue)",
448 "QScriptValue(QScriptValue::NullValue)",
449 "QScriptValue(true)",
450 "QScriptValue(false)",
451 "QScriptValue(int(122))",
452 "QScriptValue(uint(124))",
455 "QScriptValue(123.0)",
456 "QScriptValue(6.37e-8)",
457 "QScriptValue(-6.37e-8)",
458 "QScriptValue(0x43211234)",
459 "QScriptValue(0x10000)",
460 "QScriptValue(0x10001)",
461 "QScriptValue(qSNaN())",
462 "QScriptValue(qQNaN())",
463 "QScriptValue(qInf())",
464 "QScriptValue(-qInf())",
465 "QScriptValue(\"NaN\")",
466 "QScriptValue(\"Infinity\")",
467 "QScriptValue(\"-Infinity\")",
468 "QScriptValue(\"ciao\")",
469 "QScriptValue(QString::fromLatin1(\"ciao\"))",
470 "QScriptValue(QString(\"\"))",
471 "QScriptValue(QString())",
472 "QScriptValue(QString(\"0\"))",
473 "QScriptValue(QString(\"123\"))",
474 "QScriptValue(QString(\"12.4\"))",
475 "QScriptValue(0, QScriptValue::UndefinedValue)",
476 "QScriptValue(0, QScriptValue::NullValue)",
477 "QScriptValue(0, true)",
478 "QScriptValue(0, false)",
479 "QScriptValue(0, int(122))",
480 "QScriptValue(0, uint(124))",
481 "QScriptValue(0, 0)",
482 "QScriptValue(0, 0.0)",
483 "QScriptValue(0, 123.0)",
484 "QScriptValue(0, 6.37e-8)",
485 "QScriptValue(0, -6.37e-8)",
486 "QScriptValue(0, 0x43211234)",
487 "QScriptValue(0, 0x10000)",
488 "QScriptValue(0, 0x10001)",
489 "QScriptValue(0, qSNaN())",
490 "QScriptValue(0, qQNaN())",
491 "QScriptValue(0, qInf())",
492 "QScriptValue(0, -qInf())",
493 "QScriptValue(0, \"NaN\")",
494 "QScriptValue(0, \"Infinity\")",
495 "QScriptValue(0, \"-Infinity\")",
496 "QScriptValue(0, \"ciao\")",
497 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
498 "QScriptValue(0, QString(\"\"))",
499 "QScriptValue(0, QString())",
500 "QScriptValue(0, QString(\"0\"))",
501 "QScriptValue(0, QString(\"123\"))",
502 "QScriptValue(0, QString(\"12.3\"))",
503 "QScriptValue(engine, QScriptValue::UndefinedValue)",
504 "QScriptValue(engine, QScriptValue::NullValue)",
505 "QScriptValue(engine, true)",
506 "QScriptValue(engine, false)",
507 "QScriptValue(engine, int(122))",
508 "QScriptValue(engine, uint(124))",
509 "QScriptValue(engine, 0)",
510 "QScriptValue(engine, 0.0)",
511 "QScriptValue(engine, 123.0)",
512 "QScriptValue(engine, 6.37e-8)",
513 "QScriptValue(engine, -6.37e-8)",
514 "QScriptValue(engine, 0x43211234)",
515 "QScriptValue(engine, 0x10000)",
516 "QScriptValue(engine, 0x10001)",
517 "QScriptValue(engine, qSNaN())",
518 "QScriptValue(engine, qQNaN())",
519 "QScriptValue(engine, qInf())",
520 "QScriptValue(engine, -qInf())",
521 "QScriptValue(engine, \"NaN\")",
522 "QScriptValue(engine, \"Infinity\")",
523 "QScriptValue(engine, \"-Infinity\")",
524 "QScriptValue(engine, \"ciao\")",
525 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
526 "QScriptValue(engine, QString(\"\"))",
527 "QScriptValue(engine, QString())",
528 "QScriptValue(engine, QString(\"0\"))",
529 "QScriptValue(engine, QString(\"123\"))",
530 "QScriptValue(engine, QString(\"1.23\"))",
531 "engine->evaluate(\"[]\")",
532 "engine->evaluate(\"{}\")",
533 "engine->evaluate(\"Object.prototype\")",
534 "engine->evaluate(\"Date.prototype\")",
535 "engine->evaluate(\"Array.prototype\")",
536 "engine->evaluate(\"Function.prototype\")",
537 "engine->evaluate(\"Error.prototype\")",
538 "engine->evaluate(\"Object\")",
539 "engine->evaluate(\"Array\")",
540 "engine->evaluate(\"Number\")",
541 "engine->evaluate(\"Function\")",
542 "engine->evaluate(\"(function() { return 1; })\")",
543 "engine->evaluate(\"(function() { return 'ciao'; })\")",
544 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
545 "engine->evaluate(\"/foo/\")",
546 "engine->evaluate(\"new Object()\")",
547 "engine->evaluate(\"new Array()\")",
548 "engine->evaluate(\"new Error()\")",
549 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
550 "engine->evaluate(\"Undefined\")",
551 "engine->evaluate(\"Null\")",
552 "engine->evaluate(\"True\")",
553 "engine->evaluate(\"False\")",
554 "engine->evaluate(\"undefined\")",
555 "engine->evaluate(\"null\")",
556 "engine->evaluate(\"true\")",
557 "engine->evaluate(\"false\")",
558 "engine->evaluate(\"122\")",
559 "engine->evaluate(\"124\")",
560 "engine->evaluate(\"0\")",
561 "engine->evaluate(\"0.0\")",
562 "engine->evaluate(\"123.0\")",
563 "engine->evaluate(\"6.37e-8\")",
564 "engine->evaluate(\"-6.37e-8\")",
565 "engine->evaluate(\"0x43211234\")",
566 "engine->evaluate(\"0x10000\")",
567 "engine->evaluate(\"0x10001\")",
568 "engine->evaluate(\"NaN\")",
569 "engine->evaluate(\"Infinity\")",
570 "engine->evaluate(\"-Infinity\")",
571 "engine->evaluate(\"'ciao'\")",
572 "engine->evaluate(\"''\")",
573 "engine->evaluate(\"'0'\")",
574 "engine->evaluate(\"'123'\")",
575 "engine->evaluate(\"'12.4'\")",
576 "engine->nullValue()",
577 "engine->undefinedValue()",
578 "engine->newObject()",
579 "engine->newArray()",
580 "engine->newArray(10)"};
582 static const bool toBool_valueArray[] = {
652 void tst_QScriptValue::toBool_data()
654 QTest::addColumn<QScriptValue>("value");
655 QTest::addColumn<bool>("expected");
658 m_engine = new QScriptEngine();
659 QHash<QString, bool> expectedValue;
660 expectedValue.reserve(135);
661 for (uint i = 0; i < 135; ++i)
662 expectedValue.insert(toBool_tagArray[i], toBool_valueArray[i]);
663 for (uint i = 0; i < 135; ++i) {
664 QPair<QString, QScriptValue> testcase = initScriptValues(i);
665 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
669 void tst_QScriptValue::toBool()
671 QFETCH(QScriptValue, value);
672 QFETCH(bool, expected);
673 QCOMPARE(value.toBool(), expected);
674 QCOMPARE(value.toBool(), expected);
677 static const QString toBoolean_tagArray[] = {
679 "QScriptValue(QScriptValue::UndefinedValue)",
680 "QScriptValue(QScriptValue::NullValue)",
681 "QScriptValue(true)",
682 "QScriptValue(false)",
683 "QScriptValue(int(122))",
684 "QScriptValue(uint(124))",
687 "QScriptValue(123.0)",
688 "QScriptValue(6.37e-8)",
689 "QScriptValue(-6.37e-8)",
690 "QScriptValue(0x43211234)",
691 "QScriptValue(0x10000)",
692 "QScriptValue(0x10001)",
693 "QScriptValue(qSNaN())",
694 "QScriptValue(qQNaN())",
695 "QScriptValue(qInf())",
696 "QScriptValue(-qInf())",
697 "QScriptValue(\"NaN\")",
698 "QScriptValue(\"Infinity\")",
699 "QScriptValue(\"-Infinity\")",
700 "QScriptValue(\"ciao\")",
701 "QScriptValue(QString::fromLatin1(\"ciao\"))",
702 "QScriptValue(QString(\"\"))",
703 "QScriptValue(QString())",
704 "QScriptValue(QString(\"0\"))",
705 "QScriptValue(QString(\"123\"))",
706 "QScriptValue(QString(\"12.4\"))",
707 "QScriptValue(0, QScriptValue::UndefinedValue)",
708 "QScriptValue(0, QScriptValue::NullValue)",
709 "QScriptValue(0, true)",
710 "QScriptValue(0, false)",
711 "QScriptValue(0, int(122))",
712 "QScriptValue(0, uint(124))",
713 "QScriptValue(0, 0)",
714 "QScriptValue(0, 0.0)",
715 "QScriptValue(0, 123.0)",
716 "QScriptValue(0, 6.37e-8)",
717 "QScriptValue(0, -6.37e-8)",
718 "QScriptValue(0, 0x43211234)",
719 "QScriptValue(0, 0x10000)",
720 "QScriptValue(0, 0x10001)",
721 "QScriptValue(0, qSNaN())",
722 "QScriptValue(0, qQNaN())",
723 "QScriptValue(0, qInf())",
724 "QScriptValue(0, -qInf())",
725 "QScriptValue(0, \"NaN\")",
726 "QScriptValue(0, \"Infinity\")",
727 "QScriptValue(0, \"-Infinity\")",
728 "QScriptValue(0, \"ciao\")",
729 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
730 "QScriptValue(0, QString(\"\"))",
731 "QScriptValue(0, QString())",
732 "QScriptValue(0, QString(\"0\"))",
733 "QScriptValue(0, QString(\"123\"))",
734 "QScriptValue(0, QString(\"12.3\"))",
735 "QScriptValue(engine, QScriptValue::UndefinedValue)",
736 "QScriptValue(engine, QScriptValue::NullValue)",
737 "QScriptValue(engine, true)",
738 "QScriptValue(engine, false)",
739 "QScriptValue(engine, int(122))",
740 "QScriptValue(engine, uint(124))",
741 "QScriptValue(engine, 0)",
742 "QScriptValue(engine, 0.0)",
743 "QScriptValue(engine, 123.0)",
744 "QScriptValue(engine, 6.37e-8)",
745 "QScriptValue(engine, -6.37e-8)",
746 "QScriptValue(engine, 0x43211234)",
747 "QScriptValue(engine, 0x10000)",
748 "QScriptValue(engine, 0x10001)",
749 "QScriptValue(engine, qSNaN())",
750 "QScriptValue(engine, qQNaN())",
751 "QScriptValue(engine, qInf())",
752 "QScriptValue(engine, -qInf())",
753 "QScriptValue(engine, \"NaN\")",
754 "QScriptValue(engine, \"Infinity\")",
755 "QScriptValue(engine, \"-Infinity\")",
756 "QScriptValue(engine, \"ciao\")",
757 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
758 "QScriptValue(engine, QString(\"\"))",
759 "QScriptValue(engine, QString())",
760 "QScriptValue(engine, QString(\"0\"))",
761 "QScriptValue(engine, QString(\"123\"))",
762 "QScriptValue(engine, QString(\"1.23\"))",
763 "engine->evaluate(\"[]\")",
764 "engine->evaluate(\"{}\")",
765 "engine->evaluate(\"Object.prototype\")",
766 "engine->evaluate(\"Date.prototype\")",
767 "engine->evaluate(\"Array.prototype\")",
768 "engine->evaluate(\"Function.prototype\")",
769 "engine->evaluate(\"Error.prototype\")",
770 "engine->evaluate(\"Object\")",
771 "engine->evaluate(\"Array\")",
772 "engine->evaluate(\"Number\")",
773 "engine->evaluate(\"Function\")",
774 "engine->evaluate(\"(function() { return 1; })\")",
775 "engine->evaluate(\"(function() { return 'ciao'; })\")",
776 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
777 "engine->evaluate(\"/foo/\")",
778 "engine->evaluate(\"new Object()\")",
779 "engine->evaluate(\"new Array()\")",
780 "engine->evaluate(\"new Error()\")",
781 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
782 "engine->evaluate(\"Undefined\")",
783 "engine->evaluate(\"Null\")",
784 "engine->evaluate(\"True\")",
785 "engine->evaluate(\"False\")",
786 "engine->evaluate(\"undefined\")",
787 "engine->evaluate(\"null\")",
788 "engine->evaluate(\"true\")",
789 "engine->evaluate(\"false\")",
790 "engine->evaluate(\"122\")",
791 "engine->evaluate(\"124\")",
792 "engine->evaluate(\"0\")",
793 "engine->evaluate(\"0.0\")",
794 "engine->evaluate(\"123.0\")",
795 "engine->evaluate(\"6.37e-8\")",
796 "engine->evaluate(\"-6.37e-8\")",
797 "engine->evaluate(\"0x43211234\")",
798 "engine->evaluate(\"0x10000\")",
799 "engine->evaluate(\"0x10001\")",
800 "engine->evaluate(\"NaN\")",
801 "engine->evaluate(\"Infinity\")",
802 "engine->evaluate(\"-Infinity\")",
803 "engine->evaluate(\"'ciao'\")",
804 "engine->evaluate(\"''\")",
805 "engine->evaluate(\"'0'\")",
806 "engine->evaluate(\"'123'\")",
807 "engine->evaluate(\"'12.4'\")",
808 "engine->nullValue()",
809 "engine->undefinedValue()",
810 "engine->newObject()",
811 "engine->newArray()",
812 "engine->newArray(10)"};
814 static const bool toBoolean_valueArray[] = {
884 void tst_QScriptValue::toBoolean_data()
886 QTest::addColumn<QScriptValue>("value");
887 QTest::addColumn<bool>("expected");
890 m_engine = new QScriptEngine();
891 QHash<QString, bool> expectedValue;
892 expectedValue.reserve(135);
893 for (uint i = 0; i < 135; ++i)
894 expectedValue.insert(toBoolean_tagArray[i], toBoolean_valueArray[i]);
895 for (uint i = 0; i < 135; ++i) {
896 QPair<QString, QScriptValue> testcase = initScriptValues(i);
897 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
901 void tst_QScriptValue::toBoolean()
903 QFETCH(QScriptValue, value);
904 QFETCH(bool, expected);
905 QCOMPARE(value.toBoolean(), expected);
906 QCOMPARE(value.toBoolean(), expected);
909 static const QString toInteger_tagArray[] = {
911 "QScriptValue(QScriptValue::UndefinedValue)",
912 "QScriptValue(QScriptValue::NullValue)",
913 "QScriptValue(true)",
914 "QScriptValue(false)",
915 "QScriptValue(int(122))",
916 "QScriptValue(uint(124))",
919 "QScriptValue(123.0)",
920 "QScriptValue(6.37e-8)",
921 "QScriptValue(-6.37e-8)",
922 "QScriptValue(0x43211234)",
923 "QScriptValue(0x10000)",
924 "QScriptValue(0x10001)",
925 "QScriptValue(qSNaN())",
926 "QScriptValue(qQNaN())",
927 "QScriptValue(qInf())",
928 "QScriptValue(-qInf())",
929 "QScriptValue(\"NaN\")",
930 "QScriptValue(\"Infinity\")",
931 "QScriptValue(\"-Infinity\")",
932 "QScriptValue(\"ciao\")",
933 "QScriptValue(QString::fromLatin1(\"ciao\"))",
934 "QScriptValue(QString(\"\"))",
935 "QScriptValue(QString())",
936 "QScriptValue(QString(\"0\"))",
937 "QScriptValue(QString(\"123\"))",
938 "QScriptValue(QString(\"12.4\"))",
939 "QScriptValue(0, QScriptValue::UndefinedValue)",
940 "QScriptValue(0, QScriptValue::NullValue)",
941 "QScriptValue(0, true)",
942 "QScriptValue(0, false)",
943 "QScriptValue(0, int(122))",
944 "QScriptValue(0, uint(124))",
945 "QScriptValue(0, 0)",
946 "QScriptValue(0, 0.0)",
947 "QScriptValue(0, 123.0)",
948 "QScriptValue(0, 6.37e-8)",
949 "QScriptValue(0, -6.37e-8)",
950 "QScriptValue(0, 0x43211234)",
951 "QScriptValue(0, 0x10000)",
952 "QScriptValue(0, 0x10001)",
953 "QScriptValue(0, qSNaN())",
954 "QScriptValue(0, qQNaN())",
955 "QScriptValue(0, qInf())",
956 "QScriptValue(0, -qInf())",
957 "QScriptValue(0, \"NaN\")",
958 "QScriptValue(0, \"Infinity\")",
959 "QScriptValue(0, \"-Infinity\")",
960 "QScriptValue(0, \"ciao\")",
961 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
962 "QScriptValue(0, QString(\"\"))",
963 "QScriptValue(0, QString())",
964 "QScriptValue(0, QString(\"0\"))",
965 "QScriptValue(0, QString(\"123\"))",
966 "QScriptValue(0, QString(\"12.3\"))",
967 "QScriptValue(engine, QScriptValue::UndefinedValue)",
968 "QScriptValue(engine, QScriptValue::NullValue)",
969 "QScriptValue(engine, true)",
970 "QScriptValue(engine, false)",
971 "QScriptValue(engine, int(122))",
972 "QScriptValue(engine, uint(124))",
973 "QScriptValue(engine, 0)",
974 "QScriptValue(engine, 0.0)",
975 "QScriptValue(engine, 123.0)",
976 "QScriptValue(engine, 6.37e-8)",
977 "QScriptValue(engine, -6.37e-8)",
978 "QScriptValue(engine, 0x43211234)",
979 "QScriptValue(engine, 0x10000)",
980 "QScriptValue(engine, 0x10001)",
981 "QScriptValue(engine, qSNaN())",
982 "QScriptValue(engine, qQNaN())",
983 "QScriptValue(engine, qInf())",
984 "QScriptValue(engine, -qInf())",
985 "QScriptValue(engine, \"NaN\")",
986 "QScriptValue(engine, \"Infinity\")",
987 "QScriptValue(engine, \"-Infinity\")",
988 "QScriptValue(engine, \"ciao\")",
989 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
990 "QScriptValue(engine, QString(\"\"))",
991 "QScriptValue(engine, QString())",
992 "QScriptValue(engine, QString(\"0\"))",
993 "QScriptValue(engine, QString(\"123\"))",
994 "QScriptValue(engine, QString(\"1.23\"))",
995 "engine->evaluate(\"[]\")",
996 "engine->evaluate(\"{}\")",
997 "engine->evaluate(\"Object.prototype\")",
998 "engine->evaluate(\"Date.prototype\")",
999 "engine->evaluate(\"Array.prototype\")",
1000 "engine->evaluate(\"Function.prototype\")",
1001 "engine->evaluate(\"Error.prototype\")",
1002 "engine->evaluate(\"Object\")",
1003 "engine->evaluate(\"Array\")",
1004 "engine->evaluate(\"Number\")",
1005 "engine->evaluate(\"Function\")",
1006 "engine->evaluate(\"(function() { return 1; })\")",
1007 "engine->evaluate(\"(function() { return 'ciao'; })\")",
1008 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
1009 "engine->evaluate(\"/foo/\")",
1010 "engine->evaluate(\"new Object()\")",
1011 "engine->evaluate(\"new Array()\")",
1012 "engine->evaluate(\"new Error()\")",
1013 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
1014 "engine->evaluate(\"Undefined\")",
1015 "engine->evaluate(\"Null\")",
1016 "engine->evaluate(\"True\")",
1017 "engine->evaluate(\"False\")",
1018 "engine->evaluate(\"undefined\")",
1019 "engine->evaluate(\"null\")",
1020 "engine->evaluate(\"true\")",
1021 "engine->evaluate(\"false\")",
1022 "engine->evaluate(\"122\")",
1023 "engine->evaluate(\"124\")",
1024 "engine->evaluate(\"0\")",
1025 "engine->evaluate(\"0.0\")",
1026 "engine->evaluate(\"123.0\")",
1027 "engine->evaluate(\"6.37e-8\")",
1028 "engine->evaluate(\"-6.37e-8\")",
1029 "engine->evaluate(\"0x43211234\")",
1030 "engine->evaluate(\"0x10000\")",
1031 "engine->evaluate(\"0x10001\")",
1032 "engine->evaluate(\"NaN\")",
1033 "engine->evaluate(\"Infinity\")",
1034 "engine->evaluate(\"-Infinity\")",
1035 "engine->evaluate(\"'ciao'\")",
1036 "engine->evaluate(\"''\")",
1037 "engine->evaluate(\"'0'\")",
1038 "engine->evaluate(\"'123'\")",
1039 "engine->evaluate(\"'12.4'\")",
1040 "engine->nullValue()",
1041 "engine->undefinedValue()",
1042 "engine->newObject()",
1043 "engine->newArray()",
1044 "engine->newArray(10)"};
1046 static const qsreal toInteger_valueArray[] = {
1047 0, 0, 0, 1, 0, 122, 124, 0, 0, 123,
1048 0, 0, 1126240820, 65536, 65537, 0, 0, qInf(), qInf(), 0,
1049 qInf(), qInf(), 0, 0, 0, 0, 0, 123, 12, 0,
1050 0, 1, 0, 122, 124, 0, 0, 123, 0, 0,
1051 1126240820, 65536, 65537, 0, 0, qInf(), qInf(), 0, qInf(), qInf(),
1052 0, 0, 0, 0, 0, 123, 12, 0, 0, 1,
1053 0, 122, 124, 0, 0, 123, 0, 0, 1126240820, 65536,
1054 65537, 0, 0, qInf(), qInf(), 0, qInf(), qInf(), 0, 0,
1055 0, 0, 0, 123, 1, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1057 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
1058 1, 0, 122, 124, 0, 0, 123, 0, 0, 1126240820,
1059 65536, 65537, 0, qInf(), qInf(), 0, 0, 0, 123, 12,
1062 void tst_QScriptValue::toInteger_data()
1064 QTest::addColumn<QScriptValue>("value");
1065 QTest::addColumn<qsreal>("expected");
1068 m_engine = new QScriptEngine();
1069 QHash<QString, qsreal> expectedValue;
1070 expectedValue.reserve(135);
1071 for (uint i = 0; i < 135; ++i)
1072 expectedValue.insert(toInteger_tagArray[i], toInteger_valueArray[i]);
1073 for (uint i = 0; i < 135; ++i) {
1074 QPair<QString, QScriptValue> testcase = initScriptValues(i);
1075 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
1079 void tst_QScriptValue::toInteger()
1081 QFETCH(QScriptValue, value);
1082 QFETCH(qsreal, expected);
1083 if (qIsInf(expected)) {
1084 QVERIFY(qIsInf(value.toInteger()));
1085 QVERIFY(qIsInf(value.toInteger()));
1088 QCOMPARE(value.toInteger(), expected);
1089 QCOMPARE(value.toInteger(), expected);
1092 static const QString toInt32_tagArray[] = {
1094 "QScriptValue(QScriptValue::UndefinedValue)",
1095 "QScriptValue(QScriptValue::NullValue)",
1096 "QScriptValue(true)",
1097 "QScriptValue(false)",
1098 "QScriptValue(int(122))",
1099 "QScriptValue(uint(124))",
1101 "QScriptValue(0.0)",
1102 "QScriptValue(123.0)",
1103 "QScriptValue(6.37e-8)",
1104 "QScriptValue(-6.37e-8)",
1105 "QScriptValue(0x43211234)",
1106 "QScriptValue(0x10000)",
1107 "QScriptValue(0x10001)",
1108 "QScriptValue(qSNaN())",
1109 "QScriptValue(qQNaN())",
1110 "QScriptValue(qInf())",
1111 "QScriptValue(-qInf())",
1112 "QScriptValue(\"NaN\")",
1113 "QScriptValue(\"Infinity\")",
1114 "QScriptValue(\"-Infinity\")",
1115 "QScriptValue(\"ciao\")",
1116 "QScriptValue(QString::fromLatin1(\"ciao\"))",
1117 "QScriptValue(QString(\"\"))",
1118 "QScriptValue(QString())",
1119 "QScriptValue(QString(\"0\"))",
1120 "QScriptValue(QString(\"123\"))",
1121 "QScriptValue(QString(\"12.4\"))",
1122 "QScriptValue(0, QScriptValue::UndefinedValue)",
1123 "QScriptValue(0, QScriptValue::NullValue)",
1124 "QScriptValue(0, true)",
1125 "QScriptValue(0, false)",
1126 "QScriptValue(0, int(122))",
1127 "QScriptValue(0, uint(124))",
1128 "QScriptValue(0, 0)",
1129 "QScriptValue(0, 0.0)",
1130 "QScriptValue(0, 123.0)",
1131 "QScriptValue(0, 6.37e-8)",
1132 "QScriptValue(0, -6.37e-8)",
1133 "QScriptValue(0, 0x43211234)",
1134 "QScriptValue(0, 0x10000)",
1135 "QScriptValue(0, 0x10001)",
1136 "QScriptValue(0, qSNaN())",
1137 "QScriptValue(0, qQNaN())",
1138 "QScriptValue(0, qInf())",
1139 "QScriptValue(0, -qInf())",
1140 "QScriptValue(0, \"NaN\")",
1141 "QScriptValue(0, \"Infinity\")",
1142 "QScriptValue(0, \"-Infinity\")",
1143 "QScriptValue(0, \"ciao\")",
1144 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
1145 "QScriptValue(0, QString(\"\"))",
1146 "QScriptValue(0, QString())",
1147 "QScriptValue(0, QString(\"0\"))",
1148 "QScriptValue(0, QString(\"123\"))",
1149 "QScriptValue(0, QString(\"12.3\"))",
1150 "QScriptValue(engine, QScriptValue::UndefinedValue)",
1151 "QScriptValue(engine, QScriptValue::NullValue)",
1152 "QScriptValue(engine, true)",
1153 "QScriptValue(engine, false)",
1154 "QScriptValue(engine, int(122))",
1155 "QScriptValue(engine, uint(124))",
1156 "QScriptValue(engine, 0)",
1157 "QScriptValue(engine, 0.0)",
1158 "QScriptValue(engine, 123.0)",
1159 "QScriptValue(engine, 6.37e-8)",
1160 "QScriptValue(engine, -6.37e-8)",
1161 "QScriptValue(engine, 0x43211234)",
1162 "QScriptValue(engine, 0x10000)",
1163 "QScriptValue(engine, 0x10001)",
1164 "QScriptValue(engine, qSNaN())",
1165 "QScriptValue(engine, qQNaN())",
1166 "QScriptValue(engine, qInf())",
1167 "QScriptValue(engine, -qInf())",
1168 "QScriptValue(engine, \"NaN\")",
1169 "QScriptValue(engine, \"Infinity\")",
1170 "QScriptValue(engine, \"-Infinity\")",
1171 "QScriptValue(engine, \"ciao\")",
1172 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
1173 "QScriptValue(engine, QString(\"\"))",
1174 "QScriptValue(engine, QString())",
1175 "QScriptValue(engine, QString(\"0\"))",
1176 "QScriptValue(engine, QString(\"123\"))",
1177 "QScriptValue(engine, QString(\"1.23\"))",
1178 "engine->evaluate(\"[]\")",
1179 "engine->evaluate(\"{}\")",
1180 "engine->evaluate(\"Object.prototype\")",
1181 "engine->evaluate(\"Date.prototype\")",
1182 "engine->evaluate(\"Array.prototype\")",
1183 "engine->evaluate(\"Function.prototype\")",
1184 "engine->evaluate(\"Error.prototype\")",
1185 "engine->evaluate(\"Object\")",
1186 "engine->evaluate(\"Array\")",
1187 "engine->evaluate(\"Number\")",
1188 "engine->evaluate(\"Function\")",
1189 "engine->evaluate(\"(function() { return 1; })\")",
1190 "engine->evaluate(\"(function() { return 'ciao'; })\")",
1191 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
1192 "engine->evaluate(\"/foo/\")",
1193 "engine->evaluate(\"new Object()\")",
1194 "engine->evaluate(\"new Array()\")",
1195 "engine->evaluate(\"new Error()\")",
1196 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
1197 "engine->evaluate(\"Undefined\")",
1198 "engine->evaluate(\"Null\")",
1199 "engine->evaluate(\"True\")",
1200 "engine->evaluate(\"False\")",
1201 "engine->evaluate(\"undefined\")",
1202 "engine->evaluate(\"null\")",
1203 "engine->evaluate(\"true\")",
1204 "engine->evaluate(\"false\")",
1205 "engine->evaluate(\"122\")",
1206 "engine->evaluate(\"124\")",
1207 "engine->evaluate(\"0\")",
1208 "engine->evaluate(\"0.0\")",
1209 "engine->evaluate(\"123.0\")",
1210 "engine->evaluate(\"6.37e-8\")",
1211 "engine->evaluate(\"-6.37e-8\")",
1212 "engine->evaluate(\"0x43211234\")",
1213 "engine->evaluate(\"0x10000\")",
1214 "engine->evaluate(\"0x10001\")",
1215 "engine->evaluate(\"NaN\")",
1216 "engine->evaluate(\"Infinity\")",
1217 "engine->evaluate(\"-Infinity\")",
1218 "engine->evaluate(\"'ciao'\")",
1219 "engine->evaluate(\"''\")",
1220 "engine->evaluate(\"'0'\")",
1221 "engine->evaluate(\"'123'\")",
1222 "engine->evaluate(\"'12.4'\")",
1223 "engine->nullValue()",
1224 "engine->undefinedValue()",
1225 "engine->newObject()",
1226 "engine->newArray()",
1227 "engine->newArray(10)"};
1229 static const qint32 toInt32_valueArray[] = {
1299 void tst_QScriptValue::toInt32_data()
1301 QTest::addColumn<QScriptValue>("value");
1302 QTest::addColumn<qint32>("expected");
1305 m_engine = new QScriptEngine();
1306 QHash<QString, qint32> expectedValue;
1307 expectedValue.reserve(135);
1308 for (uint i = 0; i < 135; ++i)
1309 expectedValue.insert(toInt32_tagArray[i], toInt32_valueArray[i]);
1310 for (uint i = 0; i < 135; ++i) {
1311 QPair<QString, QScriptValue> testcase = initScriptValues(i);
1312 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
1316 void tst_QScriptValue::toInt32()
1318 QFETCH(QScriptValue, value);
1319 QFETCH(qint32, expected);
1320 QCOMPARE(value.toInt32(), expected);
1321 QCOMPARE(value.toInt32(), expected);
1324 static const QString toUInt32_tagArray[] = {
1326 "QScriptValue(QScriptValue::UndefinedValue)",
1327 "QScriptValue(QScriptValue::NullValue)",
1328 "QScriptValue(true)",
1329 "QScriptValue(false)",
1330 "QScriptValue(int(122))",
1331 "QScriptValue(uint(124))",
1333 "QScriptValue(0.0)",
1334 "QScriptValue(123.0)",
1335 "QScriptValue(6.37e-8)",
1336 "QScriptValue(-6.37e-8)",
1337 "QScriptValue(0x43211234)",
1338 "QScriptValue(0x10000)",
1339 "QScriptValue(0x10001)",
1340 "QScriptValue(qSNaN())",
1341 "QScriptValue(qQNaN())",
1342 "QScriptValue(qInf())",
1343 "QScriptValue(-qInf())",
1344 "QScriptValue(\"NaN\")",
1345 "QScriptValue(\"Infinity\")",
1346 "QScriptValue(\"-Infinity\")",
1347 "QScriptValue(\"ciao\")",
1348 "QScriptValue(QString::fromLatin1(\"ciao\"))",
1349 "QScriptValue(QString(\"\"))",
1350 "QScriptValue(QString())",
1351 "QScriptValue(QString(\"0\"))",
1352 "QScriptValue(QString(\"123\"))",
1353 "QScriptValue(QString(\"12.4\"))",
1354 "QScriptValue(0, QScriptValue::UndefinedValue)",
1355 "QScriptValue(0, QScriptValue::NullValue)",
1356 "QScriptValue(0, true)",
1357 "QScriptValue(0, false)",
1358 "QScriptValue(0, int(122))",
1359 "QScriptValue(0, uint(124))",
1360 "QScriptValue(0, 0)",
1361 "QScriptValue(0, 0.0)",
1362 "QScriptValue(0, 123.0)",
1363 "QScriptValue(0, 6.37e-8)",
1364 "QScriptValue(0, -6.37e-8)",
1365 "QScriptValue(0, 0x43211234)",
1366 "QScriptValue(0, 0x10000)",
1367 "QScriptValue(0, 0x10001)",
1368 "QScriptValue(0, qSNaN())",
1369 "QScriptValue(0, qQNaN())",
1370 "QScriptValue(0, qInf())",
1371 "QScriptValue(0, -qInf())",
1372 "QScriptValue(0, \"NaN\")",
1373 "QScriptValue(0, \"Infinity\")",
1374 "QScriptValue(0, \"-Infinity\")",
1375 "QScriptValue(0, \"ciao\")",
1376 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
1377 "QScriptValue(0, QString(\"\"))",
1378 "QScriptValue(0, QString())",
1379 "QScriptValue(0, QString(\"0\"))",
1380 "QScriptValue(0, QString(\"123\"))",
1381 "QScriptValue(0, QString(\"12.3\"))",
1382 "QScriptValue(engine, QScriptValue::UndefinedValue)",
1383 "QScriptValue(engine, QScriptValue::NullValue)",
1384 "QScriptValue(engine, true)",
1385 "QScriptValue(engine, false)",
1386 "QScriptValue(engine, int(122))",
1387 "QScriptValue(engine, uint(124))",
1388 "QScriptValue(engine, 0)",
1389 "QScriptValue(engine, 0.0)",
1390 "QScriptValue(engine, 123.0)",
1391 "QScriptValue(engine, 6.37e-8)",
1392 "QScriptValue(engine, -6.37e-8)",
1393 "QScriptValue(engine, 0x43211234)",
1394 "QScriptValue(engine, 0x10000)",
1395 "QScriptValue(engine, 0x10001)",
1396 "QScriptValue(engine, qSNaN())",
1397 "QScriptValue(engine, qQNaN())",
1398 "QScriptValue(engine, qInf())",
1399 "QScriptValue(engine, -qInf())",
1400 "QScriptValue(engine, \"NaN\")",
1401 "QScriptValue(engine, \"Infinity\")",
1402 "QScriptValue(engine, \"-Infinity\")",
1403 "QScriptValue(engine, \"ciao\")",
1404 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
1405 "QScriptValue(engine, QString(\"\"))",
1406 "QScriptValue(engine, QString())",
1407 "QScriptValue(engine, QString(\"0\"))",
1408 "QScriptValue(engine, QString(\"123\"))",
1409 "QScriptValue(engine, QString(\"1.23\"))",
1410 "engine->evaluate(\"[]\")",
1411 "engine->evaluate(\"{}\")",
1412 "engine->evaluate(\"Object.prototype\")",
1413 "engine->evaluate(\"Date.prototype\")",
1414 "engine->evaluate(\"Array.prototype\")",
1415 "engine->evaluate(\"Function.prototype\")",
1416 "engine->evaluate(\"Error.prototype\")",
1417 "engine->evaluate(\"Object\")",
1418 "engine->evaluate(\"Array\")",
1419 "engine->evaluate(\"Number\")",
1420 "engine->evaluate(\"Function\")",
1421 "engine->evaluate(\"(function() { return 1; })\")",
1422 "engine->evaluate(\"(function() { return 'ciao'; })\")",
1423 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
1424 "engine->evaluate(\"/foo/\")",
1425 "engine->evaluate(\"new Object()\")",
1426 "engine->evaluate(\"new Array()\")",
1427 "engine->evaluate(\"new Error()\")",
1428 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
1429 "engine->evaluate(\"Undefined\")",
1430 "engine->evaluate(\"Null\")",
1431 "engine->evaluate(\"True\")",
1432 "engine->evaluate(\"False\")",
1433 "engine->evaluate(\"undefined\")",
1434 "engine->evaluate(\"null\")",
1435 "engine->evaluate(\"true\")",
1436 "engine->evaluate(\"false\")",
1437 "engine->evaluate(\"122\")",
1438 "engine->evaluate(\"124\")",
1439 "engine->evaluate(\"0\")",
1440 "engine->evaluate(\"0.0\")",
1441 "engine->evaluate(\"123.0\")",
1442 "engine->evaluate(\"6.37e-8\")",
1443 "engine->evaluate(\"-6.37e-8\")",
1444 "engine->evaluate(\"0x43211234\")",
1445 "engine->evaluate(\"0x10000\")",
1446 "engine->evaluate(\"0x10001\")",
1447 "engine->evaluate(\"NaN\")",
1448 "engine->evaluate(\"Infinity\")",
1449 "engine->evaluate(\"-Infinity\")",
1450 "engine->evaluate(\"'ciao'\")",
1451 "engine->evaluate(\"''\")",
1452 "engine->evaluate(\"'0'\")",
1453 "engine->evaluate(\"'123'\")",
1454 "engine->evaluate(\"'12.4'\")",
1455 "engine->nullValue()",
1456 "engine->undefinedValue()",
1457 "engine->newObject()",
1458 "engine->newArray()",
1459 "engine->newArray(10)"};
1461 static const quint32 toUInt32_valueArray[] = {
1531 void tst_QScriptValue::toUInt32_data()
1533 QTest::addColumn<QScriptValue>("value");
1534 QTest::addColumn<quint32>("expected");
1537 m_engine = new QScriptEngine();
1538 QHash<QString, quint32> expectedValue;
1539 expectedValue.reserve(135);
1540 for (uint i = 0; i < 135; ++i)
1541 expectedValue.insert(toUInt32_tagArray[i], toUInt32_valueArray[i]);
1542 for (uint i = 0; i < 135; ++i) {
1543 QPair<QString, QScriptValue> testcase = initScriptValues(i);
1544 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
1548 void tst_QScriptValue::toUInt32()
1550 QFETCH(QScriptValue, value);
1551 QFETCH(quint32, expected);
1552 QCOMPARE(value.toUInt32(), expected);
1553 QCOMPARE(value.toUInt32(), expected);
1556 static const QString toUInt16_tagArray[] = {
1558 "QScriptValue(QScriptValue::UndefinedValue)",
1559 "QScriptValue(QScriptValue::NullValue)",
1560 "QScriptValue(true)",
1561 "QScriptValue(false)",
1562 "QScriptValue(int(122))",
1563 "QScriptValue(uint(124))",
1565 "QScriptValue(0.0)",
1566 "QScriptValue(123.0)",
1567 "QScriptValue(6.37e-8)",
1568 "QScriptValue(-6.37e-8)",
1569 "QScriptValue(0x43211234)",
1570 "QScriptValue(0x10000)",
1571 "QScriptValue(0x10001)",
1572 "QScriptValue(qSNaN())",
1573 "QScriptValue(qQNaN())",
1574 "QScriptValue(qInf())",
1575 "QScriptValue(-qInf())",
1576 "QScriptValue(\"NaN\")",
1577 "QScriptValue(\"Infinity\")",
1578 "QScriptValue(\"-Infinity\")",
1579 "QScriptValue(\"ciao\")",
1580 "QScriptValue(QString::fromLatin1(\"ciao\"))",
1581 "QScriptValue(QString(\"\"))",
1582 "QScriptValue(QString())",
1583 "QScriptValue(QString(\"0\"))",
1584 "QScriptValue(QString(\"123\"))",
1585 "QScriptValue(QString(\"12.4\"))",
1586 "QScriptValue(0, QScriptValue::UndefinedValue)",
1587 "QScriptValue(0, QScriptValue::NullValue)",
1588 "QScriptValue(0, true)",
1589 "QScriptValue(0, false)",
1590 "QScriptValue(0, int(122))",
1591 "QScriptValue(0, uint(124))",
1592 "QScriptValue(0, 0)",
1593 "QScriptValue(0, 0.0)",
1594 "QScriptValue(0, 123.0)",
1595 "QScriptValue(0, 6.37e-8)",
1596 "QScriptValue(0, -6.37e-8)",
1597 "QScriptValue(0, 0x43211234)",
1598 "QScriptValue(0, 0x10000)",
1599 "QScriptValue(0, 0x10001)",
1600 "QScriptValue(0, qSNaN())",
1601 "QScriptValue(0, qQNaN())",
1602 "QScriptValue(0, qInf())",
1603 "QScriptValue(0, -qInf())",
1604 "QScriptValue(0, \"NaN\")",
1605 "QScriptValue(0, \"Infinity\")",
1606 "QScriptValue(0, \"-Infinity\")",
1607 "QScriptValue(0, \"ciao\")",
1608 "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
1609 "QScriptValue(0, QString(\"\"))",
1610 "QScriptValue(0, QString())",
1611 "QScriptValue(0, QString(\"0\"))",
1612 "QScriptValue(0, QString(\"123\"))",
1613 "QScriptValue(0, QString(\"12.3\"))",
1614 "QScriptValue(engine, QScriptValue::UndefinedValue)",
1615 "QScriptValue(engine, QScriptValue::NullValue)",
1616 "QScriptValue(engine, true)",
1617 "QScriptValue(engine, false)",
1618 "QScriptValue(engine, int(122))",
1619 "QScriptValue(engine, uint(124))",
1620 "QScriptValue(engine, 0)",
1621 "QScriptValue(engine, 0.0)",
1622 "QScriptValue(engine, 123.0)",
1623 "QScriptValue(engine, 6.37e-8)",
1624 "QScriptValue(engine, -6.37e-8)",
1625 "QScriptValue(engine, 0x43211234)",
1626 "QScriptValue(engine, 0x10000)",
1627 "QScriptValue(engine, 0x10001)",
1628 "QScriptValue(engine, qSNaN())",
1629 "QScriptValue(engine, qQNaN())",
1630 "QScriptValue(engine, qInf())",
1631 "QScriptValue(engine, -qInf())",
1632 "QScriptValue(engine, \"NaN\")",
1633 "QScriptValue(engine, \"Infinity\")",
1634 "QScriptValue(engine, \"-Infinity\")",
1635 "QScriptValue(engine, \"ciao\")",
1636 "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
1637 "QScriptValue(engine, QString(\"\"))",
1638 "QScriptValue(engine, QString())",
1639 "QScriptValue(engine, QString(\"0\"))",
1640 "QScriptValue(engine, QString(\"123\"))",
1641 "QScriptValue(engine, QString(\"1.23\"))",
1642 "engine->evaluate(\"[]\")",
1643 "engine->evaluate(\"{}\")",
1644 "engine->evaluate(\"Object.prototype\")",
1645 "engine->evaluate(\"Date.prototype\")",
1646 "engine->evaluate(\"Array.prototype\")",
1647 "engine->evaluate(\"Function.prototype\")",
1648 "engine->evaluate(\"Error.prototype\")",
1649 "engine->evaluate(\"Object\")",
1650 "engine->evaluate(\"Array\")",
1651 "engine->evaluate(\"Number\")",
1652 "engine->evaluate(\"Function\")",
1653 "engine->evaluate(\"(function() { return 1; })\")",
1654 "engine->evaluate(\"(function() { return 'ciao'; })\")",
1655 "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
1656 "engine->evaluate(\"/foo/\")",
1657 "engine->evaluate(\"new Object()\")",
1658 "engine->evaluate(\"new Array()\")",
1659 "engine->evaluate(\"new Error()\")",
1660 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
1661 "engine->evaluate(\"Undefined\")",
1662 "engine->evaluate(\"Null\")",
1663 "engine->evaluate(\"True\")",
1664 "engine->evaluate(\"False\")",
1665 "engine->evaluate(\"undefined\")",
1666 "engine->evaluate(\"null\")",
1667 "engine->evaluate(\"true\")",
1668 "engine->evaluate(\"false\")",
1669 "engine->evaluate(\"122\")",
1670 "engine->evaluate(\"124\")",
1671 "engine->evaluate(\"0\")",
1672 "engine->evaluate(\"0.0\")",
1673 "engine->evaluate(\"123.0\")",
1674 "engine->evaluate(\"6.37e-8\")",
1675 "engine->evaluate(\"-6.37e-8\")",
1676 "engine->evaluate(\"0x43211234\")",
1677 "engine->evaluate(\"0x10000\")",
1678 "engine->evaluate(\"0x10001\")",
1679 "engine->evaluate(\"NaN\")",
1680 "engine->evaluate(\"Infinity\")",
1681 "engine->evaluate(\"-Infinity\")",
1682 "engine->evaluate(\"'ciao'\")",
1683 "engine->evaluate(\"''\")",
1684 "engine->evaluate(\"'0'\")",
1685 "engine->evaluate(\"'123'\")",
1686 "engine->evaluate(\"'12.4'\")",
1687 "engine->nullValue()",
1688 "engine->undefinedValue()",
1689 "engine->newObject()",
1690 "engine->newArray()",
1691 "engine->newArray(10)"};
1693 static const quint16 toUInt16_valueArray[] = {
1763 void tst_QScriptValue::toUInt16_data()
1765 QTest::addColumn<QScriptValue>("value");
1766 QTest::addColumn<quint16>("expected");
1769 m_engine = new QScriptEngine();
1770 QHash<QString, quint16> expectedValue;
1771 expectedValue.reserve(135);
1772 for (uint i = 0; i < 135; ++i)
1773 expectedValue.insert(toUInt16_tagArray[i], toUInt16_valueArray[i]);
1774 for (uint i = 0; i < 135; ++i) {
1775 QPair<QString, QScriptValue> testcase = initScriptValues(i);
1776 QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue[testcase.first];
1780 void tst_QScriptValue::toUInt16()
1782 QFETCH(QScriptValue, value);
1783 QFETCH(quint16, expected);
1784 QCOMPARE(value.toUInt16(), expected);
1785 QCOMPARE(value.toUInt16(), expected);