From 3835562c5325c279809bb41c34c6afca6288a1cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Mei=C3=9Felbach?= Date: Fri, 29 Nov 2019 21:28:24 +0100 Subject: [WIP] Read custom providers from a ~/.config/sway-launcher-desktop/providers.conf file. --- .../config/0/sway-launcher-desktop/providers.conf | 7 +++++ tests/describe.bats | 6 ++-- tests/providers.bats | 36 ++++++++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 tests/data/config/0/sway-launcher-desktop/providers.conf create mode 100644 tests/providers.bats (limited to 'tests') diff --git a/tests/data/config/0/sway-launcher-desktop/providers.conf b/tests/data/config/0/sway-launcher-desktop/providers.conf new file mode 100644 index 0000000..4e82b2b --- /dev/null +++ b/tests/data/config/0/sway-launcher-desktop/providers.conf @@ -0,0 +1,7 @@ +[foo] +list_cmd=printf "foo\034foo" +launch_cmd=printf 'printf "{1}"' +preview_cmd=printf 'printf "{1}"' + +[incomplete] +list_cmd=echo 'nope' diff --git a/tests/describe.bats b/tests/describe.bats index d02ee96..1541974 100644 --- a/tests/describe.bats +++ b/tests/describe.bats @@ -1,13 +1,13 @@ @test "Name and description of firefox desktop file are properly extracted" { - run ../sway-launcher-desktop.sh describe data/desktop-files/0/applications/firefox.desktop desktop + run env XDG_CONFIG_HOME=./data/config ../sway-launcher-desktop.sh describe desktop ./data/desktop-files/0/applications/firefox.desktop [ "$status" -eq 0 ] [[ ${lines[0]} =~ "Firefox" ]] [[ ${lines[1]} =~ "Browse the World Wide Web" ]] } @test "Name and description of ls command should be given" { - run ../sway-launcher-desktop.sh describe ls command + run env XDG_CONFIG_HOME=./data/config ../sway-launcher-desktop.sh describe command ls [ "$status" -eq 0 ] [[ ${lines[0]} =~ "ls" ]] [[ ${lines[1]} =~ "list directory contents" ]] -} \ No newline at end of file +} diff --git a/tests/providers.bats b/tests/providers.bats new file mode 100644 index 0000000..1c11f0d --- /dev/null +++ b/tests/providers.bats @@ -0,0 +1,36 @@ +@test "Builtin desktop provider works" { + run env XDG_CONFIG_HOME=./data/config XDG_DATA_HOME=./data/desktop-files/1 XDG_DATA_DIRS=./data/desktop-files/0 ../sway-launcher-desktop.sh provide desktop + echo "OUTPUT:$output" + echo "LINES:${#lines[@]}" + [ "$status" -eq 0 ] + [[ ${#lines[@]} -gt 2 ]] +} + +@test "Builtin command provider works" { + run env XDG_CONFIG_HOME=./data/config XDG_DATA_HOME=./data/desktop-files/1 XDG_DATA_DIRS=./data/desktop-files/0 ../sway-launcher-desktop.sh provide command + echo "OUTPUT:$output" + echo "LINES:${#lines[@]}" + [ "$status" -eq 0 ] + [[ ${#lines[@]} -gt 2 ]] +} + +@test "Reads custom provider from providers.conf" { + run printf %q "$(env XDG_CONFIG_HOME=./data/config/0 ../sway-launcher-desktop.sh provide foo)" + echo "OUTPUT:$output" + [ "$status" -eq 0 ] + [[ ${output} == "$'foo\034foo'" ]] +} + +@test "Skips incomplete custom provider from providers.conf" { + run printf %q "$(env XDG_CONFIG_HOME=./data/config/0 ../sway-launcher-desktop.sh provide incomplete)" + echo "OUTPUT:$output" + [ "$status" -eq 0 ] + [[ ${output} == "''" ]] +} + +@test "Does not use builtin providers when reading from providers.conf" { + run printf %q "$(env XDG_CONFIG_HOME=./data/config/0 ../sway-launcher-desktop.sh provide desktop)" + echo "OUTPUT:$output" + [ "$status" -eq 0 ] + [[ ${output} == "''" ]] +} -- cgit v1.2.3