Update obsolete contact address.
[profile/ivi/qtdeclarative.git] / tests / auto / declarative / qjsengine / tst_qjsengine.cpp
index 7aa5bbc..f3bf315 100644 (file)
@@ -2,7 +2,7 @@
 **
 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Contact: http://www.qt-project.org/
 **
 ** This file is part of the test suite of the Qt Toolkit.
 **
@@ -453,7 +453,7 @@ void tst_QJSEngine::newFunction()
         QCOMPARE(fun.prototype().strictlyEquals(eng.evaluate("Function.prototype")), true);
 
         QCOMPARE(fun.call().isNull(), true);
-        QCOMPARE(fun.construct().isObject(), true);
+        QCOMPARE(fun.callAsConstructor().isObject(), true);
     }
 }
 
@@ -478,7 +478,7 @@ void tst_QJSEngine::newFunctionWithArg()
         QCOMPARE(fun.prototype().strictlyEquals(eng.evaluate("Function.prototype")), true);
 
         QCOMPARE(fun.call().isNull(), true);
-        QCOMPARE(fun.construct().isObject(), true);
+        QCOMPARE(fun.callAsConstructor().isObject(), true);
     }
 }
 
@@ -502,7 +502,7 @@ void tst_QJSEngine::newFunctionWithProto()
         QCOMPARE(proto.propertyFlags("constructor"), QScriptValue::SkipInEnumeration);
 
         QCOMPARE(fun.call().isNull(), true);
-        QCOMPARE(fun.construct().isObject(), true);
+        QCOMPARE(fun.callAsConstructor().isObject(), true);
     }
     // whether the return value is correct
     {
@@ -663,7 +663,7 @@ void tst_QJSEngine::newVariant()
         QCOMPARE(opaque.prototype().isValid(), true);
         QEXPECT_FAIL("", "FIXME: newly created QObject's prototype is an JS Object", Continue);
         QCOMPARE(opaque.prototype().isVariant(), true);
-        QVERIFY(opaque.property("valueOf").call(opaque).isUndefined());
+        QVERIFY(opaque.property("valueOf").callWithInstance(opaque).isUndefined());
     }
 }
 
@@ -734,7 +734,7 @@ void tst_QJSEngine::newVariant_valueOfToString()
     QJSEngine eng;
     {
         QJSValue object = eng.newVariant(QVariant(123));
-        QJSValue value = object.property("valueOf").call(object);
+        QJSValue value = object.property("valueOf").callWithInstance(object);
         QVERIFY(value.isNumber());
         QCOMPARE(value.toInt(), 123);
         QCOMPARE(object.toString(), QString::fromLatin1("123"));
@@ -742,7 +742,7 @@ void tst_QJSEngine::newVariant_valueOfToString()
     }
     {
         QJSValue object = eng.newVariant(QVariant(QString::fromLatin1("hello")));
-        QJSValue value = object.property("valueOf").call(object);
+        QJSValue value = object.property("valueOf").callWithInstance(object);
         QVERIFY(value.isString());
         QCOMPARE(value.toString(), QString::fromLatin1("hello"));
         QCOMPARE(object.toString(), QString::fromLatin1("hello"));
@@ -750,7 +750,7 @@ void tst_QJSEngine::newVariant_valueOfToString()
     }
     {
         QJSValue object = eng.newVariant(QVariant(false));
-        QJSValue value = object.property("valueOf").call(object);
+        QJSValue value = object.property("valueOf").callWithInstance(object);
         QVERIFY(value.isBool());
         QCOMPARE(value.toBool(), false);
         QCOMPARE(object.toString(), QString::fromLatin1("false"));
@@ -758,7 +758,7 @@ void tst_QJSEngine::newVariant_valueOfToString()
     }
     {
         QJSValue object = eng.newVariant(QVariant(QPoint(10, 20)));
-        QJSValue value = object.property("valueOf").call(object);
+        QJSValue value = object.property("valueOf").callWithInstance(object);
         QVERIFY(value.isObject());
         QVERIFY(value.strictlyEquals(object));
         QCOMPARE(object.toString(), QString::fromLatin1("QVariant(QPoint)"));
@@ -830,18 +830,18 @@ void tst_QJSEngine::jsRegExp()
     QCOMPARE(r.toString(), QString::fromLatin1("/foo/gim"));
 
     QJSValue rxCtor = eng.globalObject().property("RegExp");
-    QJSValue r2 = rxCtor.call(QJSValue(), QJSValueList() << r);
+    QJSValue r2 = rxCtor.call(QJSValueList() << r);
     QVERIFY(r2.isRegExp());
     QVERIFY(r2.strictlyEquals(r));
 
-    QJSValue r3 = rxCtor.call(QJSValue(), QJSValueList() << r << "gim");
+    QJSValue r3 = rxCtor.call(QJSValueList() << r << "gim");
     QVERIFY(r3.isError());
     QVERIFY(r3.toString().contains(QString::fromLatin1("TypeError"))); // Cannot supply flags when constructing one RegExp from another
 
-    QJSValue r4 = rxCtor.call(QJSValue(), QJSValueList() << "foo" << "gim");
+    QJSValue r4 = rxCtor.call(QJSValueList() << "foo" << "gim");
     QVERIFY(r4.isRegExp());
 
-    QJSValue r5 = rxCtor.construct(QJSValueList() << r);
+    QJSValue r5 = rxCtor.callAsConstructor(QJSValueList() << r);
     QVERIFY(r5.isRegExp());
     QCOMPARE(r5.toString(), QString::fromLatin1("/foo/gim"));
     // In JSC, constructing a RegExp from another produces the same identical object.
@@ -849,7 +849,7 @@ void tst_QJSEngine::jsRegExp()
     QVERIFY(!r5.strictlyEquals(r));
 
     QEXPECT_FAIL("", "V8 and jsc ignores invalid flags", Continue); //https://bugs.webkit.org/show_bug.cgi?id=41614
-    QJSValue r6 = rxCtor.construct(QJSValueList() << "foo" << "bar");
+    QJSValue r6 = rxCtor.callAsConstructor(QJSValueList() << "foo" << "bar");
     QVERIFY(r6.isError());
     // QVERIFY(r6.toString().contains(QString::fromLatin1("SyntaxError"))); // Invalid regular expression flag
 
@@ -865,15 +865,15 @@ void tst_QJSEngine::jsRegExp()
     QVERIFY(r8.isRegExp());
     QCOMPARE(r8.toString(), QString::fromLatin1("/foo/gim"));
 
-    QJSValue r9 = rxCtor.construct();
+    QJSValue r9 = rxCtor.callAsConstructor();
     QVERIFY(r9.isRegExp());
     QCOMPARE(r9.toString(), QString::fromLatin1("/(?:)/"));
 
-    QJSValue r10 = rxCtor.construct(QJSValueList() << "" << "gim");
+    QJSValue r10 = rxCtor.callAsConstructor(QJSValueList() << "" << "gim");
     QVERIFY(r10.isRegExp());
     QCOMPARE(r10.toString(), QString::fromLatin1("/(?:)/gim"));
 
-    QJSValue r11 = rxCtor.construct(QJSValueList() << "{1.*}" << "g");
+    QJSValue r11 = rxCtor.callAsConstructor(QJSValueList() << "{1.*}" << "g");
     QVERIFY(r11.isRegExp());
     QCOMPARE(r11.toString(), QString::fromLatin1("/{1.*}/g"));
 }
@@ -1179,7 +1179,7 @@ static QScriptValue myConstructor(QScriptContext *ctx, QScriptEngine *eng)
 static QScriptValue instanceofJS(const QScriptValue &inst, const QScriptValue &ctor)
 {
     return inst.engine()->evaluate("(function(inst, ctor) { return inst instanceof ctor; })")
-        .call(QScriptValue(), QScriptValueList() << inst << ctor);
+        .call(QScriptValueList() << inst << ctor);
 }
 
 void tst_QJSEngine::newQMetaObject()
@@ -1208,14 +1208,14 @@ void tst_QJSEngine::newQMetaObject()
     QCOMPARE(qclass.prototype().isObject(), true);
     QCOMPARE(qclass2.prototype().isObject(), true);
 
-    QScriptValue instance = qclass.construct();
+    QScriptValue instance = qclass.callAsConstructor();
     QCOMPARE(instance.isQObject(), true);
     QCOMPARE(instance.toQObject()->metaObject(), qclass.toQMetaObject());
     QEXPECT_FAIL("", "FIXME:  newQMetaObject not implemented properly yet", Abort);
     QVERIFY(instance.instanceOf(qclass));
     QVERIFY(instanceofJS(instance, qclass).strictlyEquals(true));
 
-    QScriptValue instance2 = qclass2.construct();
+    QScriptValue instance2 = qclass2.callAsConstructor();
     QCOMPARE(instance2.isQObject(), true);
     QCOMPARE(instance2.toQObject()->metaObject(), qclass2.toQMetaObject());
     QVERIFY(instance2.instanceOf(qclass2));
@@ -1225,7 +1225,7 @@ void tst_QJSEngine::newQMetaObject()
 
     QScriptValueList args;
     args << instance;
-    QScriptValue instance3 = qclass.construct(args);
+    QScriptValue instance3 = qclass.callAsConstructor(args);
     QCOMPARE(instance3.isQObject(), true);
     QCOMPARE(instance3.toQObject()->parent(), instance.toQObject());
     QVERIFY(instance3.instanceOf(qclass));
@@ -1272,7 +1272,7 @@ void tst_QJSEngine::newQMetaObject()
         QVERIFY(instanceofJS(ret, qclass).strictlyEquals(false));
     }
     {
-        QScriptValue ret = qclass3.construct();
+        QScriptValue ret = qclass3.callAsConstructor();
         QVERIFY(ret.isObject());
         QVERIFY(ret.property("isCalledAsConstructor").isBool());
         QVERIFY(ret.property("isCalledAsConstructor").toBool());
@@ -1283,14 +1283,14 @@ void tst_QJSEngine::newQMetaObject()
     }
 
     // subclassing
-    qclass2.setProperty("prototype", qclass.construct());
-    QVERIFY(qclass2.construct().instanceOf(qclass));
-    QVERIFY(instanceofJS(qclass2.construct(), qclass).strictlyEquals(true));
+    qclass2.setProperty("prototype", qclass.callAsConstructor());
+    QVERIFY(qclass2.callAsConstructor().instanceOf(qclass));
+    QVERIFY(instanceofJS(qclass2.callAsConstructor(), qclass).strictlyEquals(true));
 
     // with meta-constructor
     QScriptValue qclass4 = eng.newQMetaObject(&QObject::staticMetaObject);
     {
-        QScriptValue inst = qclass4.construct();
+        QScriptValue inst = qclass4.callAsConstructor();
         QVERIFY(inst.isQObject());
         QVERIFY(inst.toQObject() != 0);
         QCOMPARE(inst.toQObject()->parent(), (QObject*)0);
@@ -1300,7 +1300,7 @@ void tst_QJSEngine::newQMetaObject()
         QVERIFY(instanceofJS(inst, qclass3).strictlyEquals(false));
     }
     {
-        QScriptValue inst = qclass4.construct(QScriptValueList() << eng.newQObject(this));
+        QScriptValue inst = qclass4.callAsConstructor(QScriptValueList() << eng.newQObject(this));
         QVERIFY(inst.isQObject());
         QVERIFY(inst.toQObject() != 0);
         QCOMPARE(inst.toQObject()->parent(), (QObject*)this);
@@ -2215,7 +2215,7 @@ void tst_QJSEngine::nestedEvaluate()
     }
     // From QScriptValue::call()
     {
-        QScriptValue result = fun.call(eng.evaluate("p = { id:'foo' }") , QScriptValueList() );
+        QScriptValue result = fun.callWithInstance(eng.evaluate("p = { id:'foo' }") , QScriptValueList() );
         QCOMPARE(result.property("local_bar").toString(), QString("local"));
         QCOMPARE(result.property("thisObjectIdBefore").toString(), QString("foo"));
         QCOMPARE(result.property("thisObjectIdAfter").toString(), QString("foo"));
@@ -2896,7 +2896,7 @@ static QScriptValue recurse(QScriptContext *ctx, QScriptEngine *eng)
 static QScriptValue recurse2(QScriptContext *ctx, QScriptEngine *eng)
 {
     Q_UNUSED(eng);
-    return ctx->callee().construct();
+    return ctx->callee().callAsConstructor();
 }
 
 void tst_QJSEngine::infiniteRecursion()
@@ -2920,7 +2920,7 @@ void tst_QJSEngine::infiniteRecursion()
     }
     {
         QScriptValue fun = eng.newFunction(recurse2);
-        QScriptValue ret = fun.construct();
+        QScriptValue ret = fun.callAsConstructor();
         QCOMPARE(ret.isError(), true);
         QCOMPARE(ret.toString(), stackOverflowError);
     }
@@ -2986,7 +2986,7 @@ void tst_QJSEngine::castWithPrototypeChain()
         }
 
         {
-            QScriptValue ret = toBaz.call(scriptZoo, QScriptValueList() << baz2Value);
+            QScriptValue ret = toBaz.callWithInstance(scriptZoo, QScriptValueList() << baz2Value);
             QVERIFY(ret.isError());
             QCOMPARE(ret.toString(), QLatin1String("TypeError: incompatible type of argument(s) in call to toBaz(); candidates were\n    toBaz(Bar*)"));
         }
@@ -3008,7 +3008,7 @@ void tst_QJSEngine::castWithPrototypeChain()
         }
 
         {
-            QScriptValue ret = toBaz.call(scriptZoo, QScriptValueList() << baz2Value);
+            QScriptValue ret = toBaz.callWithInstance(scriptZoo, QScriptValueList() << baz2Value);
             QEXPECT_FAIL("", "Cannot convert Baz* to Bar*", Continue);
             QVERIFY(!ret.isError());
             QEXPECT_FAIL("", "Cannot convert Baz* to Bar*", Continue);
@@ -3236,7 +3236,7 @@ void tst_QJSEngine::processEventsWhileRunning_function()
         QCOMPARE(eng.processEventsInterval(), 100);
 
         if (x) script.call();
-        else script.construct();
+        else script.callAsConstructor();
 
         QVERIFY(!eng.hasUncaughtException());
         QVERIFY(receiver.received);
@@ -4343,7 +4343,7 @@ void tst_QJSEngine::jsFunctionDeclarationAsStatement()
     {
         QJSValue ret = eng.evaluate("foo('bar')");
         QVERIFY(ret.isCallable());
-        QJSValue ret2 = ret.call(QJSValue());
+        QJSValue ret2 = ret.call();
         QCOMPARE(ret2.toString(), QString::fromLatin1("bar"));
         QVERIFY(!eng.globalObject().property("bar").isValid());
         QVERIFY(!eng.globalObject().property("baz").isValid());
@@ -4351,7 +4351,7 @@ void tst_QJSEngine::jsFunctionDeclarationAsStatement()
     {
         QJSValue ret = eng.evaluate("foo('baz')");
         QVERIFY(ret.isCallable());
-        QJSValue ret2 = ret.call(QJSValue());
+        QJSValue ret2 = ret.call();
         QCOMPARE(ret2.toString(), QString::fromLatin1("baz"));
         QVERIFY(!eng.globalObject().property("bar").isValid());
         QVERIFY(!eng.globalObject().property("baz").isValid());
@@ -5418,7 +5418,7 @@ void tst_QJSEngine::translateScript_crossScript()
 
 static QScriptValue callQsTr(QScriptContext *ctx, QScriptEngine *eng)
 {
-    return eng->globalObject().property("qsTr").call(ctx->thisObject(), ctx->argumentsObject());
+    return eng->globalObject().property("qsTr").callWithInstance(ctx->thisObject(), ctx->argumentsObject());
 }
 
 void tst_QJSEngine::translateScript_callQsTrFromNative()
@@ -5459,7 +5459,7 @@ void tst_QJSEngine::translateScript_callQsTrFromCpp()
 
     // There is no context, but it shouldn't crash
     QCOMPARE(engine.globalObject().property("qsTr").call(
-             QScriptValue(), QScriptValueList() << "One").toString(), QString::fromLatin1("One"));
+             QScriptValueList() << "One").toString(), QString::fromLatin1("One"));
 }
 
 void tst_QJSEngine::translateWithInvalidArgs_data()
@@ -5769,7 +5769,7 @@ void tst_QJSEngine::nativeFunctionScopes()
     QScriptEngine eng;
     {
         QScriptValue fun = eng.newFunction(counter);
-        QScriptValue cnt = fun.call(QScriptValue(), QScriptValueList() << 123);
+        QScriptValue cnt = fun.call(QScriptValueList() << 123);
         QVERIFY(cnt.isCallable());
         {
             QScriptValue ret = cnt.call();
@@ -5780,7 +5780,7 @@ void tst_QJSEngine::nativeFunctionScopes()
     }
     {
         QScriptValue fun = eng.newFunction(counter_hybrid);
-        QScriptValue cnt = fun.call(QScriptValue(), QScriptValueList() << 123);
+        QScriptValue cnt = fun.call(QScriptValueList() << 123);
         QVERIFY(cnt.isCallable());
         {
             QScriptValue ret = cnt.call();
@@ -5941,7 +5941,7 @@ void tst_QJSEngine::evaluateProgram_executeLater()
     {
         QScriptValue fun = eng.newFunction(createProgram);
         QScriptProgram program = qscriptvalue_cast<QScriptProgram>(
-            fun.call(QScriptValue(), QScriptValueList() << "a + 1"));
+            fun.call(QScriptValueList() << "a + 1"));
         QVERIFY(!program.isNull());
         eng.globalObject().setProperty("a", QScriptValue());
         {
@@ -6092,7 +6092,7 @@ void tst_QJSEngine::qRegExpInport()
     QVERIFY(rexp.isCallable());
 
     QJSValue func = eng.evaluate("(function(string, regexp) { return string.match(regexp); })");
-    QJSValue result = func.call(QJSValue(),  QJSValueList() << string << rexp);
+    QJSValue result = func.call(QJSValueList() << string << rexp);
 
     rx.indexIn(string);
     for (int i = 0; i <= rx.captureCount(); i++)  {
@@ -6139,7 +6139,7 @@ void tst_QJSEngine::dateConversionJSQt()
         QJSValue jsDate = eng.evaluate(QString::fromLatin1("new Date(%0)").arg(secs * 1000.0));
         QDateTime qtDate = jsDate.toDateTime();
         QString qtUTCDateStr = qtDate.toUTC().toString(Qt::ISODate);
-        QString jsUTCDateStr = jsDate.property("toISOString").call(jsDate).toString();
+        QString jsUTCDateStr = jsDate.property("toISOString").callWithInstance(jsDate).toString();
         jsUTCDateStr.remove(jsUTCDateStr.length() - 5, 4); // get rid of milliseconds (".000")
         if (qtUTCDateStr != jsUTCDateStr)
             QFAIL(qPrintable(jsDate.toString()));
@@ -6153,7 +6153,7 @@ void tst_QJSEngine::dateConversionQtJS()
     QJSEngine eng;
     for (int i = 0; i < 8000; ++i) {
         QJSValue jsDate = eng.newDate(qtDate);
-        QString jsUTCDateStr = jsDate.property("toISOString").call(jsDate).toString();
+        QString jsUTCDateStr = jsDate.property("toISOString").callWithInstance(jsDate).toString();
         jsUTCDateStr.remove(jsUTCDateStr.length() - 5, 4); // get rid of milliseconds (".000")
         QString qtUTCDateStr = qtDate.toUTC().toString(Qt::ISODate);
         if (jsUTCDateStr != qtUTCDateStr)
@@ -6456,13 +6456,13 @@ void tst_QJSEngine::scriptValueFromQMetaObject()
         QCOMPARE(meta.toQMetaObject(), &QScriptEngine::staticMetaObject);
         // Because of missing Q_SCRIPT_DECLARE_QMETAOBJECT() for QScriptEngine.
         QEXPECT_FAIL("", "FIXME: because construct never returns invalid values", Continue);
-        QVERIFY(!meta.construct().isValid());
+        QVERIFY(!meta.callAsConstructor().isValid());
     }
     {
         QScriptValue meta = eng.scriptValueFromQMetaObject<QStandardItemModel>();
         QVERIFY(meta.isQMetaObject());
         QCOMPARE(meta.toQMetaObject(), &QStandardItemModel::staticMetaObject);
-        QScriptValue obj = meta.construct(QScriptValueList() << eng.newQObject(&eng));
+        QScriptValue obj = meta.callAsConstructor(QScriptValueList() << eng.newQObject(&eng));
         QVERIFY(obj.isQObject());
         QStandardItemModel *model = qobject_cast<QStandardItemModel*>(obj.toQObject());
         QVERIFY(model != 0);