Changeset 64165 in webkit for trunk/JavaScriptCore/qt/tests
- Timestamp:
- Jul 27, 2010, 3:16:09 PM (15 years ago)
- Location:
- trunk/JavaScriptCore/qt/tests/qscriptvalue
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.cpp
r63318 r64165 22 22 23 23 tst_QScriptValue::tst_QScriptValue() 24 : engine(0)24 : m_engine(0) 25 25 { 26 26 } … … 28 28 tst_QScriptValue::~tst_QScriptValue() 29 29 { 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 } 57 32 58 33 void tst_QScriptValue::ctor() … … 1286 1261 } 1287 1262 1263 void 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 1276 void 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 1288 1296 QTEST_MAIN(tst_QScriptValue) -
trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.h
r63318 r64165 30 30 Q_DECLARE_METATYPE(QScriptValue*); 31 31 Q_DECLARE_METATYPE(QScriptValue); 32 typedef QPair<QString, QScriptValue> QPairQStringAndQScriptValue; 33 Q_DECLARE_METATYPE(QPairQStringAndQScriptValue); 32 34 33 35 class tst_QScriptValue : public QObject { … … 62 64 void propertyFlag(); 63 65 void globalObjectChanges(); 66 void assignAndCopyConstruct_data(); 67 void assignAndCopyConstruct(); 64 68 65 69 // Generated test functions. 70 void isArray_data(); 71 void isArray(); 72 66 73 void isBool_data(); 67 74 void isBool(); … … 69 76 void isBoolean_data(); 70 77 void isBoolean(); 78 79 void isError_data(); 80 void isError(); 71 81 72 82 void isNumber_data(); … … 125 135 126 136 private: 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); 131 139 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; 223 141 }; 224 142 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 231 143 #endif // tst_qscriptvalue_h -
trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp
r60725 r64165 24 24 #include "tst_qscriptvalue.h" 25 25 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[] = { 26 static const QString equals_array[] = { 34 27 "QScriptValue() <=> QScriptValue()", 35 28 "QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)", … … 85 78 "QScriptValue(false) <=> engine->evaluate(\"''\")", 86 79 "QScriptValue(false) <=> engine->evaluate(\"'0'\")", 80 "QScriptValue(false) <=> engine->newArray()", 87 81 "QScriptValue(int(122)) <=> QScriptValue(int(122))", 88 82 "QScriptValue(int(122)) <=> QScriptValue(0, int(122))", … … 119 113 "QScriptValue(0) <=> engine->evaluate(\"''\")", 120 114 "QScriptValue(0) <=> engine->evaluate(\"'0'\")", 115 "QScriptValue(0) <=> engine->newArray()", 121 116 "QScriptValue(0.0) <=> QScriptValue(false)", 122 117 "QScriptValue(0.0) <=> QScriptValue(0)", … … 145 140 "QScriptValue(0.0) <=> engine->evaluate(\"''\")", 146 141 "QScriptValue(0.0) <=> engine->evaluate(\"'0'\")", 142 "QScriptValue(0.0) <=> engine->newArray()", 147 143 "QScriptValue(123.0) <=> QScriptValue(123.0)", 148 144 "QScriptValue(123.0) <=> QScriptValue(QString(\"123\"))", … … 240 236 "QScriptValue(QString(\"\")) <=> engine->evaluate(\"0.0\")", 241 237 "QScriptValue(QString(\"\")) <=> engine->evaluate(\"''\")", 238 "QScriptValue(QString(\"\")) <=> engine->newArray()", 242 239 "QScriptValue(QString()) <=> QScriptValue(false)", 243 240 "QScriptValue(QString()) <=> QScriptValue(0)", … … 262 259 "QScriptValue(QString()) <=> engine->evaluate(\"0.0\")", 263 260 "QScriptValue(QString()) <=> engine->evaluate(\"''\")", 261 "QScriptValue(QString()) <=> engine->newArray()", 264 262 "QScriptValue(QString(\"0\")) <=> QScriptValue(false)", 265 263 "QScriptValue(QString(\"0\")) <=> QScriptValue(0)", … … 340 338 "QScriptValue(0, false) <=> engine->evaluate(\"''\")", 341 339 "QScriptValue(0, false) <=> engine->evaluate(\"'0'\")", 340 "QScriptValue(0, false) <=> engine->newArray()", 342 341 "QScriptValue(0, int(122)) <=> QScriptValue(int(122))", 343 342 "QScriptValue(0, int(122)) <=> QScriptValue(0, int(122))", … … 374 373 "QScriptValue(0, 0) <=> engine->evaluate(\"''\")", 375 374 "QScriptValue(0, 0) <=> engine->evaluate(\"'0'\")", 375 "QScriptValue(0, 0) <=> engine->newArray()", 376 376 "QScriptValue(0, 0.0) <=> QScriptValue(false)", 377 377 "QScriptValue(0, 0.0) <=> QScriptValue(0)", … … 400 400 "QScriptValue(0, 0.0) <=> engine->evaluate(\"''\")", 401 401 "QScriptValue(0, 0.0) <=> engine->evaluate(\"'0'\")", 402 "QScriptValue(0, 0.0) <=> engine->newArray()", 402 403 "QScriptValue(0, 123.0) <=> QScriptValue(123.0)", 403 404 "QScriptValue(0, 123.0) <=> QScriptValue(QString(\"123\"))", … … 495 496 "QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"0.0\")", 496 497 "QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"''\")", 498 "QScriptValue(0, QString(\"\")) <=> engine->newArray()", 497 499 "QScriptValue(0, QString()) <=> QScriptValue(false)", 498 500 "QScriptValue(0, QString()) <=> QScriptValue(0)", … … 517 519 "QScriptValue(0, QString()) <=> engine->evaluate(\"0.0\")", 518 520 "QScriptValue(0, QString()) <=> engine->evaluate(\"''\")", 521 "QScriptValue(0, QString()) <=> engine->newArray()", 519 522 "QScriptValue(0, QString(\"0\")) <=> QScriptValue(false)", 520 523 "QScriptValue(0, QString(\"0\")) <=> QScriptValue(0)", … … 594 597 "QScriptValue(engine, false) <=> engine->evaluate(\"''\")", 595 598 "QScriptValue(engine, false) <=> engine->evaluate(\"'0'\")", 599 "QScriptValue(engine, false) <=> engine->newArray()", 596 600 "QScriptValue(engine, int(122)) <=> QScriptValue(int(122))", 597 601 "QScriptValue(engine, int(122)) <=> QScriptValue(0, int(122))", … … 628 632 "QScriptValue(engine, 0) <=> engine->evaluate(\"''\")", 629 633 "QScriptValue(engine, 0) <=> engine->evaluate(\"'0'\")", 634 "QScriptValue(engine, 0) <=> engine->newArray()", 630 635 "QScriptValue(engine, 0.0) <=> QScriptValue(false)", 631 636 "QScriptValue(engine, 0.0) <=> QScriptValue(0)", … … 654 659 "QScriptValue(engine, 0.0) <=> engine->evaluate(\"''\")", 655 660 "QScriptValue(engine, 0.0) <=> engine->evaluate(\"'0'\")", 661 "QScriptValue(engine, 0.0) <=> engine->newArray()", 656 662 "QScriptValue(engine, 123.0) <=> QScriptValue(123.0)", 657 663 "QScriptValue(engine, 123.0) <=> QScriptValue(QString(\"123\"))", … … 749 755 "QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"0.0\")", 750 756 "QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"''\")", 757 "QScriptValue(engine, QString(\"\")) <=> engine->newArray()", 751 758 "QScriptValue(engine, QString()) <=> QScriptValue(false)", 752 759 "QScriptValue(engine, QString()) <=> QScriptValue(0)", … … 771 778 "QScriptValue(engine, QString()) <=> engine->evaluate(\"0.0\")", 772 779 "QScriptValue(engine, QString()) <=> engine->evaluate(\"''\")", 780 "QScriptValue(engine, QString()) <=> engine->newArray()", 773 781 "QScriptValue(engine, QString(\"0\")) <=> QScriptValue(false)", 774 782 "QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0)", … … 811 819 "engine->evaluate(\"[]\") <=> QScriptValue(engine, QString(\"\"))", 812 820 "engine->evaluate(\"[]\") <=> QScriptValue(engine, QString())", 813 "engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")",814 821 "engine->evaluate(\"[]\") <=> engine->evaluate(\"false\")", 815 822 "engine->evaluate(\"[]\") <=> engine->evaluate(\"0\")", … … 855 862 "engine->evaluate(\"Number\") <=> engine->evaluate(\"Number\")", 856 863 "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()\")",862 864 "engine->evaluate(\"new Array()\") <=> QScriptValue(false)", 863 865 "engine->evaluate(\"new Array()\") <=> QScriptValue(0)", … … 875 877 "engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString(\"\"))", 876 878 "engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString())", 877 "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")",878 879 "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"false\")", 879 880 "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0\")", 880 881 "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0.0\")", 881 882 "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\")", 888 884 "engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::UndefinedValue)", 889 885 "engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::NullValue)", … … 938 934 "engine->evaluate(\"false\") <=> engine->evaluate(\"''\")", 939 935 "engine->evaluate(\"false\") <=> engine->evaluate(\"'0'\")", 936 "engine->evaluate(\"false\") <=> engine->newArray()", 940 937 "engine->evaluate(\"122\") <=> QScriptValue(int(122))", 941 938 "engine->evaluate(\"122\") <=> QScriptValue(0, int(122))", … … 972 969 "engine->evaluate(\"0\") <=> engine->evaluate(\"''\")", 973 970 "engine->evaluate(\"0\") <=> engine->evaluate(\"'0'\")", 971 "engine->evaluate(\"0\") <=> engine->newArray()", 974 972 "engine->evaluate(\"0.0\") <=> QScriptValue(false)", 975 973 "engine->evaluate(\"0.0\") <=> QScriptValue(0)", … … 998 996 "engine->evaluate(\"0.0\") <=> engine->evaluate(\"''\")", 999 997 "engine->evaluate(\"0.0\") <=> engine->evaluate(\"'0'\")", 998 "engine->evaluate(\"0.0\") <=> engine->newArray()", 1000 999 "engine->evaluate(\"123.0\") <=> QScriptValue(123.0)", 1001 1000 "engine->evaluate(\"123.0\") <=> QScriptValue(QString(\"123\"))", … … 1069 1068 "engine->evaluate(\"''\") <=> engine->evaluate(\"0.0\")", 1070 1069 "engine->evaluate(\"''\") <=> engine->evaluate(\"''\")", 1070 "engine->evaluate(\"''\") <=> engine->newArray()", 1071 1071 "engine->evaluate(\"'0'\") <=> QScriptValue(false)", 1072 1072 "engine->evaluate(\"'0'\") <=> QScriptValue(0)", … … 1116 1116 "engine->undefinedValue() <=> engine->evaluate(\"null\")", 1117 1117 "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(\"''\")"}; 1119 1138 1120 void tst_QScriptValue::equals_ makeData(const char *expr)1139 void tst_QScriptValue::equals_data() 1121 1140 { 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); } 1132 1157 } 1133 1158 } 1134 1159 1135 void tst_QScriptValue::equals _test(const char *, const QScriptValue& value)1160 void tst_QScriptValue::equals() 1136 1161 { 1162 QFETCH(QScriptValue, value); 1137 1163 QFETCH(QScriptValue, other); 1138 1164 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); 1139 1181 QCOMPARE(value.equals(other), expected); 1140 1182 } 1141 1183 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[] = { 1184 static const QString strictlyEquals_array[] = { 1153 1185 "QScriptValue() <=> QScriptValue()", 1154 1186 "QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)", … … 1516 1548 "QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"'123'\")", 1517 1549 "QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString(\"1.23\"))", 1518 "engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")",1519 1550 "engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::UndefinedValue)", 1520 1551 "engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::UndefinedValue)", … … 1532 1563 "engine->evaluate(\"Number\") <=> engine->evaluate(\"Number\")", 1533 1564 "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\")", 1546 1566 "engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::UndefinedValue)", 1547 1567 "engine->evaluate(\"undefined\") <=> QScriptValue(0, QScriptValue::UndefinedValue)", … … 1655 1675 "engine->undefinedValue() <=> engine->undefinedValue()"}; 1656 1676 1657 void tst_QScriptValue::strictlyEquals_ makeData(const char* expr)1677 void tst_QScriptValue::strictlyEquals_data() 1658 1678 { 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); } 1669 1695 } 1670 1696 } 1671 1697 1672 void tst_QScriptValue::strictlyEquals _test(const char*, const QScriptValue& value)1698 void tst_QScriptValue::strictlyEquals() 1673 1699 { 1700 QFETCH(QScriptValue, value); 1674 1701 QFETCH(QScriptValue, other); 1675 1702 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); 1676 1733 QCOMPARE(value.strictlyEquals(other), expected); 1677 1734 } 1678 1735 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[] = { 1736 static const QString instanceOf_array[] = { 1690 1737 "engine->evaluate(\"[]\") <=> engine->evaluate(\"Object\")", 1691 1738 "engine->evaluate(\"[]\") <=> engine->evaluate(\"Array\")", … … 1706 1753 "engine->evaluate(\"(function() { return 'ciao'; })\") <=> engine->evaluate(\"Object\")", 1707 1754 "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\")", 1709 1757 "engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Object\")", 1710 1758 "engine->evaluate(\"new Object()\") <=> engine->evaluate(\"Object\")", … … 1712 1760 "engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Array\")", 1713 1761 "engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Object\")", 1714 "engine->evaluate(\"a = new Object( a.foo = 22; a.foo\") <=> engine->evaluate(\"Object\")",1715 1762 "engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Object\")", 1716 1763 "engine->evaluate(\"Null\") <=> engine->evaluate(\"Object\")", 1717 1764 "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\")"}; 1719 1771 1720 void tst_QScriptValue::instanceOf_ makeData(const char *expr)1772 void tst_QScriptValue::instanceOf_data() 1721 1773 { 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); } 1732 1790 } 1733 1791 } 1734 1792 1735 void tst_QScriptValue::instanceOf _test(const char *, const QScriptValue& value)1793 void tst_QScriptValue::instanceOf() 1736 1794 { 1795 QFETCH(QScriptValue, value); 1737 1796 QFETCH(QScriptValue, other); 1738 1797 QFETCH(bool, expected); 1739 1798 QCOMPARE(value.instanceOf(other), expected); 1740 1799 } 1741 1742 DEFINE_TEST_FUNCTION(instanceOf) -
trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_init.cpp
r59930 r64165 25 25 26 26 27 void tst_QScriptValue::initScriptValues()27 QPair<QString, QScriptValue> tst_QScriptValue::initScriptValues(uint idx) 28 28 { 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()); 165 169 } -
trunk/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_istype.cpp
r59930 r64165 26 26 27 27 28 void tst_QScriptValue::isValid_initData() 29 { 30 QTest::addColumn<bool>("expected"); 31 initScriptValues(); 32 } 33 34 static QString isValid_array[] = { 28 static const QString isValid_array[] = { 35 29 "QScriptValue(QScriptValue::UndefinedValue)", 36 30 "QScriptValue(QScriptValue::NullValue)", … … 130 124 "engine->evaluate(\"(function() { return 1; })\")", 131 125 "engine->evaluate(\"(function() { return 'ciao'; })\")", 132 "engine->evaluate(\"(function() { throw new Error('foo' })\")",126 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 133 127 "engine->evaluate(\"/foo/\")", 134 128 "engine->evaluate(\"new Object()\")", 135 129 "engine->evaluate(\"new Array()\")", 136 130 "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\")", 138 132 "engine->evaluate(\"Undefined\")", 139 133 "engine->evaluate(\"Null\")", … … 163 157 "engine->evaluate(\"'12.4'\")", 164 158 "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 164 void 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 181 void tst_QScriptValue::isValid() 182 { 183 QFETCH(QScriptValue, value); 180 184 QFETCH(bool, expected); 181 185 QCOMPARE(value.isValid(), expected); … … 183 187 } 184 188 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[] = { 189 static const QString isBool_array[] = { 195 190 "QScriptValue(true)", 196 191 "QScriptValue(false)", … … 202 197 "engine->evaluate(\"false\")"}; 203 198 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 { 199 void 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 216 void tst_QScriptValue::isBool() 217 { 218 QFETCH(QScriptValue, value); 217 219 QFETCH(bool, expected); 218 220 QCOMPARE(value.isBool(), expected); … … 220 222 } 221 223 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[] = { 224 static const QString isBoolean_array[] = { 232 225 "QScriptValue(true)", 233 226 "QScriptValue(false)", … … 239 232 "engine->evaluate(\"false\")"}; 240 233 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 { 234 void 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 251 void tst_QScriptValue::isBoolean() 252 { 253 QFETCH(QScriptValue, value); 254 254 QFETCH(bool, expected); 255 255 QCOMPARE(value.isBoolean(), expected); … … 257 257 } 258 258 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[] = { 259 static const QString isNumber_array[] = { 269 260 "QScriptValue(int(122))", 270 261 "QScriptValue(uint(124))", … … 309 300 "QScriptValue(engine, qInf())", 310 301 "QScriptValue(engine, -qInf())", 302 "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 311 303 "engine->evaluate(\"122\")", 312 304 "engine->evaluate(\"124\")", … … 323 315 "engine->evaluate(\"-Infinity\")"}; 324 316 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 { 317 void 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 334 void tst_QScriptValue::isNumber() 335 { 336 QFETCH(QScriptValue, value); 338 337 QFETCH(bool, expected); 339 338 QCOMPARE(value.isNumber(), expected); … … 341 340 } 342 341 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[] = { 342 static const QString isFunction_array[] = { 353 343 "engine->evaluate(\"Function.prototype\")", 354 344 "engine->evaluate(\"Object\")", … … 358 348 "engine->evaluate(\"(function() { return 1; })\")", 359 349 "engine->evaluate(\"(function() { return 'ciao'; })\")", 350 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 360 351 "engine->evaluate(\"/foo/\")"}; 361 352 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 { 353 void 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 370 void tst_QScriptValue::isFunction() 371 { 372 QFETCH(QScriptValue, value); 375 373 QFETCH(bool, expected); 376 374 QCOMPARE(value.isFunction(), expected); … … 378 376 } 379 377 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[] = { 378 static const QString isNull_array[] = { 390 379 "QScriptValue(QScriptValue::NullValue)", 391 380 "QScriptValue(0, QScriptValue::NullValue)", … … 394 383 "engine->nullValue()"}; 395 384 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 { 385 void 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 402 void tst_QScriptValue::isNull() 403 { 404 QFETCH(QScriptValue, value); 409 405 QFETCH(bool, expected); 410 406 QCOMPARE(value.isNull(), expected); … … 412 408 } 413 409 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[] = { 410 static const QString isString_array[] = { 424 411 "QScriptValue(\"NaN\")", 425 412 "QScriptValue(\"Infinity\")", … … 458 445 "engine->evaluate(\"'12.4'\")"}; 459 446 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 { 447 void 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 464 void tst_QScriptValue::isString() 465 { 466 QFETCH(QScriptValue, value); 473 467 QFETCH(bool, expected); 474 468 QCOMPARE(value.isString(), expected); … … 476 470 } 477 471 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[] = { 472 static const QString isUndefined_array[] = { 488 473 "QScriptValue(QScriptValue::UndefinedValue)", 489 474 "QScriptValue(0, QScriptValue::UndefinedValue)", … … 493 478 "engine->undefinedValue()"}; 494 479 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 { 480 void 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 497 void tst_QScriptValue::isUndefined() 498 { 499 QFETCH(QScriptValue, value); 508 500 QFETCH(bool, expected); 509 501 QCOMPARE(value.isUndefined(), expected); … … 511 503 } 512 504 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 508 static const QString isObject_array[] = { 526 509 "engine->evaluate(\"[]\")", 527 510 "engine->evaluate(\"Object.prototype\")", … … 536 519 "engine->evaluate(\"(function() { return 1; })\")", 537 520 "engine->evaluate(\"(function() { return 'ciao'; })\")", 538 "engine->evaluate(\"(function() { throw new Error('foo' })\")",521 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 539 522 "engine->evaluate(\"/foo/\")", 540 523 "engine->evaluate(\"new Object()\")", 541 524 "engine->evaluate(\"new Array()\")", 542 525 "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 534 void 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 551 void tst_QScriptValue::isObject() 552 { 553 QFETCH(QScriptValue, value); 554 QFETCH(bool, expected); 555 QCOMPARE(value.isObject(), expected); 556 QCOMPARE(value.isObject(), expected); 557 } 558 559 static 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 566 void 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 583 void tst_QScriptValue::isArray() 584 { 585 QFETCH(QScriptValue, value); 586 QFETCH(bool, expected); 587 QCOMPARE(value.isArray(), expected); 588 QCOMPARE(value.isArray(), expected); 589 } 590 591 static const QString isError_array[] = { 592 "engine->evaluate(\"Error.prototype\")", 593 "engine->evaluate(\"new Error()\")", 544 594 "engine->evaluate(\"Undefined\")", 545 595 "engine->evaluate(\"Null\")", … … 547 597 "engine->evaluate(\"False\")"}; 548 598 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) 599 void 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 616 void 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 24 24 #include "tst_qscriptvalue.h" 25 25 26 27 28 void tst_QScriptValue::toString_initData() 29 { 30 QTest::addColumn<QString>("expected"); 31 initScriptValues(); 32 } 33 34 static QString toString_tagArray[] = { 26 static const QString toString_tagArray[] = { 35 27 "QScriptValue()", 36 28 "QScriptValue(QScriptValue::UndefinedValue)", … … 131 123 "engine->evaluate(\"(function() { return 1; })\")", 132 124 "engine->evaluate(\"(function() { return 'ciao'; })\")", 133 "engine->evaluate(\"(function() { throw new Error('foo' })\")",125 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 134 126 "engine->evaluate(\"/foo/\")", 135 127 "engine->evaluate(\"new Object()\")", 136 128 "engine->evaluate(\"new Array()\")", 137 129 "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\")", 139 131 "engine->evaluate(\"Undefined\")", 140 132 "engine->evaluate(\"Null\")", … … 164 156 "engine->evaluate(\"'12.4'\")", 165 157 "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 163 static const QString toString_valueArray[] = { 169 164 "", "undefined", 170 165 "null", "true", … … 216 211 "function Number() {\n [native code]\n}", "function Function() {\n [native code]\n}", 217 212 "function () { return 1; }", "function () { return 'ciao'; }", 218 " SyntaxError: Parse error", "/foo/",213 "function () { throw new Error('foo'); }", "/foo/", 219 214 "[object Object]", "", 220 "Error: Unknown error", " SyntaxError: Parse error",215 "Error: Unknown error", "22", 221 216 "ReferenceError: Can't find variable: Undefined", "ReferenceError: Can't find variable: Null", 222 217 "ReferenceError: Can't find variable: True", "ReferenceError: Can't find variable: False", … … 232 227 "", "0", 233 228 "123", "12.4", 234 "null", "undefined"}; 235 236 void tst_QScriptValue::toString_makeData(const char* expr) 229 "null", "undefined", 230 "[object Object]", "", 231 ",,,,,,,,,"}; 232 233 void tst_QScriptValue::toString_data() 237 234 { 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]; 243 247 } 244 newRow(expr) << toString.value(expr);245 248 } 246 249 247 void tst_QScriptValue::toString _test(const char*, const QScriptValue& value)250 void tst_QScriptValue::toString() 248 251 { 252 QFETCH(QScriptValue, value); 249 253 QFETCH(QString, expected); 250 254 QCOMPARE(value.toString(), expected); … … 252 256 } 253 257 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[] = { 258 static const QString toNumber_tagArray[] = { 264 259 "QScriptValue()", 265 260 "QScriptValue(QScriptValue::UndefinedValue)", … … 360 355 "engine->evaluate(\"(function() { return 1; })\")", 361 356 "engine->evaluate(\"(function() { return 'ciao'; })\")", 362 "engine->evaluate(\"(function() { throw new Error('foo' })\")",357 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 363 358 "engine->evaluate(\"/foo/\")", 364 359 "engine->evaluate(\"new Object()\")", 365 360 "engine->evaluate(\"new Array()\")", 366 361 "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\")", 368 363 "engine->evaluate(\"Undefined\")", 369 364 "engine->evaluate(\"Null\")", … … 393 388 "engine->evaluate(\"'12.4'\")", 394 389 "engine->nullValue()", 395 "engine->undefinedValue()"}; 396 static qsreal toNumber_valueArray[] = { 390 "engine->undefinedValue()", 391 "engine->newObject()", 392 "engine->newArray()", 393 "engine->newArray(10)"}; 394 395 static const qsreal toNumber_valueArray[] = { 397 396 0, qQNaN(), 0, 1, 0, 122, 124, 0, 0, 123, 398 397 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), … … 405 404 0, 0, 0, 123, 1.23, 0, qQNaN(), qQNaN(), qQNaN(), 0, 406 405 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, 408 407 1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 409 408 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 411 void tst_QScriptValue::toNumber_data() 412 412 { 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]; 418 425 } 419 newRow(expr) << toNumber.value(expr);420 426 } 421 427 422 void tst_QScriptValue::toNumber _test(const char*, const QScriptValue& value)428 void tst_QScriptValue::toNumber() 423 429 { 430 QFETCH(QScriptValue, value); 424 431 QFETCH(qsreal, expected); 425 432 if (qIsNaN(expected)) { … … 436 443 } 437 444 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[] = { 445 static const QString toBool_tagArray[] = { 448 446 "QScriptValue()", 449 447 "QScriptValue(QScriptValue::UndefinedValue)", … … 544 542 "engine->evaluate(\"(function() { return 1; })\")", 545 543 "engine->evaluate(\"(function() { return 'ciao'; })\")", 546 "engine->evaluate(\"(function() { throw new Error('foo' })\")",544 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 547 545 "engine->evaluate(\"/foo/\")", 548 546 "engine->evaluate(\"new Object()\")", 549 547 "engine->evaluate(\"new Array()\")", 550 548 "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\")", 552 550 "engine->evaluate(\"Undefined\")", 553 551 "engine->evaluate(\"Null\")", … … 577 575 "engine->evaluate(\"'12.4'\")", 578 576 "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 582 static const bool toBool_valueArray[] = { 582 583 false, false, 583 584 false, true, … … 645 646 false, true, 646 647 true, true, 647 false, false}; 648 649 void tst_QScriptValue::toBool_makeData(const char* expr) 648 false, false, 649 true, true, 650 true}; 651 652 void tst_QScriptValue::toBool_data() 650 653 { 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]; 656 666 } 657 newRow(expr) << toBool.value(expr);658 667 } 659 668 660 void tst_QScriptValue::toBool _test(const char*, const QScriptValue& value)669 void tst_QScriptValue::toBool() 661 670 { 671 QFETCH(QScriptValue, value); 662 672 QFETCH(bool, expected); 663 673 QCOMPARE(value.toBool(), expected); … … 665 675 } 666 676 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[] = { 677 static const QString toBoolean_tagArray[] = { 677 678 "QScriptValue()", 678 679 "QScriptValue(QScriptValue::UndefinedValue)", … … 773 774 "engine->evaluate(\"(function() { return 1; })\")", 774 775 "engine->evaluate(\"(function() { return 'ciao'; })\")", 775 "engine->evaluate(\"(function() { throw new Error('foo' })\")",776 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 776 777 "engine->evaluate(\"/foo/\")", 777 778 "engine->evaluate(\"new Object()\")", 778 779 "engine->evaluate(\"new Array()\")", 779 780 "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\")", 781 782 "engine->evaluate(\"Undefined\")", 782 783 "engine->evaluate(\"Null\")", … … 806 807 "engine->evaluate(\"'12.4'\")", 807 808 "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 814 static const bool toBoolean_valueArray[] = { 811 815 false, false, 812 816 false, true, … … 874 878 false, true, 875 879 true, true, 876 false, false}; 877 878 void tst_QScriptValue::toBoolean_makeData(const char* expr) 880 false, false, 881 true, true, 882 true}; 883 884 void tst_QScriptValue::toBoolean_data() 879 885 { 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]; 885 898 } 886 newRow(expr) << toBoolean.value(expr);887 899 } 888 900 889 void tst_QScriptValue::toBoolean _test(const char*, const QScriptValue& value)901 void tst_QScriptValue::toBoolean() 890 902 { 903 QFETCH(QScriptValue, value); 891 904 QFETCH(bool, expected); 892 905 QCOMPARE(value.toBoolean(), expected); … … 894 907 } 895 908 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[] = { 909 static const QString toInteger_tagArray[] = { 906 910 "QScriptValue()", 907 911 "QScriptValue(QScriptValue::UndefinedValue)", … … 1002 1006 "engine->evaluate(\"(function() { return 1; })\")", 1003 1007 "engine->evaluate(\"(function() { return 'ciao'; })\")", 1004 "engine->evaluate(\"(function() { throw new Error('foo' })\")",1008 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 1005 1009 "engine->evaluate(\"/foo/\")", 1006 1010 "engine->evaluate(\"new Object()\")", 1007 1011 "engine->evaluate(\"new Array()\")", 1008 1012 "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\")", 1010 1014 "engine->evaluate(\"Undefined\")", 1011 1015 "engine->evaluate(\"Null\")", … … 1035 1039 "engine->evaluate(\"'12.4'\")", 1036 1040 "engine->nullValue()", 1037 "engine->undefinedValue()"}; 1038 static qsreal toInteger_valueArray[] = { 1041 "engine->undefinedValue()", 1042 "engine->newObject()", 1043 "engine->newArray()", 1044 "engine->newArray(10)"}; 1045 1046 static const qsreal toInteger_valueArray[] = { 1039 1047 0, 0, 0, 1, 0, 122, 124, 0, 0, 123, 1040 1048 0, 0, 1126240820, 65536, 65537, 0, 0, qInf(), qInf(), 0, … … 1047 1055 0, 0, 0, 123, 1, 0, 0, 0, 0, 0, 1048 1056 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, 1050 1058 1, 0, 122, 124, 0, 0, 123, 0, 0, 1126240820, 1051 1059 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 1062 void tst_QScriptValue::toInteger_data() 1054 1063 { 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]; 1060 1076 } 1061 newRow(expr) << toInteger.value(expr);1062 1077 } 1063 1078 1064 void tst_QScriptValue::toInteger _test(const char*, const QScriptValue& value)1079 void tst_QScriptValue::toInteger() 1065 1080 { 1081 QFETCH(QScriptValue, value); 1066 1082 QFETCH(qsreal, expected); 1067 1083 if (qIsInf(expected)) { … … 1074 1090 } 1075 1091 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[] = { 1092 static const QString toInt32_tagArray[] = { 1086 1093 "QScriptValue()", 1087 1094 "QScriptValue(QScriptValue::UndefinedValue)", … … 1182 1189 "engine->evaluate(\"(function() { return 1; })\")", 1183 1190 "engine->evaluate(\"(function() { return 'ciao'; })\")", 1184 "engine->evaluate(\"(function() { throw new Error('foo' })\")",1191 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 1185 1192 "engine->evaluate(\"/foo/\")", 1186 1193 "engine->evaluate(\"new Object()\")", 1187 1194 "engine->evaluate(\"new Array()\")", 1188 1195 "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\")", 1190 1197 "engine->evaluate(\"Undefined\")", 1191 1198 "engine->evaluate(\"Null\")", … … 1215 1222 "engine->evaluate(\"'12.4'\")", 1216 1223 "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 1229 static const qint32 toInt32_valueArray[] = { 1220 1230 0, 0, 1221 1231 0, 1, … … 1269 1279 0, 0, 1270 1280 0, 0, 1271 0, 0,1281 0, 22, 1272 1282 0, 0, 1273 1283 0, 0, … … 1283 1293 0, 0, 1284 1294 123, 12, 1285 0, 0}; 1286 1287 void tst_QScriptValue::toInt32_makeData(const char* expr) 1295 0, 0, 1296 0, 0, 1297 0}; 1298 1299 void tst_QScriptValue::toInt32_data() 1288 1300 { 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]; 1294 1313 } 1295 newRow(expr) << toInt32.value(expr);1296 1314 } 1297 1315 1298 void tst_QScriptValue::toInt32 _test(const char*, const QScriptValue& value)1316 void tst_QScriptValue::toInt32() 1299 1317 { 1318 QFETCH(QScriptValue, value); 1300 1319 QFETCH(qint32, expected); 1301 1320 QCOMPARE(value.toInt32(), expected); … … 1303 1322 } 1304 1323 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[] = { 1324 static const QString toUInt32_tagArray[] = { 1315 1325 "QScriptValue()", 1316 1326 "QScriptValue(QScriptValue::UndefinedValue)", … … 1411 1421 "engine->evaluate(\"(function() { return 1; })\")", 1412 1422 "engine->evaluate(\"(function() { return 'ciao'; })\")", 1413 "engine->evaluate(\"(function() { throw new Error('foo' })\")",1423 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 1414 1424 "engine->evaluate(\"/foo/\")", 1415 1425 "engine->evaluate(\"new Object()\")", 1416 1426 "engine->evaluate(\"new Array()\")", 1417 1427 "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\")", 1419 1429 "engine->evaluate(\"Undefined\")", 1420 1430 "engine->evaluate(\"Null\")", … … 1444 1454 "engine->evaluate(\"'12.4'\")", 1445 1455 "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 1461 static const quint32 toUInt32_valueArray[] = { 1449 1462 0, 0, 1450 1463 0, 1, … … 1498 1511 0, 0, 1499 1512 0, 0, 1500 0, 0,1513 0, 22, 1501 1514 0, 0, 1502 1515 0, 0, … … 1512 1525 0, 0, 1513 1526 123, 12, 1514 0, 0}; 1515 1516 void tst_QScriptValue::toUInt32_makeData(const char* expr) 1527 0, 0, 1528 0, 0, 1529 0}; 1530 1531 void tst_QScriptValue::toUInt32_data() 1517 1532 { 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]; 1523 1545 } 1524 newRow(expr) << toUInt32.value(expr);1525 1546 } 1526 1547 1527 void tst_QScriptValue::toUInt32 _test(const char*, const QScriptValue& value)1548 void tst_QScriptValue::toUInt32() 1528 1549 { 1550 QFETCH(QScriptValue, value); 1529 1551 QFETCH(quint32, expected); 1530 1552 QCOMPARE(value.toUInt32(), expected); … … 1532 1554 } 1533 1555 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[] = { 1556 static const QString toUInt16_tagArray[] = { 1544 1557 "QScriptValue()", 1545 1558 "QScriptValue(QScriptValue::UndefinedValue)", … … 1640 1653 "engine->evaluate(\"(function() { return 1; })\")", 1641 1654 "engine->evaluate(\"(function() { return 'ciao'; })\")", 1642 "engine->evaluate(\"(function() { throw new Error('foo' })\")",1655 "engine->evaluate(\"(function() { throw new Error('foo'); })\")", 1643 1656 "engine->evaluate(\"/foo/\")", 1644 1657 "engine->evaluate(\"new Object()\")", 1645 1658 "engine->evaluate(\"new Array()\")", 1646 1659 "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\")", 1648 1661 "engine->evaluate(\"Undefined\")", 1649 1662 "engine->evaluate(\"Null\")", … … 1673 1686 "engine->evaluate(\"'12.4'\")", 1674 1687 "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 1693 static const quint16 toUInt16_valueArray[] = { 1678 1694 0, 0, 1679 1695 0, 1, … … 1727 1743 0, 0, 1728 1744 0, 0, 1729 0, 0,1745 0, 22, 1730 1746 0, 0, 1731 1747 0, 0, … … 1741 1757 0, 0, 1742 1758 123, 12, 1743 0, 0}; 1744 1745 void tst_QScriptValue::toUInt16_makeData(const char* expr) 1759 0, 0, 1760 0, 0, 1761 0}; 1762 1763 void tst_QScriptValue::toUInt16_data() 1746 1764 { 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]; 1752 1777 } 1753 newRow(expr) << toUInt16.value(expr);1754 1778 } 1755 1779 1756 void tst_QScriptValue::toUInt16 _test(const char*, const QScriptValue& value)1780 void tst_QScriptValue::toUInt16() 1757 1781 { 1782 QFETCH(QScriptValue, value); 1758 1783 QFETCH(quint16, expected); 1759 1784 QCOMPARE(value.toUInt16(), expected); 1760 1785 QCOMPARE(value.toUInt16(), expected); 1761 1786 } 1762 1763 DEFINE_TEST_FUNCTION(toUInt16)
Note:
See TracChangeset
for help on using the changeset viewer.