aboutsummaryrefslogtreecommitdiff
path: root/tests/test-indicator.cc
diff options
context:
space:
mode:
authorCharles Kerr <charles.kerr@canonical.com>2012-05-26 14:35:22 -0500
committerCharles Kerr <charles.kerr@canonical.com>2012-05-26 14:35:22 -0500
commite0d1b3299edde62797fe6fa08be3740f24c7d38e (patch)
tree9ac61723711222f84b17ad3c5d37a2d4a43e487a /tests/test-indicator.cc
parent676aef0608d08a7d2086742e0dbd6b05e2d548bd (diff)
downloadayatana-indicator-power-e0d1b3299edde62797fe6fa08be3740f24c7d38e.tar.gz
ayatana-indicator-power-e0d1b3299edde62797fe6fa08be3740f24c7d38e.tar.bz2
ayatana-indicator-power-e0d1b3299edde62797fe6fa08be3740f24c7d38e.zip
add coverage for various charging/discharging/charged states
Diffstat (limited to 'tests/test-indicator.cc')
-rw-r--r--tests/test-indicator.cc104
1 files changed, 101 insertions, 3 deletions
diff --git a/tests/test-indicator.cc b/tests/test-indicator.cc
index 4b39579..ad619e2 100644
--- a/tests/test-indicator.cc
+++ b/tests/test-indicator.cc
@@ -110,7 +110,6 @@ TEST_F(IndicatorTest, DischargingStrings)
INDICATOR_POWER_DEVICE_TIME, guint64(60*60),
NULL);
indicator_power_set_devices (power, &battery_device, 1);
-
GList * entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
ASSERT_EQ (g_list_length(entries), 1);
IndicatorObjectEntry * entry = static_cast<IndicatorObjectEntry*>(entries->data);
@@ -118,16 +117,115 @@ TEST_F(IndicatorTest, DischargingStrings)
ASSERT_STREQ(entry->name_hint, "indicator-power");
g_list_free (entries);
+ // give the indicator a discharging battery with 2 hours of life left
+ g_object_set (battery_device,
+ INDICATOR_POWER_DEVICE_PERCENTAGE, 100.0,
+ INDICATOR_POWER_DEVICE_TIME, guint64(60*60*2),
+ NULL);
+ indicator_power_set_devices (power, &battery_device, 1);
+ entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
+ ASSERT_EQ (g_list_length(entries), 1);
+ entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ (entry->accessible_desc, "Battery (2 hours left (100%))");
+ g_list_free (entries);
+
// give the indicator a discharging battery with over 12 hours of life left
g_object_set (battery_device,
- INDICATOR_POWER_DEVICE_STATE, UP_DEVICE_STATE_DISCHARGING,
- INDICATOR_POWER_DEVICE_PERCENTAGE, 50.0,
INDICATOR_POWER_DEVICE_TIME, guint64(60*60*12 + 1),
NULL);
indicator_power_set_devices (power, &battery_device, 1);
entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
ASSERT_EQ (g_list_length(entries), 1);
entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ (entry->accessible_desc, "Battery");
+ g_list_free (entries);
+
+ // give the indicator a discharging battery with 29 seconds left
+ g_object_set (battery_device,
+ INDICATOR_POWER_DEVICE_TIME, guint64(29),
+ NULL);
+ indicator_power_set_devices (power, &battery_device, 1);
+ entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
+ ASSERT_EQ (g_list_length(entries), 1);
+ entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ (entry->accessible_desc, "Battery (Unknown time left (100%))");
+ g_list_free (entries);
+
+ // what happens if the time estimate isn't available
+ g_object_set (battery_device,
+ INDICATOR_POWER_DEVICE_TIME, guint64(0),
+ INDICATOR_POWER_DEVICE_PERCENTAGE, 50.0,
+ NULL);
+ indicator_power_set_devices (power, &battery_device, 1);
+ entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
+ ASSERT_EQ (g_list_length(entries), 1);
+ entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ (entry->accessible_desc, "Battery (50%)");
+ g_list_free (entries);
+
+ // what happens if the time estimate AND percentage isn't available
+ g_object_set (battery_device,
+ INDICATOR_POWER_DEVICE_TIME, guint64(0),
+ INDICATOR_POWER_DEVICE_PERCENTAGE, 0.0,
+ NULL);
+ indicator_power_set_devices (power, &battery_device, 1);
+ entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
+ ASSERT_EQ (g_list_length(entries), 1);
+ entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ (entry->accessible_desc, "Battery (not present)");
+ g_list_free (entries);
+
+ // cleanup
+ g_object_unref (power);
+}
+
+TEST_F(IndicatorTest, ChargingStrings)
+{
+ IndicatorPower * power = INDICATOR_POWER(g_object_new (INDICATOR_POWER_TYPE, NULL));
+
+ // give the indicator a discharging battery with 1 hour of life left
+ g_object_set (battery_device,
+ INDICATOR_POWER_DEVICE_STATE, UP_DEVICE_STATE_CHARGING,
+ INDICATOR_POWER_DEVICE_PERCENTAGE, 50.0,
+ INDICATOR_POWER_DEVICE_TIME, guint64(60*60),
+ NULL);
+ indicator_power_set_devices (power, &battery_device, 1);
+ GList * entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
+ ASSERT_EQ (g_list_length(entries), 1);
+ IndicatorObjectEntry * entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ(entry->accessible_desc, "Battery (1 hour to charge (50%))");
+ g_list_free (entries);
+
+ // give the indicator a discharging battery with 2 hours of life left
+ g_object_set (battery_device,
+ INDICATOR_POWER_DEVICE_TIME, guint64(60*60*2),
+ NULL);
+ indicator_power_set_devices (power, &battery_device, 1);
+ entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
+ ASSERT_EQ (g_list_length(entries), 1);
+ entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ (entry->accessible_desc, "Battery (2 hours to charge (50%))");
+ g_list_free (entries);
+
+ // cleanup
+ g_object_unref (power);
+}
+
+TEST_F(IndicatorTest, ChargedStrings)
+{
+ IndicatorPower * power = INDICATOR_POWER(g_object_new (INDICATOR_POWER_TYPE, NULL));
+
+ // give the indicator a discharging battery with 1 hour of life left
+ g_object_set (battery_device,
+ INDICATOR_POWER_DEVICE_STATE, UP_DEVICE_STATE_FULLY_CHARGED,
+ INDICATOR_POWER_DEVICE_PERCENTAGE, 100.0,
+ INDICATOR_POWER_DEVICE_TIME, guint64(0),
+ NULL);
+ indicator_power_set_devices (power, &battery_device, 1);
+ GList * entries = indicator_object_get_entries (INDICATOR_OBJECT(power));
+ ASSERT_EQ (g_list_length(entries), 1);
+ IndicatorObjectEntry * entry = static_cast<IndicatorObjectEntry*>(entries->data);
+ ASSERT_STREQ(entry->accessible_desc, "Battery (charged)");
g_list_free (entries);
// cleanup