1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of Qbs.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 3 requirements
23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 **
25 ** GNU General Public License Usage
26 ** Alternatively, this file may be used under the terms of the GNU
27 ** General Public License version 2.0 or (at your option) the GNU General
28 ** Public license version 3 or any later version approved by the KDE Free
29 ** Qt Foundation. The licenses are as published by the Free Software
30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 ** included in the packaging of this file. Please review the following
32 ** information to ensure the GNU General Public License requirements will
33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 ** https://www.gnu.org/licenses/gpl-3.0.html.
35 **
36 ** $QT_END_LICENSE$
37 **
38 ****************************************************************************/
39 
40 #include <QtCore/qlist.h>
41 #include <QtCore/qobject.h>
42 
43 QT_BEGIN_NAMESPACE
44 class QTemporaryDir;
45 QT_END_NAMESPACE
46 
47 namespace qbs {
48 class Settings;
49 }
50 
51 class TestTools : public QObject
52 {
53     Q_OBJECT
54 
55 public:
56     TestTools(qbs::Settings *settings);
57     ~TestTools();
58 
59 public slots:
60    virtual void initTestCase();
61 
62 private slots:
63     void fileSaver();
64 
65     void fileCaseCheck();
66     void testBuildConfigMerging();
67     void testFileInfo();
68     void testProcessNameByPid();
69     void testProfiles();
70     void testSettingsMigration();
71     void testSettingsMigration_data();
72 
73     void set_operator_eq();
74     void set_swap();
75     void set_size();
76     void set_capacity();
77     void set_reserve();
78     void set_clear();
79     void set_remove();
80     void set_contains();
81     void set_containsSet();
82     void set_find();
83     void set_begin();
84     void set_end();
85     void set_insert();
86     void set_reverseIterators();
87     void set_stlIterator();
88     void set_stlMutableIterator();
89     void set_setOperations();
90     void set_makeSureTheComfortFunctionsCompile();
91     void set_initializerList();
92     void set_intersects();
93 
94     void stringutils_join();
95     void stringutils_join_data();
96     void stringutils_join_empty();
97     void stringutils_join_char();
98     void stringutils_join_char_data();
99     void stringutils_startsWith();
100     void stringutils_endsWith();
101     void stringutils_trimmed();
102 
103     void hash_tuple();
104     void hash_range();
105 
106 private:
107     QString setupSettingsDir1();
108     QString setupSettingsDir2();
109     QString setupSettingsDir3();
110 
111     qbs::Settings * const m_settings;
112     QList<QTemporaryDir *> m_tmpDirs;
113 
114     const QString testDataDir;
115 };
116