2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-11-11 07:30:57 +00:00
qpdf/qpdf/qtest/appearance-streams.test
2022-05-20 09:16:25 -04:00

90 lines
2.9 KiB
Perl

#!/usr/bin/env perl
require 5.008;
use warnings;
use strict;
unshift(@INC, '.');
require qpdf_test_helpers;
chdir("qpdf") or die "chdir testdir failed: $!\n";
require TestDriver;
cleanup();
my $td = new TestDriver('appearance-streams');
my $n_tests = 12;
foreach my $f ('need-appearances',
'need-appearances-more',
'need-appearances-more2',
'need-appearances-more3')
{
$td->runtest("generate appearances and flatten ($f)",
{$td->COMMAND =>
"qpdf --qdf --no-original-object-ids --static-id" .
" --generate-appearances --flatten-annotations=all" .
" $f.pdf a.pdf"},
{$td->STRING => "", $td->EXIT_STATUS => 0},
$td->NORMALIZE_NEWLINES);
my $exp = 'appearances-a';
if ($f =~ m/appearances(-.*)$/)
{
$exp .= $1;
}
$exp .= '.pdf';
$td->runtest("compare files",
{$td->FILE => "a.pdf"},
{$td->FILE => $exp});
}
$td->runtest("more choices",
{$td->COMMAND =>
"qpdf --qdf --no-original-object-ids --static-id" .
" --generate-appearances" .
" more-choices.pdf b.pdf"},
{$td->STRING => "", $td->EXIT_STATUS => 0},
$td->NORMALIZE_NEWLINES);
# b.pdf still has forms
$td->runtest("compare files",
{$td->FILE => "b.pdf"},
{$td->FILE => "appearances-b.pdf"});
my @choice_values = qw(1 2 11 12 quack);
$n_tests += 3 * scalar(@choice_values);
foreach my $i (@choice_values)
{
# b.pdf was generated by qpdf and needs appearances
# test_driver 52 writes a.pdf
$td->runtest("set value to $i",
{$td->COMMAND => "test_driver 52 b.pdf $i"},
{$td->STRING => "setting list1 value\ntest 52 done\n",
$td->EXIT_STATUS => 0},
$td->NORMALIZE_NEWLINES);
$td->runtest("regenerate appearances",
{$td->COMMAND =>
"qpdf --qdf --no-original-object-ids --static-id" .
" --generate-appearances" .
" a.pdf b.pdf"},
{$td->STRING => "", $td->EXIT_STATUS => 0},
$td->NORMALIZE_NEWLINES);
$td->runtest("compare files",
{$td->FILE => "b.pdf"},
{$td->FILE => "appearances-$i.pdf"});
}
$td->runtest("Update resources from /DR",
{$td->COMMAND =>
"qpdf --qdf --no-original-object-ids --static-id" .
" --generate-appearances" .
" resource-from-dr.pdf a.pdf"},
{$td->STRING => "", $td->EXIT_STATUS => 0},
$td->NORMALIZE_NEWLINES);
$td->runtest("compare files",
{$td->FILE => "a.pdf"},
{$td->FILE => "resource-from-dr-out.pdf"});
cleanup();
$td->report($n_tests);