1
0
mirror of https://github.com/Tarrasch/zsh-autoenv.git synced 2024-06-30 19:50:12 +03:00
zsh-autoenv/tests/leave.t
Daniel Hahler e68a914487 Change default values: .env => .autoenv.zsh etc
This changes the defaults:
 - AUTOENV_FILE_ENTER:   .env       => .autoenv.zsh
 - AUTOENV_FILE_LEAVE:   .env_leave => .autoenv_leave.zsh

`.env` is usually used only for key-value pairs for environment
settings, e.g. with foreman.  We do not want to interfere with this.

This also renames the setting/variable AUTOENV_ENV_FILENAME to
AUTOENV_AUTH_FILE, and uses the [XDG
spec](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables)
for the default location.

The new default location for the auth file will be
~/.local/share/autoenv_auth.

When the old setting is used, or the previous default exists, a warning
is given with instructions.

Fixes https://github.com/Tarrasch/zsh-autoenv/issues/31.
Closes https://github.com/Tarrasch/zsh-autoenv/pull/32.
2015-05-22 17:20:06 +02:00

125 lines
2.8 KiB
Perl

$ source $TESTDIR/setup.zsh || return 1
Lets set a simple .autoenv.zsh action
$ mkdir sub
$ cd sub
$ echo 'echo ENTERED' > .autoenv.zsh
$ echo 'echo LEFT' > .autoenv_leave.zsh
Change to the directory.
$ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ cd .
Attempting to load unauthorized env file!
-* /tmp/cramtests-*/leave.t/sub/.autoenv.zsh (glob)
**********************************************
echo ENTERED
**********************************************
Would you like to authorize it? (type 'yes') yes
ENTERED
Leave the directory and answer "no".
$ _autoenv_ask_for_yes() { echo "no"; return 1 }
$ cd ..
Attempting to load unauthorized env file!
-* /tmp/cramtests-*/leave.t/sub/.autoenv_leave.zsh (glob)
**********************************************
echo LEFT
**********************************************
Would you like to authorize it? (type 'yes') no
$ cd sub
ENTERED
$ _autoenv_ask_for_yes() { echo "yes"; return 0 }
$ cd ..
Attempting to load unauthorized env file!
-* /tmp/cramtests-*/leave.t/sub/.autoenv_leave.zsh (glob)
**********************************************
echo LEFT
**********************************************
Would you like to authorize it? (type 'yes') yes
LEFT
Now check with subdirs, looking upwards.
$ AUTOENV_LOOK_UPWARDS=1
$ mkdir sub/child
$ cd sub/child
ENTERED
$ cd .
$ cd ..
$ cd ..
LEFT
Now check with subdirs, not looking at parent dirs.
$ AUTOENV_LOOK_UPWARDS=0
$ cd sub/child
$ cd ..
ENTERED
$ cd child
$ cd ../..
LEFT
Test that .autoenv.zsh is sourced only once with AUTOENV_HANDLE_LEAVE=0.
$ unset _autoenv_stack_entered
$ AUTOENV_HANDLE_LEAVE=0
$ cd sub
ENTERED
$ cd ..
$ cd sub
Test that "leave" is not triggered when entering an outside dir via symlink.
$ AUTOENV_HANDLE_LEAVE=1
$ cd ..
LEFT
$ mkdir outside
$ cd outside
$ echo 'echo ENTERED outside: PWD:${PWD:t} pwd:${${"$(pwd)"}:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t} event:${autoenv_event}' > .autoenv.zsh
$ echo 'echo LEFT outside: PWD:${PWD:t} pwd:${${"$(pwd)"}:t} from:${autoenv_from_dir:t} to:${autoenv_to_dir:t} event:${autoenv_event}' > .autoenv_leave.zsh
$ test_autoenv_auth_env_files
$ cd ..
$ ln -s ../outside sub/symlink
$ cd sub
ENTERED
$ cd symlink
ENTERED outside: PWD:symlink pwd:symlink from:sub to:symlink event:enter
$ cd ../..
LEFT
LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave
$ cd sub/symlink
ENTERED outside: PWD:symlink pwd:symlink from:leave.t to:symlink event:enter
$autoenv_env_file should be reset when leaving.
$ echo $autoenv_env_file
*/leave.t/sub/symlink/.autoenv.zsh (glob)
$ cd ../..
LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave
$ echo ${autoenv_env_file:-empty}
empty