void tst_qdeclarativemoduleplugin::incorrectPluginCase() { QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine, testFileUrl("incorrectCase.qml")); QList<QDeclarativeError> errors = component.errors(); QCOMPARE(errors.count(), 1); QString expectedError = QLatin1String("module \"org.qtproject.WrongCase\" plugin \"PluGin\" not found"); #if defined(Q_OS_MAC) || defined(Q_OS_WIN32) bool caseSensitive = true; #if defined(Q_OS_MAC) caseSensitive = pathconf(QDir::currentPath().toLatin1().constData(), _PC_CASE_SENSITIVE); QString libname = "libPluGin.dylib"; #elif defined(Q_OS_WIN32) caseSensitive = false; QString libname = "PluGin.dll"; #endif if (!caseSensitive) expectedError = QLatin1String("plugin cannot be loaded for module \"org.qtproject.WrongCase\": File name case mismatch for \"") + QDir(importsDirectory()).filePath("org/qtproject/WrongCase/" + libname) + QLatin1String("\""); #endif QCOMPARE(errors.at(0).description(), expectedError); }
// QTBUG-17324 void tst_qdeclarativemoduleplugin::importsMixedQmlCppPlugin() { QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); { QDeclarativeComponent component(&engine, testFileUrl("importsMixedQmlCppPlugin.qml")); QObject *o = component.create(); QVERIFY2(o, msgComponentError(component, &engine).constData()); QCOMPARE(o->property("test").toBool(), true); delete o; } { QDeclarativeComponent component(&engine, testFileUrl("importsMixedQmlCppPlugin.2.qml")); QObject *o = component.create(); QVERIFY(o != 0); QCOMPARE(o->property("test").toBool(), true); QCOMPARE(o->property("test2").toBool(), true); delete o; } }
void tst_qdeclarativemoduleplugin::versionNotInstalled() { QFETCH(QString, file); QFETCH(QString, errorFile); QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine, testFileUrl(file)); VERIFY_ERRORS(errorFile.toLatin1().constData()); }
void tst_qdeclarativemoduleplugin::importsPlugin21() { QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QTest::ignoreMessage(QtWarningMsg, "plugin2.1 created"); QTest::ignoreMessage(QtWarningMsg, "import2.1 worked"); QDeclarativeComponent component(&engine, testFileUrl("works21.qml")); foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); QObject *object = component.create(); QVERIFY(object != 0); QCOMPARE(object->property("value").toInt(),123); delete object; }
void tst_qdeclarativemoduleplugin::remoteImportWithQuotedUrl() { TestHTTPServer server(SERVER_PORT); QVERIFY(server.isValid()); server.serveDirectory(importsDirectory()); QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData("import \"http://127.0.0.1:14450/org/qtproject/PureQmlModule\" \nComponentA { width: 300; ComponentB{} }", QUrl()); QTRY_COMPARE(component.status(), QDeclarativeComponent::Ready); QObject *object = component.create(); QCOMPARE(object->property("width").toInt(), 300); QVERIFY(object != 0); delete object; foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); }
void tst_qdeclarativemoduleplugin::remoteImportWithUnquotedUri() { TestHTTPServer server(SERVER_PORT); QVERIFY(server.isValid()); server.serveDirectory(directory() + QStringLiteral("/imports")); QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine); component.setData("import org.qtproject.PureQmlModule 1.0 \nComponentA { width: 300; ComponentB{} }", QUrl()); QTRY_COMPARE(component.status(), QDeclarativeComponent::Ready); QObject *object = component.create(); QVERIFY(object != 0); QCOMPARE(object->property("width").toInt(), 300); delete object; foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); }
void tst_qdeclarativemoduleplugin::importPluginWithQmlFile() { QString path = importsDirectory(); // QTBUG-16885: adding an import path with a lower-case "c:" causes assert failure // (this only happens if the plugin includes pure QML files) #ifdef Q_OS_WIN if (path.size() > 1 && path.at(0).isUpper() && path.at(1) == QLatin1Char(':')) path = path.at(0).toLower() + path.mid(1); #endif QDeclarativeEngine engine; engine.addImportPath(path); QDeclarativeComponent component(&engine, testFileUrl("pluginWithQmlFile.qml")); foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); QObject *object = component.create(); QVERIFY(object != 0); delete object; }
void tst_qdeclarativemoduleplugin::incorrectPluginCase() { QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine, testFileUrl("incorrectCase.qml")); QList<QDeclarativeError> errors = component.errors(); QCOMPARE(errors.count(), 1); #if defined(Q_OS_MAC) || defined(Q_OS_WIN32) #if defined(Q_OS_MAC) QString libname = "libPluGin.dylib"; #elif defined(Q_OS_WIN32) QString libname = "PluGin.dll"; #endif QString expectedError = QLatin1String("plugin cannot be loaded for module \"com.nokia.WrongCase\": File name case mismatch for \"") + QFileInfo(__FILE__).absoluteDir().filePath("imports/com/nokia/WrongCase/" + libname) + QLatin1String("\""); #else QString expectedError = QLatin1String("module \"com.nokia.WrongCase\" plugin \"PluGin\" not found"); #endif QCOMPARE(errors.at(0).description(), expectedError); }