diff --git a/plugins/available/battery.plugin.bash b/plugins/available/battery.plugin.bash index 55fa981f..7c035180 100644 --- a/plugins/available/battery.plugin.bash +++ b/plugins/available/battery.plugin.bash @@ -72,15 +72,8 @@ battery_percentage(){ echo ${IOREG_OUTPUT:--1} elif _command_exists WMIC; then - local WINPC=$(echo porcent=$(WMIC PATH Win32_Battery Get EstimatedChargeRemaining /Format:List) | grep -o '[0-9]*') - case $WINPC in - 100*) - echo '100' - ;; - *) - echo $WINPC - ;; - esac + local WINPC=$(WMIC PATH Win32_Battery Get EstimatedChargeRemaining /Format:List | grep -o '[0-9]\+' | head -1) + echo ${WINPC:--1} else echo "no" fi diff --git a/test/plugins/battery.plugin.bats b/test/plugins/battery.plugin.bats index fac42883..36eeab4f 100644 --- a/test/plugins/battery.plugin.bats +++ b/test/plugins/battery.plugin.bats @@ -272,3 +272,61 @@ function setup_ioreg { run battery_percentage assert_output "0" } + +####################### +# +# WMIC +# + +function setup_WMIC { + percent="$1" + + function WMIC { + printf "Charge: %s" "${percent}" + } +} + +@test 'plugins battery: battery-percentage with WMIC, 100%' { + setup_command_exists "WMIC" + + setup_WMIC "100%" + + run battery_percentage + assert_output "100" +} + +@test 'plugins battery: battery-percentage with WMIC, 98%' { + setup_command_exists "WMIC" + + setup_WMIC "98%" + + run battery_percentage + assert_output "98" +} + +@test 'plugins battery: battery-percentage with WMIC, 98.5%' { + setup_command_exists "WMIC" + + setup_WMIC "98.5%" + + run battery_percentage + assert_output "98" +} + +@test 'plugins battery: battery-percentage with WMIC, 4%' { + setup_command_exists "WMIC" + + setup_WMIC "4%" + + run battery_percentage + assert_output "4" +} + +@test 'plugins battery: battery-percentage with WMIC, no status' { + setup_command_exists "WMIC" + + setup_WMIC "" + + run battery_percentage + assert_output "-1" +}