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>
This commit is contained in:
Aaron Kennedy 2011-11-08 12:19:47 +00:00 committed by Qt by Nokia
parent da8d1689ef
commit 0c5f918550
3 changed files with 30 additions and 3 deletions

View File

@ -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());
}
/*!

View File

@ -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"
}
}

View File

@ -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"