fish-shell/tests/abbr.in
Kurtis Rader 0ec9acf0f0 harden abbr against undef vars
This is only needed if we make undefined vars an error as proposed in
issue #4163 but it's a good idea anyway.
2017-07-03 13:05:50 -07:00

71 lines
1.5 KiB
Fish

# Test basic add and list
abbr __abbr1 alpha beta gamma
abbr | grep __abbr1
# Erasing one that doesn't exist should do nothing
abbr --erase NOT_AN_ABBR
abbr | grep __abbr1
# Adding existing one should be idempotent
abbr __abbr1 alpha beta gamma
abbr | grep __abbr1
# Replacing
abbr __abbr1 delta
abbr | grep __abbr1
# -s and --show tests
abbr -s | grep __abbr1
abbr --show | grep __abbr1
# Test erasing
abbr -e __abbr1
abbr | grep __abbr1
# Ensure we escape special characters on output
abbr '~__abbr2' '$xyz'
abbr | grep __abbr2
abbr -e '~__abbr2'
# Ensure we handle leading dashes in abbreviation names properly
abbr -- '--__abbr3' 'xyz'
abbr | grep __abbr3
abbr -e -- '--__abbr3'
# Ensure we are not recognizing later "=" as separators
abbr d2 env a=b banana
abbr -l | string match -q d2; or echo "= test failed"
abbr "a b c" "d e f"; or true
# Test renaming
abbr __abbr4 omega
abbr | grep __abbr5
abbr -r __abbr4 __abbr5
abbr | grep __abbr5
abbr -e __abbr5
abbr | grep __abbr4
# Test renaming a nonexistent abbreviation
abbr -r __abbr6 __abbr; or true
# Test renaming to a abbreviation with spaces
abbr __abbr4 omega
abbr -r __abbr4 "g h i"; or true
abbr -e __abbr4
# Test renaming without arguments
abbr __abbr7 omega
abbr -r __abbr7; or true
# Test renaming with too many arguments
abbr __abbr8 omega
abbr -r __abbr8 __abbr9 __abbr10; or true
abbr | grep __abbr8
abbr | grep __abbr9; or true
abbr | grep __abbr10; or true
# Test renaming to existing abbreviation
abbr __abbr11 omega11
abbr __abbr12 omega12
abbr -r __abbr11 __abbr12; or true