2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-11-02 19:49:43 +00:00
qpdf/examples/qtest/mod-info.test
Jay Berkenbilt cb769c62e5 WHITESPACE ONLY -- expand tabs in source code
This comment expands all tabs using an 8-character tab-width. You
should ignore this commit when using git blame or use git blame -w.

In the early days, I used to use tabs where possible for indentation,
since emacs did this automatically. In recent years, I have switched
to only using spaces, which means qpdf source code has been a mixture
of spaces and tabs. I have avoided cleaning this up because of not
wanting gratuitous whitespaces change to cloud the output of git
blame, but I changed my mind after discussing with users who view qpdf
source code in editors/IDEs that have other tab widths by default and
in light of the fact that I am planning to start applying automatic
code formatting soon.
2022-02-08 11:51:15 -05:00

101 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";
my $qpdf = $ENV{'QPDF_BIN'} or die;
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});
}