aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/projectinfo_test.h
blob: 2aa33a4f2fb025bc79f4ff1fa31119c9e977058e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0

#pragma once

#include <QObject>

namespace CppEditor::Internal {

class ProjectPartChooserTest : public QObject
{
    Q_OBJECT

private slots:
    void testChooseManuallySet();
    void testIndicateManuallySet();
    void testIndicateManuallySetForFallbackToProjectPartFromDependencies();
    void testDoNotIndicateNotManuallySet();
    void testForMultipleChooseFromActiveProject();
    void testForMultiplePreferSelectedForBuilding();
    void testForMultipleFromDependenciesChooseFromActiveProject();
    void testForMultipleCheckIfActiveProjectChanged();
    void testForMultipleAndAmbigiousHeaderPreferCProjectPart();
    void testForMultipleAndAmbigiousHeaderPreferCxxProjectPart();
    void testIndicateMultiple();
    void testIndicateMultipleForFallbackToProjectPartFromDependencies();
    void testForMultipleChooseNewIfPreviousIsGone();
    void testFallbackToProjectPartFromDependencies();
    void testFallbackToProjectPartFromModelManager();
    void testContinueUsingFallbackFromModelManagerIfProjectDoesNotChange();
    void testStopUsingFallbackFromModelManagerIfProjectChanges1();
    void testStopUsingFallbackFromModelManagerIfProjectChanges2();
    void testIndicateFallbacktoProjectPartFromModelManager();
    void testIndicateFromDependencies();
    void testDoNotIndicateFromDependencies();
};

class ProjectInfoGeneratorTest : public QObject
{
    Q_OBJECT

private slots:
    void testCreateNoProjectPartsForEmptyFileList();
    void testCreateSingleProjectPart();
    void testCreateMultipleProjectParts();
    void testProjectPartIndicatesObjectiveCExtensionsByDefault();
    void testProjectPartHasLatestLanguageVersionByDefault();
    void testUseMacroInspectionReportForLanguageVersion();
    void testUseCompilerFlagsForLanguageExtensions();
    void testProjectFileKindsMatchProjectPartVersion();
};

class HeaderPathFilterTest : public QObject
{
    Q_OBJECT

private slots:
    void testBuiltin();
    void testSystem();
    void testUser();
    void testNoProjectPathSet();
    void testDontAddInvalidPath();
    void testClangHeadersPath();
    void testClangHeadersPathWitoutClangVersion();
    void testClangHeadersAndCppIncludesPathsOrderMacOs();
    void testClangHeadersAndCppIncludesPathsOrderLinux();
    void testRemoveGccInternalPaths();
    void testRemoveGccInternalPathsExceptForStandardPaths();
    void testClangHeadersAndCppIncludesPathsOrderNoVersion();
    void testClangHeadersAndCppIncludesPathsOrderAndroidClang();
};

class ProjectFileCategorizerTest : public QObject
{
    Q_OBJECT

private slots:
    void testC();
    void testCxxWithUnambiguousHeaderSuffix();
    void testCxxWithAmbiguousHeaderSuffix();
    void testObjectiveC();
    void testObjectiveCxx();
    void testMixedCAndCxx();
    void testAmbiguousHeaderOnly();
};

} // namespace CppEditor::Internal