pdf.tocgen.split / spec /cli_spec.sh
adelevett's picture
Upload 76 files
046e3b8 verified
#!/bin/bash -e
SPEC="spec/files"
checkeq() {
if res=$(diff "$1" "$2"); then
echo "[✓]"
else
echo "[✗]"
printf "%s\n" "$res"
return 1
fi
}
it() {
printf " it %s " "$*"
}
printf "pdfxmeta\n"
it "extracts metadata correctly"
checkeq <(pdfxmeta -p 1 "$SPEC/level2.pdf" "Section") \
"$SPEC/level2_meta"
it "extracts metadata in auto mode correctly"
checkeq <(pdfxmeta -a 1 -p 1 "$SPEC/level2.pdf" "Section") \
"$SPEC/level2_meta.toml"
printf "\npdftocgen\n"
it "generates toc for 2 level heading correctly"
checkeq <(pdftocgen "$SPEC/level2.pdf" < "$SPEC/level2_recipe.toml") \
"$SPEC/level2.toc"
it "generates toc for one page headings correctly"
checkeq <(pdftocgen "$SPEC/onepage.pdf" < "$SPEC/onepage_greedy.toml") \
"$SPEC/onepage.toc"
it "generates toc for hard mode correctly"
checkeq <(pdftocgen "$SPEC/hardmode.pdf" < "$SPEC/hardmode_recipe.toml") \
"$SPEC/hardmode.toc"
it "generates readable toc"
checkeq <(pdftocgen -H "$SPEC/level2.pdf" < "$SPEC/level2_recipe.toml") \
"$SPEC/level2_h.toc"
printf "\npdftocio\n"
tmpdir=$(mktemp -d)
it "adds toc to pdf and prints toc correctly"
checkeq <(pdftocgen "$SPEC/hardmode.pdf" < "$SPEC/hardmode_recipe.toml" | \
pdftocio -o "$tmpdir/out.pdf" "$SPEC/hardmode.pdf" && \
pdftocio -p "$tmpdir/out.pdf") \
"$SPEC/hardmode.toc"
it "prints toc when -p is set"
checkeq <(pdftocio -p "$SPEC/hastoc.pdf" < $SPEC/level2.toc) \
"$SPEC/hastoc.toc"
it "prints toc vpos when -v is set"
checkeq <(pdftocio -p -v "$SPEC/hastoc.pdf") \
"$SPEC/hastoc_v.toc"