mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2025-02-09 10:19:45 +08:00
119 lines
2.4 KiB
Fish
119 lines
2.4 KiB
Fish
|
import plugins/fish-spec
|
||
|
|
||
|
|
||
|
function describe_emacs
|
||
|
|
||
|
function before_all
|
||
|
set -g __emacs_current_editor $EDITOR
|
||
|
set -g __emacs_load_file $fish_path/plugins/emacs/emacs.load
|
||
|
set -g __emacs_functions e ec ek et ecd eeval efile eframe emacs emasc emcas
|
||
|
end
|
||
|
|
||
|
function before_each
|
||
|
set -e EDITOR
|
||
|
set -g __emacs '/bin/emacs'
|
||
|
set -g __emacs_version 25
|
||
|
end
|
||
|
|
||
|
function it_sets_editor_on_load
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect $EDITOR --to-equal "emacs"
|
||
|
end
|
||
|
|
||
|
function it_does_not_set_editor_when_it_is_already_set
|
||
|
set EDITOR 'vim'
|
||
|
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect $EDITOR --to-equal "vim"
|
||
|
end
|
||
|
|
||
|
function it_does_not_set_editor_when_emacs_is_not_found
|
||
|
emacs_is_not_found
|
||
|
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect "$EDITOR" --to-equal ""
|
||
|
end
|
||
|
|
||
|
function it_does_not_set_editor_when_emacs_version_is_lower_than_23
|
||
|
set __emacs_version 22
|
||
|
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect "$EDITOR" --to-equal ""
|
||
|
end
|
||
|
|
||
|
function it_adds_functions_to_fish_function_path
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect (functions) --to-contain-all $__emacs_functions
|
||
|
end
|
||
|
|
||
|
function it_has_a_test_helper_that_removes_emacs_functions
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect (functions) --to-contain-all $__emacs_functions
|
||
|
|
||
|
remove_emacs_functions
|
||
|
|
||
|
expect (functions) --to-not-contain-all $__emacs_functions
|
||
|
end
|
||
|
|
||
|
|
||
|
function it_does_not_add_functions_when_emacs_is_not_found
|
||
|
remove_emacs_functions
|
||
|
emacs_is_not_found
|
||
|
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect (functions) --to-not-contain-all $__emacs_functions
|
||
|
end
|
||
|
|
||
|
function it_does_not_add_functions_when_emacs_version_is_lower_than_23
|
||
|
set __emacs_version 22
|
||
|
|
||
|
expect (functions) --to-not-contain-all $__emacs_functions
|
||
|
|
||
|
load_emacs_plugin
|
||
|
|
||
|
expect (functions) --to-not-contain-all $__emacs_functions
|
||
|
end
|
||
|
|
||
|
|
||
|
function emacs_is_not_found
|
||
|
set __emacs ""
|
||
|
set __emacs_version ""
|
||
|
end
|
||
|
|
||
|
function load_emacs_plugin
|
||
|
source $__emacs_load_file
|
||
|
end
|
||
|
|
||
|
function remove_emacs_functions
|
||
|
for path in $fish_function_path
|
||
|
set match (echo $path | grep emacs)
|
||
|
if test -z "$match"
|
||
|
set -g __new_fish_function_path $__new_fish_function_path $path
|
||
|
end
|
||
|
end
|
||
|
|
||
|
set fish_function_path $__new_fish_function_path
|
||
|
set -e __new_fish_function_path
|
||
|
end
|
||
|
|
||
|
function after_all
|
||
|
set EDITOR $__emacs_current_editor
|
||
|
|
||
|
set -e __emacs
|
||
|
set -e __emacs_version
|
||
|
set -e __emacs_load_file
|
||
|
set -e __emacs_functions
|
||
|
set -e __emacs_current_editor
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
spec.run $argv
|