From ba6939fa90cd17a58e1505a2c73fac026f11efa9 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 27 Jul 2017 10:27:20 +0200 Subject: [PATCH] Unit tests: Fix ProjectInfoGenerator.* tests ...by adapting to recent mime type changes: commit e8e46ab553bce9aac9adcaf2ac4ee1207b69ac93 Plugins: Fix that mimetype definition was not valid JSON Change-Id: Iac416ab481814e4488fac4d818c51c647c1ec349 Reviewed-by: Eike Ziller --- src/libs/extensionsystem/pluginspec.cpp | 25 +++---------------- src/libs/extensionsystem/pluginspec.h | 2 -- src/libs/utils/stringutils.cpp | 23 +++++++++++++++++ src/libs/utils/stringutils.h | 3 +++ src/plugins/coreplugin/coreplugin.cpp | 2 +- .../unit/unittest/mimedatabase-utilities.cpp | 7 ++++-- 6 files changed, 35 insertions(+), 27 deletions(-) diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp index cde1903099f..98ab0f8a021 100644 --- a/src/libs/extensionsystem/pluginspec.cpp +++ b/src/libs/extensionsystem/pluginspec.cpp @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -631,26 +632,6 @@ static inline QString msgInvalidFormat(const char *key, const QString &content) .arg(QLatin1String(key), content); } -bool PluginSpec::readMultiLineString(const QJsonValue &value, QString *out) -{ - QTC_ASSERT(out, return false); - if (value.isString()) { - *out = value.toString(); - } else if (value.isArray()) { - QJsonArray array = value.toArray(); - QStringList lines; - foreach (const QJsonValue &v, array) { - if (!v.isString()) - return false; - lines.append(v.toString()); - } - *out = lines.join(QLatin1Char('\n')); - } else { - return false; - } - return true; -} - /*! \internal */ @@ -735,7 +716,7 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &pluginMetaData) copyright = value.toString(); value = metaData.value(QLatin1String(DESCRIPTION)); - if (!value.isUndefined() && !PluginSpec::readMultiLineString(value, &description)) + if (!value.isUndefined() && !Utils::readMultiLineString(value, &description)) return reportError(msgValueIsNotAString(DESCRIPTION)); value = metaData.value(QLatin1String(URL)); @@ -749,7 +730,7 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &pluginMetaData) category = value.toString(); value = metaData.value(QLatin1String(LICENSE)); - if (!value.isUndefined() && !PluginSpec::readMultiLineString(value, &license)) + if (!value.isUndefined() && !Utils::readMultiLineString(value, &license)) return reportError(msgValueIsNotAMultilineString(LICENSE)); value = metaData.value(QLatin1String(PLATFORM)); diff --git a/src/libs/extensionsystem/pluginspec.h b/src/libs/extensionsystem/pluginspec.h index da89ff6029f..0462acddefe 100644 --- a/src/libs/extensionsystem/pluginspec.h +++ b/src/libs/extensionsystem/pluginspec.h @@ -131,8 +131,6 @@ public: bool hasError() const; QString errorString() const; - static bool readMultiLineString(const QJsonValue &value, QString *out); - private: PluginSpec(); diff --git a/src/libs/utils/stringutils.cpp b/src/libs/utils/stringutils.cpp index b69bfe6f971..f2a13991cb2 100644 --- a/src/libs/utils/stringutils.cpp +++ b/src/libs/utils/stringutils.cpp @@ -28,8 +28,11 @@ #include "hostosinfo.h" #include +#include #include +#include +#include #include #include @@ -246,4 +249,24 @@ QTCREATOR_UTILS_EXPORT QString stripAccelerator(const QString &text) return res; } +QTCREATOR_UTILS_EXPORT bool readMultiLineString(const QJsonValue &value, QString *out) +{ + QTC_ASSERT(out, return false); + if (value.isString()) { + *out = value.toString(); + } else if (value.isArray()) { + QJsonArray array = value.toArray(); + QStringList lines; + foreach (const QJsonValue &v, array) { + if (!v.isString()) + return false; + lines.append(v.toString()); + } + *out = lines.join(QLatin1Char('\n')); + } else { + return false; + } + return true; +} + } // namespace Utils diff --git a/src/libs/utils/stringutils.h b/src/libs/utils/stringutils.h index 8ff42bac6a4..0723e76656f 100644 --- a/src/libs/utils/stringutils.h +++ b/src/libs/utils/stringutils.h @@ -28,6 +28,7 @@ #include "utils_global.h" QT_BEGIN_NAMESPACE +class QJsonValue; class QStringList; QT_END_NAMESPACE @@ -53,6 +54,8 @@ QTCREATOR_UTILS_EXPORT QString withTildeHomePath(const QString &path); // Removes first unescaped ampersand in text QTCREATOR_UTILS_EXPORT QString stripAccelerator(const QString &text); +QTCREATOR_UTILS_EXPORT bool readMultiLineString(const QJsonValue &value, QString *out); + class QTCREATOR_UTILS_EXPORT AbstractMacroExpander { public: diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp index a51d418a6c7..c005b90eaa9 100644 --- a/src/plugins/coreplugin/coreplugin.cpp +++ b/src/plugins/coreplugin/coreplugin.cpp @@ -132,7 +132,7 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage) const QJsonObject metaData = plugin->metaData(); const QJsonValue mimetypes = metaData.value("Mimetypes"); QString mimetypeString; - if (ExtensionSystem::PluginSpec::readMultiLineString(mimetypes, &mimetypeString)) + if (Utils::readMultiLineString(mimetypes, &mimetypeString)) Utils::addMimeTypes(plugin->name() + ".mimetypes", mimetypeString.trimmed().toUtf8()); } diff --git a/tests/unit/unittest/mimedatabase-utilities.cpp b/tests/unit/unittest/mimedatabase-utilities.cpp index 043ae752545..0a0956c190c 100644 --- a/tests/unit/unittest/mimedatabase-utilities.cpp +++ b/tests/unit/unittest/mimedatabase-utilities.cpp @@ -32,6 +32,7 @@ #include #include +#include namespace MimeDataBaseUtilities { @@ -47,9 +48,11 @@ bool addCppToolsMimeTypes() if (file.open(QIODevice::ReadOnly)) { auto doc = QJsonDocument::fromJson(file.readAll()); QJsonValue mimetypes = doc.object().value("Mimetypes"); - if (!mimetypes.isString()) + + QString mimetypeString; + if (!Utils::readMultiLineString(mimetypes, &mimetypeString)) return false; - Utils::addMimeTypes(filePath, mimetypes.toString().trimmed().toUtf8()); + Utils::addMimeTypes(filePath, mimetypeString.trimmed().toUtf8()); alreadyAdded = true; return true; }