summaryrefslogtreecommitdiffstats
path: root/examples/qtest/mod-info.test
diff options
context:
space:
mode:
Diffstat (limited to 'examples/qtest/mod-info.test')
-rw-r--r--examples/qtest/mod-info.test93
1 files changed, 93 insertions, 0 deletions
diff --git a/examples/qtest/mod-info.test b/examples/qtest/mod-info.test
new file mode 100644
index 00000000..83cc3ba0
--- /dev/null
+++ b/examples/qtest/mod-info.test
@@ -0,0 +1,93 @@
+#!/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->runtest("usage #2",
+ {$td->COMMAND => "$prg -key abc -val def"},
+ {$td->FILE => "usage.out",
+ $td->EXIT_STATUS => 2});
+
+$td->runtest("usage #3",
+ {$td->COMMAND => "$prg -key abc -val def abc"},
+ {$td->FILE => "usage.out",
+ $td->EXIT_STATUS => 2});
+
+$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->runtest("dump #1",
+ {$td->COMMAND => "$prg --dump -in files/source1.pdf"},
+ {$td->FILE => "dump.out",
+ $td->EXIT_STATUS => 0});
+
+$td->runtest("dump #2",
+ {$td->COMMAND => "$prg --dump -in files/no-info.pdf"},
+ {$td->STRING => "",
+ $td->EXIT_STATUS => 0});
+
+$td->runtest("dump #3",
+ {$td->COMMAND => "$prg --dump -in 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 -qdf $fout -"},
+ {$td->FILE => $fexp,
+ $td->EXIT_STATUS => 0});
+}