bunch of unittests (untested) to apply I'll run them and fix everything they might raise, and they are safe to merge as they don't introduce anything new, just test stuff.
I'm almost finishing the unittests -- finally. Tomaz
From 30342569081418cca547795ba278319b4fc0ad00 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tcanabr...@kde.org> Date: Mon, 17 Oct 2016 17:50:55 +0200 Subject: [PATCH 1/4] Tests for Units Preferences. Signed-off-by: Tomaz Canabrava <tcanabr...@kde.org> --- core/subsurface-qt/SettingsObjectWrapper.cpp | 4 ++- tests/testpreferences.cpp | 37 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp index 009ca64..101e665 100644 --- a/core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/core/subsurface-qt/SettingsObjectWrapper.cpp @@ -1557,7 +1557,9 @@ int UnitsSettings::verticalSpeedTime() const QString UnitsSettings::unitSystem() const { - return QString(); /*FIXME: there's no char * units on the prefs. */ + return prefs.unit_system == METRIC ? QStringLiteral("metric") + : prefs.unit_system == IMPERIAL ? QStringLiteral("imperial") + : QStringLiteral("personalized"); } bool UnitsSettings::coordinatesTraditional() const diff --git a/tests/testpreferences.cpp b/tests/testpreferences.cpp index 6847958..50389a0 100644 --- a/tests/testpreferences.cpp +++ b/tests/testpreferences.cpp @@ -410,6 +410,43 @@ void TestPreferences::testPreferences() TEST(planner->decoSac(),112); TEST(planner->decoMode(),RECREATIONAL); + + auto units = pref->unit_settings; + units->setLength(0); + units->setPressure(0); + units->setVolume(0); + units->setTemperature(0); + units->setWeight(0); + units->setVerticalSpeedTime(0); + units->setUnitSystem(QStringLiteral("metric")); + units->setCoordinatesTraditional(false); + + TEST(units->length(),0); + TEST(units->pressure(),0); + TEST(units->volume(),0); + TEST(units->temperature(),0); + TEST(units->weight(),0); + TEST(units->verticalSpeedTime(),0); + TEST(units->unitSystem(),QStringLiteral("metric")); + TEST(units->coordinatesTraditional(),false); + + units->setLength(1); + units->setPressure(1); + units->setVolume(1); + units->setTemperature(1); + units->setWeight(1); + units->setVerticalSpeedTime(1); + units->setUnitSystem(QStringLiteral("fake-metric-system")); + units->setCoordinatesTraditional(true); + + TEST(units->length(),1); + TEST(units->pressure(),1); + TEST(units->volume(),1); + TEST(units->temperature(),1); + TEST(units->weight(),1); + TEST(units->verticalSpeedTime(),1); + TEST(units->unitSystem(),QStringLiteral("personalized")); + TEST(units->coordinatesTraditional(),true); } QTEST_MAIN(TestPreferences) -- 2.10.0
From f42562b23d4f4a895dc6fb58bf162586ed7459a0 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tcanabr...@kde.org> Date: Mon, 17 Oct 2016 18:01:06 +0200 Subject: [PATCH 2/4] Add general settings unittests. Signed-off-by: Tomaz Canabrava <tcanabr...@kde.org> --- tests/testpreferences.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/testpreferences.cpp b/tests/testpreferences.cpp index 50389a0..ba8e6fe 100644 --- a/tests/testpreferences.cpp +++ b/tests/testpreferences.cpp @@ -447,6 +447,44 @@ void TestPreferences::testPreferences() TEST(units->verticalSpeedTime(),1); TEST(units->unitSystem(),QStringLiteral("personalized")); TEST(units->coordinatesTraditional(),true); + + auto general = pref->general_settings; + general->setDefaultFilename ("filename"); + general->setDefaultCylinder ("cylinder_2"); + //TODOl: Change this to a enum. + general->setDefaultFileBehavior (0); + + general->setDefaultSetPoint (0); + general->setO2Consumption (0); + general->setPscrRatio (0); + general->setUseDefaultFile (true); + + TEST(general->defaultFilename(), QStringLiteral("filename")); + TEST(general->defaultCylinder(), QStringLiteral("cylinder_2")); + TEST(general->defaultFileBehavior(), (short)0); + TEST(general->defaultSetPoint(), 0); + TEST(general->o2Consumption(), 0); + TEST(general->pscrRatio(), 0); + TEST(general->useDefaultFile(), true); + + general->setDefaultFilename ("no_file_name"); + general->setDefaultCylinder ("cylinder_1"); + //TODOl: Change this to a enum. + general->setDefaultFileBehavior (1); + + general->setDefaultSetPoint (1); + general->setO2Consumption (1); + general->setPscrRatio (1); + general->setUseDefaultFile (false); + + TEST(general->defaultFilename(), QStringLiteral("no_file_name")); + TEST(general->defaultCylinder(), QStringLiteral("cylinder_1")); + TEST(general->defaultFileBehavior(), (short) 1); + TEST(general->defaultSetPoint(), 1); + TEST(general->o2Consumption(), 1); + TEST(general->pscrRatio(), 1); + TEST(general->useDefaultFile(), false); + } QTEST_MAIN(TestPreferences) -- 2.10.0
From bfe49118c08aa4b9f8c2b2fd706f0cd3f8a37e3e Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tcanabr...@kde.org> Date: Mon, 17 Oct 2016 18:06:34 +0200 Subject: [PATCH 3/4] Testcases for display settings Signed-off-by: Tomaz Canabrava <tcanabr...@kde.org> --- tests/testpreferences.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/testpreferences.cpp b/tests/testpreferences.cpp index ba8e6fe..e8e3f09 100644 --- a/tests/testpreferences.cpp +++ b/tests/testpreferences.cpp @@ -485,6 +485,24 @@ void TestPreferences::testPreferences() TEST(general->pscrRatio(), 1); TEST(general->useDefaultFile(), false); + auto display = pref->display_settings; + display->setDivelistFont("comic"); + display->setFontSize(10.0); + display->setDisplayInvalidDives(true); + + TEST(display->divelistFont(),QStringLiteral("comic")); + TEST(display->fontSize(), 10.0); + TEST(display->displayInvalidDives(),(short) true); //TODO: this is true / false. + + display->setDivelistFont("helvetica"); + display->setFontSize(14.0); + display->setDisplayInvalidDives(false); + + TEST(display->divelistFont(),QStringLiteral("helvetica")); + TEST(display->fontSize(), 14.0); + TEST(display->displayInvalidDives(),(short) false); + + } QTEST_MAIN(TestPreferences) -- 2.10.0
From 16da16ed91746829c231d356b74a5c0e13b7dbb3 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tcanabr...@kde.org> Date: Mon, 17 Oct 2016 18:23:45 +0200 Subject: [PATCH 4/4] Added language testcase also, added a missing method / property Signed-off-by: Tomaz Canabrava <tcanabr...@kde.org> --- core/subsurface-qt/SettingsObjectWrapper.cpp | 7 +++++- core/subsurface-qt/SettingsObjectWrapper.h | 3 +++ tests/testpreferences.cpp | 37 +++++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp index 101e665..0e8c8ee 100644 --- a/core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/core/subsurface-qt/SettingsObjectWrapper.cpp @@ -1908,6 +1908,11 @@ bool LanguageSettingsObjectWrapper::useSystemLanguage() const return prefs.locale.use_system_language; } +QString LanguageSettingsObjectWrapper::langLocale() const +{ + return prefs.locale.lang_locale; +} + void LanguageSettingsObjectWrapper::setUseSystemLanguage(bool value) { if (value == prefs.locale.use_system_language) @@ -1927,7 +1932,7 @@ void LanguageSettingsObjectWrapper::setLangLocale(const QString &value) s.beginGroup(group); s.setValue("UiLangLocale", value); prefs.locale.lang_locale = copy_string(qPrintable(value)); - // no need to emit languageChanged since we already do this for setLanguage + emit langLocaleChanged(value); } void LanguageSettingsObjectWrapper::setLanguage(const QString& value) diff --git a/core/subsurface-qt/SettingsObjectWrapper.h b/core/subsurface-qt/SettingsObjectWrapper.h index 64e6a5a..d9b8196 100644 --- a/core/subsurface-qt/SettingsObjectWrapper.h +++ b/core/subsurface-qt/SettingsObjectWrapper.h @@ -597,6 +597,7 @@ class LanguageSettingsObjectWrapper : public QObject { Q_PROPERTY(QString time_format READ timeFormat WRITE setTimeFormat NOTIFY timeFormatChanged) Q_PROPERTY(QString date_format READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged) Q_PROPERTY(QString date_format_short READ dateFormatShort WRITE setDateFormatShort NOTIFY dateFormatShortChanged) + Q_PROPERTY(QString lang_locale READ langLocale WRITE setLangLocale NOTIFY langLocaleChanged) Q_PROPERTY(bool time_format_override READ timeFormatOverride WRITE setTimeFormatOverride NOTIFY timeFormatOverrideChanged) Q_PROPERTY(bool date_format_override READ dateFormatOverride WRITE setDateFormatOverride NOTIFY dateFormatOverrideChanged) Q_PROPERTY(bool use_system_language READ useSystemLanguage WRITE setUseSystemLanguage NOTIFY useSystemLanguageChanged) @@ -604,6 +605,7 @@ class LanguageSettingsObjectWrapper : public QObject { public: LanguageSettingsObjectWrapper(QObject *parent); QString language() const; + QString langLocale() const; QString timeFormat() const; QString dateFormat() const; QString dateFormatShort() const; @@ -622,6 +624,7 @@ public slots: void setUseSystemLanguage (bool value); signals: void languageChanged(const QString& value); + void langLocaleChanged(const QString& value); void timeFormatChanged(const QString& value); void dateFormatChanged(const QString& value); void dateFormatShortChanged(const QString& value); diff --git a/tests/testpreferences.cpp b/tests/testpreferences.cpp index e8e3f09..7ba2562 100644 --- a/tests/testpreferences.cpp +++ b/tests/testpreferences.cpp @@ -502,7 +502,42 @@ void TestPreferences::testPreferences() TEST(display->fontSize(), 14.0); TEST(display->displayInvalidDives(),(short) false); - + auto language = pref->language_settings; + language->setLangLocale ("en_US"); + language->setLanguage ("en"); + language->setTimeFormat ("hh:mm"); + language->setDateFormat ("dd/mm/yy"); + language->setDateFormatShort ("dd/mm"); + language->setTimeFormatOverride (false); + language->setDateFormatOverride (false); + language->setUseSystemLanguage (false); + + TEST(language->langLocale(), QStringLiteral("en_US")); + TEST(language->language(), QStringLiteral("en")); + TEST(language->timeFormat(), QStringLiteral("hh:mm")); + TEST(language->dateFormat(), QStringLiteral("dd/mm/yy")); + TEST(language->dateFormatShort(), QStringLiteral("dd/mm")); + TEST(language->timeFormatOverride(), false); + TEST(language->dateFormatOverride(), false); + TEST(language->useSystemLanguage(), false); + + language->setLangLocale ("en_EN"); + language->setLanguage ("br"); + language->setTimeFormat ("mm:hh"); + language->setDateFormat ("yy/mm/dd"); + language->setDateFormatShort ("dd/yy"); + language->setTimeFormatOverride (true); + language->setDateFormatOverride (true); + language->setUseSystemLanguage (true); + + TEST(language->langLocale(), QStringLiteral("en_EN")); + TEST(language->language(), QStringLiteral("br")); + TEST(language->timeFormat(), QStringLiteral("mm:hh")); + TEST(language->dateFormat(), QStringLiteral("yy/mm/dd")); + TEST(language->dateFormatShort(), QStringLiteral("dd/yy")); + TEST(language->timeFormatOverride(),true); + TEST(language->dateFormatOverride(),true); + TEST(language->useSystemLanguage(), true); } QTEST_MAIN(TestPreferences) -- 2.10.0
_______________________________________________ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface