File: version.t

package info (click to toggle)
libpdf-builder-perl 3.027-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,992 kB
  • sloc: perl: 107,532; makefile: 10
file content (77 lines) | stat: -rw-r--r-- 2,467 bytes parent folder | download
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
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/perl
use strict;
use warnings;

use Test::More;

use PDF::Builder;

# PDF::API2 changed header to 1.3, but PDF::Builder doesn't permit
# PDF::Builder will warn if PDF version is decreased

my $pdf = PDF::Builder->new('compress' => 0);  # default header 1.4, no trailer
$pdf->{'pdf'}->header_version('1.5');    # header says 1.5
$pdf->{'pdf'}->trailer_version('1.6');   # trailer says 1.6

is($pdf->pdf_version(), '1.6',   # trailer overrides header 1.6 vs 1.5
   q{pdf_version() returns whichever version is largest (1/2)});

$pdf->{'pdf'}->header_version('1.7');

is($pdf->pdf_version(), '1.7',   # header overrides trailer 1.7 vs 1.6
   q{pdf_version() returns whichever version is largest (2/2)});

$pdf->pdf_version('1.8');  # sets both header and trailer versions to 1.8

is($pdf->pdf_version(), '1.8',  # larger of H/T. then check individually
   q{pdf_version() is settable});

is($pdf->{'pdf'}->header_version(), '1.8',  # expect 1.8, set by version
   q{pdf_version() set header version});

is($pdf->{'pdf'}->trailer_version(), '1.8',  # expect 1.8, set by version
   q{pdf_version() set trailer version});

my $string = $pdf->to_string();

like($string, qr/%PDF-1.8/,
     q{Expected header version is present});

like($string, qr{/Version /1.8},
     q{Expected trailer version is present});

$pdf = PDF::Builder->new('compress' => 0);
$pdf->{'pdf'}->header_version('2.3');
$pdf->{'pdf'}->trailer_version('2.4');

# header 2.3, trailer 2.4, need 2.3 or higher so no change
my $version = $pdf->{'pdf'}->require_version('2.3');

is($version, '2.4',
   q{require_version returns current version});

$pdf->{'pdf'}->require_version('2.4');

is($pdf->{'pdf'}->header_version(), '2.3',
   q{require_version doesn't increase header version if trailer is sufficient});

# header 2.3, trailer 2.4, need 2.5 or higher so change both to 2.5
$version = $pdf->{'pdf'}->require_version('2.5');

is($pdf->pdf_version(), '2.5',
   q{require_version increases version when needed});

is($version, '2.4',
   q{require_version returns the previous version number});

#$pdf = PDF::Builder->new('compress' => 'none'); # version (header only) 1.4
#$pdf->pdf_version(1.3); # need to capture STDERR warning that version illegal
#is($pdf->pdf_version(), '1.4'); # should still be 1.4
#
#$pdf->pdf_version(1.6);
#$pdf->pdf_version(1.5); # need to capture STDERR warning that version drops
#is($pdf->pdf_version(), '1.5'); # should have dropped to 1.5

done_testing();

1;