You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

138 lines
1.8 KiB

#!/bin/bash
exname=$(basename $0)
prefix_cmd="
. /etc/shlib
include common
include parse
. ../lib/common
"
# mock
relation-get() {
local key="$1"
echo "$CFG" | shyaml get-value "$key" 2>/dev/null
}
export -f relation-get
cfg-get-value() {
local key="$1"
shyaml get-value "$key" 2>/dev/null
}
export -f cfg-get-value
get_service_relations() {
printf "%s\0" "${RELATIONS[@]}"
}
export -f get_service_relations
export state_tmpdir=$(mktemp -d -t tmp.XXXXXXXXXX)
trap "rm -rf \"$state_tmpdir\"" EXIT
##
## Tests
##
try "
__vhost_cfg_normalize_protocol '
protocol: both
'"
noerror
is out ',http,https,'
try "
__vhost_cfg_normalize_protocol '
protocol: http
'"
noerror
is out ',http,'
try "
__vhost_cfg_normalize_protocol '
protocol: https
'"
noerror
is out ',https,'
try "
__vhost_cfg_normalize_protocol '
protocol: ssl
'"
noerror
is out ',https,'
##
## auto
##
try "
__vhost_cfg_normalize_protocol '
protocol: auto
'"
noerror
is out ',http,'
try "
__vhost_cfg_normalize_protocol '
'"
noerror
is out ',http,'
try "
__vhost_cfg_normalize_protocol '
ssl: false
'"
noerror
is out ',http,'
try "
__vhost_cfg_normalize_protocol '
ssl: null
'"
noerror
is out ',http,'
try "
__vhost_cfg_normalize_protocol '
ssl: true
'"
noerror
is out ',http,https,'
## This case is special, we have values, but we don't know
## how if there are any plugin that can use it. For this
## function's responsibility, we are wanting 'ssl'.
try "
__vhost_cfg_normalize_protocol '
ssl: xxx
'"
noerror
is out ',http,https,'
try "
RELATIONS=(cert-provider foo a True)
__vhost_cfg_normalize_protocol '
'" "no ssl, but with cert-provider"
noerror
is out ',http,https,'
try "
RELATIONS=(cert-provider foo a True)
__vhost_cfg_normalize_protocol '
ssl: false
'" "with explicit ssl disable, but with cert-provider"
noerror
is out ',http,'