mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-22 19:08:59 +00:00
a734af681b
With cmake, we are customizing the path for each test suite so we can ensure we get the right qpdf without having to use an environment variable.
100 lines
3.0 KiB
Perl
100 lines
3.0 KiB
Perl
#!/usr/bin/env perl
|
|
require 5.008;
|
|
BEGIN { $^W = 1; }
|
|
use strict;
|
|
use File::Copy;
|
|
|
|
chdir("mod-info");
|
|
|
|
require TestDriver;
|
|
|
|
my $td = new TestDriver('pdf-mod-info');
|
|
|
|
my $prg = "pdf-mod-info";
|
|
|
|
cleanup();
|
|
|
|
$td->runtest("usage #1",
|
|
{$td->COMMAND => "$prg --in target.pdf"},
|
|
{$td->FILE => "usage.out",
|
|
$td->EXIT_STATUS => 2},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("usage #2",
|
|
{$td->COMMAND => "$prg --key abc --val def"},
|
|
{$td->FILE => "usage.out",
|
|
$td->EXIT_STATUS => 2},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("usage #3",
|
|
{$td->COMMAND => "$prg --key abc --val def abc"},
|
|
{$td->FILE => "usage.out",
|
|
$td->EXIT_STATUS => 2},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("usage #4",
|
|
{$td->COMMAND => "$prg --in source1.pdf --key date --val 01/01/01 --val 12/12/12"},
|
|
{$td->FILE => "usage.out",
|
|
$td->EXIT_STATUS => 2},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("dump #1",
|
|
{$td->COMMAND => "$prg --dump files/source1.pdf"},
|
|
{$td->FILE => "dump.out",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("dump #2",
|
|
{$td->COMMAND => "$prg --dump files/no-info.pdf"},
|
|
{$td->STRING => "",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("dump #3",
|
|
{$td->COMMAND => "$prg --dump files/empty-info.pdf"},
|
|
{$td->STRING => "",
|
|
$td->EXIT_STATUS => 0});
|
|
|
|
run_and_cmp("modify Subject",
|
|
"$prg --in files/source1.pdf --out out.pdf --key Subject " .
|
|
"--val \"Export Business\"",
|
|
"", "out.pdf", "files/1.qdf");
|
|
|
|
run_and_cmp("add Subject, remove Producer, modify CreationDate",
|
|
"$prg --in files/source2.pdf --out out.pdf --key Subject " .
|
|
"--val \"Tammlin\" --key Producer --key CreationDate --val 12/12",
|
|
"", "out.pdf", "files/2.qdf");
|
|
|
|
run_and_cmp("add Subject (empty-info file)",
|
|
"$prg --in files/empty-info.pdf --out out.pdf --key Subject " .
|
|
"--val Tammlin",
|
|
"", "out.pdf", "files/3.qdf");
|
|
|
|
copy("files/no-info.pdf", "no-info.pdf") or die "can't copy no-info: $!";
|
|
run_and_cmp("in-place Producer added (no-info file)",
|
|
"$prg --in no-info.pdf --key Producer --val \"Obivan Kinobi\"",
|
|
"", "no-info.pdf", "files/4.qdf");
|
|
|
|
cleanup();
|
|
|
|
$td->report(15);
|
|
|
|
sub cleanup
|
|
{
|
|
unlink (<*.pdf>);
|
|
}
|
|
|
|
sub run_and_cmp
|
|
{
|
|
my ($dsc, $cmd, $out, $fout, $fexp) = @_;
|
|
$td->runtest($dsc,
|
|
{$td->COMMAND => "$cmd --static-id"},
|
|
{$td->STRING => $out,
|
|
$td->EXIT_STATUS => 0});
|
|
$td->runtest("$dsc output",
|
|
{$td->COMMAND => "qpdf --static-id" .
|
|
" --no-original-object-ids -qdf $fout -"},
|
|
{$td->FILE => $fexp,
|
|
$td->EXIT_STATUS => 0});
|
|
}
|