mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
core: correct error in qPrefUpdateManager
make next_check (in qPrefUpdateManager) long instead of string Correct test cases (compare time_t not strings) Add test case to check time_t works as expected Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
parent
fa62ffdbf0
commit
62672276d0
5 changed files with 31 additions and 15 deletions
|
@ -55,7 +55,7 @@ typedef struct {
|
|||
bool dont_check_for_updates;
|
||||
bool dont_check_exists;
|
||||
const char *last_version_used;
|
||||
const char *next_check;
|
||||
int next_check;
|
||||
} update_manager_prefs_t;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -41,12 +41,17 @@ HANDLE_PREFERENCE_TXT_EXT(UpdateManager, "/LastVersionUsed", last_version_used,
|
|||
|
||||
void qPrefUpdateManager::set_next_check(const QDate& value)
|
||||
{
|
||||
QString valueString = value.toString("dd/MM/yyyy");
|
||||
if (valueString != prefs.update_manager.next_check) {
|
||||
qPrefPrivate::copy_txt(&prefs.update_manager.next_check, valueString);
|
||||
long time_value = value.toJulianDay();
|
||||
if (time_value != prefs.update_manager.next_check) {
|
||||
prefs.update_manager.next_check = time_value;
|
||||
disk_next_check(true);
|
||||
emit instance()->next_check_changed(value);
|
||||
}
|
||||
}
|
||||
DISK_LOADSYNC_TXT_EXT(UpdateManager, "/NextCheck", next_check, update_manager.);
|
||||
|
||||
void qPrefUpdateManager::disk_next_check(bool doSync)
|
||||
{
|
||||
if (doSync)
|
||||
qPrefPrivate::instance()->setting.setValue(group + "/NextCheck", prefs.update_manager.next_check);
|
||||
else
|
||||
prefs.update_manager.next_check = qPrefPrivate::instance()->setting.value(group + "/NextCheck", 0).toInt();
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ public:
|
|||
static bool dont_check_for_updates() { return prefs.update_manager.dont_check_for_updates; }
|
||||
static bool dont_check_exists() { return prefs.update_manager.dont_check_exists; }
|
||||
static const QString last_version_used() { return prefs.update_manager.last_version_used; }
|
||||
static const QDate next_check() { return QDate::fromString(QString(prefs.update_manager.next_check), "dd/MM/yyyy"); }
|
||||
static const QDate next_check() { return QDate::fromJulianDay(prefs.update_manager.next_check); }
|
||||
|
||||
public slots:
|
||||
static void set_dont_check_for_updates(bool value);
|
||||
|
|
|
@ -23,7 +23,7 @@ void TestQPrefUpdateManager::test_struct_get()
|
|||
prefs.update_manager.dont_check_for_updates = true;
|
||||
prefs.update_manager.dont_check_exists = true;
|
||||
prefs.update_manager.last_version_used = copy_qstring("last_version");
|
||||
prefs.update_manager.next_check = copy_qstring(QString("11/09/1957"));
|
||||
prefs.update_manager.next_check = QDate::fromString("11/09/1957", "dd/MM/yyyy").toJulianDay();
|
||||
|
||||
QCOMPARE(tst->dont_check_for_updates(), true);
|
||||
QCOMPARE(tst->dont_check_exists(), true);
|
||||
|
@ -40,12 +40,12 @@ void TestQPrefUpdateManager::test_set_struct()
|
|||
tst->set_dont_check_for_updates(false);
|
||||
tst->set_dont_check_exists(false);
|
||||
tst->set_last_version_used("last_version2");
|
||||
prefs.update_manager.next_check = copy_qstring(QString("11/09/1957"));
|
||||
tst->set_next_check(QDate::fromString("11/09/1957", "dd/MM/yyyy"));
|
||||
|
||||
QCOMPARE(prefs.update_manager.dont_check_for_updates, false);
|
||||
QCOMPARE(prefs.update_manager.dont_check_exists, false);
|
||||
QCOMPARE(QString(prefs.update_manager.last_version_used), QString("last_version2"));
|
||||
QCOMPARE(QDate::fromString(QString(prefs.update_manager.next_check), "dd/MM/yyyy"), QDate::fromString("11/09/1957", "dd/MM/yyyy"));
|
||||
QCOMPARE(QDate::fromJulianDay(prefs.update_manager.next_check), QDate::fromString("11/09/1957", "dd/MM/yyyy"));
|
||||
}
|
||||
|
||||
void TestQPrefUpdateManager::test_set_load_struct()
|
||||
|
@ -57,7 +57,7 @@ void TestQPrefUpdateManager::test_set_load_struct()
|
|||
// secure set_ stores on disk
|
||||
prefs.update_manager.dont_check_for_updates = true;
|
||||
prefs.update_manager.dont_check_exists = true;
|
||||
prefs.update_manager.next_check = copy_qstring(QString("value1"));
|
||||
prefs.update_manager.next_check = 100;
|
||||
|
||||
tst->set_dont_check_for_updates(false);
|
||||
tst->set_dont_check_exists(false);
|
||||
|
@ -67,12 +67,12 @@ void TestQPrefUpdateManager::test_set_load_struct()
|
|||
prefs.update_manager.dont_check_for_updates = true;
|
||||
prefs.update_manager.dont_check_exists = true;
|
||||
prefs.update_manager.last_version_used = copy_qstring("last_version");
|
||||
prefs.update_manager.next_check = copy_qstring(QString("01/01/2018"));
|
||||
prefs.update_manager.next_check = 1000;
|
||||
|
||||
tst->load();
|
||||
QCOMPARE(prefs.update_manager.dont_check_for_updates, false);
|
||||
QCOMPARE(QString(prefs.update_manager.last_version_used), QString("last_version2"));
|
||||
QCOMPARE(QDate::fromString(QString(prefs.update_manager.next_check),"dd/MM/yyyy"), QDate::fromString("11/09/1957", "dd/MM/yyyy"));
|
||||
QCOMPARE(QDate::fromJulianDay(prefs.update_manager.next_check), QDate::fromString("11/09/1957", "dd/MM/yyyy"));
|
||||
|
||||
// dont_check_exists is NOT stored on disk
|
||||
QCOMPARE(prefs.update_manager.dont_check_exists, true);
|
||||
|
@ -87,13 +87,13 @@ void TestQPrefUpdateManager::test_struct_disk()
|
|||
prefs.update_manager.dont_check_for_updates = true;
|
||||
prefs.update_manager.dont_check_exists = true;
|
||||
prefs.update_manager.last_version_used = copy_qstring("last_version");
|
||||
prefs.update_manager.next_check = copy_qstring("11/09/1957");
|
||||
prefs.update_manager.next_check = QDate::fromString("11/09/1957", "dd/MM/yyyy").toJulianDay();
|
||||
|
||||
tst->sync();
|
||||
prefs.update_manager.dont_check_for_updates = false;
|
||||
prefs.update_manager.dont_check_exists = false;
|
||||
prefs.update_manager.last_version_used = copy_qstring("");
|
||||
prefs.update_manager.next_check = copy_qstring("01/09/2057");
|
||||
prefs.update_manager.next_check = 1000;
|
||||
|
||||
tst->load();
|
||||
QCOMPARE(tst->dont_check_for_updates(), true);
|
||||
|
@ -120,6 +120,16 @@ void TestQPrefUpdateManager::test_multiple()
|
|||
QCOMPARE(tst_direct->dont_check_exists(), false);
|
||||
}
|
||||
|
||||
void TestQPrefUpdateManager::test_next_check()
|
||||
{
|
||||
auto tst = qPrefUpdateManager::instance();
|
||||
|
||||
prefs.update_manager.next_check = QDate::fromString("11/09/1957", "dd/MM/yyyy").toJulianDay();
|
||||
prefs.update_manager.next_check++;
|
||||
|
||||
QCOMPARE(tst->next_check(), QDate::fromString("12/09/1957", "dd/MM/yyyy"));
|
||||
}
|
||||
|
||||
#define TEST(METHOD, VALUE) \
|
||||
QCOMPARE(METHOD, VALUE); \
|
||||
update->sync(); \
|
||||
|
|
|
@ -15,6 +15,7 @@ private slots:
|
|||
void test_struct_disk();
|
||||
void test_multiple();
|
||||
void test_oldPreferences();
|
||||
void test_next_check();
|
||||
};
|
||||
|
||||
#endif // TESTQPREFUPDATEMANAGER_H
|
||||
|
|
Loading…
Reference in a new issue