SettingsAccessor: Add tests for findIssues

Change-Id: Ib78c2c93dc9404087efe485fdaaad69595aa0125
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Tobias Hunger
2017-11-17 22:17:29 +01:00
parent b8f2d746d0
commit 6044b84e14
2 changed files with 90 additions and 3 deletions

View File

@@ -394,6 +394,9 @@ SettingsAccessor::ProceedInfo SettingsAccessor::reportIssues(const QVariantMap &
const FileName &path,
QWidget *parent) const
{
if (!path.exists())
return Continue;
IssueInfo issue = findIssues(data, path);
QMessageBox::Icon icon = QMessageBox::Information;
@@ -429,9 +432,7 @@ SettingsAccessor::IssueInfo SettingsAccessor::findIssues(const QVariantMap &data
const FileName defaultSettingsPath = userFilePath(d->m_baseFile, d->m_userSuffix);
int version = versionFromMap(data);
if (!path.exists()) {
return result;
} else if (data.isEmpty() || version < firstSupportedVersion() || version > currentVersion()) {
if (data.isEmpty() || version < firstSupportedVersion() || version > currentVersion()) {
result.title = QApplication::translate("Utils::SettingsAccessor", "No Valid Settings Found");
result.message = QApplication::translate("Utils::SettingsAccessor",
"<p>No valid settings file could be found.</p>"

View File

@@ -95,6 +95,7 @@ public:
}
// Make methods public for the tests:
using Utils::SettingsAccessor::findIssues;
using Utils::SettingsAccessor::isValidVersionAndId;
using Utils::SettingsAccessor::isBetterMatch;
using Utils::SettingsAccessor::upgradeSettings;
@@ -134,6 +135,13 @@ private slots:
void upgradeSettings_partialUpdate();
void upgradeSettings_targetVersionTooOld();
void upgradeSettings_targetVersionTooNew();
void findIssues_ok();
void findIssues_emptyData();
void findIssues_tooNew();
void findIssues_tooOld();
void findIssues_wrongId();
void findIssues_nonDefaultPath();
};
static QVariantMap versionedMap(int version, const QByteArray &id = QByteArray(),
@@ -459,6 +467,84 @@ void tst_SettingsAccessor::upgradeSettings_targetVersionTooNew()
QCOMPARE(result, input);
}
void tst_SettingsAccessor::findIssues_ok()
{
const TestSettingsAccessor accessor;
const QVariantMap data = versionedMap(6, TESTACCESSOR_DEFAULT_ID);
const Utils::FileName path = Utils::FileName::fromString("/foo/bar.user");
const Utils::SettingsAccessor::IssueInfo info = accessor.findIssues(data, path);
QVERIFY(info.title.isEmpty());
QVERIFY(info.message.isEmpty());
QVERIFY(info.buttons.isEmpty());
}
void tst_SettingsAccessor::findIssues_emptyData()
{
const TestSettingsAccessor accessor;
const QVariantMap data;
const Utils::FileName path = Utils::FileName::fromString("/foo/bar.user");
const Utils::SettingsAccessor::IssueInfo info = accessor.findIssues(data, path);
QVERIFY(!info.title.isEmpty());
QVERIFY(!info.message.isEmpty());
QVERIFY(!info.buttons.isEmpty());
}
void tst_SettingsAccessor::findIssues_tooNew()
{
const TestSettingsAccessor accessor;
const QVariantMap data = versionedMap(42, TESTACCESSOR_DEFAULT_ID);
const Utils::FileName path = Utils::FileName::fromString("/foo/bar.user");
const Utils::SettingsAccessor::IssueInfo info = accessor.findIssues(data, path);
QVERIFY(!info.title.isEmpty());
QVERIFY(!info.message.isEmpty());
QVERIFY(!info.buttons.isEmpty());
}
void tst_SettingsAccessor::findIssues_tooOld()
{
const TestSettingsAccessor accessor;
const QVariantMap data = versionedMap(2, TESTACCESSOR_DEFAULT_ID);
const Utils::FileName path = Utils::FileName::fromString("/foo/bar.user");
const Utils::SettingsAccessor::IssueInfo info = accessor.findIssues(data, path);
QVERIFY(!info.title.isEmpty());
QVERIFY(!info.message.isEmpty());
QVERIFY(!info.buttons.isEmpty());
}
void tst_SettingsAccessor::findIssues_wrongId()
{
const TestSettingsAccessor accessor;
const QVariantMap data = versionedMap(6, "foo");
const Utils::FileName path = Utils::FileName::fromString("/foo/bar.user");
const Utils::SettingsAccessor::IssueInfo info = accessor.findIssues(data, path);
QVERIFY(!info.title.isEmpty());
QVERIFY(!info.message.isEmpty());
QVERIFY(!info.buttons.isEmpty());
}
void tst_SettingsAccessor::findIssues_nonDefaultPath()
{
const TestSettingsAccessor accessor;
const QVariantMap data = versionedMap(6, TESTACCESSOR_DEFAULT_ID);
const Utils::FileName path = Utils::FileName::fromString("/foo/bar.user.foobar");
const Utils::SettingsAccessor::IssueInfo info = accessor.findIssues(data, path);
QVERIFY(!info.title.isEmpty());
QVERIFY(!info.message.isEmpty());
QVERIFY(!info.buttons.isEmpty());
}
QTEST_MAIN(tst_SettingsAccessor)
#include "tst_settings.moc"