diff options
author | Benjamin Berg <bberg@redhat.com> | 2018-06-05 00:27:08 +0200 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2018-06-05 00:27:08 +0200 |
commit | d0e47290fef374b89b41035c17144f1ec439d65a (patch) | |
tree | e4b6591417f43aef0359ee16c612671bf4d3b1cb | |
parent | 674f390afc9749574968ed3ffc0fc1ff4f9170a7 (diff) | |
download | gnome-settings-daemon-benzea/nightlight-dut-fix.tar.gz |
color: Add test for disabled until tomorrow sunrise logicbenzea/nightlight-dut-fix
Disabled until tomorrow needs to detect whether sunrise has passed since
it was turned on. Test this logic to be correct in various cases.
-rw-r--r-- | plugins/color/gcm-self-test.c | 27 | ||||
-rw-r--r-- | plugins/color/gsd-night-light.c | 3 |
2 files changed, 30 insertions, 0 deletions
diff --git a/plugins/color/gcm-self-test.c b/plugins/color/gcm-self-test.c index f2971e87..f26e8b04 100644 --- a/plugins/color/gcm-self-test.c +++ b/plugins/color/gcm-self-test.c @@ -189,6 +189,33 @@ gcm_test_night_light (void) /* Ensure that the color temperature is still the default one.*/ g_assert_cmpint (gsd_night_light_get_temperature (nlight), ==, GSD_COLOR_TEMPERATURE_DEFAULT); + + + /* Check that disabled until tomorrow resets again correctly. */ + g_settings_set_double (settings, "night-light-schedule-from", 17.0); + g_settings_set_double (settings, "night-light-schedule-to", 7.f); + g_settings_set_boolean (settings, "night-light-enabled", TRUE); + gsd_night_light_set_disabled_until_tmw (nlight, TRUE); + + /* Move time past midnight */ + g_clear_pointer (&datetime_override, g_date_time_unref); + datetime_override = g_date_time_new_utc (2017, 2, 9, 1, 0, 0); + gsd_night_light_set_date_time_now (nlight, datetime_override); + g_assert_true (gsd_night_light_get_disabled_until_tmw (nlight)); + + /* Move past sunrise */ + g_clear_pointer (&datetime_override, g_date_time_unref); + datetime_override = g_date_time_new_utc (2017, 2, 9, 8, 0, 0); + gsd_night_light_set_date_time_now (nlight, datetime_override); + g_assert_false (gsd_night_light_get_disabled_until_tmw (nlight)); + + gsd_night_light_set_disabled_until_tmw (nlight, TRUE); + + /* Move into night more than 24h in the future */ + g_clear_pointer (&datetime_override, g_date_time_unref); + datetime_override = g_date_time_new_utc (2017, 2, 10, 20, 0, 0); + gsd_night_light_set_date_time_now (nlight, datetime_override); + g_assert_false (gsd_night_light_get_disabled_until_tmw (nlight)); } static void diff --git a/plugins/color/gsd-night-light.c b/plugins/color/gsd-night-light.c index cc602dff..2fd4c2eb 100644 --- a/plugins/color/gsd-night-light.c +++ b/plugins/color/gsd-night-light.c @@ -75,6 +75,7 @@ enum { static void poll_timeout_destroy (GsdNightLight *self); static void poll_timeout_create (GsdNightLight *self); +static void night_light_recheck (GsdNightLight *self); G_DEFINE_TYPE (GsdNightLight, gsd_night_light, G_TYPE_OBJECT); @@ -92,6 +93,8 @@ gsd_night_light_set_date_time_now (GsdNightLight *self, GDateTime *datetime) if (self->datetime_override != NULL) g_date_time_unref (self->datetime_override); self->datetime_override = g_date_time_ref (datetime); + + night_light_recheck (self); } static void |