From a85fd44e7b2dc67b3e0712e174e88d0eb6c467e7 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 23 Jun 2014 18:52:52 -0500 Subject: add GSettings support for specifying a default alarm sound and default alarm volume. --- tests/test-settings.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'tests') diff --git a/tests/test-settings.cpp b/tests/test-settings.cpp index 707247d..9af803f 100644 --- a/tests/test-settings.cpp +++ b/tests/test-settings.cpp @@ -100,6 +100,31 @@ protected: EXPECT_EQ(str, tmp); g_clear_pointer(&tmp, g_free); } + +#if 0 + void TestIntProperty(core::Property& property, const gchar* key) + { + EXPECT_EQ(g_settings_get_int(m_gsettings, key), property.get()); + + int expected_values[] = { 1, 2, 3 }; + + // modify GSettings and confirm that the new value is propagated + for(const int& expected_value : expected_values) + { + g_settings_set_int(m_gsettings, key, expected_value); + EXPECT_EQ(expected_value, property.get()); + EXPECT_EQ(expected_value, g_settings_get_int(m_gsettings, key)); + } + + // modify the property and confirm that the new value is propagated + for(const int& expected_value : expected_values) + { + property.set(expected_value); + EXPECT_EQ(expected_value, property.get()); + EXPECT_EQ(expected_value, g_settings_get_int(m_gsettings, key)); + } + } +#endif }; /*** @@ -129,6 +154,7 @@ TEST_F(SettingsFixture, StringProperties) { TestStringProperty(m_settings->custom_time_format, SETTINGS_CUSTOM_TIME_FORMAT_S); TestStringProperty(m_settings->timezone_name, SETTINGS_TIMEZONE_NAME_S); + TestStringProperty(m_settings->alarm_sound, SETTINGS_ALARM_SOUND_S); } TEST_F(SettingsFixture, TimeFormatMode) @@ -152,6 +178,31 @@ TEST_F(SettingsFixture, TimeFormatMode) } } +TEST_F(SettingsFixture, AlarmVolume) +{ + const auto key = SETTINGS_ALARM_VOLUME_S; + const AlarmVolume volumes[] = { ALARM_VOLUME_VERY_QUIET, + ALARM_VOLUME_QUIET, + ALARM_VOLUME_NORMAL, + ALARM_VOLUME_LOUD, + ALARM_VOLUME_VERY_LOUD }; + + for(const auto& val : volumes) + { + g_settings_set_enum(m_gsettings, key, val); + EXPECT_EQ(val, m_settings->alarm_volume.get()); + EXPECT_EQ(val, g_settings_get_enum(m_gsettings, key)); + } + + for(const auto& val : volumes) + { + m_settings->alarm_volume.set(val); + EXPECT_EQ(val, m_settings->alarm_volume.get()); + EXPECT_EQ(val, g_settings_get_enum(m_gsettings, key)); + } +} + + namespace { std::vector strv_to_vector(const gchar** strv) -- cgit v1.2.3 From 9c34627337380a3125ffc7173606d72a66feec2e Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 23 Jun 2014 19:03:47 -0500 Subject: in the snap decision code, handle custom sounds and volume levels. --- tests/manual-test-snap.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/manual-test-snap.cpp b/tests/manual-test-snap.cpp index 16e606a..a78fb9a 100644 --- a/tests/manual-test-snap.cpp +++ b/tests/manual-test-snap.cpp @@ -19,6 +19,7 @@ */ #include +#include #include #include @@ -29,6 +30,15 @@ using namespace unity::indicator::datetime; **** ***/ +namespace +{ + gboolean quit_idle (gpointer gloop) + { + g_main_loop_quit(static_cast(gloop)); + return G_SOURCE_REMOVE; + }; +} + int main() { Appointment a; @@ -47,15 +57,22 @@ int main() auto loop = g_main_loop_new(nullptr, false); auto show = [loop](const Appointment& appt){ g_message("You clicked 'show' for appt url '%s'", appt.url.c_str()); - g_main_loop_quit(loop); + g_idle_add(quit_idle, loop); }; auto dismiss = [loop](const Appointment&){ g_message("You clicked 'dismiss'"); - g_main_loop_quit(loop); + g_idle_add(quit_idle, loop); }; - - Snap snap; + + // only use local, temporary settings + g_assert(g_setenv("GSETTINGS_SCHEMA_DIR", SCHEMA_DIR, true)); + g_assert(g_setenv("GSETTINGS_BACKEND", "memory", true)); + g_debug("SCHEMA_DIR is %s", SCHEMA_DIR); + + auto settings = std::make_shared(); + Snap snap (settings); snap(a, show, dismiss); g_main_loop_run(loop); + g_main_loop_unref(loop); return 0; } -- cgit v1.2.3 From 373832769c30a950629a4ca9474bd7f5bf03a6b4 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 24 Jun 2014 00:06:04 -0500 Subject: add GSettings support for specifying an alarm loop duration --- tests/test-settings.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/test-settings.cpp b/tests/test-settings.cpp index 9af803f..2b500b2 100644 --- a/tests/test-settings.cpp +++ b/tests/test-settings.cpp @@ -101,7 +101,6 @@ protected: g_clear_pointer(&tmp, g_free); } -#if 0 void TestIntProperty(core::Property& property, const gchar* key) { EXPECT_EQ(g_settings_get_int(m_gsettings, key), property.get()); @@ -124,7 +123,6 @@ protected: EXPECT_EQ(expected_value, g_settings_get_int(m_gsettings, key)); } } -#endif }; /*** @@ -150,6 +148,11 @@ TEST_F(SettingsFixture, BoolProperties) TestBoolProperty(m_settings->show_year, SETTINGS_SHOW_YEAR_S); } +TEST_F(SettingsFixture, IntProperties) +{ + TestIntProperty(m_settings->alarm_duration, SETTINGS_ALARM_DURATION_S); +} + TEST_F(SettingsFixture, StringProperties) { TestStringProperty(m_settings->custom_time_format, SETTINGS_CUSTOM_TIME_FORMAT_S); -- cgit v1.2.3 From dd54649aa56790ec43fc4272bc41e6916b4ebb31 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 24 Jun 2014 00:06:55 -0500 Subject: in the snap decision code, handle sound custom loop durations --- tests/manual-test-snap.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/manual-test-snap.cpp b/tests/manual-test-snap.cpp index a78fb9a..90dbe08 100644 --- a/tests/manual-test-snap.cpp +++ b/tests/manual-test-snap.cpp @@ -21,11 +21,15 @@ #include #include #include +#include #include using namespace unity::indicator::datetime; +#define TIMEZONE_FILE ("/etc/timezone") + + /*** **** ***/ @@ -70,7 +74,9 @@ int main() g_debug("SCHEMA_DIR is %s", SCHEMA_DIR); auto settings = std::make_shared(); - Snap snap (settings); + auto timezones = std::make_shared(settings, TIMEZONE_FILE); + auto clock = std::make_shared(timezones); + Snap snap (clock, settings); snap(a, show, dismiss); g_main_loop_run(loop); g_main_loop_unref(loop); -- cgit v1.2.3