aboutsummaryrefslogtreecommitdiff
path: root/test/er_xdg_pipe_menu_scanner_tests.erl
diff options
context:
space:
mode:
Diffstat (limited to 'test/er_xdg_pipe_menu_scanner_tests.erl')
-rw-r--r--test/er_xdg_pipe_menu_scanner_tests.erl144
1 files changed, 0 insertions, 144 deletions
diff --git a/test/er_xdg_pipe_menu_scanner_tests.erl b/test/er_xdg_pipe_menu_scanner_tests.erl
deleted file mode 100644
index 3f93496..0000000
--- a/test/er_xdg_pipe_menu_scanner_tests.erl
+++ /dev/null
@@ -1,144 +0,0 @@
--module(er_xdg_pipe_menu_scanner_tests).
-
--include_lib("eunit/include/eunit.hrl").
-
-data_dirs_defaults_test() ->
- with_env(
- [{"XDG_DATA_HOME", false}, {"XDG_DATA_DIRS", false}, {"HOME", "/home/testuser"}],
- fun() ->
- ?assertEqual(
- [
- "/home/testuser/.local/share/applications",
- "/usr/local/share/applications",
- "/usr/share/applications"
- ],
- er_xdg_pipe_menu_scanner:data_dirs()
- )
- end
- ).
-
-data_dirs_honors_xdg_data_home_test() ->
- with_env(
- [{"XDG_DATA_HOME", "/custom/data"}, {"XDG_DATA_DIRS", false}, {"HOME", "/home/testuser"}],
- fun() ->
- ?assertEqual(
- [
- "/custom/data/applications",
- "/usr/local/share/applications",
- "/usr/share/applications"
- ],
- er_xdg_pipe_menu_scanner:data_dirs()
- )
- end
- ).
-
-data_dirs_honors_xdg_data_dirs_test() ->
- with_env(
- [
- {"XDG_DATA_HOME", false},
- {"XDG_DATA_DIRS", "/opt/flatpak/share:/var/lib/flatpak/exports/share"},
- {"HOME", "/home/testuser"}
- ],
- fun() ->
- ?assertEqual(
- [
- "/home/testuser/.local/share/applications",
- "/opt/flatpak/share/applications",
- "/var/lib/flatpak/exports/share/applications"
- ],
- er_xdg_pipe_menu_scanner:data_dirs()
- )
- end
- ).
-
-data_dirs_treats_empty_as_unset_test() ->
- with_env(
- [{"XDG_DATA_HOME", ""}, {"XDG_DATA_DIRS", ""}, {"HOME", "/home/testuser"}],
- fun() ->
- ?assertEqual(
- [
- "/home/testuser/.local/share/applications",
- "/usr/local/share/applications",
- "/usr/share/applications"
- ],
- er_xdg_pipe_menu_scanner:data_dirs()
- )
- end
- ).
-
-data_dirs_ignores_empty_segments_in_xdg_data_dirs_test() ->
- with_env(
- [{"XDG_DATA_HOME", false}, {"XDG_DATA_DIRS", "/a::/b:"}, {"HOME", "/home/testuser"}],
- fun() ->
- ?assertEqual(
- ["/home/testuser/.local/share/applications", "/a/applications", "/b/applications"],
- er_xdg_pipe_menu_scanner:data_dirs()
- )
- end
- ).
-
-data_dirs_skips_data_home_without_xdg_data_home_or_home_test() ->
- with_env(
- [{"XDG_DATA_HOME", false}, {"XDG_DATA_DIRS", false}, {"HOME", false}],
- fun() ->
- ?assertEqual(
- ["/usr/local/share/applications", "/usr/share/applications"],
- er_xdg_pipe_menu_scanner:data_dirs()
- )
- end
- ).
-
-find_desktop_files_recurses_and_skips_missing_dirs_test() ->
- Root = mk_tmp_dir(),
- SubDir = filename:join(Root, "kde4"),
- ok = file:make_dir(SubDir),
- ok = file:write_file(filename:join(Root, "top.desktop"), <<"[Desktop Entry]\n">>),
- ok = file:write_file(filename:join(SubDir, "nested.desktop"), <<"[Desktop Entry]\n">>),
- ok = file:write_file(filename:join(Root, "not-a-desktop-file.txt"), <<"ignore me">>),
- Missing = filename:join(Root, "does-not-exist"),
- Found = er_xdg_pipe_menu_scanner:find_desktop_files([Root, Missing]),
- ok = rm_rf(Root),
- ?assertEqual(
- lists:sort([filename:join(Root, "top.desktop"), filename:join(SubDir, "nested.desktop")]),
- lists:sort(Found)
- ).
-
-find_desktop_files_empty_for_no_dirs_test() ->
- ?assertEqual([], er_xdg_pipe_menu_scanner:find_desktop_files([])).
-
-%% -- helpers ----------------------------------------------------------------
-
-with_env(Vars, Fun) ->
- Saved = [{Name, os:getenv(Name)} || {Name, _} <- Vars],
- try
- lists:foreach(fun({Name, Value}) -> set_env(Name, Value) end, Vars),
- Fun()
- after
- lists:foreach(fun({Name, Value}) -> set_env(Name, Value) end, Saved)
- end.
-
-set_env(Name, false) -> os:unsetenv(Name);
-set_env(Name, Value) -> os:putenv(Name, Value).
-
-mk_tmp_dir() ->
- Path = filename:join(
- test_tmp_dir(), "eunit-scanner-" ++ integer_to_list(erlang:unique_integer([positive]))
- ),
- ok = file:make_dir(Path),
- Path.
-
-test_tmp_dir() ->
- case os:getenv("TMPDIR") of
- false -> "/tmp";
- Dir -> Dir
- end.
-
-rm_rf(Path) ->
- case filelib:is_dir(Path) of
- true ->
- {ok, Entries} = file:list_dir(Path),
- lists:foreach(fun(E) -> rm_rf(filename:join(Path, E)) end, Entries),
- file:del_dir(Path);
- false ->
- file:delete(Path)
- end.