#!/bin/sh
set -e

TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"

setupenvironment
configarchitecture 'amd64'

testsuccess aptconfig dump
testsuccessequal 'APT::Architecture "amd64";' aptconfig dump APT::Architecture
testempty aptconfig dump config::which::does::not::exist

testsuccessequal 'APT::Architectures "";
APT::Architectures:: "amd64";' aptconfig dump APT::Architectures
testsuccessequal 'APT::Architectures:: "amd64";' aptconfig dump --no-empty APT::Architectures
testsuccessequal 'amd64' aptconfig dump --no-empty --format='%v%n' APT::Architectures

testempty aptconfig shell
testfailureequal 'E: Arguments not in pairs' aptconfig shell APT::Architecture
testempty aptconfig shell APT::Architecture ARCH # incorrect order
testsuccessequal "ARCH='amd64'" aptconfig shell ARCH APT::Architecture

ROOTDIR="$(readlink -f rootdir)"
testsuccessequal "CONFIG='apt.conf'" aptconfig shell CONFIG Dir::Etc::main
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/apt.conf'" aptconfig shell CONFIG Dir::Etc::main/f
testsuccessequal "CONFIG='etc/apt'" aptconfig shell CONFIG Dir::Etc
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/'" aptconfig shell CONFIG Dir::Etc/ # old style
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/'" aptconfig shell CONFIG Dir::Etc/d

testempty aptconfig dump --no-empty --format='%v%n' APT::Build-Profiles
export DEB_BUILD_PROFILES='nodoc stage1'
testsuccessequal 'nodoc
stage1' aptconfig dump --no-empty --format='%v%n' APT::Build-Profiles
unset DEB_BUILD_PROFILES
testempty aptconfig dump --no-empty --format='%v%n' APT::Build-Profiles

cat > spaces.conf <<EOF
Spaces::Test::"Foo Bar" "1 1";
Spaces::Test2::" Bar Baz " "B B" {
	A%20B "C C";
	"B C" "A A";
};
EOF
testsuccessequal 'Spaces::Test "";
Spaces::Test::Foo%20Bar "1 1";
Spaces::Test2 "";
Spaces::Test2::%20Bar%20Baz%20 "B B";
Spaces::Test2::%20Bar%20Baz%20::A%20B "C C";
Spaces::Test2::%20Bar%20Baz%20::B%20C "A A";' aptconfig dump -c spaces.conf Spaces::Test Spaces::Test2