aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/qtest/page_api.test
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/qtest/page_api.test')
-rw-r--r--qpdf/qtest/page_api.test62
1 files changed, 62 insertions, 0 deletions
diff --git a/qpdf/qtest/page_api.test b/qpdf/qtest/page_api.test
new file mode 100644
index 00000000..6bae2782
--- /dev/null
+++ b/qpdf/qtest/page_api.test
@@ -0,0 +1,62 @@
+#!/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('page_api');
+
+my $n_tests = 11;
+
+$td->runtest("basic page API",
+ {$td->COMMAND => "test_driver 15 page_api_1.pdf"},
+ {$td->STRING => "test 15 done\n", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("check output",
+ {$td->FILE => "a.pdf"},
+ {$td->FILE => "page_api_1-out.pdf"});
+$td->runtest("manual page manipulation",
+ {$td->COMMAND => "test_driver 16 page_api_1.pdf"},
+ {$td->STRING => "test 16 done\n", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("check output",
+ {$td->FILE => "a.pdf"},
+ {$td->FILE => "page_api_1-out2.pdf"});
+$td->runtest("duplicate page",
+ {$td->COMMAND => "test_driver 17 page_api_2.pdf"},
+ {$td->FILE => "page_api_2.out", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("delete and re-add a page",
+ {$td->COMMAND => "test_driver 18 page_api_1.pdf"},
+ {$td->STRING => "test 18 done\n", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("check output",
+ {$td->FILE => "a.pdf"},
+ {$td->FILE => "page_api_1-out3.pdf"});
+$td->runtest("duplicate page",
+ {$td->COMMAND => "test_driver 19 page_api_1.pdf"},
+ {$td->FILE => "page_api_1.out", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("remove page we don't have",
+ {$td->COMMAND => "test_driver 22 page_api_1.pdf"},
+ {$td->FILE => "page_api_1.out2", $td->EXIT_STATUS => 2},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("flatten rotation",
+ {$td->COMMAND => "qpdf --static-id --qdf".
+ " --no-original-object-ids" .
+ " --flatten-rotation boxes.pdf a.pdf"},
+ {$td->STRING => "", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+$td->runtest("check output",
+ {$td->FILE => "a.pdf"},
+ {$td->FILE => "boxes-flattened.pdf"});
+cleanup();
+$td->report($n_tests);