Warning, file /frameworks/kpackage/autotests/fallbackpackagetest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2007 Aaron Seigo <aseigo@kde.org> 0003 SPDX-FileCopyrightText: 2014 Marco Martin <mart@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "fallbackpackagetest.h" 0009 0010 0011 #include "packageloader.h" 0012 #include "packagestructure.h" 0013 #include <KLocalizedString> 0014 0015 void FallbackPackageTest::initTestCase() 0016 { 0017 m_fallPackagePath = QFINDTESTDATA("data/testpackage"); 0018 m_fallbackPkg = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("KPackage/Generic")); 0019 m_fallbackPkg.addFileDefinition("mainscript", QStringLiteral("ui/main.qml"), i18n("Main Script File")); 0020 m_fallbackPkg.setPath(m_fallPackagePath); 0021 0022 m_packagePath = QFINDTESTDATA("data/testfallbackpackage"); 0023 m_pkg = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("KPackage/Generic")); 0024 m_pkg.addFileDefinition("mainscript", QStringLiteral("ui/main.qml"), i18n("Main Script File")); 0025 m_pkg.setPath(m_packagePath); 0026 } 0027 0028 void FallbackPackageTest::beforeFallback() 0029 { 0030 QVERIFY(m_fallbackPkg.hasValidStructure()); 0031 QVERIFY(m_pkg.hasValidStructure()); 0032 0033 // m_fallbackPkg should have otherfile.qml, m_pkg shouldn't 0034 QVERIFY(!m_fallbackPkg.filePath("ui", QStringLiteral("otherfile.qml")).isEmpty()); 0035 QVERIFY(m_pkg.filePath("ui", QStringLiteral("otherfile.qml")).isEmpty()); 0036 } 0037 0038 void FallbackPackageTest::afterFallback() 0039 { 0040 m_pkg.setFallbackPackage(m_fallbackPkg); 0041 0042 // after setting the fallback, m_pkg should resolve the exact same file as m_fallbackPkg 0043 // for otherfile.qml 0044 QVERIFY(!m_pkg.filePath("ui", QStringLiteral("otherfile.qml")).isEmpty()); 0045 QCOMPARE(m_fallbackPkg.filePath("ui", QStringLiteral("otherfile.qml")), m_pkg.filePath("ui", QStringLiteral("otherfile.qml"))); 0046 QVERIFY(m_fallbackPkg.filePath("mainscript") != m_pkg.filePath("mainscript")); 0047 } 0048 0049 void FallbackPackageTest::cycle() 0050 { 0051 m_fallbackPkg.setFallbackPackage(m_pkg); 0052 m_pkg.setFallbackPackage(m_fallbackPkg); 0053 0054 // The cycle should have been detected and filePath should take a not infinite time 0055 QTRY_COMPARE_WITH_TIMEOUT(m_fallbackPkg.filePath("ui", QStringLiteral("otherfile.qml")), m_pkg.filePath("ui", QStringLiteral("otherfile.qml")), 1000); 0056 } 0057 0058 QTEST_MAIN(FallbackPackageTest)