185 lines
5.8 KiB
Bash
Executable File
185 lines
5.8 KiB
Bash
Executable File
#!/usr/bin/env bats
|
|
|
|
load ../test_helper
|
|
|
|
function local_setup() {
|
|
load ../../completion/available/defaults.completion
|
|
function _known_hosts() { :; }
|
|
function defaults() { echo 'NSGlobalDomain, Bash It'; }
|
|
}
|
|
|
|
function __check_completion() {
|
|
# Get the parameters as a single value
|
|
COMP_LINE=$*
|
|
|
|
# Get the parameters as an array
|
|
eval set -- "$@"
|
|
COMP_WORDS=("$@")
|
|
|
|
# Index of the cursor in the line
|
|
COMP_POINT=${#COMP_LINE}
|
|
|
|
# Get the last character of the line that was entered
|
|
COMP_LAST=$((${COMP_POINT} - 1))
|
|
|
|
# If the last character was a space...
|
|
if [[ ${COMP_LINE:$COMP_LAST} = ' ' ]]; then
|
|
# ...then add an empty array item
|
|
COMP_WORDS+=('')
|
|
fi
|
|
|
|
# Word index of the last word
|
|
COMP_CWORD=$(( ${#COMP_WORDS[@]} - 1 ))
|
|
|
|
# Run the Bash-it completion function
|
|
_defaults
|
|
|
|
# Return the completion output
|
|
echo "${COMPREPLY[@]}"
|
|
}
|
|
|
|
@test "completion defaults: ensure that the _defaults function is available" {
|
|
type -a _defaults &> /dev/null
|
|
assert_success
|
|
}
|
|
|
|
@test "completion defaults: - show verbs and options" {
|
|
run __check_completion 'defaults '
|
|
assert_line -n 0 'delete domains export find help import read read-type rename write -currentHost -host'
|
|
}
|
|
|
|
@test "completion defaults: r* - show matching verbs" {
|
|
run __check_completion 'defaults r'
|
|
assert_line -n 0 'read read-type rename'
|
|
}
|
|
|
|
@test "completion defaults: R* - show matching verbs" {
|
|
run __check_completion 'defaults R'
|
|
assert_line -n 0 'read read-type rename'
|
|
}
|
|
|
|
@test "completion defaults: -* - show matching flags" {
|
|
run __check_completion 'defaults -'
|
|
assert_line -n 0 '-currentHost -host'
|
|
}
|
|
|
|
@test "completion defaults: -currentHost - show verbs" {
|
|
run __check_completion 'defaults -currentHost '
|
|
assert_line -n 0 'delete domains export find help import read read-type rename write'
|
|
}
|
|
|
|
@test "completion defaults: -host - show nothing" {
|
|
run __check_completion 'defaults -host '
|
|
assert_line -n 0 "$(_known_hosts -a)"
|
|
}
|
|
|
|
@test "completion defaults: -host some_computer_name - show verbs" {
|
|
run __check_completion 'defaults -host some_computer_name '
|
|
assert_line -n 0 'delete domains export find help import read read-type rename write'
|
|
}
|
|
|
|
@test "completion defaults: read - show all domains" {
|
|
run __check_completion 'defaults read '
|
|
assert_line -n 0 "NSGlobalDomain Bash\ It -app"
|
|
}
|
|
|
|
@test "completion defaults: read nsg* - show matching domains" {
|
|
run __check_completion 'defaults read nsg'
|
|
assert_line -n 0 "NSGlobalDomain"
|
|
}
|
|
|
|
@test "completion defaults: read NSG* - show matching domains" {
|
|
run __check_completion 'defaults read NSG'
|
|
assert_line -n 0 "NSGlobalDomain"
|
|
}
|
|
|
|
@test "completion defaults: read bash* - show matching domains" {
|
|
run __check_completion 'defaults read bash'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: read BASH* - show matching domains" {
|
|
run __check_completion 'defaults read BASH'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: read bash* - show matching domains (with spaces)" {
|
|
run __check_completion 'defaults read bash\ i'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: read BASH* - show matching domains (with spaces)" {
|
|
run __check_completion 'defaults read BASH\ I'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -currentHost read - show all domains" {
|
|
run __check_completion 'defaults -currentHost read '
|
|
assert_line -n 0 "NSGlobalDomain Bash\ It -app"
|
|
}
|
|
|
|
@test "completion defaults: -currentHost read nsg* - show matching domains" {
|
|
run __check_completion 'defaults -currentHost read nsg'
|
|
assert_line -n 0 "NSGlobalDomain"
|
|
}
|
|
|
|
@test "completion defaults: -currentHost read NSG* - show matching domains" {
|
|
run __check_completion 'defaults -currentHost read NSG'
|
|
assert_line -n 0 "NSGlobalDomain"
|
|
}
|
|
|
|
@test "completion defaults: -currentHost read bash* - show matching domains" {
|
|
run __check_completion 'defaults -currentHost read bash'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -currentHost read BASH* - show matching domains" {
|
|
run __check_completion 'defaults -currentHost read BASH'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -currentHost read bash* - show matching domains (with spaces)" {
|
|
run __check_completion 'defaults -currentHost read bash\ i'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -currentHost read BASH* - show matching domains (with spaces)" {
|
|
run __check_completion 'defaults -currentHost read BASH\ I'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -host some.computer.name read - show all domains" {
|
|
run __check_completion 'defaults -host some.computer.name read '
|
|
assert_line -n 0 "NSGlobalDomain Bash\ It -app"
|
|
}
|
|
|
|
@test "completion defaults: -host some.computer.name read nsg* - show matching domains" {
|
|
run __check_completion 'defaults -host some.computer.name read nsg'
|
|
assert_line -n 0 "NSGlobalDomain"
|
|
}
|
|
|
|
@test "completion defaults: -host some.computer.name read NSG* - show matching domains" {
|
|
run __check_completion 'defaults -host some.computer.name read NSG'
|
|
assert_line -n 0 "NSGlobalDomain"
|
|
}
|
|
|
|
@test "completion defaults: -host some.computer.name read bash* - show matching domains" {
|
|
run __check_completion 'defaults -host some.computer.name read bash'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -host some.computer.name read BASH* - show matching domains" {
|
|
run __check_completion 'defaults -host some.computer.name read BASH'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -host some.computer.name read bash* - show matching domains (with spaces)" {
|
|
run __check_completion 'defaults -host some.computer.name read bash\ i'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|
|
|
|
@test "completion defaults: -host some.computer.name read BASH* - show matching domains (with spaces)" {
|
|
run __check_completion 'defaults -host some.computer.name read BASH\ I'
|
|
assert_line -n 0 "Bash\ It"
|
|
}
|