aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2025-06-30 15:31:04 +0200
committerChristian Kandeler <[email protected]>2025-07-01 07:53:52 +0000
commitb4880582c255653c5273aa78065649fd98c81ec2 (patch)
tree3918eaec15aa0df2538183832cb0de06f8f3ef37
parent0c45ab6f46b60e3e0ff9bb6f91f3cd94df8f979d (diff)
ProjectExplorer: Put UserFileAccessor tests into dedicated classHEADmaster
Change-Id: I7bf57c74f0eea2f457d18ba36eda65a29641e019 Reviewed-by: Christian Stenger <[email protected]>
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp4
-rw-r--r--src/plugins/projectexplorer/projectexplorer_test.h6
-rw-r--r--src/plugins/projectexplorer/userfileaccessor.cpp267
-rw-r--r--src/plugins/projectexplorer/userfileaccessor.h2
4 files changed, 139 insertions, 140 deletions
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index f44231fd013..403363b026c 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -171,8 +171,9 @@
#include "outputparser_test.h"
#include "projectexplorer_test.h"
#include "toolchainsettingsaccessor.h"
+#include "userfileaccessor.h"
#include "xcodebuildparser.h"
-#endif
+#endif // WITH_TESTS
/*!
\namespace ProjectExplorer
@@ -819,6 +820,7 @@ Result<> ProjectExplorerPlugin::initialize(const QStringList &arguments)
addTestCreator(createRunWorkerConflictTest);
addTestCreator(createSanitizerOutputParserTest);
addTestCreator(createToolchainSettingsTest);
+ addTestCreator(createUserFileAccessorTest);
addTestCreator(createXcodebuildParserTest);
#endif
diff --git a/src/plugins/projectexplorer/projectexplorer_test.h b/src/plugins/projectexplorer/projectexplorer_test.h
index b4892e0f6ef..19fd47a82b8 100644
--- a/src/plugins/projectexplorer/projectexplorer_test.h
+++ b/src/plugins/projectexplorer/projectexplorer_test.h
@@ -16,12 +16,6 @@ class ProjectExplorerTest final : public QObject
Q_OBJECT
private slots:
- void testUserFileAccessor_prepareToReadSettings();
- void testUserFileAccessor_prepareToWriteSettings();
- void testUserFileAccessor_mergeSettings();
- void testUserFileAccessor_mergeSettingsEmptyUser();
- void testUserFileAccessor_mergeSettingsEmptyShared();
-
void testSessionSwitch();
private:
diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp
index 21260e36301..4264b8adea3 100644
--- a/src/plugins/projectexplorer/userfileaccessor.cpp
+++ b/src/plugins/projectexplorer/userfileaccessor.cpp
@@ -14,11 +14,13 @@
#include <QGuiApplication>
#include <QRegularExpression>
+#ifdef WITH_TESTS
+#include <QTest>
+#endif
using namespace Utils;
-using namespace ProjectExplorer;
-using namespace ProjectExplorer::Internal;
+namespace ProjectExplorer::Internal {
using KeyVariantPair = std::pair<const Key, QVariant>;
static QString userFileExtension()
@@ -31,8 +33,6 @@ static QString userFileExtension()
return ".user";
}
-namespace {
-
const char SHARED_SETTINGS[] = "SharedSettings";
const char USER_STICKY_KEYS_KEY[] = "UserStickyKeys";
@@ -83,14 +83,10 @@ public:
static QVariant process(const QVariant &entry);
};
-} // namespace
-
// --------------------------------------------------------------------
// Helpers:
// --------------------------------------------------------------------
-namespace {
-
static QString generateSuffix(const QString &suffix)
{
QString result = suffix;
@@ -128,8 +124,6 @@ static QString makeRelative(QString path)
return path;
}
-} // namespace
-
// --------------------------------------------------------------------
// UserFileAccessor:
// --------------------------------------------------------------------
@@ -453,13 +447,6 @@ QVariant UserFileVersion21Upgrader::process(const QVariant &entry)
}
#ifdef WITH_TESTS
-
-#include <QTest>
-
-#include "projectexplorer_test.h"
-
-namespace {
-
class TestUserFileAccessor : public UserFileAccessor
{
public:
@@ -477,8 +464,7 @@ private:
mutable Store m_storedSettings;
};
-
-class TestBuildSystem : public BuildSystem
+class UserFileAccesorTestBuildSystem : public BuildSystem
{
public:
using BuildSystem::BuildSystem;
@@ -486,142 +472,157 @@ private:
void triggerParsing() override {}
};
-class TestProject : public Project
+class UserFileAccessorTestProject : public Project
{
public:
- TestProject() : Project("x-test/testproject", "/test/project")
+ UserFileAccessorTestProject() : Project("x-test/testproject", "/test/project")
{
setDisplayName("Test Project");
- setBuildSystemCreator<TestBuildSystem>("UserFileAccessorTest");
+ setBuildSystemCreator<UserFileAccesorTestBuildSystem>("UserFileAccessorTest");
}
bool needsConfiguration() const final { return false; }
};
-} // namespace
-
-void ProjectExplorerTest::testUserFileAccessor_prepareToReadSettings()
+class UserFileAccessorTest : public QObject
{
- TestProject project;
- TestUserFileAccessor accessor(&project);
+ Q_OBJECT
- Store data;
- data.insert("Version", 4);
- data.insert("Foo", "bar");
+private slots:
+ void testPrepareToReadSettings()
+ {
+ UserFileAccessorTestProject project;
+ TestUserFileAccessor accessor(&project);
- Store result = accessor.preprocessReadSettings(data);
+ Store data;
+ data.insert("Version", 4);
+ data.insert("Foo", "bar");
- QCOMPARE(result, data);
-}
+ Store result = accessor.preprocessReadSettings(data);
-void ProjectExplorerTest::testUserFileAccessor_prepareToWriteSettings()
-{
- TestProject project;
- TestUserFileAccessor accessor(&project);
-
- Store sharedData;
- sharedData.insert("Version", 10);
- sharedData.insert("shared1", "bar");
- sharedData.insert("shared2", "baz");
- sharedData.insert("shared3", "foo");
-
- accessor.storeSharedSettings(sharedData);
-
- Store data;
- data.insert("Version", 10);
- data.insert("shared1", "bar1");
- data.insert("unique1", 1234);
- data.insert("shared3", "foo");
- Store result = accessor.prepareToWriteSettings(data);
-
- QCOMPARE(result.count(), data.count() + 2);
- QCOMPARE(result.value("EnvironmentId").toByteArray(),
- projectExplorerSettings().environmentId.toByteArray());
- QCOMPARE(result.value("UserStickyKeys"), QVariant(QStringList({"shared1"})));
- QCOMPARE(result.value("Version").toInt(), accessor.currentVersion());
- QCOMPARE(result.value("shared1"), data.value("shared1"));
- QCOMPARE(result.value("shared3"), data.value("shared3"));
- QCOMPARE(result.value("unique1"), data.value("unique1"));
-}
+ QCOMPARE(result, data);
+ }
-void ProjectExplorerTest::testUserFileAccessor_mergeSettings()
-{
- TestProject project;
- TestUserFileAccessor accessor(&project);
-
- Store sharedData;
- sharedData.insert("Version", accessor.currentVersion());
- sharedData.insert("shared1", "bar");
- sharedData.insert("shared2", "baz");
- sharedData.insert("shared3", "foooo");
- TestUserFileAccessor::RestoreData shared("/shared/data", sharedData);
-
- Store data;
- data.insert("Version", accessor.currentVersion());
- data.insert("EnvironmentId", projectExplorerSettings().environmentId.toByteArray());
- data.insert("UserStickyKeys", QStringList({"shared1"}));
- data.insert("shared1", "bar1");
- data.insert("unique1", 1234);
- data.insert("shared3", "foo");
- TestUserFileAccessor::RestoreData user("/user/data", data);
- TestUserFileAccessor::RestoreData result = accessor.mergeSettings(user, shared);
-
- QVERIFY(!result.hasIssue());
- QCOMPARE(result.data.count(), data.count() + 1);
- // mergeSettings does not run updateSettings, so no OriginalVersion will be set
- QCOMPARE(result.data.value("EnvironmentId").toByteArray(),
- projectExplorerSettings().environmentId.toByteArray()); // unchanged
- QCOMPARE(result.data.value("UserStickyKeys"), QVariant(QStringList({"shared1"}))); // unchanged
- QCOMPARE(result.data.value("Version").toInt(), accessor.currentVersion()); // forced
- QCOMPARE(result.data.value("shared1"), data.value("shared1")); // from data
- QCOMPARE(result.data.value("shared2"), sharedData.value("shared2")); // from shared, missing!
- QCOMPARE(result.data.value("shared3"), sharedData.value("shared3")); // from shared
- QCOMPARE(result.data.value("unique1"), data.value("unique1"));
-}
+ void testPrepareToWriteSettings()
+ {
+ UserFileAccessorTestProject project;
+ TestUserFileAccessor accessor(&project);
+
+ Store sharedData;
+ sharedData.insert("Version", 10);
+ sharedData.insert("shared1", "bar");
+ sharedData.insert("shared2", "baz");
+ sharedData.insert("shared3", "foo");
+
+ accessor.storeSharedSettings(sharedData);
+
+ Store data;
+ data.insert("Version", 10);
+ data.insert("shared1", "bar1");
+ data.insert("unique1", 1234);
+ data.insert("shared3", "foo");
+ Store result = accessor.prepareToWriteSettings(data);
+
+ QCOMPARE(result.count(), data.count() + 2);
+ QCOMPARE(result.value("EnvironmentId").toByteArray(),
+ projectExplorerSettings().environmentId.toByteArray());
+ QCOMPARE(result.value("UserStickyKeys"), QVariant(QStringList({"shared1"})));
+ QCOMPARE(result.value("Version").toInt(), accessor.currentVersion());
+ QCOMPARE(result.value("shared1"), data.value("shared1"));
+ QCOMPARE(result.value("shared3"), data.value("shared3"));
+ QCOMPARE(result.value("unique1"), data.value("unique1"));
+ }
-void ProjectExplorerTest::testUserFileAccessor_mergeSettingsEmptyUser()
-{
- TestProject project;
- TestUserFileAccessor accessor(&project);
+ void testMergeSettings()
+ {
+ UserFileAccessorTestProject project;
+ TestUserFileAccessor accessor(&project);
+
+ Store sharedData;
+ sharedData.insert("Version", accessor.currentVersion());
+ sharedData.insert("shared1", "bar");
+ sharedData.insert("shared2", "baz");
+ sharedData.insert("shared3", "foooo");
+ TestUserFileAccessor::RestoreData shared("/shared/data", sharedData);
+
+ Store data;
+ data.insert("Version", accessor.currentVersion());
+ data.insert("EnvironmentId", projectExplorerSettings().environmentId.toByteArray());
+ data.insert("UserStickyKeys", QStringList({"shared1"}));
+ data.insert("shared1", "bar1");
+ data.insert("unique1", 1234);
+ data.insert("shared3", "foo");
+ TestUserFileAccessor::RestoreData user("/user/data", data);
+ TestUserFileAccessor::RestoreData result = accessor.mergeSettings(user, shared);
+
+ QVERIFY(!result.hasIssue());
+ QCOMPARE(result.data.count(), data.count() + 1);
+ // mergeSettings does not run updateSettings, so no OriginalVersion will be set
+ QCOMPARE(result.data.value("EnvironmentId").toByteArray(),
+ projectExplorerSettings().environmentId.toByteArray()); // unchanged
+ QCOMPARE(result.data.value("UserStickyKeys"), QVariant(QStringList({"shared1"}))); // unchanged
+ QCOMPARE(result.data.value("Version").toInt(), accessor.currentVersion()); // forced
+ QCOMPARE(result.data.value("shared1"), data.value("shared1")); // from data
+ QCOMPARE(result.data.value("shared2"), sharedData.value("shared2")); // from shared, missing!
+ QCOMPARE(result.data.value("shared3"), sharedData.value("shared3")); // from shared
+ QCOMPARE(result.data.value("unique1"), data.value("unique1"));
+ }
- Store sharedData;
- sharedData.insert("Version", accessor.currentVersion());
- sharedData.insert("shared1", "bar");
- sharedData.insert("shared2", "baz");
- sharedData.insert("shared3", "foooo");
- TestUserFileAccessor::RestoreData shared("/shared/data", sharedData);
+ void testMergeSettingsEmptyUser()
+ {
+ UserFileAccessorTestProject project;
+ TestUserFileAccessor accessor(&project);
- Store data;
- TestUserFileAccessor::RestoreData user("/shared/data", data);
+ Store sharedData;
+ sharedData.insert("Version", accessor.currentVersion());
+ sharedData.insert("shared1", "bar");
+ sharedData.insert("shared2", "baz");
+ sharedData.insert("shared3", "foooo");
+ TestUserFileAccessor::RestoreData shared("/shared/data", sharedData);
- TestUserFileAccessor::RestoreData result = accessor.mergeSettings(user, shared);
+ Store data;
+ TestUserFileAccessor::RestoreData user("/shared/data", data);
- QVERIFY(!result.hasIssue());
- QCOMPARE(result.data, sharedData);
-}
+ TestUserFileAccessor::RestoreData result = accessor.mergeSettings(user, shared);
-void ProjectExplorerTest::testUserFileAccessor_mergeSettingsEmptyShared()
+ QVERIFY(!result.hasIssue());
+ QCOMPARE(result.data, sharedData);
+ }
+
+ void testMergeSettingsEmptyShared()
+ {
+ UserFileAccessorTestProject project;
+ TestUserFileAccessor accessor(&project);
+
+ Store sharedData;
+ TestUserFileAccessor::RestoreData shared("/shared/data", sharedData);
+
+ Store data;
+ data.insert("Version", accessor.currentVersion());
+ data.insert("OriginalVersion", accessor.currentVersion());
+ data.insert("EnvironmentId", projectExplorerSettings().environmentId.toByteArray());
+ data.insert("UserStickyKeys", QStringList({"shared1"}));
+ data.insert("shared1", "bar1");
+ data.insert("unique1", 1234);
+ data.insert("shared3", "foo");
+ TestUserFileAccessor::RestoreData user("/shared/data", data);
+
+ TestUserFileAccessor::RestoreData result = accessor.mergeSettings(user, shared);
+
+ QVERIFY(!result.hasIssue());
+ QCOMPARE(result.data, data);
+ }
+};
+
+QObject *createUserFileAccessorTest()
{
- TestProject project;
- TestUserFileAccessor accessor(&project);
-
- Store sharedData;
- TestUserFileAccessor::RestoreData shared("/shared/data", sharedData);
-
- Store data;
- data.insert("Version", accessor.currentVersion());
- data.insert("OriginalVersion", accessor.currentVersion());
- data.insert("EnvironmentId", projectExplorerSettings().environmentId.toByteArray());
- data.insert("UserStickyKeys", QStringList({"shared1"}));
- data.insert("shared1", "bar1");
- data.insert("unique1", 1234);
- data.insert("shared3", "foo");
- TestUserFileAccessor::RestoreData user("/shared/data", data);
-
- TestUserFileAccessor::RestoreData result = accessor.mergeSettings(user, shared);
-
- QVERIFY(!result.hasIssue());
- QCOMPARE(result.data, data);
+ return new UserFileAccessorTest;
}
#endif // WITH_TESTS
+
+} // namespace Internal
+
+#ifdef WITH_TESTS
+#include <userfileaccessor.moc>
+#endif
diff --git a/src/plugins/projectexplorer/userfileaccessor.h b/src/plugins/projectexplorer/userfileaccessor.h
index 2efeba8b0f9..aba225b5158 100644
--- a/src/plugins/projectexplorer/userfileaccessor.h
+++ b/src/plugins/projectexplorer/userfileaccessor.h
@@ -43,5 +43,7 @@ private:
Project *m_project;
};
+QObject *createUserFileAccessorTest();
+
} // namespace Internal
} // namespace ProjectExplorer