#!/bin/sh

set -e

# shellcheck source=snap-confine/tests/common.sh
. "${srcdir:-.}/snap-confine/tests/common.sh"

printf "Test appname whitelist"

cat >"$TMP/snap.name.app" <<EOF
# some comment
@unrestricted
EOF

# good
for name in snap.name.app snap.network-manager.NetworkManager snap.f00.bar-baz1 ; do
    printf "Test good appname whitelist - '%s'" "$name"
    if "$L" snap.name.app /bin/true ; then
        PASS
    else
        FAIL
    fi
done

for name in pkg-foo.bar.0binary-bar+baz pkg-foo_bar_1.1 appname/.. snap snap. snap.name. snap.name.app. snap!name.app snap.name!app sna.pname.app snap.n@me.app SNAP.name.app snap.Name.app snap.0name.app snap.-name.app snap.name.@app .name.app snap..name.app snap.name..app snap.name.app.. ; do
    printf "Test bad appname whitelist - '%s'" "$name"
    if "$L" $name /bin/true 2>/dev/null; then
        FAIL
    else
        PASS
    fi
done

printf "Test bad appname whitelist - 'appname space'"
if "$L" 'appname space' /bin/true 2>/dev/null; then
    # true returned successfully, our appname whitelist is broken!
    FAIL
else
    PASS
fi
