Cairo
view release on metacpan or search on metacpan
t/CairoSurface.t view on Meta::CPAN
my $surf = Cairo::PdfSurface->create ('tmp.pdf', IMG_WIDTH, IMG_HEIGHT);
$surf->restrict_to_version ('1-4');
$surf->restrict_to_version ('1-5');
my @versions = Cairo::PdfSurface::get_versions();
ok (scalar @versions > 0);
is ($versions[0], '1-4');
@versions = Cairo::PdfSurface->get_versions();
ok (scalar @versions > 0);
is ($versions[0], '1-4');
like (Cairo::PdfSurface::version_to_string('1-4'), qr/1\.4/);
like (Cairo::PdfSurface->version_to_string('1-4'), qr/1\.4/);
}
SKIP: {
skip 'new stuff', 4
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 10, 0);
my $mime_data = 'mime data for {set,get}_mime_data';
is ($surf->MIME_TYPE_JPEG, 'image/jpeg');
is ($surf->set_mime_data($surf->MIME_TYPE_JPEG, $mime_data), 'success');
my $recovered_mime_data = $surf->get_mime_data('unset mime type');
is ($recovered_mime_data, undef);
$recovered_mime_data = $surf->get_mime_data($surf->MIME_TYPE_JPEG);
is ($recovered_mime_data, $mime_data);
}
SKIP: {
skip 'new stuff', 2
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 12, 0);
is ($surf->supports_mime_type(Cairo::Surface::MIME_TYPE_JPEG), 1);
is ($surf->supports_mime_type('unsupported mime type'), 0);
}
SKIP: {
skip 'new stuff', 1
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 16, 0);
$surf->set_metadata("title","Testing metadata");
$surf->set_metadata("author","Johan Vromans");
$surf->set_metadata("subject","cairo_pdf_set_metadata");
ok(1); # No get_metadata, so assume OK if we're still alive
}
SKIP: {
skip 'new stuff', 3
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 16, 0);
$surf->set_page_label('Page label');
is ($surf->status(), 'success');
$surf->set_thumbnail_size(20, 20);
is ($surf->status(), 'success');
my $parent = $surf->add_outline($surf->OUTLINE_ROOT(), 'Cover', "dest='page=1'", ['bold']);
$parent = $surf->add_outline($parent, 'Chapter 1', 'page=2', ['bold', 'open']);
$parent = $surf->add_outline($parent, 'Section 1', 'page=2', ['open']);
$parent = $surf->add_outline($parent, 'Section 1.1', 'page=2', ['italic']);
$parent = $surf->add_outline($parent, 'Review', 'page=2', []);
is ($surf->status(), 'success');
}
unlink 'tmp.pdf';
}
SKIP: {
skip 'ps surface', 14
unless Cairo::HAS_PS_SURFACE;
my $surf = Cairo::PsSurface->create ('tmp.ps', IMG_WIDTH, IMG_HEIGHT);
skip 'create returned no ps surface', 15
unless defined $surf && $surf->isa ('Cairo::PsSurface');
isa_ok ($surf, 'Cairo::PsSurface');
isa_ok ($surf, 'Cairo::Surface');
SKIP: {
skip 'new stuff', 0
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 2, 0);
$surf->set_size (23, 42);
$surf->dsc_comment("Bla?");
$surf->dsc_begin_setup;
$surf->dsc_begin_page_setup;
}
# create_similar might return any kind of surface
$surf = Cairo::Surface->create_similar ($surf, 'alpha', IMG_WIDTH, IMG_HEIGHT);
isa_ok ($surf, 'Cairo::Surface');
unlink 'tmp.ps';
SKIP: {
skip 'create_for_stream on ps surfaces', 4
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 2, 0);
skip 'create_for_stream on ps surfaces', 4
if (Cairo::VERSION() >= Cairo::VERSION_ENCODE (1, 4, 0) &&
Cairo::VERSION() < Cairo::VERSION_ENCODE (1, 4, 8));
$surf = Cairo::PsSurface->create_for_stream (sub {
my ($closure, $data) = @_;
is ($closure, 'blub');
like ($data, qr/PS/);
die 'write-error';
}, 'blub', IMG_WIDTH, IMG_HEIGHT);
isa_ok ($surf, 'Cairo::PsSurface');
isa_ok ($surf, 'Cairo::Surface');
}
SKIP: {
skip 'new stuff', 7
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 6, 0);
( run in 0.784 second using v1.01-cache-2.11-cpan-524268b4103 )