File size: 1,689 Bytes
046e3b8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/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"