diff options
Diffstat (limited to 'tests/manual/ios_assets/main.cpp')
-rw-r--r-- | tests/manual/ios_assets/main.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/manual/ios_assets/main.cpp b/tests/manual/ios_assets/main.cpp new file mode 100644 index 0000000000..bbad425b62 --- /dev/null +++ b/tests/manual/ios_assets/main.cpp @@ -0,0 +1,70 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include <QtCore/QStandardPaths> +#include <QtCore/QDir> +#include <QtTest/QtTest> + +#ifdef DEBUG_APP_DATA_LOCATION + #include <QtCore/QDebug> +#endif + +class AssetsIos : public QObject +{ + Q_OBJECT +private slots: + void bundledTextFiles(); + void bundledAppIcons(); + void bundledImageInAssetCatalog(); +}; + +void AssetsIos::bundledTextFiles() +{ +#ifdef DEBUG_APP_DATA_LOCATION + auto paths = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation); + qDebug() << paths; + + for (const QString& path: paths) { + QDir oneDir = QDir(path); + qDebug() << "path" << path << "entries" << oneDir.entryList(); + } +#endif + + /* + AppDataLocation returns the following 3 paths on iOS + /var/mobile/Containers/Data/Application/uuid/Library/Application Support/tst_manual_ios_assets + /Library/Application Support/tst_manual_ios_assets + /private/var/containers/Bundle/Application/<uuid>/tst_manual_ios_assets.app + + The textFiles/foo.txt file only exists in the third location at + /private/var/containers/Bundle/Application/<uuid>/tst_manual_ios_assets.app/textFiles/foo.txt + + AppDataLocation returns the following 3 paths on macOS + /Users/<user>/Library/Application Support/tst_manual_ios_assets + /Library/Application Support/tst_manual_ios_assets + <build-dir>/tst_manual_ios_assets.app/Contents/Resources + + Once again the file only exists in the third location at + <build-dir>/tst_manual_ios_assets.app/Contents/Resources/textFiles/foo.txt + */ + QString textFile = QStandardPaths::locate(QStandardPaths::AppDataLocation, + QStringLiteral("textFiles/foo.txt")); + QVERIFY(!textFile.isEmpty()); +} + +void AssetsIos::bundledAppIcons() { + // Confirm one of the app icons are present. + QString appIcon = QStandardPaths::locate(QStandardPaths::AppDataLocation, + QStringLiteral("AppIcon40x40@2x.png")); + QVERIFY(!appIcon.isEmpty()); +} + +bool imageExistsInAssetCatalog(QString imageName); + +void AssetsIos::bundledImageInAssetCatalog() { + // Asset catalog images can be accessed only via a name, not a path. + QVERIFY(imageExistsInAssetCatalog(QStringLiteral("Face"))); +} + +QTEST_MAIN(AssetsIos) +#include "main.moc" |