mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +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_for_updates; | ||||||
| 	bool dont_check_exists; | 	bool dont_check_exists; | ||||||
| 	const char *last_version_used; | 	const char *last_version_used; | ||||||
| 	const char *next_check; | 	int next_check; | ||||||
| } update_manager_prefs_t; | } update_manager_prefs_t; | ||||||
| 
 | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
|  |  | ||||||
|  | @ -41,12 +41,17 @@ HANDLE_PREFERENCE_TXT_EXT(UpdateManager, "/LastVersionUsed", last_version_used, | ||||||
| 
 | 
 | ||||||
| void qPrefUpdateManager::set_next_check(const QDate& value) | void qPrefUpdateManager::set_next_check(const QDate& value) | ||||||
| { | { | ||||||
| 	QString valueString = value.toString("dd/MM/yyyy"); | 	long time_value = value.toJulianDay(); | ||||||
| 	if (valueString != prefs.update_manager.next_check) { | 	if (time_value != prefs.update_manager.next_check) { | ||||||
| 		qPrefPrivate::copy_txt(&prefs.update_manager.next_check, valueString); | 		prefs.update_manager.next_check = time_value; | ||||||
| 		disk_next_check(true); | 		disk_next_check(true); | ||||||
| 		emit instance()->next_check_changed(value); | 		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_for_updates() { return prefs.update_manager.dont_check_for_updates; } | ||||||
| 	static bool dont_check_exists() { return prefs.update_manager.dont_check_exists; } | 	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 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: | public slots: | ||||||
| 	static void set_dont_check_for_updates(bool value); | 	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_for_updates = true; | ||||||
| 	prefs.update_manager.dont_check_exists = true; | 	prefs.update_manager.dont_check_exists = true; | ||||||
| 	prefs.update_manager.last_version_used = copy_qstring("last_version"); | 	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_for_updates(), true); | ||||||
| 	QCOMPARE(tst->dont_check_exists(), 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_for_updates(false); | ||||||
| 	tst->set_dont_check_exists(false); | 	tst->set_dont_check_exists(false); | ||||||
| 	tst->set_last_version_used("last_version2"); | 	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_for_updates, false); | ||||||
| 	QCOMPARE(prefs.update_manager.dont_check_exists, false); | 	QCOMPARE(prefs.update_manager.dont_check_exists, false); | ||||||
| 	QCOMPARE(QString(prefs.update_manager.last_version_used), QString("last_version2")); | 	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() | void TestQPrefUpdateManager::test_set_load_struct() | ||||||
|  | @ -57,7 +57,7 @@ void TestQPrefUpdateManager::test_set_load_struct() | ||||||
| 	// secure set_ stores on disk
 | 	// secure set_ stores on disk
 | ||||||
| 	prefs.update_manager.dont_check_for_updates = true; | 	prefs.update_manager.dont_check_for_updates = true; | ||||||
| 	prefs.update_manager.dont_check_exists = 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_for_updates(false); | ||||||
| 	tst->set_dont_check_exists(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_for_updates = true; | ||||||
| 	prefs.update_manager.dont_check_exists = true; | 	prefs.update_manager.dont_check_exists = true; | ||||||
| 	prefs.update_manager.last_version_used = copy_qstring("last_version"); | 	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(); | 	tst->load(); | ||||||
| 	QCOMPARE(prefs.update_manager.dont_check_for_updates, false); | 	QCOMPARE(prefs.update_manager.dont_check_for_updates, false); | ||||||
| 	QCOMPARE(QString(prefs.update_manager.last_version_used), QString("last_version2")); | 	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
 | 	// dont_check_exists is NOT stored on disk
 | ||||||
| 	QCOMPARE(prefs.update_manager.dont_check_exists, true); | 	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_for_updates = true; | ||||||
| 	prefs.update_manager.dont_check_exists = true; | 	prefs.update_manager.dont_check_exists = true; | ||||||
| 	prefs.update_manager.last_version_used = copy_qstring("last_version"); | 	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(); | 	tst->sync(); | ||||||
| 	prefs.update_manager.dont_check_for_updates = false; | 	prefs.update_manager.dont_check_for_updates = false; | ||||||
| 	prefs.update_manager.dont_check_exists = false; | 	prefs.update_manager.dont_check_exists = false; | ||||||
| 	prefs.update_manager.last_version_used = copy_qstring(""); | 	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(); | 	tst->load(); | ||||||
| 	QCOMPARE(tst->dont_check_for_updates(), true); | 	QCOMPARE(tst->dont_check_for_updates(), true); | ||||||
|  | @ -120,6 +120,16 @@ void TestQPrefUpdateManager::test_multiple() | ||||||
| 	QCOMPARE(tst_direct->dont_check_exists(), false); | 	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)      \ | #define TEST(METHOD, VALUE)      \ | ||||||
| 	QCOMPARE(METHOD, VALUE); \ | 	QCOMPARE(METHOD, VALUE); \ | ||||||
| 	update->sync();           \ | 	update->sync();           \ | ||||||
|  |  | ||||||
|  | @ -15,6 +15,7 @@ private slots: | ||||||
| 	void test_struct_disk(); | 	void test_struct_disk(); | ||||||
| 	void test_multiple(); | 	void test_multiple(); | ||||||
| 	void test_oldPreferences(); | 	void test_oldPreferences(); | ||||||
|  | 	void test_next_check(); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #endif // TESTQPREFUPDATEMANAGER_H
 | #endif // TESTQPREFUPDATEMANAGER_H
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue