1/* 2 Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 3 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. 8 9 This library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Library General Public License for more details. 13 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. 18*/ 19 20/**************************************************************************** 21*************** This file has been generated. DO NOT MODIFY! **************** 22****************************************************************************/ 23 24#include "tst_qscriptvalue.h" 25 26static const QString toString_tagArray[] = { 27 "QScriptValue()", 28 "QScriptValue(QScriptValue::UndefinedValue)", 29 "QScriptValue(QScriptValue::NullValue)", 30 "QScriptValue(true)", 31 "QScriptValue(false)", 32 "QScriptValue(int(122))", 33 "QScriptValue(uint(124))", 34 "QScriptValue(0)", 35 "QScriptValue(0.0)", 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))", 62 "QScriptValue(0, 0)", 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)"}; 162 163static const QString toString_valueArray[] = { 164 "", "undefined", 165 "null", "true", 166 "false", "122", 167 "124", "0", 168 "0", "123", 169 "6.37e-8", "-6.37e-8", 170 "1126240820", "65536", 171 "65537", "NaN", 172 "NaN", "Infinity", 173 "-Infinity", "NaN", 174 "Infinity", "-Infinity", 175 "ciao", "ciao", 176 "", "", 177 "0", "123", 178 "12.4", "undefined", 179 "null", "true", 180 "false", "122", 181 "124", "0", 182 "0", "123", 183 "6.37e-8", "-6.37e-8", 184 "1126240820", "65536", 185 "65537", "NaN", 186 "NaN", "Infinity", 187 "-Infinity", "NaN", 188 "Infinity", "-Infinity", 189 "ciao", "ciao", 190 "", "", 191 "0", "123", 192 "12.3", "undefined", 193 "null", "true", 194 "false", "122", 195 "124", "0", 196 "0", "123", 197 "6.37e-8", "-6.37e-8", 198 "1126240820", "65536", 199 "65537", "NaN", 200 "NaN", "Infinity", 201 "-Infinity", "NaN", 202 "Infinity", "-Infinity", 203 "ciao", "ciao", 204 "", "", 205 "0", "123", 206 "1.23", "", 207 "undefined", "[object Object]", 208 "Invalid Date", "", 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", 218 "undefined", "null", 219 "true", "false", 220 "122", "124", 221 "0", "0", 222 "123", "6.37e-8", 223 "-6.37e-8", "1126240820", 224 "65536", "65537", 225 "NaN", "Infinity", 226 "-Infinity", "ciao", 227 "", "0", 228 "123", "12.4", 229 "null", "undefined", 230 "[object Object]", "", 231 ",,,,,,,,,"}; 232 233void tst_QScriptValue::toString_data() 234{ 235 QTest::addColumn<QScriptValue>("value"); 236 QTest::addColumn<QString>("expected"); 237 if (m_engine) 238 delete m_engine; 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]; 247 } 248} 249 250void tst_QScriptValue::toString() 251{ 252 QFETCH(QScriptValue, value); 253 QFETCH(QString, expected); 254 QCOMPARE(value.toString(), expected); 255 QCOMPARE(value.toString(), expected); 256} 257 258static const QString toNumber_tagArray[] = { 259 "QScriptValue()", 260 "QScriptValue(QScriptValue::UndefinedValue)", 261 "QScriptValue(QScriptValue::NullValue)", 262 "QScriptValue(true)", 263 "QScriptValue(false)", 264 "QScriptValue(int(122))", 265 "QScriptValue(uint(124))", 266 "QScriptValue(0)", 267 "QScriptValue(0.0)", 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)"}; 394 395static 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()}; 410 411void tst_QScriptValue::toNumber_data() 412{ 413 QTest::addColumn<QScriptValue>("value"); 414 QTest::addColumn<qsreal>("expected"); 415 if (m_engine) 416 delete m_engine; 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]; 425 } 426} 427 428void tst_QScriptValue::toNumber() 429{ 430 QFETCH(QScriptValue, value); 431 QFETCH(qsreal, expected); 432 if (qIsNaN(expected)) { 433 QVERIFY(qIsNaN(value.toNumber())); 434 return; 435 } 436 if (qIsInf(expected)) { 437 QVERIFY(qIsInf(value.toNumber())); 438 QVERIFY(qIsInf(value.toNumber())); 439 return; 440 } 441 QCOMPARE(value.toNumber(), expected); 442 QCOMPARE(value.toNumber(), expected); 443} 444 445static const QString toBool_tagArray[] = { 446 "QScriptValue()", 447 "QScriptValue(QScriptValue::UndefinedValue)", 448 "QScriptValue(QScriptValue::NullValue)", 449 "QScriptValue(true)", 450 "QScriptValue(false)", 451 "QScriptValue(int(122))", 452 "QScriptValue(uint(124))", 453 "QScriptValue(0)", 454 "QScriptValue(0.0)", 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)"}; 581 582static const bool toBool_valueArray[] = { 583 false, false, 584 false, true, 585 false, true, 586 true, false, 587 false, true, 588 true, true, 589 true, true, 590 true, false, 591 false, true, 592 true, true, 593 true, true, 594 true, true, 595 false, false, 596 true, true, 597 true, false, 598 false, true, 599 false, true, 600 true, false, 601 false, true, 602 true, true, 603 true, true, 604 true, false, 605 false, true, 606 true, true, 607 true, true, 608 true, true, 609 false, false, 610 true, true, 611 true, false, 612 false, true, 613 false, true, 614 true, false, 615 false, true, 616 true, true, 617 true, true, 618 true, false, 619 false, true, 620 true, true, 621 true, true, 622 true, true, 623 false, false, 624 true, true, 625 true, true, 626 false, true, 627 true, true, 628 true, true, 629 true, true, 630 true, true, 631 true, true, 632 true, true, 633 true, true, 634 true, true, 635 true, true, 636 true, true, 637 false, false, 638 true, false, 639 true, true, 640 false, false, 641 true, true, 642 true, true, 643 true, true, 644 false, true, 645 true, true, 646 false, true, 647 true, true, 648 false, false, 649 true, true, 650 true}; 651 652void tst_QScriptValue::toBool_data() 653{ 654 QTest::addColumn<QScriptValue>("value"); 655 QTest::addColumn<bool>("expected"); 656 if (m_engine) 657 delete m_engine; 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]; 666 } 667} 668 669void tst_QScriptValue::toBool() 670{ 671 QFETCH(QScriptValue, value); 672 QFETCH(bool, expected); 673 QCOMPARE(value.toBool(), expected); 674 QCOMPARE(value.toBool(), expected); 675} 676 677static const QString toBoolean_tagArray[] = { 678 "QScriptValue()", 679 "QScriptValue(QScriptValue::UndefinedValue)", 680 "QScriptValue(QScriptValue::NullValue)", 681 "QScriptValue(true)", 682 "QScriptValue(false)", 683 "QScriptValue(int(122))", 684 "QScriptValue(uint(124))", 685 "QScriptValue(0)", 686 "QScriptValue(0.0)", 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)"}; 813 814static const bool toBoolean_valueArray[] = { 815 false, false, 816 false, true, 817 false, true, 818 true, false, 819 false, true, 820 true, true, 821 true, true, 822 true, false, 823 false, true, 824 true, true, 825 true, true, 826 true, true, 827 false, false, 828 true, true, 829 true, false, 830 false, true, 831 false, true, 832 true, false, 833 false, true, 834 true, true, 835 true, true, 836 true, false, 837 false, true, 838 true, true, 839 true, true, 840 true, true, 841 false, false, 842 true, true, 843 true, false, 844 false, true, 845 false, true, 846 true, false, 847 false, true, 848 true, true, 849 true, true, 850 true, false, 851 false, true, 852 true, true, 853 true, true, 854 true, true, 855 false, false, 856 true, true, 857 true, true, 858 false, true, 859 true, true, 860 true, true, 861 true, true, 862 true, true, 863 true, true, 864 true, true, 865 true, true, 866 true, true, 867 true, true, 868 true, true, 869 false, false, 870 true, false, 871 true, true, 872 false, false, 873 true, true, 874 true, true, 875 true, true, 876 false, true, 877 true, true, 878 false, true, 879 true, true, 880 false, false, 881 true, true, 882 true}; 883 884void tst_QScriptValue::toBoolean_data() 885{ 886 QTest::addColumn<QScriptValue>("value"); 887 QTest::addColumn<bool>("expected"); 888 if (m_engine) 889 delete m_engine; 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]; 898 } 899} 900 901void tst_QScriptValue::toBoolean() 902{ 903 QFETCH(QScriptValue, value); 904 QFETCH(bool, expected); 905 QCOMPARE(value.toBoolean(), expected); 906 QCOMPARE(value.toBoolean(), expected); 907} 908 909static const QString toInteger_tagArray[] = { 910 "QScriptValue()", 911 "QScriptValue(QScriptValue::UndefinedValue)", 912 "QScriptValue(QScriptValue::NullValue)", 913 "QScriptValue(true)", 914 "QScriptValue(false)", 915 "QScriptValue(int(122))", 916 "QScriptValue(uint(124))", 917 "QScriptValue(0)", 918 "QScriptValue(0.0)", 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)"}; 1045 1046static 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, 1060 0, 0, 0, 0, 0}; 1061 1062void tst_QScriptValue::toInteger_data() 1063{ 1064 QTest::addColumn<QScriptValue>("value"); 1065 QTest::addColumn<qsreal>("expected"); 1066 if (m_engine) 1067 delete m_engine; 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]; 1076 } 1077} 1078 1079void tst_QScriptValue::toInteger() 1080{ 1081 QFETCH(QScriptValue, value); 1082 QFETCH(qsreal, expected); 1083 if (qIsInf(expected)) { 1084 QVERIFY(qIsInf(value.toInteger())); 1085 QVERIFY(qIsInf(value.toInteger())); 1086 return; 1087 } 1088 QCOMPARE(value.toInteger(), expected); 1089 QCOMPARE(value.toInteger(), expected); 1090} 1091 1092static const QString toInt32_tagArray[] = { 1093 "QScriptValue()", 1094 "QScriptValue(QScriptValue::UndefinedValue)", 1095 "QScriptValue(QScriptValue::NullValue)", 1096 "QScriptValue(true)", 1097 "QScriptValue(false)", 1098 "QScriptValue(int(122))", 1099 "QScriptValue(uint(124))", 1100 "QScriptValue(0)", 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)"}; 1228 1229static const qint32 toInt32_valueArray[] = { 1230 0, 0, 1231 0, 1, 1232 0, 122, 1233 124, 0, 1234 0, 123, 1235 0, 0, 1236 1126240820, 65536, 1237 65537, 0, 1238 0, 0, 1239 0, 0, 1240 0, 0, 1241 0, 0, 1242 0, 0, 1243 0, 123, 1244 12, 0, 1245 0, 1, 1246 0, 122, 1247 124, 0, 1248 0, 123, 1249 0, 0, 1250 1126240820, 65536, 1251 65537, 0, 1252 0, 0, 1253 0, 0, 1254 0, 0, 1255 0, 0, 1256 0, 0, 1257 0, 123, 1258 12, 0, 1259 0, 1, 1260 0, 122, 1261 124, 0, 1262 0, 123, 1263 0, 0, 1264 1126240820, 65536, 1265 65537, 0, 1266 0, 0, 1267 0, 0, 1268 0, 0, 1269 0, 0, 1270 0, 0, 1271 0, 123, 1272 1, 0, 1273 0, 0, 1274 0, 0, 1275 0, 0, 1276 0, 0, 1277 0, 0, 1278 0, 0, 1279 0, 0, 1280 0, 0, 1281 0, 22, 1282 0, 0, 1283 0, 0, 1284 0, 0, 1285 1, 0, 1286 122, 124, 1287 0, 0, 1288 123, 0, 1289 0, 1126240820, 1290 65536, 65537, 1291 0, 0, 1292 0, 0, 1293 0, 0, 1294 123, 12, 1295 0, 0, 1296 0, 0, 1297 0}; 1298 1299void tst_QScriptValue::toInt32_data() 1300{ 1301 QTest::addColumn<QScriptValue>("value"); 1302 QTest::addColumn<qint32>("expected"); 1303 if (m_engine) 1304 delete m_engine; 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]; 1313 } 1314} 1315 1316void tst_QScriptValue::toInt32() 1317{ 1318 QFETCH(QScriptValue, value); 1319 QFETCH(qint32, expected); 1320 QCOMPARE(value.toInt32(), expected); 1321 QCOMPARE(value.toInt32(), expected); 1322} 1323 1324static const QString toUInt32_tagArray[] = { 1325 "QScriptValue()", 1326 "QScriptValue(QScriptValue::UndefinedValue)", 1327 "QScriptValue(QScriptValue::NullValue)", 1328 "QScriptValue(true)", 1329 "QScriptValue(false)", 1330 "QScriptValue(int(122))", 1331 "QScriptValue(uint(124))", 1332 "QScriptValue(0)", 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)"}; 1460 1461static const quint32 toUInt32_valueArray[] = { 1462 0, 0, 1463 0, 1, 1464 0, 122, 1465 124, 0, 1466 0, 123, 1467 0, 0, 1468 1126240820, 65536, 1469 65537, 0, 1470 0, 0, 1471 0, 0, 1472 0, 0, 1473 0, 0, 1474 0, 0, 1475 0, 123, 1476 12, 0, 1477 0, 1, 1478 0, 122, 1479 124, 0, 1480 0, 123, 1481 0, 0, 1482 1126240820, 65536, 1483 65537, 0, 1484 0, 0, 1485 0, 0, 1486 0, 0, 1487 0, 0, 1488 0, 0, 1489 0, 123, 1490 12, 0, 1491 0, 1, 1492 0, 122, 1493 124, 0, 1494 0, 123, 1495 0, 0, 1496 1126240820, 65536, 1497 65537, 0, 1498 0, 0, 1499 0, 0, 1500 0, 0, 1501 0, 0, 1502 0, 0, 1503 0, 123, 1504 1, 0, 1505 0, 0, 1506 0, 0, 1507 0, 0, 1508 0, 0, 1509 0, 0, 1510 0, 0, 1511 0, 0, 1512 0, 0, 1513 0, 22, 1514 0, 0, 1515 0, 0, 1516 0, 0, 1517 1, 0, 1518 122, 124, 1519 0, 0, 1520 123, 0, 1521 0, 1126240820, 1522 65536, 65537, 1523 0, 0, 1524 0, 0, 1525 0, 0, 1526 123, 12, 1527 0, 0, 1528 0, 0, 1529 0}; 1530 1531void tst_QScriptValue::toUInt32_data() 1532{ 1533 QTest::addColumn<QScriptValue>("value"); 1534 QTest::addColumn<quint32>("expected"); 1535 if (m_engine) 1536 delete m_engine; 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]; 1545 } 1546} 1547 1548void tst_QScriptValue::toUInt32() 1549{ 1550 QFETCH(QScriptValue, value); 1551 QFETCH(quint32, expected); 1552 QCOMPARE(value.toUInt32(), expected); 1553 QCOMPARE(value.toUInt32(), expected); 1554} 1555 1556static const QString toUInt16_tagArray[] = { 1557 "QScriptValue()", 1558 "QScriptValue(QScriptValue::UndefinedValue)", 1559 "QScriptValue(QScriptValue::NullValue)", 1560 "QScriptValue(true)", 1561 "QScriptValue(false)", 1562 "QScriptValue(int(122))", 1563 "QScriptValue(uint(124))", 1564 "QScriptValue(0)", 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)"}; 1692 1693static const quint16 toUInt16_valueArray[] = { 1694 0, 0, 1695 0, 1, 1696 0, 122, 1697 124, 0, 1698 0, 123, 1699 0, 0, 1700 4660, 0, 1701 1, 0, 1702 0, 0, 1703 0, 0, 1704 0, 0, 1705 0, 0, 1706 0, 0, 1707 0, 123, 1708 12, 0, 1709 0, 1, 1710 0, 122, 1711 124, 0, 1712 0, 123, 1713 0, 0, 1714 4660, 0, 1715 1, 0, 1716 0, 0, 1717 0, 0, 1718 0, 0, 1719 0, 0, 1720 0, 0, 1721 0, 123, 1722 12, 0, 1723 0, 1, 1724 0, 122, 1725 124, 0, 1726 0, 123, 1727 0, 0, 1728 4660, 0, 1729 1, 0, 1730 0, 0, 1731 0, 0, 1732 0, 0, 1733 0, 0, 1734 0, 0, 1735 0, 123, 1736 1, 0, 1737 0, 0, 1738 0, 0, 1739 0, 0, 1740 0, 0, 1741 0, 0, 1742 0, 0, 1743 0, 0, 1744 0, 0, 1745 0, 22, 1746 0, 0, 1747 0, 0, 1748 0, 0, 1749 1, 0, 1750 122, 124, 1751 0, 0, 1752 123, 0, 1753 0, 4660, 1754 0, 1, 1755 0, 0, 1756 0, 0, 1757 0, 0, 1758 123, 12, 1759 0, 0, 1760 0, 0, 1761 0}; 1762 1763void tst_QScriptValue::toUInt16_data() 1764{ 1765 QTest::addColumn<QScriptValue>("value"); 1766 QTest::addColumn<quint16>("expected"); 1767 if (m_engine) 1768 delete m_engine; 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]; 1777 } 1778} 1779 1780void tst_QScriptValue::toUInt16() 1781{ 1782 QFETCH(QScriptValue, value); 1783 QFETCH(quint16, expected); 1784 QCOMPARE(value.toUInt16(), expected); 1785 QCOMPARE(value.toUInt16(), expected); 1786} 1787