File indexing completed on 2024-05-12 04:38:19

0001 /*
0002     SPDX-FileCopyrightText: 2021 Igor Kushnir <igorkuo@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_LANGUAGECONTROLLERTESTBASE_H
0008 #define KDEVPLATFORM_LANGUAGECONTROLLERTESTBASE_H
0009 
0010 #include <QObject>
0011 #include <QString>
0012 #include <QUrl>
0013 
0014 #include <vector>
0015 
0016 namespace KDevelop {
0017 class ILanguageController;
0018 }
0019 
0020 class LanguageControllerTestBase : public QObject
0021 {
0022     Q_OBJECT
0023 
0024 protected:
0025     explicit LanguageControllerTestBase(QObject* parent = nullptr);
0026 
0027 private Q_SLOTS:
0028     void initTestCase();
0029     void init();
0030     void cleanup();
0031     void cleanupTestCase();
0032 
0033 protected:
0034     void fillLanguageControllerMimeTypeCache() const;
0035     void matchingLanguagesForUrlInBackgroundThreadTestData() const;
0036     void matchingLanguagesForUrlTestData() const;
0037     static void nonmatchingLanguagesForUrlTestData();
0038 
0039     KDevelop::ILanguageController* m_subject = nullptr;
0040 
0041 private:
0042     struct UrlEntry
0043     {
0044         QUrl url;
0045         QString languageName;
0046     };
0047     const std::vector<UrlEntry> m_differentLanguagesUrls;
0048 };
0049 
0050 #endif // KDEVPLATFORM_LANGUAGECONTROLLERTESTBASE_H