From: Aaron Kennedy Date: Tue, 8 Nov 2011 12:19:47 +0000 (+0000) Subject: Return a string from resolvedUrl() to match 4.x behavior X-Git-Tag: qt-v5.0.0-alpha1~1183 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0c5f9185502f3f81265a044955bd13040c2446db;p=profile%2Fivi%2Fqtdeclarative.git Return a string from resolvedUrl() to match 4.x behavior Task-number: QTBUG-20960 Change-Id: I9ae99ada5c9bbe7498df24908c6acd202ca73a15 Reviewed-by: Kent Hansen --- diff --git a/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp b/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp index 1ced868..918fd52 100644 --- a/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp +++ b/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp @@ -676,12 +676,12 @@ v8::Handle resolvedUrl(const v8::Arguments &args) if (p) { QDeclarativeContextData *ctxt = V8ENGINE()->callingContext(); if (ctxt) - return V8ENGINE()->fromVariant(ctxt->resolvedUrl(url)); + return V8ENGINE()->toString(ctxt->resolvedUrl(url).toString()); else - return V8ENGINE()->fromVariant(url); + return V8ENGINE()->toString(url.toString()); } - return V8ENGINE()->fromVariant(e->baseUrl().resolved(url)); + return V8ENGINE()->toString(e->baseUrl().resolved(url).toString()); } /*! diff --git a/tests/auto/declarative/qdeclarativeqt/data/resolvedUrl.qml b/tests/auto/declarative/qdeclarativeqt/data/resolvedUrl.qml new file mode 100644 index 0000000..06ef48b --- /dev/null +++ b/tests/auto/declarative/qdeclarativeqt/data/resolvedUrl.qml @@ -0,0 +1,13 @@ +import QtQuick 2.0 + +QtObject { + property string result + property bool isString: false + + Component.onCompleted: { + var a = Qt.resolvedUrl("resolvedUrl.qml"); + result = a; + isString = (typeof a) == "string" + } +} + diff --git a/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp index b4ac2df..b6cebf4 100644 --- a/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp +++ b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp @@ -89,6 +89,7 @@ private slots: void atob(); void fontFamilies(); void quit(); + void resolvedUrl(); private: QDeclarativeEngine engine; @@ -727,6 +728,19 @@ void tst_qdeclarativeqt::quit() delete object; } +void tst_qdeclarativeqt::resolvedUrl() +{ + QDeclarativeComponent component(&engine, TEST_FILE("resolvedUrl.qml")); + + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("result").toString(), component.url().toString()); + QCOMPARE(object->property("isString").toBool(), true); + + delete object; +} + QTEST_MAIN(tst_qdeclarativeqt) #include "tst_qdeclarativeqt.moc"