#!/bin/sh
. test/lib.sh

begin "Expects a name"
scdoc <<EOF >/dev/null
(8)
EOF
end 1

begin "Expects a section"
scdoc <<EOF >/dev/null
test
EOF
end 1

begin "Expects a section within the parentheses"
scdoc <<EOF >/dev/null
test()
EOF
end 1

begin "Expects name to alphanumeric"
scdoc <<EOF >/dev/null
!!!!(8)
EOF
end 1

begin "Expects section to start with a number"
scdoc <<EOF >/dev/null
test(hello)
EOF
end 1

begin "Expects section to be legit"
scdoc <<EOF >/dev/null
test(100)
EOF
end 1

begin "Expects section to be legit with subsection"
scdoc <<EOF >/dev/null
test(100hello)
EOF
end 1

begin "Expects section not to contain a space"
scdoc <<EOF >/dev/null
test(8 hello)
EOF
end 1

begin "Accepts a valid preamble"
scdoc <<EOF >/dev/null
test(8)
EOF
end 0

begin "Accepts a valid preamble with subsection"
scdoc <<EOF >/dev/null
test(8hello)
EOF
end 0

# Make sure SOURCE_DATE_EPOCH is not set for the next tests
unset SOURCE_DATE_EPOCH
date_escaped="$(date -u +'%F' | sed 's/-/\\\\-/g')"

begin "Writes the appropriate header"
scdoc <<EOF | grep '^\.TH "test" "8" "'"${date_escaped}"'"' >/dev/null
test(8)
EOF
end 0

begin "Preserves dashes and add escaping"
scdoc <<EOF | grep '^\.TH "test\\-manual" "8" "'"${date_escaped}"'"' >/dev/null
test-manual(8)
EOF
end 0

begin "Handles extra footer field"
scdoc <<EOF | grep '^\.TH "test\\-manual" "8" "'"${date_escaped}"'" "Footer"' >/dev/null
test-manual(8) "Footer"
EOF
end 0

begin "Handles both extra fields"
scdoc <<EOF | grep '^\.TH "test\\-manual" "8" "'"${date_escaped}"'" "Footer" "Header"' >/dev/null
test-manual(8) "Footer" "Header"
EOF
end 0

begin "Emits empty footer correctly"
scdoc <<EOF | grep '^\.TH "test\\-manual" "8" "'"${date_escaped}"'" "" "Header"' >/dev/null
test-manual(8) "" "Header"
EOF
end 0

export SOURCE_DATE_EPOCH=1512861537

begin "Supports \$SOURCE_DATE_EPOCH"
scdoc <<EOF | grep '^\.TH "reproducible\\-manual" "8" "2017\\-12\\-09"' >/dev/null
reproducible-manual(8)
EOF
end 0
