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 )