mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-23 11:28:56 +00:00
4bb3046f0b
The QPDF_String::getUTF8Val() method was not treating strings that weren't explicitly Unicode as PDF Doc Encoded. This only affects characters in the range 0x80 through 0xa0.
58 lines
1.6 KiB
Perl
58 lines
1.6 KiB
Perl
#!/usr/bin/env perl
|
|
require 5.008;
|
|
BEGIN { $^W = 1; }
|
|
use strict;
|
|
|
|
chdir("bookmarks");
|
|
|
|
require TestDriver;
|
|
|
|
my $td = new TestDriver('pdf-bookmarks');
|
|
|
|
foreach my $show ("", " -show-open")
|
|
{
|
|
foreach my $style ("", " -lines", " -numbers")
|
|
{
|
|
my $xshow = $show ? $show : "x";
|
|
my $xstyle = $style ? $style : "x";
|
|
my $out = "test.$xshow.$xstyle.out";
|
|
$out =~ s/ //g;
|
|
$td->runtest("show:$show, style:$style",
|
|
{$td->COMMAND => "pdf-bookmarks $show $style 1.pdf"},
|
|
{$td->FILE => $out, $td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
}
|
|
}
|
|
$td->runtest("no bookmarks",
|
|
{$td->COMMAND => "pdf-bookmarks 2.pdf"},
|
|
{$td->STRING => "2.pdf has no bookmarks\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("bad",
|
|
{$td->COMMAND => "pdf-bookmarks 3.pdf"},
|
|
{$td->REGEXP => "pdf-bookmarks processing file 3.pdf: " .
|
|
".*unable to find trailer.*",
|
|
$td->EXIT_STATUS => 2},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("encrypted, targets",
|
|
{$td->COMMAND => "pdf-bookmarks -show-targets 4.pdf user"},
|
|
{$td->FILE => "encrypted.out",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("bookmarks deleted",
|
|
{$td->COMMAND => "pdf-bookmarks 5.pdf user"},
|
|
{$td->STRING => "5.pdf has no bookmarks\n",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->runtest("non-trivial pdf doc to unicode",
|
|
{$td->COMMAND => "pdf-bookmarks issue-179.pdf"},
|
|
{$td->FILE => "issue-179.out",
|
|
$td->EXIT_STATUS => 0},
|
|
$td->NORMALIZE_NEWLINES);
|
|
|
|
$td->report(11);
|