mirror of
https://github.com/qpdf/qpdf.git
synced 2024-11-12 07:46:28 +00:00
75 lines
2.4 KiB
Perl
75 lines
2.4 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('interactive-form');
|
|
|
|
my @form_tests = (
|
|
'minimal',
|
|
'form-empty-from-odt',
|
|
'form-mod1',
|
|
# Atril (MATE Document Viewer) 1.20.1 dumps appearance streams
|
|
# when modifying form fields, leaving /NeedAppearances true.
|
|
'form-filled-with-atril',
|
|
'form-bad-fields-array',
|
|
'form-errors',
|
|
'form-document-defaults',
|
|
);
|
|
|
|
my $n_tests = scalar(@form_tests) + 6;
|
|
|
|
# Many of the form*.pdf files were created by converting the
|
|
# LibreOffice document storage/form.odt to PDF and then manually
|
|
# modifying the resulting PDF in various ways. That file would be good
|
|
# starting point for generation of more complex forms should that be
|
|
# required in the future. The file storage/form.pdf is a direct export
|
|
# from LibreOffice with no modifications. The files
|
|
# storage/field-types.odt and storage/field-types.pdf are the basis of
|
|
# field-types.pdf used elsewhere in the test suite.
|
|
|
|
foreach my $f (@form_tests)
|
|
{
|
|
$td->runtest("form test: $f",
|
|
{$td->COMMAND => "test_driver 43 $f.pdf"},
|
|
{$td->FILE => "form-$f.out", $td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
}
|
|
|
|
$td->runtest("fill fields",
|
|
{$td->COMMAND => "test_driver 44 form-no-need-appearances.pdf"},
|
|
{$td->FILE => "form-no-need-appearances.out",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("compare files",
|
|
{$td->FILE => "a.pdf"},
|
|
{$td->FILE => "form-no-need-appearances-filled.pdf"});
|
|
|
|
$td->runtest("button fields",
|
|
{$td->COMMAND => "test_driver 51 button-set.pdf"},
|
|
{$td->FILE => "button-set.out", $td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("compare files",
|
|
{$td->FILE => "a.pdf"},
|
|
{$td->FILE => "button-set-out.pdf"});
|
|
|
|
$td->runtest("broken button fields",
|
|
{$td->COMMAND => "test_driver 51 button-set-broken.pdf"},
|
|
{$td->FILE => "button-set-broken.out", $td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
$td->runtest("compare files",
|
|
{$td->FILE => "a.pdf"},
|
|
{$td->FILE => "button-set-broken-out.pdf"});
|
|
|
|
cleanup();
|
|
$td->report($n_tests);
|