aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorBasil L. Contovounesios2020-06-11 13:49:31 +0100
committerBasil L. Contovounesios2020-06-18 13:11:17 +0100
commit453d30d92cbf940567869d4705c1fcfe57725825 (patch)
treed79b43fdae2af987c36f018635e0c74bd1f67b53 /test
parent23a148c9506f2a5bce71bd5c8822bb7cde6697e8 (diff)
downloademacs-453d30d92cbf940567869d4705c1fcfe57725825.tar.gz
emacs-453d30d92cbf940567869d4705c1fcfe57725825.zip
Improve battery.el UPower support
For discussion, see the following threads: https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00843.html https://lists.gnu.org/archive/html/emacs-devel/2020-02/msg00042.html https://lists.gnu.org/archive/html/emacs-devel/2020-02/msg00282.html * etc/NEWS: Announce that battery-upower is enabled by default. * lisp/battery.el (battery-upower-device): Accept both battery and line power device names, or a list thereof (bug#39491). (battery-upower-line-power-device): Remove user option; superseded by battery-upower-device. (battery-upower-subscribe): New user option. (battery-status-function): Check whether a UPower service is provided without activating it. (display-battery-mode): Subscribe to UPower signals when using battery-upower. (battery-upower): Merge data from multiple power sources. Calculate terse battery status %b based on average battery load percentage rather than coarse and often missing BatteryLevel (bug#39491). Add support for average temperature %d. (battery-upower-dbus-service) (battery-upower-dbus-interface) (battery-upower-dbus-path) (battery-upower-dbus-device-interface) (battery-upower-dbus-device-path) (battery-upower-device-all-properties): Rename to... (battery-upower-service) (battery-upower-interface) (battery-upower-path) (battery-upower-device-interface) (battery-upower-device-path) (battery--upower-device-properties): ...these, respectively. (battery-upower-device-list): Rename to... (battery--upower-devices) ...this. Return a flat list of device names determined by battery-upower-device. (battery-upower-types, battery-upower-states) (battery-upower-device-property, battery-upower-device-autodetect): Remove. (battery--upower-signals): New variable. (battery--upower-signal-handler, battery--upower-props-changed) (battery--upower-unsubscribe, battery--upower-subsribe) (battery--upower-state): New functions. * test/lisp/battery-tests.el (battery-upower-state) (battery-upower-state-unknown): New tests.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/battery-tests.el63
1 files changed, 63 insertions, 0 deletions
diff --git a/test/lisp/battery-tests.el b/test/lisp/battery-tests.el
index 92ab013f040..8d7cc7fccf3 100644
--- a/test/lisp/battery-tests.el
+++ b/test/lisp/battery-tests.el
@@ -81,6 +81,69 @@
81 (should (equal (match-string 2 str) "mWh"))) 81 (should (equal (match-string 2 str) "mWh")))
82 (should-not (string-match (rx battery--acpi-capacity eos) "45 mW"))) 82 (should-not (string-match (rx battery--acpi-capacity eos) "45 mW")))
83 83
84(ert-deftest battery-upower-state ()
85 "Test `battery--upower-state'."
86 ;; Charging.
87 (dolist (total '(nil charging discharging empty fully-charged
88 pending-charge pending-discharge))
89 (should (eq (battery--upower-state '(("State" . 1)) total) 'charging)))
90 (dolist (state '(nil 0 1 2 3 4 5 6))
91 (should (eq (battery--upower-state `(("State" . ,state)) 'charging)
92 'charging)))
93 ;; Discharging.
94 (dolist (total '(nil discharging empty fully-charged
95 pending-charge pending-discharge))
96 (should (eq (battery--upower-state '(("State" . 2)) total) 'discharging)))
97 (dolist (state '(nil 0 2 3 4 5 6))
98 (should (eq (battery--upower-state `(("State" . ,state)) 'discharging)
99 'discharging)))
100 ;; Pending charge.
101 (dolist (total '(nil empty fully-charged pending-charge pending-discharge))
102 (should (eq (battery--upower-state '(("State" . 5)) total)
103 'pending-charge)))
104 (dolist (state '(nil 0 3 4 5 6))
105 (should (eq (battery--upower-state `(("State" . ,state)) 'pending-charge)
106 'pending-charge)))
107 ;; Pending discharge.
108 (dolist (total '(nil empty fully-charged pending-discharge))
109 (should (eq (battery--upower-state '(("State" . 6)) total)
110 'pending-discharge)))
111 (dolist (state '(nil 0 3 4 6))
112 (should (eq (battery--upower-state `(("State" . ,state)) 'pending-discharge)
113 'pending-discharge)))
114 ;; Empty.
115 (dolist (total '(nil empty))
116 (should (eq (battery--upower-state '(("State" . 3)) total) 'empty)))
117 (dolist (state '(nil 0 3))
118 (should (eq (battery--upower-state `(("State" . ,state)) 'empty) 'empty)))
119 ;; Fully charged.
120 (dolist (total '(nil fully-charged))
121 (should (eq (battery--upower-state '(("State" . 4)) total) 'fully-charged)))
122 (dolist (state '(nil 0 4))
123 (should (eq (battery--upower-state `(("State" . ,state)) 'fully-charged)
124 'fully-charged))))
125
126(ert-deftest battery-upower-state-unknown ()
127 "Test `battery--upower-state' with unknown states."
128 ;; Unknown running total retains new state.
129 (should-not (battery--upower-state () nil))
130 (should-not (battery--upower-state '(("State" . state)) nil))
131 (should-not (battery--upower-state '(("State" . 0)) nil))
132 (should (eq (battery--upower-state '(("State" . 1)) nil) 'charging))
133 (should (eq (battery--upower-state '(("State" . 2)) nil) 'discharging))
134 (should (eq (battery--upower-state '(("State" . 3)) nil) 'empty))
135 (should (eq (battery--upower-state '(("State" . 4)) nil) 'fully-charged))
136 (should (eq (battery--upower-state '(("State" . 5)) nil) 'pending-charge))
137 (should (eq (battery--upower-state '(("State" . 6)) nil) 'pending-discharge))
138 ;; Unknown new state retains running total.
139 (dolist (props '(() (("State" . state)) (("State" . 0))))
140 (dolist (total '(nil charging discharging empty fully-charged
141 pending-charge pending-discharge))
142 (should (eq (battery--upower-state props total) total))))
143 ;; Conflicting empty and fully-charged.
144 (should-not (battery--upower-state '(("State" . 3)) 'fully-charged))
145 (should-not (battery--upower-state '(("State" . 4)) 'empty)))
146
84(ert-deftest battery-format () 147(ert-deftest battery-format ()
85 "Test `battery-format'." 148 "Test `battery-format'."
86 (should (equal (battery-format "" ()) "")) 149 (should (equal (battery-format "" ()) ""))