diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-11-08 12:19:47 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-09 11:31:10 +0100 |
commit | 0c5f9185502f3f81265a044955bd13040c2446db (patch) | |
tree | c5da2abe25e23fa9fe7768abae2ecd0a3626f688 | |
parent | da8d1689ef3d4efc769465d195840c5058b38e81 (diff) |
Return a string from resolvedUrl() to match 4.x behavior
Task-number: QTBUG-20960
Change-Id: I9ae99ada5c9bbe7498df24908c6acd202ca73a15
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
3 files changed, 30 insertions, 3 deletions
diff --git a/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp b/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp index 1ced8687ff..918fd527b0 100644 --- a/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp +++ b/src/declarative/qml/v8/qdeclarativebuiltinfunctions.cpp @@ -676,12 +676,12 @@ v8::Handle<v8::Value> 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 0000000000..06ef48b82b --- /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 b4ac2dfc66..b6cebf40ec 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" |