forked from qt-creator/qt-creator
SettingsAccessor: Add tests for findIssues
Change-Id: Ib78c2c93dc9404087efe485fdaaad69595aa0125 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -394,6 +394,9 @@ SettingsAccessor::ProceedInfo SettingsAccessor::reportIssues(const QVariantMap &
|
|||||||
const FileName &path,
|
const FileName &path,
|
||||||
QWidget *parent) const
|
QWidget *parent) const
|
||||||
{
|
{
|
||||||
|
if (!path.exists())
|
||||||
|
return Continue;
|
||||||
|
|
||||||
IssueInfo issue = findIssues(data, path);
|
IssueInfo issue = findIssues(data, path);
|
||||||
QMessageBox::Icon icon = QMessageBox::Information;
|
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);
|
const FileName defaultSettingsPath = userFilePath(d->m_baseFile, d->m_userSuffix);
|
||||||
|
|
||||||
int version = versionFromMap(data);
|
int version = versionFromMap(data);
|
||||||
if (!path.exists()) {
|
if (data.isEmpty() || version < firstSupportedVersion() || version > currentVersion()) {
|
||||||
return result;
|
|
||||||
} else if (data.isEmpty() || version < firstSupportedVersion() || version > currentVersion()) {
|
|
||||||
result.title = QApplication::translate("Utils::SettingsAccessor", "No Valid Settings Found");
|
result.title = QApplication::translate("Utils::SettingsAccessor", "No Valid Settings Found");
|
||||||
result.message = QApplication::translate("Utils::SettingsAccessor",
|
result.message = QApplication::translate("Utils::SettingsAccessor",
|
||||||
"<p>No valid settings file could be found.</p>"
|
"<p>No valid settings file could be found.</p>"
|
||||||
|
@@ -95,6 +95,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Make methods public for the tests:
|
// Make methods public for the tests:
|
||||||
|
using Utils::SettingsAccessor::findIssues;
|
||||||
using Utils::SettingsAccessor::isValidVersionAndId;
|
using Utils::SettingsAccessor::isValidVersionAndId;
|
||||||
using Utils::SettingsAccessor::isBetterMatch;
|
using Utils::SettingsAccessor::isBetterMatch;
|
||||||
using Utils::SettingsAccessor::upgradeSettings;
|
using Utils::SettingsAccessor::upgradeSettings;
|
||||||
@@ -134,6 +135,13 @@ private slots:
|
|||||||
void upgradeSettings_partialUpdate();
|
void upgradeSettings_partialUpdate();
|
||||||
void upgradeSettings_targetVersionTooOld();
|
void upgradeSettings_targetVersionTooOld();
|
||||||
void upgradeSettings_targetVersionTooNew();
|
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(),
|
static QVariantMap versionedMap(int version, const QByteArray &id = QByteArray(),
|
||||||
@@ -459,6 +467,84 @@ void tst_SettingsAccessor::upgradeSettings_targetVersionTooNew()
|
|||||||
QCOMPARE(result, input);
|
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)
|
QTEST_MAIN(tst_SettingsAccessor)
|
||||||
|
|
||||||
#include "tst_settings.moc"
|
#include "tst_settings.moc"
|
||||||
|
Reference in New Issue
Block a user