From e77ea6f2fa8e98cb4a03144664a31b6070635a63 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 17 Jan 2012 09:49:52 +0100 Subject: Remove QJSEngine::newVariant() function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rationale: This is a remnant from QtScript. There is no reason one should be able to explicitly wrap an arbitrary C++ type in a QVariant. toScriptValue() will automatically wrap the type in a QVariant if it's a type that's not specifically handled by the meta-type system, or if it can't usefully/losslessly be converted to a native JavaScript type. Task-number: QTBUG-23604 Change-Id: I5790cd92b9ffd5fcfbee1cd73a8eaa16fc74846f Reviewed-by: Jędrzej Nowacki --- tests/auto/declarative/qjsengine/tst_qjsengine.cpp | 30 +--- tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp | 159 +++------------------ 2 files changed, 25 insertions(+), 164 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/declarative/qjsengine/tst_qjsengine.cpp b/tests/auto/declarative/qjsengine/tst_qjsengine.cpp index 7aadabb192..2d49619a8c 100644 --- a/tests/auto/declarative/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/declarative/qjsengine/tst_qjsengine.cpp @@ -654,7 +654,7 @@ void tst_QJSEngine::newVariant() { QJSEngine eng; { - QJSValue opaque = eng.newVariant(QVariant()); + QJSValue opaque = eng.toScriptValue(QVariant(QPoint(1, 2))); QCOMPARE(opaque.isValid(), true); QCOMPARE(opaque.isVariant(), true); QVERIFY(!opaque.isCallable()); @@ -662,7 +662,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").callWithInstance(opaque).isUndefined()); + QVERIFY(opaque.property("valueOf").callWithInstance(opaque).equals(opaque)); } } @@ -732,31 +732,7 @@ void tst_QJSEngine::newVariant_valueOfToString() // valueOf() and toString() QJSEngine eng; { - QJSValue object = eng.newVariant(QVariant(123)); - QJSValue value = object.property("valueOf").callWithInstance(object); - QVERIFY(value.isNumber()); - QCOMPARE(value.toInt(), 123); - QCOMPARE(object.toString(), QString::fromLatin1("123")); - QCOMPARE(object.toVariant().toString(), object.toString()); - } - { - QJSValue object = eng.newVariant(QVariant(QString::fromLatin1("hello"))); - QJSValue value = object.property("valueOf").callWithInstance(object); - QVERIFY(value.isString()); - QCOMPARE(value.toString(), QString::fromLatin1("hello")); - QCOMPARE(object.toString(), QString::fromLatin1("hello")); - QCOMPARE(object.toVariant().toString(), object.toString()); - } - { - QJSValue object = eng.newVariant(QVariant(false)); - QJSValue value = object.property("valueOf").callWithInstance(object); - QVERIFY(value.isBool()); - QCOMPARE(value.toBool(), false); - QCOMPARE(object.toString(), QString::fromLatin1("false")); - QCOMPARE(object.toVariant().toString(), object.toString()); - } - { - QJSValue object = eng.newVariant(QVariant(QPoint(10, 20))); + QJSValue object = eng.toScriptValue(QVariant(QPoint(10, 20))); QJSValue value = object.property("valueOf").callWithInstance(object); QVERIFY(value.isObject()); QVERIFY(value.strictlyEquals(object)); diff --git a/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp b/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp index 1c03fc1509..d034b76c03 100644 --- a/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp +++ b/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp @@ -442,16 +442,11 @@ void tst_QJSValue::toString() // variant should use internal valueOf(), then fall back to QVariant::toString(), // then fall back to "QVariant(typename)" - QJSValue variant = eng.newVariant(123); - QVERIFY(variant.isVariant()); - QCOMPARE(variant.toString(), QString::fromLatin1("123")); - variant = eng.newVariant(QByteArray("hello")); - QVERIFY(variant.isVariant()); - QCOMPARE(variant.toString(), QString::fromLatin1("hello")); - variant = eng.newVariant(QVariant(QPoint(10, 20))); + QJSValue variant = eng.toScriptValue(QPoint(10, 20)); QVERIFY(variant.isVariant()); QCOMPARE(variant.toString(), QString::fromLatin1("QVariant(QPoint)")); - variant = eng.newVariant(QUrl()); + variant = eng.toScriptValue(QUrl()); + QVERIFY(variant.isVariant()); QVERIFY(variant.toString().isEmpty()); } @@ -1037,11 +1032,6 @@ void tst_QJSValue::toVariant() QCOMPARE(qjsvalue_cast(str), QVariant(QString("ciao"))); } - QVariant var(QChar(0x007A)); - QJSValue opaque = eng.newVariant(var); - QVERIFY(opaque.isVariant()); - QCOMPARE(opaque.toVariant(), var); - QJSValue object = eng.newObject(); QCOMPARE(object.toVariant(), QVariant(QVariantMap())); @@ -1136,8 +1126,8 @@ void tst_QJSValue::toQObject_nonQObject_data() QTest::newRow("object") << engine->newObject(); QTest::newRow("array") << engine->newArray(); QTest::newRow("date") << engine->evaluate("new Date(124)"); - QTest::newRow("variant(12345)") << engine->newVariant(12345); - QTest::newRow("variant((QObject*)0)") << engine->newVariant(qVariantFromValue((QObject*)0)); + QTest::newRow("variant(12345)") << engine->toScriptValue(QVariant(12345)); + QTest::newRow("variant((QObject*)0)") << engine->toScriptValue(qVariantFromValue((QObject*)0)); QTest::newRow("newQObject(0)") << engine->newQObject(0); } @@ -1173,25 +1163,6 @@ void tst_QJSValue::toQObject() QCOMPARE(qjsvalue_cast(qbutton), (QObject *)&button); QCOMPARE(qjsvalue_cast(qbutton), (QWidget *)&button); QCOMPARE(qjsvalue_cast(qbutton), &button); - - // wrapping a QObject* as variant - QJSValue variant = eng.newVariant(qVariantFromValue((QObject*)&button)); - QCOMPARE(variant.toQObject(), (QObject*)&button); - QCOMPARE(qjsvalue_cast(variant), (QObject*)&button); - QCOMPARE(qjsvalue_cast(variant), (QWidget*)&button); - QCOMPARE(qjsvalue_cast(variant), &button); - - QJSValue variant2 = eng.newVariant(qVariantFromValue((QWidget*)&button)); - QCOMPARE(variant2.toQObject(), (QObject*)&button); - QCOMPARE(qjsvalue_cast(variant2), (QObject*)&button); - QCOMPARE(qjsvalue_cast(variant2), (QWidget*)&button); - QCOMPARE(qjsvalue_cast(variant2), &button); - - QJSValue variant3 = eng.newVariant(qVariantFromValue(&button)); - QCOMPARE(variant3.toQObject(), (QObject*)0); - QCOMPARE(qjsvalue_cast(variant3), (QObject*)0); - QCOMPARE(qjsvalue_cast(variant3), (QWidget*)0); - QCOMPARE(qjsvalue_cast(variant3), &button); } void tst_QJSValue::toDateTime() @@ -2371,7 +2342,7 @@ void tst_QJSValue::getSetScriptClass_QVariant() TestScriptClass testClass(&eng); // object that already has a(n internal) class { - QJSValue obj = eng.newVariant(QUrl("http://example.com")); + QJSValue obj = eng.toScriptValue(QUrl("http://example.com")); QVERIFY(obj.isVariant()); QCOMPARE(obj.scriptClass(), (QScriptClass*)0); obj.setScriptClass(&testClass); @@ -3162,79 +3133,16 @@ void tst_QJSValue::equals() } { - QJSValue var1 = eng.newVariant(QVariant(false)); - QJSValue var2 = eng.newVariant(QVariant(false)); - QEXPECT_FAIL("", "FIXME: QVariant comparison does not work with v8", Continue); - QVERIFY(var1.equals(var2)); - { - QJSValue ret = compareFun.call(QJSValue(), QJSValueList() << var1 << var2); - QVERIFY(ret.isBool()); - } - } - { - QJSValue var1 = eng.newVariant(QVariant(false)); - QJSValue var2 = eng.newVariant(QVariant(0)); - // QVariant::operator==() performs type conversion - QEXPECT_FAIL("", "FIXME: QVariant comparison does not work with v8", Continue); - QVERIFY(var1.equals(var2)); - } - { - QJSValue var1 = eng.newVariant(QVariant(QStringList() << "a")); - QJSValue var2 = eng.newVariant(QVariant(QStringList() << "a")); - QEXPECT_FAIL("", "FIXME: QVariant comparison does not work with v8", Continue); - QVERIFY(var1.equals(var2)); - } - { - QJSValue var1 = eng.newVariant(QVariant(QStringList() << "a")); - QJSValue var2 = eng.newVariant(QVariant(QStringList() << "b")); - QVERIFY(!var1.equals(var2)); - } - { - QJSValue var1 = eng.newVariant(QVariant(QPoint(1, 2))); - QJSValue var2 = eng.newVariant(QVariant(QPoint(1, 2))); + QJSValue var1 = eng.toScriptValue(QVariant(QPoint(1, 2))); + QJSValue var2 = eng.toScriptValue(QVariant(QPoint(1, 2))); QEXPECT_FAIL("", "FIXME: QVariant comparison does not work with v8", Continue); QVERIFY(var1.equals(var2)); } { - QJSValue var1 = eng.newVariant(QVariant(QPoint(1, 2))); - QJSValue var2 = eng.newVariant(QVariant(QPoint(3, 4))); + QJSValue var1 = eng.toScriptValue(QVariant(QPoint(1, 2))); + QJSValue var2 = eng.toScriptValue(QVariant(QPoint(3, 4))); QVERIFY(!var1.equals(var2)); } - { - QJSValue var1 = eng.newVariant(QVariant(int(1))); - QJSValue var2 = eng.newVariant(QVariant(double(1))); - // QVariant::operator==() performs type conversion - QEXPECT_FAIL("", "FIXME: QVariant comparison does not work with v8", Continue); - QVERIFY(var1.equals(var2)); - } - { - QJSValue var1 = eng.newVariant(QVariant(QString::fromLatin1("123"))); - QJSValue var2 = eng.newVariant(QVariant(double(123))); - QJSValue var3(QString::fromLatin1("123")); - QJSValue var4(123); - - QVERIFY(var1.equals(var1)); - QEXPECT_FAIL("", "FIXME: QVariant comparison does not work with v8", Continue); - QVERIFY(var1.equals(var2)); - QVERIFY(var1.equals(var3)); - QVERIFY(var1.equals(var4)); - - QEXPECT_FAIL("", "FIXME: QVariant comparison does not work with v8", Continue); - QVERIFY(var2.equals(var1)); - QVERIFY(var2.equals(var2)); - QVERIFY(var2.equals(var3)); - QVERIFY(var2.equals(var4)); - - QVERIFY(var3.equals(var1)); - QVERIFY(var3.equals(var2)); - QVERIFY(var3.equals(var3)); - QVERIFY(var3.equals(var4)); - - QVERIFY(var4.equals(var1)); - QVERIFY(var4.equals(var2)); - QVERIFY(var4.equals(var3)); - QVERIFY(var4.equals(var4)); - } QJSEngine otherEngine; QTest::ignoreMessage(QtWarningMsg, "QJSValue::equals: " @@ -3356,34 +3264,25 @@ void tst_QJSValue::strictlyEquals() QVERIFY(qobj1.strictlyEquals(qobj2)); { - QJSValue var1 = eng.newVariant(QVariant(false)); - QJSValue var2 = eng.newVariant(QVariant(false)); - QVERIFY(!var1.strictlyEquals(var2)); - QVERIFY(!var1.strictlyEquals(QJSValue())); - } - { - QJSValue var1 = eng.newVariant(QVariant(false)); - QJSValue var2 = eng.newVariant(QVariant(0)); + QJSValue var1 = eng.toScriptValue(QVariant(QStringList() << "a")); + QJSValue var2 = eng.toScriptValue(QVariant(QStringList() << "a")); + QVERIFY(var1.isArray()); + QVERIFY(var2.isArray()); QVERIFY(!var1.strictlyEquals(var2)); } { - QJSValue var1 = eng.newVariant(QVariant(QStringList() << "a")); - QJSValue var2 = eng.newVariant(QVariant(QStringList() << "a")); + QJSValue var1 = eng.toScriptValue(QVariant(QStringList() << "a")); + QJSValue var2 = eng.toScriptValue(QVariant(QStringList() << "b")); QVERIFY(!var1.strictlyEquals(var2)); } { - QJSValue var1 = eng.newVariant(QVariant(QStringList() << "a")); - QJSValue var2 = eng.newVariant(QVariant(QStringList() << "b")); + QJSValue var1 = eng.toScriptValue(QVariant(QPoint(1, 2))); + QJSValue var2 = eng.toScriptValue(QVariant(QPoint(1, 2))); QVERIFY(!var1.strictlyEquals(var2)); } { - QJSValue var1 = eng.newVariant(QVariant(QPoint(1, 2))); - QJSValue var2 = eng.newVariant(QVariant(QPoint(1, 2))); - QVERIFY(!var1.strictlyEquals(var2)); - } - { - QJSValue var1 = eng.newVariant(QVariant(QPoint(1, 2))); - QJSValue var2 = eng.newVariant(QVariant(QPoint(3, 4))); + QJSValue var1 = eng.toScriptValue(QVariant(QPoint(1, 2))); + QJSValue var2 = eng.toScriptValue(QVariant(QPoint(3, 4))); QVERIFY(!var1.strictlyEquals(var2)); } @@ -3402,23 +3301,9 @@ Q_DECLARE_METATYPE(QBrush*) void tst_QJSValue::castToPointer() { QJSEngine eng; - { - QJSValue v = eng.newVariant(int(123)); - int *ip = qjsvalue_cast(v); - QVERIFY(ip != 0); - QCOMPARE(*ip, 123); - *ip = 456; - QCOMPARE(qjsvalue_cast(v), 456); - - double *dp = qjsvalue_cast(v); - QVERIFY(dp == 0); - - QJSValue v2 = eng.newVariant(qVariantFromValue(ip)); - QCOMPARE(qjsvalue_cast(v2), ip); - } { QColor c(123, 210, 231); - QJSValue v = eng.newVariant(c); + QJSValue v = eng.toScriptValue(c); QColor *cp = qjsvalue_cast(v); QVERIFY(cp != 0); QCOMPARE(*cp, c); @@ -3426,7 +3311,7 @@ void tst_QJSValue::castToPointer() QBrush *bp = qjsvalue_cast(v); QVERIFY(bp == 0); - QJSValue v2 = eng.newVariant(qVariantFromValue(cp)); + QJSValue v2 = eng.toScriptValue(qVariantFromValue(cp)); QCOMPARE(qjsvalue_cast(v2), cp); } } -- cgit v1.2.3