void tst_QJSEngine::newQObject()
{
QJSEngine eng;
+ QObject temp;
{
QJSValue qobject = eng.newQObject(0);
QCOMPARE(qobject.toQObject(), (QObject *)0);
}
{
- QJSValue qobject = eng.newQObject(this);
+ QJSValue qobject = eng.newQObject(&temp);
QVERIFY(!qobject.isUndefined());
QCOMPARE(qobject.isQObject(), true);
QCOMPARE(qobject.isObject(), true);
- QCOMPARE(qobject.toQObject(), (QObject *)this);
+ QCOMPARE(qobject.toQObject(), (QObject *)&temp);
QVERIFY(!qobject.isCallable());
// prototype should be QObject.prototype
QCOMPARE(qobject.prototype().isObject(), true);
#if 0 // FIXME: No prototype API in QScriptEngine
void tst_QJSEngine::newQObject_defaultPrototype()
{
+ QObject temp;
QScriptEngine eng;
// newQObject() should set the default prototype, if one has been registered
{
QScriptValue qobjectProto = eng.newObject();
eng.setDefaultPrototype(qMetaTypeId<QObject*>(), qobjectProto);
{
- QScriptValue ret = eng.newQObject(this);
+ QScriptValue ret = eng.newQObject(&temp);
QVERIFY(ret.prototype().equals(qobjectProto));
}
QScriptValue tstProto = eng.newObject();
int typeId = qRegisterMetaType<tst_QJSEngine*>("tst_QJSEngine*");
eng.setDefaultPrototype(typeId, tstProto);
{
- QScriptValue ret = eng.newQObject(this);
+ QScriptValue ret = eng.newQObject(temp);
QVERIFY(ret.prototype().equals(tstProto));
}
QVERIFY(instanceofJS(inst, qclass3).strictlyEquals(false));
}
{
- QScriptValue inst = qclass4.callAsConstructor(QScriptValueList() << eng.newQObject(this));
+ QObject temp;
+ QScriptValue inst = qclass4.callAsConstructor(QScriptValueList() << eng.newQObject(&temp));
QVERIFY(inst.isQObject());
QVERIFY(inst.toQObject() != 0);
QCOMPARE(inst.toQObject()->parent(), (QObject*)this);
QScriptEngine eng;
Bar bar;
Baz baz;
+ QObject temp;
QScriptValue barProto = eng.toScriptValue(&bar);
QScriptValue bazProto = eng.toScriptValue(&baz);
eng.setDefaultPrototype(qMetaTypeId<Bar*>(), barProto);
QVERIFY(pbar == 0);
}
- bazProto.setPrototype(eng.newQObject(this));
+ bazProto.setPrototype(eng.newQObject(&temp));
{
Baz *pbaz = qscriptvalue_cast<Baz*>(baz2Value);
QVERIFY(pbaz != 0);
QScriptEngine* m_engine;
protected:
void run() {
+ QObject temp;
m_engine = new QScriptEngine();
- m_engine->setGlobalObject(m_engine->newQObject(this));
+ m_engine->setGlobalObject(m_engine->newQObject(&temp));
m_engine->evaluate("while (1) { sleep(); }");
delete m_engine;
}
void tst_QJSEngine::reentrancy_objectCreation()
{
+ QObject temp;
QJSEngine eng1;
QJSEngine eng2;
{
QCOMPARE(qjsvalue_cast<QRegExp>(r2), qjsvalue_cast<QRegExp>(r1));
}
{
- QJSValue o1 = eng1.newQObject(this);
- QJSValue o2 = eng2.newQObject(this);
+ QJSValue o1 = eng1.newQObject(&temp);
+ QJSValue o2 = eng2.newQObject(&temp);
QCOMPARE(o1.toQObject(), o2.toQObject());
QCOMPARE(o2.toQObject(), o1.toQObject());
}
void tst_QJSValue::toVariant()
{
QJSEngine eng;
+ QObject temp;
QJSValue undefined = eng.toScriptValue(QVariant());
QCOMPARE(undefined.toVariant(), QVariant());
QJSValue object = eng.newObject();
QCOMPARE(object.toVariant(), QVariant(QVariantMap()));
- QJSValue qobject = eng.newQObject(this);
+ QJSValue qobject = eng.newQObject(&temp);
{
QVariant var = qobject.toVariant();
QCOMPARE(var.userType(), int(QMetaType::QObjectStar));
- QCOMPARE(qVariantValue<QObject*>(var), (QObject *)this);
+ QCOMPARE(qVariantValue<QObject*>(var), (QObject *)&temp);
}
{
void tst_QJSValue::toQObject()
{
QJSEngine eng;
+ QObject temp;
- QJSValue qobject = eng.newQObject(this);
- QCOMPARE(qobject.toQObject(), (QObject *)this);
- QCOMPARE(qjsvalue_cast<QObject*>(qobject), (QObject *)this);
+ QJSValue qobject = eng.newQObject(&temp);
+ QCOMPARE(qobject.toQObject(), (QObject *)&temp);
+ QCOMPARE(qjsvalue_cast<QObject*>(qobject), (QObject *)&temp);
QCOMPARE(qjsvalue_cast<QWidget*>(qobject), (QWidget *)0);
QWidget widget;
{
#if 0 // FIXME: no setData/data API
newEngine();
+ QObject *temp = new QObject;
QTest::addColumn<QJSValue>("object");
QTest::newRow("object from engine") << engine->newObject();
QTest::newRow("Array") << engine->newArray();
QTest::newRow("Date") << engine->evaluate("new Date(12324)");
- QTest::newRow("QObject") << engine->newQObject(this);
+ QTest::newRow("QObject") << engine->newQObject(temp);
QTest::newRow("RegExp") << engine->newRegExp(QRegExp());
#endif
}
void tst_QJSValue::getSetScriptClass_emptyClass_data()
{
newEngine();
+ QObject *temp = new QObject;
QTest::addColumn<QJSValue>("value");
QTest::newRow("invalid") << QJSValue();
QTest::newRow("undefined") << QJSValue(engine->toScriptValue(QVariant()));
QTest::newRow("object") << QJSValue(engine->newObject());
QTest::newRow("date") << QJSValue(engine->evaluate("new Date()"));
- QTest::newRow("qobject") << QJSValue(engine->newQObject(this));
+ QTest::newRow("qobject") << QJSValue(engine->newQObject(temp));
}
void tst_QJSValue::getSetScriptClass_emptyClass()
void tst_QJSValue::getSetScriptClass_QObject()
{
QScriptEngine eng;
+ QObject temp;
TestScriptClass testClass(&eng);
{
- QJSValue obj = eng.newQObject(this);
+ QJSValue obj = eng.newQObject(&temp);
QVERIFY(obj.isQObject());
obj.setScriptClass(&testClass);
QCOMPARE(obj.scriptClass(), (QScriptClass*)&testClass);
void tst_QJSValue::equals()
{
QJSEngine eng;
+ QObject temp;
QVERIFY(QJSValue().equals(QJSValue()));
QCOMPARE(obj1.equals(obj1), true);
QCOMPARE(obj2.equals(obj2), true);
- QJSValue qobj1 = eng.newQObject(this);
- QJSValue qobj2 = eng.newQObject(this);
+ QJSValue qobj1 = eng.newQObject(&temp);
+ QJSValue qobj2 = eng.newQObject(&temp);
QJSValue qobj3 = eng.newQObject(0);
// FIXME: No ScriptOwnership: QJSValue qobj4 = eng.newQObject(new QObject(), QScriptEngine::ScriptOwnership);
void tst_QJSValue::strictlyEquals()
{
QJSEngine eng;
+ QObject temp;
QVERIFY(QJSValue().strictlyEquals(QJSValue()));
QCOMPARE(obj2.strictlyEquals(obj2), true);
QVERIFY(!obj1.strictlyEquals(QJSValue()));
- QJSValue qobj1 = eng.newQObject(this);
- QJSValue qobj2 = eng.newQObject(this);
+ QJSValue qobj1 = eng.newQObject(&temp);
+ QJSValue qobj2 = eng.newQObject(&temp);
QVERIFY(qobj1.strictlyEquals(qobj2));
{
void tst_QJSValue::engineDeleted()
{
QJSEngine *eng = new QJSEngine;
+ QObject temp;
QJSValue v1 = eng->toScriptValue(123);
QVERIFY(v1.isNumber());
QJSValue v2 = eng->toScriptValue(QString("ciao"));
QVERIFY(v2.isString());
QJSValue v3 = eng->newObject();
QVERIFY(v3.isObject());
- QJSValue v4 = eng->newQObject(this);
+ QJSValue v4 = eng->newQObject(&temp);
QVERIFY(v4.isQObject());
QJSValue v5 = "Hello";
QVERIFY(v2.isString());