Changeset 64165 in webkit


Ignore:
Timestamp:
Jul 27, 2010 3:16:09 PM (14 years ago)
Author:
commit-queue@webkit.org
Message:

2010-07-27 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>

Reviewed by Kenneth Rohde Christiansen.

Update the QScriptValue autotests suite.

QScriptValue generated files were updated, changes are:

  • More tested values (for example QSE::newObject() and QSE::newArray())
  • Tested values are recreated before each test and are not reused. The change implies better code coverage and some expected result changes.
  • A new test to check copy and assign functions.
  • Tests are using standard QTestLib interface, without any custom macros.

[Qt] Improve test coverage for the QScriptValue
https://bugs.webkit.org/show_bug.cgi?id=42366

  • tests/qscriptvalue/tst_qscriptvalue.cpp: (tst_QScriptValue::tst_QScriptValue): (tst_QScriptValue::~tst_QScriptValue): (tst_QScriptValue::assignAndCopyConstruct_data): (tst_QScriptValue::assignAndCopyConstruct):
  • tests/qscriptvalue/tst_qscriptvalue.h:
  • tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: (tst_QScriptValue::equals_data): (tst_QScriptValue::equals): (tst_QScriptValue::strictlyEquals_data): (tst_QScriptValue::strictlyEquals): (tst_QScriptValue::instanceOf_data): (tst_QScriptValue::instanceOf):
  • tests/qscriptvalue/tst_qscriptvalue_generated_init.cpp: (tst_QScriptValue::initScriptValues):
  • tests/qscriptvalue/tst_qscriptvalue_generated_istype.cpp: (tst_QScriptValue::isValid_data): (tst_QScriptValue::isValid): (tst_QScriptValue::isBool_data): (tst_QScriptValue::isBool): (tst_QScriptValue::isBoolean_data): (tst_QScriptValue::isBoolean): (tst_QScriptValue::isNumber_data): (tst_QScriptValue::isNumber): (tst_QScriptValue::isFunction_data): (tst_QScriptValue::isFunction): (tst_QScriptValue::isNull_data): (tst_QScriptValue::isNull): (tst_QScriptValue::isString_data): (tst_QScriptValue::isString): (tst_QScriptValue::isUndefined_data): (tst_QScriptValue::isUndefined): (tst_QScriptValue::isObject_data): (tst_QScriptValue::isObject): (tst_QScriptValue::isArray_data): (tst_QScriptValue::isArray): (tst_QScriptValue::isError_data): (tst_QScriptValue::isError):
  • tests/qscriptvalue/tst_qscriptvalue_generated_totype.cpp: (tst_QScriptValue::toString_data): (tst_QScriptValue::toString): (tst_QScriptValue::toNumber_data): (tst_QScriptValue::toNumber): (tst_QScriptValue::toBool_data): (tst_QScriptValue::toBool): (tst_QScriptValue::toBoolean_data): (tst_QScriptValue::toBoolean): (tst_QScriptValue::toInteger_data): (tst_QScriptValue::toInteger): (tst_QScriptValue::toInt32_data): (tst_QScriptValue::toInt32): (tst_QScriptValue::toUInt32_data): (tst_QScriptValue::toUInt32): (tst_QScriptValue::toUInt16_data): (tst_QScriptValue::toUInt16):
Location:
trunk/JavaScriptCore/qt
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/qt/ChangeLog

    r64130 r64165  
     12010-07-27  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
     2
     3        Reviewed by Kenneth Rohde Christiansen.
     4
     5        Update the QScriptValue autotests suite.
     6
     7        QScriptValue generated files were updated, changes are:
     8         - More tested values (for example QSE::newObject() and QSE::newArray())
     9         - Tested values are recreated before each test and are not reused.
     10         The change implies better code coverage and some expected result changes.
     11         - A new test to check copy and assign functions.
     12         - Tests are using standard QTestLib interface, without any custom macros.
     13
     14        [Qt] Improve test coverage for the QScriptValue
     15        https://bugs.webkit.org/show_bug.cgi?id=42366
     16
     17        * tests/qscriptvalue/tst_qscriptvalue.cpp:
     18        (tst_QScriptValue::tst_QScriptValue):
     19        (tst_QScriptValue::~tst_QScriptValue):
     20        (tst_QScriptValue::assignAndCopyConstruct_data):
     21        (tst_QScriptValue::assignAndCopyConstruct):
     22        * tests/qscriptvalue/tst_qscriptvalue.h:
     23        * tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
     24        (tst_QScriptValue::equals_data):
     25        (tst_QScriptValue::equals):
     26        (tst_QScriptValue::strictlyEquals_data):
     27        (tst_QScriptValue::strictlyEquals):
     28        (tst_QScriptValue::instanceOf_data):
     29        (tst_QScriptValue::instanceOf):
     30        * tests/qscriptvalue/tst_qscriptvalue_generated_init.cpp:
     31        (tst_QScriptValue::initScriptValues):
     32        * tests/qscriptvalue/tst_qscriptvalue_generated_istype.cpp:
     33        (tst_QScriptValue::isValid_data):
     34        (tst_QScriptValue::isValid):
     35        (tst_QScriptValue::isBool_data):
     36        (tst_QScriptValue::isBool):
     37        (tst_QScriptValue::isBoolean_data):
     38        (tst_QScriptValue::isBoolean):
     39        (tst_QScriptValue::isNumber_data):
     40        (tst_QScriptValue::isNumber):
     41        (tst_QScriptValue::isFunction_data):
     42        (tst_QScriptValue::isFunction):
     43        (tst_QScriptValue::isNull_data):
     44        (tst_QScriptValue::isNull):
     45        (tst_QScriptValue::isString_data):
     46        (tst_QScriptValue::isString):
     47        (tst_QScriptValue::isUndefined_data):
     48        (tst_QScriptValue::isUndefined):
     49        (tst_QScriptValue::isObject_data):
     50        (tst_QScriptValue::isObject):
     51        (tst_QScriptValue::isArray_data):
     52        (tst_QScriptValue::isArray):
     53        (tst_QScriptValue::isError_data):
     54        (tst_QScriptValue::isError):
     55        * tests/qscriptvalue/tst_qscriptvalue_generated_totype.cpp:
     56        (tst_QScriptValue::toString_data):
     57        (tst_QScriptValue::toString):
     58        (tst_QScriptValue::toNumber_data):
     59        (tst_QScriptValue::toNumber):
     60        (tst_QScriptValue::toBool_data):
     61        (tst_QScriptValue::toBool):
     62        (tst_QScriptValue::toBoolean_data):
     63        (tst_QScriptValue::toBoolean):
     64        (tst_QScriptValue::toInteger_data):
     65        (tst_QScriptValue::toInteger):
     66        (tst_QScriptValue::toInt32_data):
     67        (tst_QScriptValue::toInt32):
     68        (tst_QScriptValue::toUInt32_data):
     69        (tst_QScriptValue::toUInt32):
     70        (tst_QScriptValue::toUInt16_data):
     71        (tst_QScriptValue::toUInt16):
     72
    1732010-07-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
    274
  • trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.cpp

    r63318 r64165  
    2222
    2323tst_QScriptValue::tst_QScriptValue()
    24     : engine(0)
     24    : m_engine(0)
    2525{
    2626}
     
    2828tst_QScriptValue::~tst_QScriptValue()
    2929{
    30     delete engine;
    31 }
    32 
    33 void tst_QScriptValue::dataHelper(InitDataFunction init, DefineDataFunction define)
    34 {
    35     QTest::addColumn<QString>("__expression__");
    36     (this->*init)();
    37     QHash<QString, QScriptValue>::const_iterator it;
    38     for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
    39         m_currentExpression = it.key();
    40         (this->*define)(it.key().toLatin1());
    41     }
    42     m_currentExpression = QString();
    43 }
    44 
    45 QTestData& tst_QScriptValue::newRow(const char* tag)
    46 {
    47     return QTest::newRow(tag) << m_currentExpression;
    48 }
    49 
    50 void tst_QScriptValue::testHelper(TestFunction fun)
    51 {
    52     QFETCH(QString, __expression__);
    53     QScriptValue value = m_values.value(__expression__);
    54     (this->*fun)(__expression__.toLatin1(), value);
    55 }
    56 
     30    delete m_engine;
     31}
    5732
    5833void tst_QScriptValue::ctor()
     
    12861261}
    12871262
     1263void tst_QScriptValue::assignAndCopyConstruct_data()
     1264{
     1265    QTest::addColumn<QScriptValue>("value");
     1266    if (m_engine)
     1267        delete m_engine;
     1268    m_engine = new QScriptEngine;
     1269    // Copy & assign code is the same for all types, so it is enough to check only a few value.
     1270    for (unsigned i = 0; i < 10; ++i) {
     1271        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     1272        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second;
     1273    }
     1274}
     1275
     1276void tst_QScriptValue::assignAndCopyConstruct()
     1277{
     1278    QFETCH(QScriptValue, value);
     1279    QScriptValue copy(value);
     1280    QEXPECT_FAIL("QScriptValue(QScriptValue::NullValue)", "FIXME: WebKit bug 43038", Abort);
     1281    QEXPECT_FAIL("QScriptValue(QScriptValue::UndefinedValue)", "FIXME: WebKit bug 43038", Abort);
     1282    QCOMPARE(copy.strictlyEquals(value), !value.isNumber() || !qIsNaN(value.toNumber()));
     1283    QCOMPARE(copy.engine(), value.engine());
     1284
     1285    QScriptValue assigned = copy;
     1286    QCOMPARE(assigned.strictlyEquals(value), !copy.isNumber() || !qIsNaN(copy.toNumber()));
     1287    QCOMPARE(assigned.engine(), assigned.engine());
     1288
     1289    QScriptValue other(!value.toBool());
     1290    assigned = other;
     1291    QVERIFY(!assigned.strictlyEquals(copy));
     1292    QVERIFY(assigned.strictlyEquals(other));
     1293    QCOMPARE(assigned.engine(), other.engine());
     1294}
     1295
    12881296QTEST_MAIN(tst_QScriptValue)
  • trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.h

    r63318 r64165  
    3030Q_DECLARE_METATYPE(QScriptValue*);
    3131Q_DECLARE_METATYPE(QScriptValue);
     32typedef QPair<QString, QScriptValue> QPairQStringAndQScriptValue;
     33Q_DECLARE_METATYPE(QPairQStringAndQScriptValue);
    3234
    3335class tst_QScriptValue : public QObject {
     
    6264    void propertyFlag();
    6365    void globalObjectChanges();
     66    void assignAndCopyConstruct_data();
     67    void assignAndCopyConstruct();
    6468
    6569    // Generated test functions.
     70    void isArray_data();
     71    void isArray();
     72
    6673    void isBool_data();
    6774    void isBool();
     
    6976    void isBoolean_data();
    7077    void isBoolean();
     78
     79    void isError_data();
     80    void isError();
    7181
    7282    void isNumber_data();
     
    125135
    126136private:
    127     typedef void (tst_QScriptValue::*InitDataFunction)();
    128     typedef void (tst_QScriptValue::*DefineDataFunction)(const char*);
    129     void dataHelper(InitDataFunction init, DefineDataFunction define);
    130     QTestData& newRow(const char* tag);
     137    // Generated function
     138    QPair<QString, QScriptValue> initScriptValues(uint idx);
    131139
    132     typedef void (tst_QScriptValue::*TestFunction)(const char*, const QScriptValue&);
    133     void testHelper(TestFunction fun);
    134 
    135     // Generated functions
    136 
    137     void initScriptValues();
    138 
    139     void isBool_initData();
    140     void isBool_makeData(const char* expr);
    141     void isBool_test(const char* expr, const QScriptValue& value);
    142 
    143     void isBoolean_initData();
    144     void isBoolean_makeData(const char* expr);
    145     void isBoolean_test(const char* expr, const QScriptValue& value);
    146 
    147     void isNumber_initData();
    148     void isNumber_makeData(const char* expr);
    149     void isNumber_test(const char* expr, const QScriptValue&);
    150 
    151     void isFunction_initData();
    152     void isFunction_makeData(const char* expr);
    153     void isFunction_test(const char* expr, const QScriptValue& value);
    154 
    155     void isNull_initData();
    156     void isNull_makeData(const char* expr);
    157     void isNull_test(const char* expr, const QScriptValue& value);
    158 
    159     void isObject_initData();
    160     void isObject_makeData(const char* expr);
    161     void isObject_test(const char* expr, const QScriptValue& value);
    162 
    163     void isString_initData();
    164     void isString_makeData(const char* expr);
    165     void isString_test(const char* expr, const QScriptValue& value);
    166 
    167     void isUndefined_initData();
    168     void isUndefined_makeData(const char* expr);
    169     void isUndefined_test(const char* expr, const QScriptValue& value);
    170 
    171     void isValid_initData();
    172     void isValid_makeData(const char* expr);
    173     void isValid_test(const char* expr, const QScriptValue& value);
    174 
    175     void toString_initData();
    176     void toString_makeData(const char*);
    177     void toString_test(const char*, const QScriptValue&);
    178 
    179     void toNumber_initData();
    180     void toNumber_makeData(const char*);
    181     void toNumber_test(const char*, const QScriptValue&);
    182 
    183     void toBool_initData();
    184     void toBool_makeData(const char*);
    185     void toBool_test(const char*, const QScriptValue&);
    186 
    187     void toBoolean_initData();
    188     void toBoolean_makeData(const char*);
    189     void toBoolean_test(const char*, const QScriptValue&);
    190 
    191     void toInteger_initData();
    192     void toInteger_makeData(const char*);
    193     void toInteger_test(const char*, const QScriptValue&);
    194 
    195     void toInt32_initData();
    196     void toInt32_makeData(const char*);
    197     void toInt32_test(const char*, const QScriptValue&);
    198 
    199     void toUInt32_initData();
    200     void toUInt32_makeData(const char*);
    201     void toUInt32_test(const char*, const QScriptValue&);
    202 
    203     void toUInt16_initData();
    204     void toUInt16_makeData(const char*);
    205     void toUInt16_test(const char*, const QScriptValue&);
    206 
    207     void equals_initData();
    208     void equals_makeData(const char*);
    209     void equals_test(const char*, const QScriptValue&);
    210 
    211     void strictlyEquals_initData();
    212     void strictlyEquals_makeData(const char*);
    213     void strictlyEquals_test(const char*, const QScriptValue&);
    214 
    215     void instanceOf_initData();
    216     void instanceOf_makeData(const char*);
    217     void instanceOf_test(const char*, const QScriptValue&);
    218 
    219 private:
    220     QScriptEngine* engine;
    221     QHash<QString, QScriptValue> m_values;
    222     QString m_currentExpression;
     140    QScriptEngine* m_engine;
    223141};
    224142
    225 #define DEFINE_TEST_FUNCTION(name) \
    226 void tst_QScriptValue::name##_data() { dataHelper(&tst_QScriptValue::name##_initData, &tst_QScriptValue::name##_makeData); } \
    227 void tst_QScriptValue::name() { testHelper(&tst_QScriptValue::name##_test); }
    228 
    229 
    230 
    231143#endif // tst_qscriptvalue_h
  • trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp

    r60725 r64165  
    2424#include "tst_qscriptvalue.h"
    2525
    26 void tst_QScriptValue::equals_initData()
    27 {
    28     QTest::addColumn<QScriptValue>("other");
    29     QTest::addColumn<bool>("expected");
    30     initScriptValues();
    31 }
    32 
    33 static QString equals_array[] = {
     26static const QString equals_array[] = {
    3427    "QScriptValue() <=> QScriptValue()",
    3528    "QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)",
     
    8578    "QScriptValue(false) <=> engine->evaluate(\"''\")",
    8679    "QScriptValue(false) <=> engine->evaluate(\"'0'\")",
     80    "QScriptValue(false) <=> engine->newArray()",
    8781    "QScriptValue(int(122)) <=> QScriptValue(int(122))",
    8882    "QScriptValue(int(122)) <=> QScriptValue(0, int(122))",
     
    119113    "QScriptValue(0) <=> engine->evaluate(\"''\")",
    120114    "QScriptValue(0) <=> engine->evaluate(\"'0'\")",
     115    "QScriptValue(0) <=> engine->newArray()",
    121116    "QScriptValue(0.0) <=> QScriptValue(false)",
    122117    "QScriptValue(0.0) <=> QScriptValue(0)",
     
    145140    "QScriptValue(0.0) <=> engine->evaluate(\"''\")",
    146141    "QScriptValue(0.0) <=> engine->evaluate(\"'0'\")",
     142    "QScriptValue(0.0) <=> engine->newArray()",
    147143    "QScriptValue(123.0) <=> QScriptValue(123.0)",
    148144    "QScriptValue(123.0) <=> QScriptValue(QString(\"123\"))",
     
    240236    "QScriptValue(QString(\"\")) <=> engine->evaluate(\"0.0\")",
    241237    "QScriptValue(QString(\"\")) <=> engine->evaluate(\"''\")",
     238    "QScriptValue(QString(\"\")) <=> engine->newArray()",
    242239    "QScriptValue(QString()) <=> QScriptValue(false)",
    243240    "QScriptValue(QString()) <=> QScriptValue(0)",
     
    262259    "QScriptValue(QString()) <=> engine->evaluate(\"0.0\")",
    263260    "QScriptValue(QString()) <=> engine->evaluate(\"''\")",
     261    "QScriptValue(QString()) <=> engine->newArray()",
    264262    "QScriptValue(QString(\"0\")) <=> QScriptValue(false)",
    265263    "QScriptValue(QString(\"0\")) <=> QScriptValue(0)",
     
    340338    "QScriptValue(0, false) <=> engine->evaluate(\"''\")",
    341339    "QScriptValue(0, false) <=> engine->evaluate(\"'0'\")",
     340    "QScriptValue(0, false) <=> engine->newArray()",
    342341    "QScriptValue(0, int(122)) <=> QScriptValue(int(122))",
    343342    "QScriptValue(0, int(122)) <=> QScriptValue(0, int(122))",
     
    374373    "QScriptValue(0, 0) <=> engine->evaluate(\"''\")",
    375374    "QScriptValue(0, 0) <=> engine->evaluate(\"'0'\")",
     375    "QScriptValue(0, 0) <=> engine->newArray()",
    376376    "QScriptValue(0, 0.0) <=> QScriptValue(false)",
    377377    "QScriptValue(0, 0.0) <=> QScriptValue(0)",
     
    400400    "QScriptValue(0, 0.0) <=> engine->evaluate(\"''\")",
    401401    "QScriptValue(0, 0.0) <=> engine->evaluate(\"'0'\")",
     402    "QScriptValue(0, 0.0) <=> engine->newArray()",
    402403    "QScriptValue(0, 123.0) <=> QScriptValue(123.0)",
    403404    "QScriptValue(0, 123.0) <=> QScriptValue(QString(\"123\"))",
     
    495496    "QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"0.0\")",
    496497    "QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"''\")",
     498    "QScriptValue(0, QString(\"\")) <=> engine->newArray()",
    497499    "QScriptValue(0, QString()) <=> QScriptValue(false)",
    498500    "QScriptValue(0, QString()) <=> QScriptValue(0)",
     
    517519    "QScriptValue(0, QString()) <=> engine->evaluate(\"0.0\")",
    518520    "QScriptValue(0, QString()) <=> engine->evaluate(\"''\")",
     521    "QScriptValue(0, QString()) <=> engine->newArray()",
    519522    "QScriptValue(0, QString(\"0\")) <=> QScriptValue(false)",
    520523    "QScriptValue(0, QString(\"0\")) <=> QScriptValue(0)",
     
    594597    "QScriptValue(engine, false) <=> engine->evaluate(\"''\")",
    595598    "QScriptValue(engine, false) <=> engine->evaluate(\"'0'\")",
     599    "QScriptValue(engine, false) <=> engine->newArray()",
    596600    "QScriptValue(engine, int(122)) <=> QScriptValue(int(122))",
    597601    "QScriptValue(engine, int(122)) <=> QScriptValue(0, int(122))",
     
    628632    "QScriptValue(engine, 0) <=> engine->evaluate(\"''\")",
    629633    "QScriptValue(engine, 0) <=> engine->evaluate(\"'0'\")",
     634    "QScriptValue(engine, 0) <=> engine->newArray()",
    630635    "QScriptValue(engine, 0.0) <=> QScriptValue(false)",
    631636    "QScriptValue(engine, 0.0) <=> QScriptValue(0)",
     
    654659    "QScriptValue(engine, 0.0) <=> engine->evaluate(\"''\")",
    655660    "QScriptValue(engine, 0.0) <=> engine->evaluate(\"'0'\")",
     661    "QScriptValue(engine, 0.0) <=> engine->newArray()",
    656662    "QScriptValue(engine, 123.0) <=> QScriptValue(123.0)",
    657663    "QScriptValue(engine, 123.0) <=> QScriptValue(QString(\"123\"))",
     
    749755    "QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"0.0\")",
    750756    "QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"''\")",
     757    "QScriptValue(engine, QString(\"\")) <=> engine->newArray()",
    751758    "QScriptValue(engine, QString()) <=> QScriptValue(false)",
    752759    "QScriptValue(engine, QString()) <=> QScriptValue(0)",
     
    771778    "QScriptValue(engine, QString()) <=> engine->evaluate(\"0.0\")",
    772779    "QScriptValue(engine, QString()) <=> engine->evaluate(\"''\")",
     780    "QScriptValue(engine, QString()) <=> engine->newArray()",
    773781    "QScriptValue(engine, QString(\"0\")) <=> QScriptValue(false)",
    774782    "QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0)",
     
    811819    "engine->evaluate(\"[]\") <=> QScriptValue(engine, QString(\"\"))",
    812820    "engine->evaluate(\"[]\") <=> QScriptValue(engine, QString())",
    813     "engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")",
    814821    "engine->evaluate(\"[]\") <=> engine->evaluate(\"false\")",
    815822    "engine->evaluate(\"[]\") <=> engine->evaluate(\"0\")",
     
    855862    "engine->evaluate(\"Number\") <=> engine->evaluate(\"Number\")",
    856863    "engine->evaluate(\"Function\") <=> engine->evaluate(\"Function\")",
    857     "engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"(function() { return 1; })\")",
    858     "engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")",
    859     "engine->evaluate(\"(function() { throw new Error('foo' })\") <=> engine->evaluate(\"(function() { throw new Error('foo' })\")",
    860     "engine->evaluate(\"/foo/\") <=> engine->evaluate(\"/foo/\")",
    861     "engine->evaluate(\"new Object()\") <=> engine->evaluate(\"new Object()\")",
    862864    "engine->evaluate(\"new Array()\") <=> QScriptValue(false)",
    863865    "engine->evaluate(\"new Array()\") <=> QScriptValue(0)",
     
    875877    "engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString(\"\"))",
    876878    "engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString())",
    877     "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")",
    878879    "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"false\")",
    879880    "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0\")",
    880881    "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0.0\")",
    881882    "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"''\")",
    882     "engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")",
    883     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\") <=> engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
    884     "engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Undefined\")",
    885     "engine->evaluate(\"Null\") <=> engine->evaluate(\"Null\")",
    886     "engine->evaluate(\"True\") <=> engine->evaluate(\"True\")",
    887     "engine->evaluate(\"False\") <=> engine->evaluate(\"False\")",
     883    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    888884    "engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::UndefinedValue)",
    889885    "engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::NullValue)",
     
    938934    "engine->evaluate(\"false\") <=> engine->evaluate(\"''\")",
    939935    "engine->evaluate(\"false\") <=> engine->evaluate(\"'0'\")",
     936    "engine->evaluate(\"false\") <=> engine->newArray()",
    940937    "engine->evaluate(\"122\") <=> QScriptValue(int(122))",
    941938    "engine->evaluate(\"122\") <=> QScriptValue(0, int(122))",
     
    972969    "engine->evaluate(\"0\") <=> engine->evaluate(\"''\")",
    973970    "engine->evaluate(\"0\") <=> engine->evaluate(\"'0'\")",
     971    "engine->evaluate(\"0\") <=> engine->newArray()",
    974972    "engine->evaluate(\"0.0\") <=> QScriptValue(false)",
    975973    "engine->evaluate(\"0.0\") <=> QScriptValue(0)",
     
    998996    "engine->evaluate(\"0.0\") <=> engine->evaluate(\"''\")",
    999997    "engine->evaluate(\"0.0\") <=> engine->evaluate(\"'0'\")",
     998    "engine->evaluate(\"0.0\") <=> engine->newArray()",
    1000999    "engine->evaluate(\"123.0\") <=> QScriptValue(123.0)",
    10011000    "engine->evaluate(\"123.0\") <=> QScriptValue(QString(\"123\"))",
     
    10691068    "engine->evaluate(\"''\") <=> engine->evaluate(\"0.0\")",
    10701069    "engine->evaluate(\"''\") <=> engine->evaluate(\"''\")",
     1070    "engine->evaluate(\"''\") <=> engine->newArray()",
    10711071    "engine->evaluate(\"'0'\") <=> QScriptValue(false)",
    10721072    "engine->evaluate(\"'0'\") <=> QScriptValue(0)",
     
    11161116    "engine->undefinedValue() <=> engine->evaluate(\"null\")",
    11171117    "engine->undefinedValue() <=> engine->nullValue()",
    1118     "engine->undefinedValue() <=> engine->undefinedValue()"};
     1118    "engine->undefinedValue() <=> engine->undefinedValue()",
     1119    "engine->newArray() <=> QScriptValue(false)",
     1120    "engine->newArray() <=> QScriptValue(0)",
     1121    "engine->newArray() <=> QScriptValue(0.0)",
     1122    "engine->newArray() <=> QScriptValue(QString(\"\"))",
     1123    "engine->newArray() <=> QScriptValue(QString())",
     1124    "engine->newArray() <=> QScriptValue(0, false)",
     1125    "engine->newArray() <=> QScriptValue(0, 0)",
     1126    "engine->newArray() <=> QScriptValue(0, 0.0)",
     1127    "engine->newArray() <=> QScriptValue(0, QString(\"\"))",
     1128    "engine->newArray() <=> QScriptValue(0, QString())",
     1129    "engine->newArray() <=> QScriptValue(engine, false)",
     1130    "engine->newArray() <=> QScriptValue(engine, 0)",
     1131    "engine->newArray() <=> QScriptValue(engine, 0.0)",
     1132    "engine->newArray() <=> QScriptValue(engine, QString(\"\"))",
     1133    "engine->newArray() <=> QScriptValue(engine, QString())",
     1134    "engine->newArray() <=> engine->evaluate(\"false\")",
     1135    "engine->newArray() <=> engine->evaluate(\"0\")",
     1136    "engine->newArray() <=> engine->evaluate(\"0.0\")",
     1137    "engine->newArray() <=> engine->evaluate(\"''\")"};
    11191138
    1120 void tst_QScriptValue::equals_makeData(const char *expr)
     1139void tst_QScriptValue::equals_data()
    11211140{
    1122     static QSet<QString> equals;
    1123     if (equals.isEmpty()) {
    1124         equals.reserve(1085);
    1125         for (unsigned i = 0; i < 1085; ++i)
    1126             equals.insert(equals_array[i]);
    1127     }
    1128     QHash<QString, QScriptValue>::const_iterator it;
    1129     for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
    1130         QString tag = QString::fromLatin1("%20 <=> %21").arg(expr).arg(it.key());
    1131         newRow(tag.toLatin1()) << it.value() << equals.contains(tag);
     1141    QTest::addColumn<QScriptValue>("value");
     1142    QTest::addColumn<QScriptValue>("other");
     1143    QTest::addColumn<bool>("expected");
     1144    if (m_engine)
     1145        delete m_engine;
     1146    m_engine = new QScriptEngine();
     1147    QSet<QString> equals;
     1148    equals.reserve(1111);
     1149    for (unsigned i = 0; i < 1111; ++i)
     1150        equals.insert(equals_array[i]);
     1151    for (unsigned i = 0; i < 135; ++i) {
     1152        QPair<QString, QScriptValue> value1 = initScriptValues(i);
     1153        for (unsigned j = 0; j < 135; ++j) {
     1154            QPair<QString, QScriptValue> value2 = initScriptValues(j);
     1155            QString tag = QString::fromLatin1("%20 <=> %21").arg(value1.first, value2.first);
     1156            QTest::newRow(tag.toAscii().constData()) << value1.second << value2.second << equals.contains(tag);        }
    11321157    }
    11331158}
    11341159
    1135 void tst_QScriptValue::equals_test(const char *, const QScriptValue& value)
     1160void tst_QScriptValue::equals()
    11361161{
     1162    QFETCH(QScriptValue, value);
    11371163    QFETCH(QScriptValue, other);
    11381164    QFETCH(bool, expected);
     1165    QEXPECT_FAIL("QScriptValue(qInf()) <=> QScriptValue(\"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1166    QEXPECT_FAIL("QScriptValue(qInf()) <=> QScriptValue(0, \"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1167    QEXPECT_FAIL("QScriptValue(-qInf()) <=> QScriptValue(\"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1168    QEXPECT_FAIL("QScriptValue(-qInf()) <=> QScriptValue(0, \"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1169    QEXPECT_FAIL("QScriptValue(\"-Infinity\") <=> QScriptValue(qInf())", "FIXME: WebKit bug 43038", Continue);
     1170    QEXPECT_FAIL("QScriptValue(\"-Infinity\") <=> QScriptValue(-qInf())", "FIXME: WebKit bug 43038", Continue);
     1171    QEXPECT_FAIL("QScriptValue(\"-Infinity\") <=> QScriptValue(0, qInf())", "FIXME: WebKit bug 43038", Continue);
     1172    QEXPECT_FAIL("QScriptValue(\"-Infinity\") <=> QScriptValue(0, -qInf())", "FIXME: WebKit bug 43038", Continue);
     1173    QEXPECT_FAIL("QScriptValue(0, qInf()) <=> QScriptValue(\"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1174    QEXPECT_FAIL("QScriptValue(0, qInf()) <=> QScriptValue(0, \"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1175    QEXPECT_FAIL("QScriptValue(0, -qInf()) <=> QScriptValue(\"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1176    QEXPECT_FAIL("QScriptValue(0, -qInf()) <=> QScriptValue(0, \"-Infinity\")", "FIXME: WebKit bug 43038", Continue);
     1177    QEXPECT_FAIL("QScriptValue(0, \"-Infinity\") <=> QScriptValue(qInf())", "FIXME: WebKit bug 43038", Continue);
     1178    QEXPECT_FAIL("QScriptValue(0, \"-Infinity\") <=> QScriptValue(-qInf())", "FIXME: WebKit bug 43038", Continue);
     1179    QEXPECT_FAIL("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, qInf())", "FIXME: WebKit bug 43038", Continue);
     1180    QEXPECT_FAIL("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, -qInf())", "FIXME: WebKit bug 43038", Continue);
    11391181    QCOMPARE(value.equals(other), expected);
    11401182}
    11411183
    1142 DEFINE_TEST_FUNCTION(equals)
    1143 
    1144 
    1145 void tst_QScriptValue::strictlyEquals_initData()
    1146 {
    1147     QTest::addColumn<QScriptValue>("other");
    1148     QTest::addColumn<bool>("expected");
    1149     initScriptValues();
    1150 }
    1151 
    1152 static QString strictlyEquals_array[] = {
     1184static const QString strictlyEquals_array[] = {
    11531185    "QScriptValue() <=> QScriptValue()",
    11541186    "QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)",
     
    15161548    "QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"'123'\")",
    15171549    "QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString(\"1.23\"))",
    1518     "engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")",
    15191550    "engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::UndefinedValue)",
    15201551    "engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::UndefinedValue)",
     
    15321563    "engine->evaluate(\"Number\") <=> engine->evaluate(\"Number\")",
    15331564    "engine->evaluate(\"Function\") <=> engine->evaluate(\"Function\")",
    1534     "engine->evaluate(\"(function() { return 1; })\") <=> engine->evaluate(\"(function() { return 1; })\")",
    1535     "engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")",
    1536     "engine->evaluate(\"(function() { throw new Error('foo' })\") <=> engine->evaluate(\"(function() { throw new Error('foo' })\")",
    1537     "engine->evaluate(\"/foo/\") <=> engine->evaluate(\"/foo/\")",
    1538     "engine->evaluate(\"new Object()\") <=> engine->evaluate(\"new Object()\")",
    1539     "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")",
    1540     "engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")",
    1541     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\") <=> engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
    1542     "engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Undefined\")",
    1543     "engine->evaluate(\"Null\") <=> engine->evaluate(\"Null\")",
    1544     "engine->evaluate(\"True\") <=> engine->evaluate(\"True\")",
    1545     "engine->evaluate(\"False\") <=> engine->evaluate(\"False\")",
     1565    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    15461566    "engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::UndefinedValue)",
    15471567    "engine->evaluate(\"undefined\") <=> QScriptValue(0, QScriptValue::UndefinedValue)",
     
    16551675    "engine->undefinedValue() <=> engine->undefinedValue()"};
    16561676
    1657 void tst_QScriptValue::strictlyEquals_makeData(const char* expr)
     1677void tst_QScriptValue::strictlyEquals_data()
    16581678{
    1659     static QSet<QString> equals;
    1660     if (equals.isEmpty()) {
    1661         equals.reserve(503);
    1662         for (unsigned i = 0; i < 503; ++i)
    1663             equals.insert(strictlyEquals_array[i]);
    1664     }
    1665     QHash<QString, QScriptValue>::const_iterator it;
    1666     for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
    1667         QString tag = QString::fromLatin1("%20 <=> %21").arg(expr).arg(it.key());
    1668         newRow(tag.toLatin1()) << it.value() << equals.contains(tag);
     1679    QTest::addColumn<QScriptValue>("value");
     1680    QTest::addColumn<QScriptValue>("other");
     1681    QTest::addColumn<bool>("expected");
     1682    if (m_engine)
     1683        delete m_engine;
     1684    m_engine = new QScriptEngine();
     1685    QSet<QString> equals;
     1686    equals.reserve(491);
     1687    for (unsigned i = 0; i < 491; ++i)
     1688        equals.insert(strictlyEquals_array[i]);
     1689    for (unsigned i = 0; i < 135; ++i) {
     1690        QPair<QString, QScriptValue> value1 = initScriptValues(i);
     1691        for (unsigned j = 0; j < 135; ++j) {
     1692            QPair<QString, QScriptValue> value2 = initScriptValues(j);
     1693            QString tag = QString::fromLatin1("%20 <=> %21").arg(value1.first, value2.first);
     1694            QTest::newRow(tag.toAscii().constData()) << value1.second << value2.second << equals.contains(tag);        }
    16691695    }
    16701696}
    16711697
    1672 void tst_QScriptValue::strictlyEquals_test(const char*, const QScriptValue& value)
     1698void tst_QScriptValue::strictlyEquals()
    16731699{
     1700    QFETCH(QScriptValue, value);
    16741701    QFETCH(QScriptValue, other);
    16751702    QFETCH(bool, expected);
     1703    QEXPECT_FAIL("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)", "FIXME: WebKit bug 43038", Continue);
     1704    QEXPECT_FAIL("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)", "FIXME: WebKit bug 43038", Continue);
     1705    QEXPECT_FAIL("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)", "FIXME: WebKit bug 43038", Continue);
     1706    QEXPECT_FAIL("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")", "FIXME: WebKit bug 43038", Continue);
     1707    QEXPECT_FAIL("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")", "FIXME: WebKit bug 43038", Continue);
     1708    QEXPECT_FAIL("QScriptValue(QScriptValue::UndefinedValue) <=> engine->undefinedValue()", "FIXME: WebKit bug 43038", Continue);
     1709    QEXPECT_FAIL("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)", "FIXME: WebKit bug 43038", Continue);
     1710    QEXPECT_FAIL("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)", "FIXME: WebKit bug 43038", Continue);
     1711    QEXPECT_FAIL("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)", "FIXME: WebKit bug 43038", Continue);
     1712    QEXPECT_FAIL("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"null\")", "FIXME: WebKit bug 43038", Continue);
     1713    QEXPECT_FAIL("QScriptValue(QScriptValue::NullValue) <=> engine->nullValue()", "FIXME: WebKit bug 43038", Continue);
     1714    QEXPECT_FAIL("QScriptValue(true) <=> QScriptValue(true)", "FIXME: WebKit bug 43038", Continue);
     1715    QEXPECT_FAIL("QScriptValue(true) <=> QScriptValue(0, true)", "FIXME: WebKit bug 43038", Continue);
     1716    QEXPECT_FAIL("QScriptValue(false) <=> QScriptValue(false)", "FIXME: WebKit bug 43038", Continue);
     1717    QEXPECT_FAIL("QScriptValue(false) <=> QScriptValue(0, false)", "FIXME: WebKit bug 43038", Continue);
     1718    QEXPECT_FAIL("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)", "FIXME: WebKit bug 43038", Continue);
     1719    QEXPECT_FAIL("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)", "FIXME: WebKit bug 43038", Continue);
     1720    QEXPECT_FAIL("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)", "FIXME: WebKit bug 43038", Continue);
     1721    QEXPECT_FAIL("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")", "FIXME: WebKit bug 43038", Continue);
     1722    QEXPECT_FAIL("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")", "FIXME: WebKit bug 43038", Continue);
     1723    QEXPECT_FAIL("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->undefinedValue()", "FIXME: WebKit bug 43038", Continue);
     1724    QEXPECT_FAIL("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)", "FIXME: WebKit bug 43038", Continue);
     1725    QEXPECT_FAIL("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)", "FIXME: WebKit bug 43038", Continue);
     1726    QEXPECT_FAIL("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)", "FIXME: WebKit bug 43038", Continue);
     1727    QEXPECT_FAIL("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"null\")", "FIXME: WebKit bug 43038", Continue);
     1728    QEXPECT_FAIL("QScriptValue(0, QScriptValue::NullValue) <=> engine->nullValue()", "FIXME: WebKit bug 43038", Continue);
     1729    QEXPECT_FAIL("QScriptValue(0, true) <=> QScriptValue(true)", "FIXME: WebKit bug 43038", Continue);
     1730    QEXPECT_FAIL("QScriptValue(0, true) <=> QScriptValue(0, true)", "FIXME: WebKit bug 43038", Continue);
     1731    QEXPECT_FAIL("QScriptValue(0, false) <=> QScriptValue(false)", "FIXME: WebKit bug 43038", Continue);
     1732    QEXPECT_FAIL("QScriptValue(0, false) <=> QScriptValue(0, false)", "FIXME: WebKit bug 43038", Continue);
    16761733    QCOMPARE(value.strictlyEquals(other), expected);
    16771734}
    16781735
    1679 DEFINE_TEST_FUNCTION(strictlyEquals)
    1680 
    1681 
    1682 void tst_QScriptValue::instanceOf_initData()
    1683 {
    1684     QTest::addColumn<QScriptValue>("other");
    1685     QTest::addColumn<bool>("expected");
    1686     initScriptValues();
    1687 }
    1688 
    1689 static QString instanceOf_array[] = {
     1736static const QString instanceOf_array[] = {
    16901737    "engine->evaluate(\"[]\") <=> engine->evaluate(\"Object\")",
    16911738    "engine->evaluate(\"[]\") <=> engine->evaluate(\"Array\")",
     
    17061753    "engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Object\")",
    17071754    "engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Function\")",
    1708     "engine->evaluate(\"(function() { throw new Error('foo' })\") <=> engine->evaluate(\"Object\")",
     1755    "engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Object\")",
     1756    "engine->evaluate(\"(function() { throw new Error('foo'); })\") <=> engine->evaluate(\"Function\")",
    17091757    "engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Object\")",
    17101758    "engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Object\")",
     
    17121760    "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Array\")",
    17131761    "engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Object\")",
    1714     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\") <=> engine->evaluate(\"Object\")",
    17151762    "engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Object\")",
    17161763    "engine->evaluate(\"Null\") <=> engine->evaluate(\"Object\")",
    17171764    "engine->evaluate(\"True\") <=> engine->evaluate(\"Object\")",
    1718     "engine->evaluate(\"False\") <=> engine->evaluate(\"Object\")"};
     1765    "engine->evaluate(\"False\") <=> engine->evaluate(\"Object\")",
     1766    "engine->newObject() <=> engine->evaluate(\"Object\")",
     1767    "engine->newArray() <=> engine->evaluate(\"Object\")",
     1768    "engine->newArray() <=> engine->evaluate(\"Array\")",
     1769    "engine->newArray(10) <=> engine->evaluate(\"Object\")",
     1770    "engine->newArray(10) <=> engine->evaluate(\"Array\")"};
    17191771
    1720 void tst_QScriptValue::instanceOf_makeData(const char *expr)
     1772void tst_QScriptValue::instanceOf_data()
    17211773{
    1722     static QSet<QString> equals;
    1723     if (equals.isEmpty()) {
    1724         equals.reserve(29);
    1725         for (unsigned i = 0; i < 29; ++i)
    1726             equals.insert(instanceOf_array[i]);
    1727     }
    1728     QHash<QString, QScriptValue>::const_iterator it;
    1729     for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
    1730         QString tag = QString::fromLatin1("%20 <=> %21").arg(expr).arg(it.key());
    1731         newRow(tag.toLatin1()) << it.value() << equals.contains(tag);
     1774    QTest::addColumn<QScriptValue>("value");
     1775    QTest::addColumn<QScriptValue>("other");
     1776    QTest::addColumn<bool>("expected");
     1777    if (m_engine)
     1778        delete m_engine;
     1779    m_engine = new QScriptEngine();
     1780    QSet<QString> equals;
     1781    equals.reserve(34);
     1782    for (unsigned i = 0; i < 34; ++i)
     1783        equals.insert(instanceOf_array[i]);
     1784    for (unsigned i = 0; i < 135; ++i) {
     1785        QPair<QString, QScriptValue> value1 = initScriptValues(i);
     1786        for (unsigned j = 0; j < 135; ++j) {
     1787            QPair<QString, QScriptValue> value2 = initScriptValues(j);
     1788            QString tag = QString::fromLatin1("%20 <=> %21").arg(value1.first, value2.first);
     1789            QTest::newRow(tag.toAscii().constData()) << value1.second << value2.second << equals.contains(tag);        }
    17321790    }
    17331791}
    17341792
    1735 void tst_QScriptValue::instanceOf_test(const char *, const QScriptValue& value)
     1793void tst_QScriptValue::instanceOf()
    17361794{
     1795    QFETCH(QScriptValue, value);
    17371796    QFETCH(QScriptValue, other);
    17381797    QFETCH(bool, expected);
    17391798    QCOMPARE(value.instanceOf(other), expected);
    17401799}
    1741 
    1742 DEFINE_TEST_FUNCTION(instanceOf)
  • trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_init.cpp

    r59930 r64165  
    2525
    2626
    27 void tst_QScriptValue::initScriptValues()
     27QPair<QString, QScriptValue> tst_QScriptValue::initScriptValues(uint idx)
    2828{
    29     m_values.clear();
    30     if (engine)
    31         delete engine;
    32     engine = new QScriptEngine;
    33     DEFINE_TEST_VALUE(QScriptValue());
    34     DEFINE_TEST_VALUE(QScriptValue(QScriptValue::UndefinedValue));
    35     DEFINE_TEST_VALUE(QScriptValue(QScriptValue::NullValue));
    36     DEFINE_TEST_VALUE(QScriptValue(true));
    37     DEFINE_TEST_VALUE(QScriptValue(false));
    38     DEFINE_TEST_VALUE(QScriptValue(int(122)));
    39     DEFINE_TEST_VALUE(QScriptValue(uint(124)));
    40     DEFINE_TEST_VALUE(QScriptValue(0));
    41     DEFINE_TEST_VALUE(QScriptValue(0.0));
    42     DEFINE_TEST_VALUE(QScriptValue(123.0));
    43     DEFINE_TEST_VALUE(QScriptValue(6.37e-8));
    44     DEFINE_TEST_VALUE(QScriptValue(-6.37e-8));
    45     DEFINE_TEST_VALUE(QScriptValue(0x43211234));
    46     DEFINE_TEST_VALUE(QScriptValue(0x10000));
    47     DEFINE_TEST_VALUE(QScriptValue(0x10001));
    48     DEFINE_TEST_VALUE(QScriptValue(qSNaN()));
    49     DEFINE_TEST_VALUE(QScriptValue(qQNaN()));
    50     DEFINE_TEST_VALUE(QScriptValue(qInf()));
    51     DEFINE_TEST_VALUE(QScriptValue(-qInf()));
    52     DEFINE_TEST_VALUE(QScriptValue("NaN"));
    53     DEFINE_TEST_VALUE(QScriptValue("Infinity"));
    54     DEFINE_TEST_VALUE(QScriptValue("-Infinity"));
    55     DEFINE_TEST_VALUE(QScriptValue("ciao"));
    56     DEFINE_TEST_VALUE(QScriptValue(QString::fromLatin1("ciao")));
    57     DEFINE_TEST_VALUE(QScriptValue(QString("")));
    58     DEFINE_TEST_VALUE(QScriptValue(QString()));
    59     DEFINE_TEST_VALUE(QScriptValue(QString("0")));
    60     DEFINE_TEST_VALUE(QScriptValue(QString("123")));
    61     DEFINE_TEST_VALUE(QScriptValue(QString("12.4")));
    62     DEFINE_TEST_VALUE(QScriptValue(0, QScriptValue::UndefinedValue));
    63     DEFINE_TEST_VALUE(QScriptValue(0, QScriptValue::NullValue));
    64     DEFINE_TEST_VALUE(QScriptValue(0, true));
    65     DEFINE_TEST_VALUE(QScriptValue(0, false));
    66     DEFINE_TEST_VALUE(QScriptValue(0, int(122)));
    67     DEFINE_TEST_VALUE(QScriptValue(0, uint(124)));
    68     DEFINE_TEST_VALUE(QScriptValue(0, 0));
    69     DEFINE_TEST_VALUE(QScriptValue(0, 0.0));
    70     DEFINE_TEST_VALUE(QScriptValue(0, 123.0));
    71     DEFINE_TEST_VALUE(QScriptValue(0, 6.37e-8));
    72     DEFINE_TEST_VALUE(QScriptValue(0, -6.37e-8));
    73     DEFINE_TEST_VALUE(QScriptValue(0, 0x43211234));
    74     DEFINE_TEST_VALUE(QScriptValue(0, 0x10000));
    75     DEFINE_TEST_VALUE(QScriptValue(0, 0x10001));
    76     DEFINE_TEST_VALUE(QScriptValue(0, qSNaN()));
    77     DEFINE_TEST_VALUE(QScriptValue(0, qQNaN()));
    78     DEFINE_TEST_VALUE(QScriptValue(0, qInf()));
    79     DEFINE_TEST_VALUE(QScriptValue(0, -qInf()));
    80     DEFINE_TEST_VALUE(QScriptValue(0, "NaN"));
    81     DEFINE_TEST_VALUE(QScriptValue(0, "Infinity"));
    82     DEFINE_TEST_VALUE(QScriptValue(0, "-Infinity"));
    83     DEFINE_TEST_VALUE(QScriptValue(0, "ciao"));
    84     DEFINE_TEST_VALUE(QScriptValue(0, QString::fromLatin1("ciao")));
    85     DEFINE_TEST_VALUE(QScriptValue(0, QString("")));
    86     DEFINE_TEST_VALUE(QScriptValue(0, QString()));
    87     DEFINE_TEST_VALUE(QScriptValue(0, QString("0")));
    88     DEFINE_TEST_VALUE(QScriptValue(0, QString("123")));
    89     DEFINE_TEST_VALUE(QScriptValue(0, QString("12.3")));
    90     DEFINE_TEST_VALUE(QScriptValue(engine, QScriptValue::UndefinedValue));
    91     DEFINE_TEST_VALUE(QScriptValue(engine, QScriptValue::NullValue));
    92     DEFINE_TEST_VALUE(QScriptValue(engine, true));
    93     DEFINE_TEST_VALUE(QScriptValue(engine, false));
    94     DEFINE_TEST_VALUE(QScriptValue(engine, int(122)));
    95     DEFINE_TEST_VALUE(QScriptValue(engine, uint(124)));
    96     DEFINE_TEST_VALUE(QScriptValue(engine, 0));
    97     DEFINE_TEST_VALUE(QScriptValue(engine, 0.0));
    98     DEFINE_TEST_VALUE(QScriptValue(engine, 123.0));
    99     DEFINE_TEST_VALUE(QScriptValue(engine, 6.37e-8));
    100     DEFINE_TEST_VALUE(QScriptValue(engine, -6.37e-8));
    101     DEFINE_TEST_VALUE(QScriptValue(engine, 0x43211234));
    102     DEFINE_TEST_VALUE(QScriptValue(engine, 0x10000));
    103     DEFINE_TEST_VALUE(QScriptValue(engine, 0x10001));
    104     DEFINE_TEST_VALUE(QScriptValue(engine, qSNaN()));
    105     DEFINE_TEST_VALUE(QScriptValue(engine, qQNaN()));
    106     DEFINE_TEST_VALUE(QScriptValue(engine, qInf()));
    107     DEFINE_TEST_VALUE(QScriptValue(engine, -qInf()));
    108     DEFINE_TEST_VALUE(QScriptValue(engine, "NaN"));
    109     DEFINE_TEST_VALUE(QScriptValue(engine, "Infinity"));
    110     DEFINE_TEST_VALUE(QScriptValue(engine, "-Infinity"));
    111     DEFINE_TEST_VALUE(QScriptValue(engine, "ciao"));
    112     DEFINE_TEST_VALUE(QScriptValue(engine, QString::fromLatin1("ciao")));
    113     DEFINE_TEST_VALUE(QScriptValue(engine, QString("")));
    114     DEFINE_TEST_VALUE(QScriptValue(engine, QString()));
    115     DEFINE_TEST_VALUE(QScriptValue(engine, QString("0")));
    116     DEFINE_TEST_VALUE(QScriptValue(engine, QString("123")));
    117     DEFINE_TEST_VALUE(QScriptValue(engine, QString("1.23")));
    118     DEFINE_TEST_VALUE(engine->evaluate("[]"));
    119     DEFINE_TEST_VALUE(engine->evaluate("{}"));
    120     DEFINE_TEST_VALUE(engine->evaluate("Object.prototype"));
    121     DEFINE_TEST_VALUE(engine->evaluate("Date.prototype"));
    122     DEFINE_TEST_VALUE(engine->evaluate("Array.prototype"));
    123     DEFINE_TEST_VALUE(engine->evaluate("Function.prototype"));
    124     DEFINE_TEST_VALUE(engine->evaluate("Error.prototype"));
    125     DEFINE_TEST_VALUE(engine->evaluate("Object"));
    126     DEFINE_TEST_VALUE(engine->evaluate("Array"));
    127     DEFINE_TEST_VALUE(engine->evaluate("Number"));
    128     DEFINE_TEST_VALUE(engine->evaluate("Function"));
    129     DEFINE_TEST_VALUE(engine->evaluate("(function() { return 1; })"));
    130     DEFINE_TEST_VALUE(engine->evaluate("(function() { return 'ciao'; })"));
    131     DEFINE_TEST_VALUE(engine->evaluate("(function() { throw new Error('foo' })"));
    132     DEFINE_TEST_VALUE(engine->evaluate("/foo/"));
    133     DEFINE_TEST_VALUE(engine->evaluate("new Object()"));
    134     DEFINE_TEST_VALUE(engine->evaluate("new Array()"));
    135     DEFINE_TEST_VALUE(engine->evaluate("new Error()"));
    136     DEFINE_TEST_VALUE(engine->evaluate("a = new Object( a.foo = 22; a.foo"));
    137     DEFINE_TEST_VALUE(engine->evaluate("Undefined"));
    138     DEFINE_TEST_VALUE(engine->evaluate("Null"));
    139     DEFINE_TEST_VALUE(engine->evaluate("True"));
    140     DEFINE_TEST_VALUE(engine->evaluate("False"));
    141     DEFINE_TEST_VALUE(engine->evaluate("undefined"));
    142     DEFINE_TEST_VALUE(engine->evaluate("null"));
    143     DEFINE_TEST_VALUE(engine->evaluate("true"));
    144     DEFINE_TEST_VALUE(engine->evaluate("false"));
    145     DEFINE_TEST_VALUE(engine->evaluate("122"));
    146     DEFINE_TEST_VALUE(engine->evaluate("124"));
    147     DEFINE_TEST_VALUE(engine->evaluate("0"));
    148     DEFINE_TEST_VALUE(engine->evaluate("0.0"));
    149     DEFINE_TEST_VALUE(engine->evaluate("123.0"));
    150     DEFINE_TEST_VALUE(engine->evaluate("6.37e-8"));
    151     DEFINE_TEST_VALUE(engine->evaluate("-6.37e-8"));
    152     DEFINE_TEST_VALUE(engine->evaluate("0x43211234"));
    153     DEFINE_TEST_VALUE(engine->evaluate("0x10000"));
    154     DEFINE_TEST_VALUE(engine->evaluate("0x10001"));
    155     DEFINE_TEST_VALUE(engine->evaluate("NaN"));
    156     DEFINE_TEST_VALUE(engine->evaluate("Infinity"));
    157     DEFINE_TEST_VALUE(engine->evaluate("-Infinity"));
    158     DEFINE_TEST_VALUE(engine->evaluate("'ciao'"));
    159     DEFINE_TEST_VALUE(engine->evaluate("''"));
    160     DEFINE_TEST_VALUE(engine->evaluate("'0'"));
    161     DEFINE_TEST_VALUE(engine->evaluate("'123'"));
    162     DEFINE_TEST_VALUE(engine->evaluate("'12.4'"));
    163     DEFINE_TEST_VALUE(engine->nullValue());
    164     DEFINE_TEST_VALUE(engine->undefinedValue());
     29    QScriptEngine* engine = m_engine;
     30    switch (idx) {
     31    case 0: return QPair<QString, QScriptValue>("QScriptValue()", QScriptValue());
     32    case 1: return QPair<QString, QScriptValue>("QScriptValue(QScriptValue::UndefinedValue)", QScriptValue(QScriptValue::UndefinedValue));
     33    case 2: return QPair<QString, QScriptValue>("QScriptValue(QScriptValue::NullValue)", QScriptValue(QScriptValue::NullValue));
     34    case 3: return QPair<QString, QScriptValue>("QScriptValue(true)", QScriptValue(true));
     35    case 4: return QPair<QString, QScriptValue>("QScriptValue(false)", QScriptValue(false));
     36    case 5: return QPair<QString, QScriptValue>("QScriptValue(int(122))", QScriptValue(int(122)));
     37    case 6: return QPair<QString, QScriptValue>("QScriptValue(uint(124))", QScriptValue(uint(124)));
     38    case 7: return QPair<QString, QScriptValue>("QScriptValue(0)", QScriptValue(0));
     39    case 8: return QPair<QString, QScriptValue>("QScriptValue(0.0)", QScriptValue(0.0));
     40    case 9: return QPair<QString, QScriptValue>("QScriptValue(123.0)", QScriptValue(123.0));
     41    case 10: return QPair<QString, QScriptValue>("QScriptValue(6.37e-8)", QScriptValue(6.37e-8));
     42    case 11: return QPair<QString, QScriptValue>("QScriptValue(-6.37e-8)", QScriptValue(-6.37e-8));
     43    case 12: return QPair<QString, QScriptValue>("QScriptValue(0x43211234)", QScriptValue(0x43211234));
     44    case 13: return QPair<QString, QScriptValue>("QScriptValue(0x10000)", QScriptValue(0x10000));
     45    case 14: return QPair<QString, QScriptValue>("QScriptValue(0x10001)", QScriptValue(0x10001));
     46    case 15: return QPair<QString, QScriptValue>("QScriptValue(qSNaN())", QScriptValue(qSNaN()));
     47    case 16: return QPair<QString, QScriptValue>("QScriptValue(qQNaN())", QScriptValue(qQNaN()));
     48    case 17: return QPair<QString, QScriptValue>("QScriptValue(qInf())", QScriptValue(qInf()));
     49    case 18: return QPair<QString, QScriptValue>("QScriptValue(-qInf())", QScriptValue(-qInf()));
     50    case 19: return QPair<QString, QScriptValue>("QScriptValue(\"NaN\")", QScriptValue("NaN"));
     51    case 20: return QPair<QString, QScriptValue>("QScriptValue(\"Infinity\")", QScriptValue("Infinity"));
     52    case 21: return QPair<QString, QScriptValue>("QScriptValue(\"-Infinity\")", QScriptValue("-Infinity"));
     53    case 22: return QPair<QString, QScriptValue>("QScriptValue(\"ciao\")", QScriptValue("ciao"));
     54    case 23: return QPair<QString, QScriptValue>("QScriptValue(QString::fromLatin1(\"ciao\"))", QScriptValue(QString::fromLatin1("ciao")));
     55    case 24: return QPair<QString, QScriptValue>("QScriptValue(QString(\"\"))", QScriptValue(QString("")));
     56    case 25: return QPair<QString, QScriptValue>("QScriptValue(QString())", QScriptValue(QString()));
     57    case 26: return QPair<QString, QScriptValue>("QScriptValue(QString(\"0\"))", QScriptValue(QString("0")));
     58    case 27: return QPair<QString, QScriptValue>("QScriptValue(QString(\"123\"))", QScriptValue(QString("123")));
     59    case 28: return QPair<QString, QScriptValue>("QScriptValue(QString(\"12.4\"))", QScriptValue(QString("12.4")));
     60    case 29: return QPair<QString, QScriptValue>("QScriptValue(0, QScriptValue::UndefinedValue)", QScriptValue(0, QScriptValue::UndefinedValue));
     61    case 30: return QPair<QString, QScriptValue>("QScriptValue(0, QScriptValue::NullValue)", QScriptValue(0, QScriptValue::NullValue));
     62    case 31: return QPair<QString, QScriptValue>("QScriptValue(0, true)", QScriptValue(0, true));
     63    case 32: return QPair<QString, QScriptValue>("QScriptValue(0, false)", QScriptValue(0, false));
     64    case 33: return QPair<QString, QScriptValue>("QScriptValue(0, int(122))", QScriptValue(0, int(122)));
     65    case 34: return QPair<QString, QScriptValue>("QScriptValue(0, uint(124))", QScriptValue(0, uint(124)));
     66    case 35: return QPair<QString, QScriptValue>("QScriptValue(0, 0)", QScriptValue(0, 0));
     67    case 36: return QPair<QString, QScriptValue>("QScriptValue(0, 0.0)", QScriptValue(0, 0.0));
     68    case 37: return QPair<QString, QScriptValue>("QScriptValue(0, 123.0)", QScriptValue(0, 123.0));
     69    case 38: return QPair<QString, QScriptValue>("QScriptValue(0, 6.37e-8)", QScriptValue(0, 6.37e-8));
     70    case 39: return QPair<QString, QScriptValue>("QScriptValue(0, -6.37e-8)", QScriptValue(0, -6.37e-8));
     71    case 40: return QPair<QString, QScriptValue>("QScriptValue(0, 0x43211234)", QScriptValue(0, 0x43211234));
     72    case 41: return QPair<QString, QScriptValue>("QScriptValue(0, 0x10000)", QScriptValue(0, 0x10000));
     73    case 42: return QPair<QString, QScriptValue>("QScriptValue(0, 0x10001)", QScriptValue(0, 0x10001));
     74    case 43: return QPair<QString, QScriptValue>("QScriptValue(0, qSNaN())", QScriptValue(0, qSNaN()));
     75    case 44: return QPair<QString, QScriptValue>("QScriptValue(0, qQNaN())", QScriptValue(0, qQNaN()));
     76    case 45: return QPair<QString, QScriptValue>("QScriptValue(0, qInf())", QScriptValue(0, qInf()));
     77    case 46: return QPair<QString, QScriptValue>("QScriptValue(0, -qInf())", QScriptValue(0, -qInf()));
     78    case 47: return QPair<QString, QScriptValue>("QScriptValue(0, \"NaN\")", QScriptValue(0, "NaN"));
     79    case 48: return QPair<QString, QScriptValue>("QScriptValue(0, \"Infinity\")", QScriptValue(0, "Infinity"));
     80    case 49: return QPair<QString, QScriptValue>("QScriptValue(0, \"-Infinity\")", QScriptValue(0, "-Infinity"));
     81    case 50: return QPair<QString, QScriptValue>("QScriptValue(0, \"ciao\")", QScriptValue(0, "ciao"));
     82    case 51: return QPair<QString, QScriptValue>("QScriptValue(0, QString::fromLatin1(\"ciao\"))", QScriptValue(0, QString::fromLatin1("ciao")));
     83    case 52: return QPair<QString, QScriptValue>("QScriptValue(0, QString(\"\"))", QScriptValue(0, QString("")));
     84    case 53: return QPair<QString, QScriptValue>("QScriptValue(0, QString())", QScriptValue(0, QString()));
     85    case 54: return QPair<QString, QScriptValue>("QScriptValue(0, QString(\"0\"))", QScriptValue(0, QString("0")));
     86    case 55: return QPair<QString, QScriptValue>("QScriptValue(0, QString(\"123\"))", QScriptValue(0, QString("123")));
     87    case 56: return QPair<QString, QScriptValue>("QScriptValue(0, QString(\"12.3\"))", QScriptValue(0, QString("12.3")));
     88    case 57: return QPair<QString, QScriptValue>("QScriptValue(engine, QScriptValue::UndefinedValue)", QScriptValue(engine, QScriptValue::UndefinedValue));
     89    case 58: return QPair<QString, QScriptValue>("QScriptValue(engine, QScriptValue::NullValue)", QScriptValue(engine, QScriptValue::NullValue));
     90    case 59: return QPair<QString, QScriptValue>("QScriptValue(engine, true)", QScriptValue(engine, true));
     91    case 60: return QPair<QString, QScriptValue>("QScriptValue(engine, false)", QScriptValue(engine, false));
     92    case 61: return QPair<QString, QScriptValue>("QScriptValue(engine, int(122))", QScriptValue(engine, int(122)));
     93    case 62: return QPair<QString, QScriptValue>("QScriptValue(engine, uint(124))", QScriptValue(engine, uint(124)));
     94    case 63: return QPair<QString, QScriptValue>("QScriptValue(engine, 0)", QScriptValue(engine, 0));
     95    case 64: return QPair<QString, QScriptValue>("QScriptValue(engine, 0.0)", QScriptValue(engine, 0.0));
     96    case 65: return QPair<QString, QScriptValue>("QScriptValue(engine, 123.0)", QScriptValue(engine, 123.0));
     97    case 66: return QPair<QString, QScriptValue>("QScriptValue(engine, 6.37e-8)", QScriptValue(engine, 6.37e-8));
     98    case 67: return QPair<QString, QScriptValue>("QScriptValue(engine, -6.37e-8)", QScriptValue(engine, -6.37e-8));
     99    case 68: return QPair<QString, QScriptValue>("QScriptValue(engine, 0x43211234)", QScriptValue(engine, 0x43211234));
     100    case 69: return QPair<QString, QScriptValue>("QScriptValue(engine, 0x10000)", QScriptValue(engine, 0x10000));
     101    case 70: return QPair<QString, QScriptValue>("QScriptValue(engine, 0x10001)", QScriptValue(engine, 0x10001));
     102    case 71: return QPair<QString, QScriptValue>("QScriptValue(engine, qSNaN())", QScriptValue(engine, qSNaN()));
     103    case 72: return QPair<QString, QScriptValue>("QScriptValue(engine, qQNaN())", QScriptValue(engine, qQNaN()));
     104    case 73: return QPair<QString, QScriptValue>("QScriptValue(engine, qInf())", QScriptValue(engine, qInf()));
     105    case 74: return QPair<QString, QScriptValue>("QScriptValue(engine, -qInf())", QScriptValue(engine, -qInf()));
     106    case 75: return QPair<QString, QScriptValue>("QScriptValue(engine, \"NaN\")", QScriptValue(engine, "NaN"));
     107    case 76: return QPair<QString, QScriptValue>("QScriptValue(engine, \"Infinity\")", QScriptValue(engine, "Infinity"));
     108    case 77: return QPair<QString, QScriptValue>("QScriptValue(engine, \"-Infinity\")", QScriptValue(engine, "-Infinity"));
     109    case 78: return QPair<QString, QScriptValue>("QScriptValue(engine, \"ciao\")", QScriptValue(engine, "ciao"));
     110    case 79: return QPair<QString, QScriptValue>("QScriptValue(engine, QString::fromLatin1(\"ciao\"))", QScriptValue(engine, QString::fromLatin1("ciao")));
     111    case 80: return QPair<QString, QScriptValue>("QScriptValue(engine, QString(\"\"))", QScriptValue(engine, QString("")));
     112    case 81: return QPair<QString, QScriptValue>("QScriptValue(engine, QString())", QScriptValue(engine, QString()));
     113    case 82: return QPair<QString, QScriptValue>("QScriptValue(engine, QString(\"0\"))", QScriptValue(engine, QString("0")));
     114    case 83: return QPair<QString, QScriptValue>("QScriptValue(engine, QString(\"123\"))", QScriptValue(engine, QString("123")));
     115    case 84: return QPair<QString, QScriptValue>("QScriptValue(engine, QString(\"1.23\"))", QScriptValue(engine, QString("1.23")));
     116    case 85: return QPair<QString, QScriptValue>("engine->evaluate(\"[]\")", engine->evaluate("[]"));
     117    case 86: return QPair<QString, QScriptValue>("engine->evaluate(\"{}\")", engine->evaluate("{}"));
     118    case 87: return QPair<QString, QScriptValue>("engine->evaluate(\"Object.prototype\")", engine->evaluate("Object.prototype"));
     119    case 88: return QPair<QString, QScriptValue>("engine->evaluate(\"Date.prototype\")", engine->evaluate("Date.prototype"));
     120    case 89: return QPair<QString, QScriptValue>("engine->evaluate(\"Array.prototype\")", engine->evaluate("Array.prototype"));
     121    case 90: return QPair<QString, QScriptValue>("engine->evaluate(\"Function.prototype\")", engine->evaluate("Function.prototype"));
     122    case 91: return QPair<QString, QScriptValue>("engine->evaluate(\"Error.prototype\")", engine->evaluate("Error.prototype"));
     123    case 92: return QPair<QString, QScriptValue>("engine->evaluate(\"Object\")", engine->evaluate("Object"));
     124    case 93: return QPair<QString, QScriptValue>("engine->evaluate(\"Array\")", engine->evaluate("Array"));
     125    case 94: return QPair<QString, QScriptValue>("engine->evaluate(\"Number\")", engine->evaluate("Number"));
     126    case 95: return QPair<QString, QScriptValue>("engine->evaluate(\"Function\")", engine->evaluate("Function"));
     127    case 96: return QPair<QString, QScriptValue>("engine->evaluate(\"(function() { return 1; })\")", engine->evaluate("(function() { return 1; })"));
     128    case 97: return QPair<QString, QScriptValue>("engine->evaluate(\"(function() { return 'ciao'; })\")", engine->evaluate("(function() { return 'ciao'; })"));
     129    case 98: return QPair<QString, QScriptValue>("engine->evaluate(\"(function() { throw new Error('foo'); })\")", engine->evaluate("(function() { throw new Error('foo'); })"));
     130    case 99: return QPair<QString, QScriptValue>("engine->evaluate(\"/foo/\")", engine->evaluate("/foo/"));
     131    case 100: return QPair<QString, QScriptValue>("engine->evaluate(\"new Object()\")", engine->evaluate("new Object()"));
     132    case 101: return QPair<QString, QScriptValue>("engine->evaluate(\"new Array()\")", engine->evaluate("new Array()"));
     133    case 102: return QPair<QString, QScriptValue>("engine->evaluate(\"new Error()\")", engine->evaluate("new Error()"));
     134    case 103: return QPair<QString, QScriptValue>("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", engine->evaluate("a = new Object(); a.foo = 22; a.foo"));
     135    case 104: return QPair<QString, QScriptValue>("engine->evaluate(\"Undefined\")", engine->evaluate("Undefined"));
     136    case 105: return QPair<QString, QScriptValue>("engine->evaluate(\"Null\")", engine->evaluate("Null"));
     137    case 106: return QPair<QString, QScriptValue>("engine->evaluate(\"True\")", engine->evaluate("True"));
     138    case 107: return QPair<QString, QScriptValue>("engine->evaluate(\"False\")", engine->evaluate("False"));
     139    case 108: return QPair<QString, QScriptValue>("engine->evaluate(\"undefined\")", engine->evaluate("undefined"));
     140    case 109: return QPair<QString, QScriptValue>("engine->evaluate(\"null\")", engine->evaluate("null"));
     141    case 110: return QPair<QString, QScriptValue>("engine->evaluate(\"true\")", engine->evaluate("true"));
     142    case 111: return QPair<QString, QScriptValue>("engine->evaluate(\"false\")", engine->evaluate("false"));
     143    case 112: return QPair<QString, QScriptValue>("engine->evaluate(\"122\")", engine->evaluate("122"));
     144    case 113: return QPair<QString, QScriptValue>("engine->evaluate(\"124\")", engine->evaluate("124"));
     145    case 114: return QPair<QString, QScriptValue>("engine->evaluate(\"0\")", engine->evaluate("0"));
     146    case 115: return QPair<QString, QScriptValue>("engine->evaluate(\"0.0\")", engine->evaluate("0.0"));
     147    case 116: return QPair<QString, QScriptValue>("engine->evaluate(\"123.0\")", engine->evaluate("123.0"));
     148    case 117: return QPair<QString, QScriptValue>("engine->evaluate(\"6.37e-8\")", engine->evaluate("6.37e-8"));
     149    case 118: return QPair<QString, QScriptValue>("engine->evaluate(\"-6.37e-8\")", engine->evaluate("-6.37e-8"));
     150    case 119: return QPair<QString, QScriptValue>("engine->evaluate(\"0x43211234\")", engine->evaluate("0x43211234"));
     151    case 120: return QPair<QString, QScriptValue>("engine->evaluate(\"0x10000\")", engine->evaluate("0x10000"));
     152    case 121: return QPair<QString, QScriptValue>("engine->evaluate(\"0x10001\")", engine->evaluate("0x10001"));
     153    case 122: return QPair<QString, QScriptValue>("engine->evaluate(\"NaN\")", engine->evaluate("NaN"));
     154    case 123: return QPair<QString, QScriptValue>("engine->evaluate(\"Infinity\")", engine->evaluate("Infinity"));
     155    case 124: return QPair<QString, QScriptValue>("engine->evaluate(\"-Infinity\")", engine->evaluate("-Infinity"));
     156    case 125: return QPair<QString, QScriptValue>("engine->evaluate(\"'ciao'\")", engine->evaluate("'ciao'"));
     157    case 126: return QPair<QString, QScriptValue>("engine->evaluate(\"''\")", engine->evaluate("''"));
     158    case 127: return QPair<QString, QScriptValue>("engine->evaluate(\"'0'\")", engine->evaluate("'0'"));
     159    case 128: return QPair<QString, QScriptValue>("engine->evaluate(\"'123'\")", engine->evaluate("'123'"));
     160    case 129: return QPair<QString, QScriptValue>("engine->evaluate(\"'12.4'\")", engine->evaluate("'12.4'"));
     161    case 130: return QPair<QString, QScriptValue>("engine->nullValue()", engine->nullValue());
     162    case 131: return QPair<QString, QScriptValue>("engine->undefinedValue()", engine->undefinedValue());
     163    case 132: return QPair<QString, QScriptValue>("engine->newObject()", engine->newObject());
     164    case 133: return QPair<QString, QScriptValue>("engine->newArray()", engine->newArray());
     165    case 134: return QPair<QString, QScriptValue>("engine->newArray(10)", engine->newArray(10));
     166    }
     167    Q_ASSERT(false);
     168    return qMakePair(QString(), QScriptValue());
    165169}
  • trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_istype.cpp

    r59930 r64165  
    2626
    2727
    28 void tst_QScriptValue::isValid_initData()
    29 {
    30     QTest::addColumn<bool>("expected");
    31     initScriptValues();
    32 }
    33 
    34 static QString isValid_array[] = {
     28static const QString isValid_array[] = {
    3529    "QScriptValue(QScriptValue::UndefinedValue)",
    3630    "QScriptValue(QScriptValue::NullValue)",
     
    130124    "engine->evaluate(\"(function() { return 1; })\")",
    131125    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    132     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     126    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    133127    "engine->evaluate(\"/foo/\")",
    134128    "engine->evaluate(\"new Object()\")",
    135129    "engine->evaluate(\"new Array()\")",
    136130    "engine->evaluate(\"new Error()\")",
    137     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     131    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    138132    "engine->evaluate(\"Undefined\")",
    139133    "engine->evaluate(\"Null\")",
     
    163157    "engine->evaluate(\"'12.4'\")",
    164158    "engine->nullValue()",
    165     "engine->undefinedValue()"};
    166 
    167 void tst_QScriptValue::isValid_makeData(const char* expr)
    168 {
    169     static QSet<QString> isValid;
    170     if (isValid.isEmpty()) {
    171         isValid.reserve(131);
    172         for (unsigned i = 0; i < 131; ++i)
    173             isValid.insert(isValid_array[i]);
    174     }
    175     newRow(expr) << isValid.contains(expr);
    176 }
    177 
    178 void tst_QScriptValue::isValid_test(const char*, const QScriptValue& value)
    179 {
     159    "engine->undefinedValue()",
     160    "engine->newObject()",
     161    "engine->newArray()",
     162    "engine->newArray(10)"};
     163
     164void tst_QScriptValue::isValid_data()
     165{
     166    QTest::addColumn<QScriptValue>("value");
     167    QTest::addColumn<bool>("expected");
     168    if (m_engine)
     169        delete m_engine;
     170    m_engine = new QScriptEngine();
     171    QSet<QString> expectedValue;
     172    expectedValue.reserve(134);
     173    for (uint i = 0; i < 134; ++i)
     174        expectedValue.insert(isValid_array[i]);
     175    for (uint i = 0; i < 135; ++i) {
     176        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     177        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     178    }
     179}
     180
     181void tst_QScriptValue::isValid()
     182{
     183    QFETCH(QScriptValue, value);
    180184    QFETCH(bool, expected);
    181185    QCOMPARE(value.isValid(), expected);
     
    183187}
    184188
    185 DEFINE_TEST_FUNCTION(isValid)
    186 
    187 
    188 void tst_QScriptValue::isBool_initData()
    189 {
    190     QTest::addColumn<bool>("expected");
    191     initScriptValues();
    192 }
    193 
    194 static QString isBool_array[] = {
     189static const QString isBool_array[] = {
    195190    "QScriptValue(true)",
    196191    "QScriptValue(false)",
     
    202197    "engine->evaluate(\"false\")"};
    203198
    204 void tst_QScriptValue::isBool_makeData(const char* expr)
    205 {
    206     static QSet<QString> isBool;
    207     if (isBool.isEmpty()) {
    208         isBool.reserve(8);
    209         for (unsigned i = 0; i < 8; ++i)
    210             isBool.insert(isBool_array[i]);
    211     }
    212     newRow(expr) << isBool.contains(expr);
    213 }
    214 
    215 void tst_QScriptValue::isBool_test(const char*, const QScriptValue& value)
    216 {
     199void tst_QScriptValue::isBool_data()
     200{
     201    QTest::addColumn<QScriptValue>("value");
     202    QTest::addColumn<bool>("expected");
     203    if (m_engine)
     204        delete m_engine;
     205    m_engine = new QScriptEngine();
     206    QSet<QString> expectedValue;
     207    expectedValue.reserve(8);
     208    for (uint i = 0; i < 8; ++i)
     209        expectedValue.insert(isBool_array[i]);
     210    for (uint i = 0; i < 135; ++i) {
     211        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     212        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     213    }
     214}
     215
     216void tst_QScriptValue::isBool()
     217{
     218    QFETCH(QScriptValue, value);
    217219    QFETCH(bool, expected);
    218220    QCOMPARE(value.isBool(), expected);
     
    220222}
    221223
    222 DEFINE_TEST_FUNCTION(isBool)
    223 
    224 
    225 void tst_QScriptValue::isBoolean_initData()
    226 {
    227     QTest::addColumn<bool>("expected");
    228     initScriptValues();
    229 }
    230 
    231 static QString isBoolean_array[] = {
     224static const QString isBoolean_array[] = {
    232225    "QScriptValue(true)",
    233226    "QScriptValue(false)",
     
    239232    "engine->evaluate(\"false\")"};
    240233
    241 void tst_QScriptValue::isBoolean_makeData(const char* expr)
    242 {
    243     static QSet<QString> isBoolean;
    244     if (isBoolean.isEmpty()) {
    245         isBoolean.reserve(8);
    246         for (unsigned i = 0; i < 8; ++i)
    247             isBoolean.insert(isBoolean_array[i]);
    248     }
    249     newRow(expr) << isBoolean.contains(expr);
    250 }
    251 
    252 void tst_QScriptValue::isBoolean_test(const char*, const QScriptValue& value)
    253 {
     234void tst_QScriptValue::isBoolean_data()
     235{
     236    QTest::addColumn<QScriptValue>("value");
     237    QTest::addColumn<bool>("expected");
     238    if (m_engine)
     239        delete m_engine;
     240    m_engine = new QScriptEngine();
     241    QSet<QString> expectedValue;
     242    expectedValue.reserve(8);
     243    for (uint i = 0; i < 8; ++i)
     244        expectedValue.insert(isBoolean_array[i]);
     245    for (uint i = 0; i < 135; ++i) {
     246        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     247        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     248    }
     249}
     250
     251void tst_QScriptValue::isBoolean()
     252{
     253    QFETCH(QScriptValue, value);
    254254    QFETCH(bool, expected);
    255255    QCOMPARE(value.isBoolean(), expected);
     
    257257}
    258258
    259 DEFINE_TEST_FUNCTION(isBoolean)
    260 
    261 
    262 void tst_QScriptValue::isNumber_initData()
    263 {
    264     QTest::addColumn<bool>("expected");
    265     initScriptValues();
    266 }
    267 
    268 static QString isNumber_array[] = {
     259static const QString isNumber_array[] = {
    269260    "QScriptValue(int(122))",
    270261    "QScriptValue(uint(124))",
     
    309300    "QScriptValue(engine, qInf())",
    310301    "QScriptValue(engine, -qInf())",
     302    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    311303    "engine->evaluate(\"122\")",
    312304    "engine->evaluate(\"124\")",
     
    323315    "engine->evaluate(\"-Infinity\")"};
    324316
    325 void tst_QScriptValue::isNumber_makeData(const char* expr)
    326 {
    327     static QSet<QString> isNumber;
    328     if (isNumber.isEmpty()) {
    329         isNumber.reserve(55);
    330         for (unsigned i = 0; i < 55; ++i)
    331             isNumber.insert(isNumber_array[i]);
    332     }
    333     newRow(expr) << isNumber.contains(expr);
    334 }
    335 
    336 void tst_QScriptValue::isNumber_test(const char*, const QScriptValue& value)
    337 {
     317void tst_QScriptValue::isNumber_data()
     318{
     319    QTest::addColumn<QScriptValue>("value");
     320    QTest::addColumn<bool>("expected");
     321    if (m_engine)
     322        delete m_engine;
     323    m_engine = new QScriptEngine();
     324    QSet<QString> expectedValue;
     325    expectedValue.reserve(56);
     326    for (uint i = 0; i < 56; ++i)
     327        expectedValue.insert(isNumber_array[i]);
     328    for (uint i = 0; i < 135; ++i) {
     329        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     330        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     331    }
     332}
     333
     334void tst_QScriptValue::isNumber()
     335{
     336    QFETCH(QScriptValue, value);
    338337    QFETCH(bool, expected);
    339338    QCOMPARE(value.isNumber(), expected);
     
    341340}
    342341
    343 DEFINE_TEST_FUNCTION(isNumber)
    344 
    345 
    346 void tst_QScriptValue::isFunction_initData()
    347 {
    348     QTest::addColumn<bool>("expected");
    349     initScriptValues();
    350 }
    351 
    352 static QString isFunction_array[] = {
     342static const QString isFunction_array[] = {
    353343    "engine->evaluate(\"Function.prototype\")",
    354344    "engine->evaluate(\"Object\")",
     
    358348    "engine->evaluate(\"(function() { return 1; })\")",
    359349    "engine->evaluate(\"(function() { return 'ciao'; })\")",
     350    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    360351    "engine->evaluate(\"/foo/\")"};
    361352
    362 void tst_QScriptValue::isFunction_makeData(const char* expr)
    363 {
    364     static QSet<QString> isFunction;
    365     if (isFunction.isEmpty()) {
    366         isFunction.reserve(8);
    367         for (unsigned i = 0; i < 8; ++i)
    368             isFunction.insert(isFunction_array[i]);
    369     }
    370     newRow(expr) << isFunction.contains(expr);
    371 }
    372 
    373 void tst_QScriptValue::isFunction_test(const char*, const QScriptValue& value)
    374 {
     353void tst_QScriptValue::isFunction_data()
     354{
     355    QTest::addColumn<QScriptValue>("value");
     356    QTest::addColumn<bool>("expected");
     357    if (m_engine)
     358        delete m_engine;
     359    m_engine = new QScriptEngine();
     360    QSet<QString> expectedValue;
     361    expectedValue.reserve(9);
     362    for (uint i = 0; i < 9; ++i)
     363        expectedValue.insert(isFunction_array[i]);
     364    for (uint i = 0; i < 135; ++i) {
     365        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     366        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     367    }
     368}
     369
     370void tst_QScriptValue::isFunction()
     371{
     372    QFETCH(QScriptValue, value);
    375373    QFETCH(bool, expected);
    376374    QCOMPARE(value.isFunction(), expected);
     
    378376}
    379377
    380 DEFINE_TEST_FUNCTION(isFunction)
    381 
    382 
    383 void tst_QScriptValue::isNull_initData()
    384 {
    385     QTest::addColumn<bool>("expected");
    386     initScriptValues();
    387 }
    388 
    389 static QString isNull_array[] = {
     378static const QString isNull_array[] = {
    390379    "QScriptValue(QScriptValue::NullValue)",
    391380    "QScriptValue(0, QScriptValue::NullValue)",
     
    394383    "engine->nullValue()"};
    395384
    396 void tst_QScriptValue::isNull_makeData(const char* expr)
    397 {
    398     static QSet<QString> isNull;
    399     if (isNull.isEmpty()) {
    400         isNull.reserve(5);
    401         for (unsigned i = 0; i < 5; ++i)
    402             isNull.insert(isNull_array[i]);
    403     }
    404     newRow(expr) << isNull.contains(expr);
    405 }
    406 
    407 void tst_QScriptValue::isNull_test(const char*, const QScriptValue& value)
    408 {
     385void tst_QScriptValue::isNull_data()
     386{
     387    QTest::addColumn<QScriptValue>("value");
     388    QTest::addColumn<bool>("expected");
     389    if (m_engine)
     390        delete m_engine;
     391    m_engine = new QScriptEngine();
     392    QSet<QString> expectedValue;
     393    expectedValue.reserve(5);
     394    for (uint i = 0; i < 5; ++i)
     395        expectedValue.insert(isNull_array[i]);
     396    for (uint i = 0; i < 135; ++i) {
     397        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     398        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     399    }
     400}
     401
     402void tst_QScriptValue::isNull()
     403{
     404    QFETCH(QScriptValue, value);
    409405    QFETCH(bool, expected);
    410406    QCOMPARE(value.isNull(), expected);
     
    412408}
    413409
    414 DEFINE_TEST_FUNCTION(isNull)
    415 
    416 
    417 void tst_QScriptValue::isString_initData()
    418 {
    419     QTest::addColumn<bool>("expected");
    420     initScriptValues();
    421 }
    422 
    423 static QString isString_array[] = {
     410static const QString isString_array[] = {
    424411    "QScriptValue(\"NaN\")",
    425412    "QScriptValue(\"Infinity\")",
     
    458445    "engine->evaluate(\"'12.4'\")"};
    459446
    460 void tst_QScriptValue::isString_makeData(const char* expr)
    461 {
    462     static QSet<QString> isString;
    463     if (isString.isEmpty()) {
    464         isString.reserve(35);
    465         for (unsigned i = 0; i < 35; ++i)
    466             isString.insert(isString_array[i]);
    467     }
    468     newRow(expr) << isString.contains(expr);
    469 }
    470 
    471 void tst_QScriptValue::isString_test(const char*, const QScriptValue& value)
    472 {
     447void tst_QScriptValue::isString_data()
     448{
     449    QTest::addColumn<QScriptValue>("value");
     450    QTest::addColumn<bool>("expected");
     451    if (m_engine)
     452        delete m_engine;
     453    m_engine = new QScriptEngine();
     454    QSet<QString> expectedValue;
     455    expectedValue.reserve(35);
     456    for (uint i = 0; i < 35; ++i)
     457        expectedValue.insert(isString_array[i]);
     458    for (uint i = 0; i < 135; ++i) {
     459        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     460        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     461    }
     462}
     463
     464void tst_QScriptValue::isString()
     465{
     466    QFETCH(QScriptValue, value);
    473467    QFETCH(bool, expected);
    474468    QCOMPARE(value.isString(), expected);
     
    476470}
    477471
    478 DEFINE_TEST_FUNCTION(isString)
    479 
    480 
    481 void tst_QScriptValue::isUndefined_initData()
    482 {
    483     QTest::addColumn<bool>("expected");
    484     initScriptValues();
    485 }
    486 
    487 static QString isUndefined_array[] = {
     472static const QString isUndefined_array[] = {
    488473    "QScriptValue(QScriptValue::UndefinedValue)",
    489474    "QScriptValue(0, QScriptValue::UndefinedValue)",
     
    493478    "engine->undefinedValue()"};
    494479
    495 void tst_QScriptValue::isUndefined_makeData(const char* expr)
    496 {
    497     static QSet<QString> isUndefined;
    498     if (isUndefined.isEmpty()) {
    499         isUndefined.reserve(6);
    500         for (unsigned i = 0; i < 6; ++i)
    501             isUndefined.insert(isUndefined_array[i]);
    502     }
    503     newRow(expr) << isUndefined.contains(expr);
    504 }
    505 
    506 void tst_QScriptValue::isUndefined_test(const char*, const QScriptValue& value)
    507 {
     480void tst_QScriptValue::isUndefined_data()
     481{
     482    QTest::addColumn<QScriptValue>("value");
     483    QTest::addColumn<bool>("expected");
     484    if (m_engine)
     485        delete m_engine;
     486    m_engine = new QScriptEngine();
     487    QSet<QString> expectedValue;
     488    expectedValue.reserve(6);
     489    for (uint i = 0; i < 6; ++i)
     490        expectedValue.insert(isUndefined_array[i]);
     491    for (uint i = 0; i < 135; ++i) {
     492        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     493        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     494    }
     495}
     496
     497void tst_QScriptValue::isUndefined()
     498{
     499    QFETCH(QScriptValue, value);
    508500    QFETCH(bool, expected);
    509501    QCOMPARE(value.isUndefined(), expected);
     
    511503}
    512504
    513 DEFINE_TEST_FUNCTION(isUndefined)
    514 
    515 
    516 
    517 
    518 
    519 void tst_QScriptValue::isObject_initData()
    520 {
    521     QTest::addColumn<bool>("expected");
    522     initScriptValues();
    523 }
    524 
    525 static QString isObject_array[] = {
     505
     506
     507
     508static const QString isObject_array[] = {
    526509    "engine->evaluate(\"[]\")",
    527510    "engine->evaluate(\"Object.prototype\")",
     
    536519    "engine->evaluate(\"(function() { return 1; })\")",
    537520    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    538     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     521    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    539522    "engine->evaluate(\"/foo/\")",
    540523    "engine->evaluate(\"new Object()\")",
    541524    "engine->evaluate(\"new Array()\")",
    542525    "engine->evaluate(\"new Error()\")",
    543     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     526    "engine->evaluate(\"Undefined\")",
     527    "engine->evaluate(\"Null\")",
     528    "engine->evaluate(\"True\")",
     529    "engine->evaluate(\"False\")",
     530    "engine->newObject()",
     531    "engine->newArray()",
     532    "engine->newArray(10)"};
     533
     534void tst_QScriptValue::isObject_data()
     535{
     536    QTest::addColumn<QScriptValue>("value");
     537    QTest::addColumn<bool>("expected");
     538    if (m_engine)
     539        delete m_engine;
     540    m_engine = new QScriptEngine();
     541    QSet<QString> expectedValue;
     542    expectedValue.reserve(24);
     543    for (uint i = 0; i < 24; ++i)
     544        expectedValue.insert(isObject_array[i]);
     545    for (uint i = 0; i < 135; ++i) {
     546        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     547        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     548    }
     549}
     550
     551void tst_QScriptValue::isObject()
     552{
     553    QFETCH(QScriptValue, value);
     554    QFETCH(bool, expected);
     555    QCOMPARE(value.isObject(), expected);
     556    QCOMPARE(value.isObject(), expected);
     557}
     558
     559static const QString isArray_array[] = {
     560    "engine->evaluate(\"[]\")",
     561    "engine->evaluate(\"Array.prototype\")",
     562    "engine->evaluate(\"new Array()\")",
     563    "engine->newArray()",
     564    "engine->newArray(10)"};
     565
     566void tst_QScriptValue::isArray_data()
     567{
     568    QTest::addColumn<QScriptValue>("value");
     569    QTest::addColumn<bool>("expected");
     570    if (m_engine)
     571        delete m_engine;
     572    m_engine = new QScriptEngine();
     573    QSet<QString> expectedValue;
     574    expectedValue.reserve(5);
     575    for (uint i = 0; i < 5; ++i)
     576        expectedValue.insert(isArray_array[i]);
     577    for (uint i = 0; i < 135; ++i) {
     578        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     579        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     580    }
     581}
     582
     583void tst_QScriptValue::isArray()
     584{
     585    QFETCH(QScriptValue, value);
     586    QFETCH(bool, expected);
     587    QCOMPARE(value.isArray(), expected);
     588    QCOMPARE(value.isArray(), expected);
     589}
     590
     591static const QString isError_array[] = {
     592    "engine->evaluate(\"Error.prototype\")",
     593    "engine->evaluate(\"new Error()\")",
    544594    "engine->evaluate(\"Undefined\")",
    545595    "engine->evaluate(\"Null\")",
     
    547597    "engine->evaluate(\"False\")"};
    548598
    549 void tst_QScriptValue::isObject_makeData(const char* expr)
    550 {
    551     static QSet<QString> isObject;
    552     if (isObject.isEmpty()) {
    553         isObject.reserve(22);
    554         for (unsigned i = 0; i < 22; ++i)
    555             isObject.insert(isObject_array[i]);
    556     }
    557     newRow(expr) << isObject.contains(expr);
    558 }
    559 
    560 void tst_QScriptValue::isObject_test(const char*, const QScriptValue& value)
    561 {
    562     QFETCH(bool, expected);
    563     QCOMPARE(value.isObject(), expected);
    564     QCOMPARE(value.isObject(), expected);
    565 }
    566 
    567 DEFINE_TEST_FUNCTION(isObject)
     599void tst_QScriptValue::isError_data()
     600{
     601    QTest::addColumn<QScriptValue>("value");
     602    QTest::addColumn<bool>("expected");
     603    if (m_engine)
     604        delete m_engine;
     605    m_engine = new QScriptEngine();
     606    QSet<QString> expectedValue;
     607    expectedValue.reserve(6);
     608    for (uint i = 0; i < 6; ++i)
     609        expectedValue.insert(isError_array[i]);
     610    for (uint i = 0; i < 135; ++i) {
     611        QPair<QString, QScriptValue> testcase = initScriptValues(i);
     612        QTest::newRow(testcase.first.toAscii().constData()) << testcase.second << expectedValue.contains(testcase.first);
     613    }
     614}
     615
     616void tst_QScriptValue::isError()
     617{
     618    QFETCH(QScriptValue, value);
     619    QFETCH(bool, expected);
     620    QCOMPARE(value.isError(), expected);
     621    QCOMPARE(value.isError(), expected);
     622}
  • trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_totype.cpp

    r59930 r64165  
    2424#include "tst_qscriptvalue.h"
    2525
    26 
    27 
    28 void tst_QScriptValue::toString_initData()
    29 {
    30     QTest::addColumn<QString>("expected");
    31     initScriptValues();
    32 }
    33 
    34 static QString toString_tagArray[] = {
     26static const QString toString_tagArray[] = {
    3527    "QScriptValue()",
    3628    "QScriptValue(QScriptValue::UndefinedValue)",
     
    131123    "engine->evaluate(\"(function() { return 1; })\")",
    132124    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    133     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     125    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    134126    "engine->evaluate(\"/foo/\")",
    135127    "engine->evaluate(\"new Object()\")",
    136128    "engine->evaluate(\"new Array()\")",
    137129    "engine->evaluate(\"new Error()\")",
    138     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     130    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    139131    "engine->evaluate(\"Undefined\")",
    140132    "engine->evaluate(\"Null\")",
     
    164156    "engine->evaluate(\"'12.4'\")",
    165157    "engine->nullValue()",
    166     "engine->undefinedValue()"};
    167 
    168 static QString toString_valueArray[] = {
     158    "engine->undefinedValue()",
     159    "engine->newObject()",
     160    "engine->newArray()",
     161    "engine->newArray(10)"};
     162
     163static const QString toString_valueArray[] = {
    169164    "", "undefined",
    170165    "null", "true",
     
    216211    "function Number() {\n    [native code]\n}", "function Function() {\n    [native code]\n}",
    217212    "function () { return 1; }", "function () { return 'ciao'; }",
    218     "SyntaxError: Parse error", "/foo/",
     213    "function () { throw new Error('foo'); }", "/foo/",
    219214    "[object Object]", "",
    220     "Error: Unknown error", "SyntaxError: Parse error",
     215    "Error: Unknown error", "22",
    221216    "ReferenceError: Can't find variable: Undefined", "ReferenceError: Can't find variable: Null",
    222217    "ReferenceError: Can't find variable: True", "ReferenceError: Can't find variable: False",
     
    232227    "", "0",
    233228    "123", "12.4",
    234     "null", "undefined"};
    235 
    236 void tst_QScriptValue::toString_makeData(const char* expr)
     229    "null", "undefined",
     230    "[object Object]", "",
     231    ",,,,,,,,,"};
     232
     233void tst_QScriptValue::toString_data()
    237234{
    238     static QHash<QString, QString> toString;
    239     if (toString.isEmpty()) {
    240         toString.reserve(132);
    241         for (unsigned i = 0; i < 132; ++i)
    242             toString.insert(toString_tagArray[i], toString_valueArray[i]);
     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];
    243247    }
    244     newRow(expr) << toString.value(expr);
    245248}
    246249
    247 void tst_QScriptValue::toString_test(const char*, const QScriptValue& value)
     250void tst_QScriptValue::toString()
    248251{
     252    QFETCH(QScriptValue, value);
    249253    QFETCH(QString, expected);
    250254    QCOMPARE(value.toString(), expected);
     
    252256}
    253257
    254 DEFINE_TEST_FUNCTION(toString)
    255 
    256 
    257 void tst_QScriptValue::toNumber_initData()
    258 {
    259     QTest::addColumn<qsreal>("expected");
    260     initScriptValues();
    261 }
    262 
    263 static QString toNumber_tagArray[] = {
     258static const QString toNumber_tagArray[] = {
    264259    "QScriptValue()",
    265260    "QScriptValue(QScriptValue::UndefinedValue)",
     
    360355    "engine->evaluate(\"(function() { return 1; })\")",
    361356    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    362     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     357    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    363358    "engine->evaluate(\"/foo/\")",
    364359    "engine->evaluate(\"new Object()\")",
    365360    "engine->evaluate(\"new Array()\")",
    366361    "engine->evaluate(\"new Error()\")",
    367     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     362    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    368363    "engine->evaluate(\"Undefined\")",
    369364    "engine->evaluate(\"Null\")",
     
    393388    "engine->evaluate(\"'12.4'\")",
    394389    "engine->nullValue()",
    395     "engine->undefinedValue()"};
    396 static qsreal toNumber_valueArray[] = {
     390    "engine->undefinedValue()",
     391    "engine->newObject()",
     392    "engine->newArray()",
     393    "engine->newArray(10)"};
     394
     395static const qsreal toNumber_valueArray[] = {
    397396    0, qQNaN(), 0, 1, 0, 122, 124, 0, 0, 123,
    398397    6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(),
     
    405404    0, 0, 0, 123, 1.23, 0, qQNaN(), qQNaN(), qQNaN(), 0,
    406405    qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(),
    407     qQNaN(), 0, qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), 0,
     406    qQNaN(), 0, qQNaN(), 22, qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), 0,
    408407    1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820,
    409408    65536, 65537, qQNaN(), qInf(), qInf(), qQNaN(), 0, 0, 123, 12.4,
    410     0, qQNaN()};
    411 void tst_QScriptValue::toNumber_makeData(const char* expr)
     409    0, qQNaN(), qQNaN(), 0, qQNaN()};
     410
     411void tst_QScriptValue::toNumber_data()
    412412{
    413     static QHash<QString, qsreal> toNumber;
    414     if (toNumber.isEmpty()) {
    415         toNumber.reserve(132);
    416         for (unsigned i = 0; i < 132; ++i)
    417             toNumber.insert(toNumber_tagArray[i], toNumber_valueArray[i]);
     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];
    418425    }
    419     newRow(expr) << toNumber.value(expr);
    420426}
    421427
    422 void tst_QScriptValue::toNumber_test(const char*, const QScriptValue& value)
     428void tst_QScriptValue::toNumber()
    423429{
     430    QFETCH(QScriptValue, value);
    424431    QFETCH(qsreal, expected);
    425432    if (qIsNaN(expected)) {
     
    436443}
    437444
    438 DEFINE_TEST_FUNCTION(toNumber)
    439 
    440 
    441 void tst_QScriptValue::toBool_initData()
    442 {
    443     QTest::addColumn<bool>("expected");
    444     initScriptValues();
    445 }
    446 
    447 static QString toBool_tagArray[] = {
     445static const QString toBool_tagArray[] = {
    448446    "QScriptValue()",
    449447    "QScriptValue(QScriptValue::UndefinedValue)",
     
    544542    "engine->evaluate(\"(function() { return 1; })\")",
    545543    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    546     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     544    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    547545    "engine->evaluate(\"/foo/\")",
    548546    "engine->evaluate(\"new Object()\")",
    549547    "engine->evaluate(\"new Array()\")",
    550548    "engine->evaluate(\"new Error()\")",
    551     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     549    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    552550    "engine->evaluate(\"Undefined\")",
    553551    "engine->evaluate(\"Null\")",
     
    577575    "engine->evaluate(\"'12.4'\")",
    578576    "engine->nullValue()",
    579     "engine->undefinedValue()"};
    580 
    581 static bool toBool_valueArray[] = {
     577    "engine->undefinedValue()",
     578    "engine->newObject()",
     579    "engine->newArray()",
     580    "engine->newArray(10)"};
     581
     582static const bool toBool_valueArray[] = {
    582583    false, false,
    583584    false, true,
     
    645646    false, true,
    646647    true, true,
    647     false, false};
    648 
    649 void tst_QScriptValue::toBool_makeData(const char* expr)
     648    false, false,
     649    true, true,
     650    true};
     651
     652void tst_QScriptValue::toBool_data()
    650653{
    651     static QHash<QString, bool> toBool;
    652     if (toBool.isEmpty()) {
    653         toBool.reserve(132);
    654         for (unsigned i = 0; i < 132; ++i)
    655             toBool.insert(toBool_tagArray[i], toBool_valueArray[i]);
     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];
    656666    }
    657     newRow(expr) << toBool.value(expr);
    658667}
    659668
    660 void tst_QScriptValue::toBool_test(const char*, const QScriptValue& value)
     669void tst_QScriptValue::toBool()
    661670{
     671    QFETCH(QScriptValue, value);
    662672    QFETCH(bool, expected);
    663673    QCOMPARE(value.toBool(), expected);
     
    665675}
    666676
    667 DEFINE_TEST_FUNCTION(toBool)
    668 
    669 
    670 void tst_QScriptValue::toBoolean_initData()
    671 {
    672     QTest::addColumn<bool>("expected");
    673     initScriptValues();
    674 }
    675 
    676 static QString toBoolean_tagArray[] = {
     677static const QString toBoolean_tagArray[] = {
    677678    "QScriptValue()",
    678679    "QScriptValue(QScriptValue::UndefinedValue)",
     
    773774    "engine->evaluate(\"(function() { return 1; })\")",
    774775    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    775     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     776    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    776777    "engine->evaluate(\"/foo/\")",
    777778    "engine->evaluate(\"new Object()\")",
    778779    "engine->evaluate(\"new Array()\")",
    779780    "engine->evaluate(\"new Error()\")",
    780     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     781    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    781782    "engine->evaluate(\"Undefined\")",
    782783    "engine->evaluate(\"Null\")",
     
    806807    "engine->evaluate(\"'12.4'\")",
    807808    "engine->nullValue()",
    808     "engine->undefinedValue()"};
    809 
    810 static bool toBoolean_valueArray[] = {
     809    "engine->undefinedValue()",
     810    "engine->newObject()",
     811    "engine->newArray()",
     812    "engine->newArray(10)"};
     813
     814static const bool toBoolean_valueArray[] = {
    811815    false, false,
    812816    false, true,
     
    874878    false, true,
    875879    true, true,
    876     false, false};
    877 
    878 void tst_QScriptValue::toBoolean_makeData(const char* expr)
     880    false, false,
     881    true, true,
     882    true};
     883
     884void tst_QScriptValue::toBoolean_data()
    879885{
    880     static QHash<QString, bool> toBoolean;
    881     if (toBoolean.isEmpty()) {
    882         toBoolean.reserve(132);
    883         for (unsigned i = 0; i < 132; ++i)
    884             toBoolean.insert(toBoolean_tagArray[i], toBoolean_valueArray[i]);
     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];
    885898    }
    886     newRow(expr) << toBoolean.value(expr);
    887899}
    888900
    889 void tst_QScriptValue::toBoolean_test(const char*, const QScriptValue& value)
     901void tst_QScriptValue::toBoolean()
    890902{
     903    QFETCH(QScriptValue, value);
    891904    QFETCH(bool, expected);
    892905    QCOMPARE(value.toBoolean(), expected);
     
    894907}
    895908
    896 DEFINE_TEST_FUNCTION(toBoolean)
    897 
    898 
    899 void tst_QScriptValue::toInteger_initData()
    900 {
    901     QTest::addColumn<qsreal>("expected");
    902     initScriptValues();
    903 }
    904 
    905 static QString toInteger_tagArray[] = {
     909static const QString toInteger_tagArray[] = {
    906910    "QScriptValue()",
    907911    "QScriptValue(QScriptValue::UndefinedValue)",
     
    10021006    "engine->evaluate(\"(function() { return 1; })\")",
    10031007    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    1004     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     1008    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    10051009    "engine->evaluate(\"/foo/\")",
    10061010    "engine->evaluate(\"new Object()\")",
    10071011    "engine->evaluate(\"new Array()\")",
    10081012    "engine->evaluate(\"new Error()\")",
    1009     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     1013    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    10101014    "engine->evaluate(\"Undefined\")",
    10111015    "engine->evaluate(\"Null\")",
     
    10351039    "engine->evaluate(\"'12.4'\")",
    10361040    "engine->nullValue()",
    1037     "engine->undefinedValue()"};
    1038 static qsreal toInteger_valueArray[] = {
     1041    "engine->undefinedValue()",
     1042    "engine->newObject()",
     1043    "engine->newArray()",
     1044    "engine->newArray(10)"};
     1045
     1046static const qsreal toInteger_valueArray[] = {
    10391047    0, 0, 0, 1, 0, 122, 124, 0, 0, 123,
    10401048    0, 0, 1126240820, 65536, 65537, 0, 0, qInf(), qInf(), 0,
     
    10471055    0, 0, 0, 123, 1, 0, 0, 0, 0, 0,
    10481056    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1049     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1057    0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
    10501058    1, 0, 122, 124, 0, 0, 123, 0, 0, 1126240820,
    10511059    65536, 65537, 0, qInf(), qInf(), 0, 0, 0, 123, 12,
    1052     0, 0};
    1053 void tst_QScriptValue::toInteger_makeData(const char* expr)
     1060    0, 0, 0, 0, 0};
     1061
     1062void tst_QScriptValue::toInteger_data()
    10541063{
    1055     static QHash<QString, qsreal> toInteger;
    1056     if (toInteger.isEmpty()) {
    1057         toInteger.reserve(132);
    1058         for (unsigned i = 0; i < 132; ++i)
    1059             toInteger.insert(toInteger_tagArray[i], toInteger_valueArray[i]);
     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];
    10601076    }
    1061     newRow(expr) << toInteger.value(expr);
    10621077}
    10631078
    1064 void tst_QScriptValue::toInteger_test(const char*, const QScriptValue& value)
     1079void tst_QScriptValue::toInteger()
    10651080{
     1081    QFETCH(QScriptValue, value);
    10661082    QFETCH(qsreal, expected);
    10671083    if (qIsInf(expected)) {
     
    10741090}
    10751091
    1076 DEFINE_TEST_FUNCTION(toInteger)
    1077 
    1078 
    1079 void tst_QScriptValue::toInt32_initData()
    1080 {
    1081     QTest::addColumn<qint32>("expected");
    1082     initScriptValues();
    1083 }
    1084 
    1085 static QString toInt32_tagArray[] = {
     1092static const QString toInt32_tagArray[] = {
    10861093    "QScriptValue()",
    10871094    "QScriptValue(QScriptValue::UndefinedValue)",
     
    11821189    "engine->evaluate(\"(function() { return 1; })\")",
    11831190    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    1184     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     1191    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    11851192    "engine->evaluate(\"/foo/\")",
    11861193    "engine->evaluate(\"new Object()\")",
    11871194    "engine->evaluate(\"new Array()\")",
    11881195    "engine->evaluate(\"new Error()\")",
    1189     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     1196    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    11901197    "engine->evaluate(\"Undefined\")",
    11911198    "engine->evaluate(\"Null\")",
     
    12151222    "engine->evaluate(\"'12.4'\")",
    12161223    "engine->nullValue()",
    1217     "engine->undefinedValue()"};
    1218 
    1219 static qint32 toInt32_valueArray[] = {
     1224    "engine->undefinedValue()",
     1225    "engine->newObject()",
     1226    "engine->newArray()",
     1227    "engine->newArray(10)"};
     1228
     1229static const qint32 toInt32_valueArray[] = {
    12201230    0, 0,
    12211231    0, 1,
     
    12691279    0, 0,
    12701280    0, 0,
    1271     0, 0,
     1281    0, 22,
    12721282    0, 0,
    12731283    0, 0,
     
    12831293    0, 0,
    12841294    123, 12,
    1285     0, 0};
    1286 
    1287 void tst_QScriptValue::toInt32_makeData(const char* expr)
     1295    0, 0,
     1296    0, 0,
     1297    0};
     1298
     1299void tst_QScriptValue::toInt32_data()
    12881300{
    1289     static QHash<QString, qint32> toInt32;
    1290     if (toInt32.isEmpty()) {
    1291         toInt32.reserve(132);
    1292         for (unsigned i = 0; i < 132; ++i)
    1293             toInt32.insert(toInt32_tagArray[i], toInt32_valueArray[i]);
     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];
    12941313    }
    1295     newRow(expr) << toInt32.value(expr);
    12961314}
    12971315
    1298 void tst_QScriptValue::toInt32_test(const char*, const QScriptValue& value)
     1316void tst_QScriptValue::toInt32()
    12991317{
     1318    QFETCH(QScriptValue, value);
    13001319    QFETCH(qint32, expected);
    13011320    QCOMPARE(value.toInt32(), expected);
     
    13031322}
    13041323
    1305 DEFINE_TEST_FUNCTION(toInt32)
    1306 
    1307 
    1308 void tst_QScriptValue::toUInt32_initData()
    1309 {
    1310     QTest::addColumn<quint32>("expected");
    1311     initScriptValues();
    1312 }
    1313 
    1314 static QString toUInt32_tagArray[] = {
     1324static const QString toUInt32_tagArray[] = {
    13151325    "QScriptValue()",
    13161326    "QScriptValue(QScriptValue::UndefinedValue)",
     
    14111421    "engine->evaluate(\"(function() { return 1; })\")",
    14121422    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    1413     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     1423    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    14141424    "engine->evaluate(\"/foo/\")",
    14151425    "engine->evaluate(\"new Object()\")",
    14161426    "engine->evaluate(\"new Array()\")",
    14171427    "engine->evaluate(\"new Error()\")",
    1418     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     1428    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    14191429    "engine->evaluate(\"Undefined\")",
    14201430    "engine->evaluate(\"Null\")",
     
    14441454    "engine->evaluate(\"'12.4'\")",
    14451455    "engine->nullValue()",
    1446     "engine->undefinedValue()"};
    1447 
    1448 static quint32 toUInt32_valueArray[] = {
     1456    "engine->undefinedValue()",
     1457    "engine->newObject()",
     1458    "engine->newArray()",
     1459    "engine->newArray(10)"};
     1460
     1461static const quint32 toUInt32_valueArray[] = {
    14491462    0, 0,
    14501463    0, 1,
     
    14981511    0, 0,
    14991512    0, 0,
    1500     0, 0,
     1513    0, 22,
    15011514    0, 0,
    15021515    0, 0,
     
    15121525    0, 0,
    15131526    123, 12,
    1514     0, 0};
    1515 
    1516 void tst_QScriptValue::toUInt32_makeData(const char* expr)
     1527    0, 0,
     1528    0, 0,
     1529    0};
     1530
     1531void tst_QScriptValue::toUInt32_data()
    15171532{
    1518     static QHash<QString, quint32> toUInt32;
    1519     if (toUInt32.isEmpty()) {
    1520         toUInt32.reserve(132);
    1521         for (unsigned i = 0; i < 132; ++i)
    1522             toUInt32.insert(toUInt32_tagArray[i], toUInt32_valueArray[i]);
     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];
    15231545    }
    1524     newRow(expr) << toUInt32.value(expr);
    15251546}
    15261547
    1527 void tst_QScriptValue::toUInt32_test(const char*, const QScriptValue& value)
     1548void tst_QScriptValue::toUInt32()
    15281549{
     1550    QFETCH(QScriptValue, value);
    15291551    QFETCH(quint32, expected);
    15301552    QCOMPARE(value.toUInt32(), expected);
     
    15321554}
    15331555
    1534 DEFINE_TEST_FUNCTION(toUInt32)
    1535 
    1536 
    1537 void tst_QScriptValue::toUInt16_initData()
    1538 {
    1539     QTest::addColumn<quint16>("expected");
    1540     initScriptValues();
    1541 }
    1542 
    1543 static QString toUInt16_tagArray[] = {
     1556static const QString toUInt16_tagArray[] = {
    15441557    "QScriptValue()",
    15451558    "QScriptValue(QScriptValue::UndefinedValue)",
     
    16401653    "engine->evaluate(\"(function() { return 1; })\")",
    16411654    "engine->evaluate(\"(function() { return 'ciao'; })\")",
    1642     "engine->evaluate(\"(function() { throw new Error('foo' })\")",
     1655    "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
    16431656    "engine->evaluate(\"/foo/\")",
    16441657    "engine->evaluate(\"new Object()\")",
    16451658    "engine->evaluate(\"new Array()\")",
    16461659    "engine->evaluate(\"new Error()\")",
    1647     "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\")",
     1660    "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
    16481661    "engine->evaluate(\"Undefined\")",
    16491662    "engine->evaluate(\"Null\")",
     
    16731686    "engine->evaluate(\"'12.4'\")",
    16741687    "engine->nullValue()",
    1675     "engine->undefinedValue()"};
    1676 
    1677 static quint16 toUInt16_valueArray[] = {
     1688    "engine->undefinedValue()",
     1689    "engine->newObject()",
     1690    "engine->newArray()",
     1691    "engine->newArray(10)"};
     1692
     1693static const quint16 toUInt16_valueArray[] = {
    16781694    0, 0,
    16791695    0, 1,
     
    17271743    0, 0,
    17281744    0, 0,
    1729     0, 0,
     1745    0, 22,
    17301746    0, 0,
    17311747    0, 0,
     
    17411757    0, 0,
    17421758    123, 12,
    1743     0, 0};
    1744 
    1745 void tst_QScriptValue::toUInt16_makeData(const char* expr)
     1759    0, 0,
     1760    0, 0,
     1761    0};
     1762
     1763void tst_QScriptValue::toUInt16_data()
    17461764{
    1747     static QHash<QString, quint16> toUInt16;
    1748     if (toUInt16.isEmpty()) {
    1749         toUInt16.reserve(132);
    1750         for (unsigned i = 0; i < 132; ++i)
    1751             toUInt16.insert(toUInt16_tagArray[i], toUInt16_valueArray[i]);
     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];
    17521777    }
    1753     newRow(expr) << toUInt16.value(expr);
    17541778}
    17551779
    1756 void tst_QScriptValue::toUInt16_test(const char*, const QScriptValue& value)
     1780void tst_QScriptValue::toUInt16()
    17571781{
     1782    QFETCH(QScriptValue, value);
    17581783    QFETCH(quint16, expected);
    17591784    QCOMPARE(value.toUInt16(), expected);
    17601785    QCOMPARE(value.toUInt16(), expected);
    17611786}
    1762 
    1763 DEFINE_TEST_FUNCTION(toUInt16)
Note: See TracChangeset for help on using the changeset viewer.