diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/blackbox/tst_blackboxapple.cpp | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/tests/auto/blackbox/tst_blackboxapple.cpp b/tests/auto/blackbox/tst_blackboxapple.cpp index f71cc6aa8..96cd70b58 100644 --- a/tests/auto/blackbox/tst_blackboxapple.cpp +++ b/tests/auto/blackbox/tst_blackboxapple.cpp @@ -33,6 +33,7 @@ #include <tools/profile.h> #include <QtCore/qjsondocument.h> +#include <QtCore/qjsonobject.h> #include <QtXml/qdom.h> #include <regex> @@ -718,12 +719,38 @@ void TestBlackboxApple::infoPlist() params.arguments = QStringList() << "-f" << "infoplist.qbs"; QCOMPARE(runQbs(params), 0); - QFile infoplist(relativeProductBuildDir("infoplist") + "/infoplist.app/Contents/Info.plist"); + auto infoplistPath = relativeProductBuildDir("infoplist") + + "/infoplist.app/Contents/Info.plist"; + if (!QFile::exists(infoplistPath)) + infoplistPath = relativeProductBuildDir("infoplist") + "/infoplist.app/Info.plist"; + QVERIFY(QFile::exists(infoplistPath)); + QProcess plutil; + plutil.start("plutil", { + QStringLiteral("-convert"), + QStringLiteral("json"), + infoplistPath + }); + QVERIFY2(plutil.waitForStarted(), qPrintable(plutil.errorString())); + QVERIFY2(plutil.waitForFinished(), qPrintable(plutil.errorString())); + QVERIFY2(plutil.exitCode() == 0, qPrintable(plutil.readAllStandardError().constData())); + + QFile infoplist(infoplistPath); QVERIFY(infoplist.open(QIODevice::ReadOnly)); - const QByteArray fileContents = infoplist.readAll(); - QVERIFY2(fileContents.contains("<key>LSMinimumSystemVersion</key>"), fileContents.constData()); - QVERIFY2(fileContents.contains("<string>10.7</string>"), fileContents.constData()); - QVERIFY2(fileContents.contains("<key>NSPrincipalClass</key>"), fileContents.constData()); + QJsonParseError error; + const auto json = QJsonDocument::fromJson(infoplist.readAll(), &error); + QCOMPARE(error.error, QJsonParseError::NoError); + QVERIFY(json.isObject()); + // common values + QCOMPARE(json.object().value(QStringLiteral("CFBundleIdentifier")), + QStringLiteral("org.example.infoplist")); + QCOMPARE(json.object().value(QStringLiteral("CFBundleName")), QStringLiteral("infoplist")); + QCOMPARE(json.object().value(QStringLiteral("CFBundleExecutable")), + QStringLiteral("infoplist")); + + if (!json.object().contains(QStringLiteral("SDKROOT"))) { // macOS-specific values + QCOMPARE(json.object().value("LSMinimumSystemVersion"), QStringLiteral("10.7")); + QVERIFY(json.object().contains("NSPrincipalClass")); + } } void TestBlackboxApple::objcArc() |