]> git.imager.perl.org - imager.git/blob - t/t31font.t
test that sub-module MANIFESTs include all the files the main MANIFEST does
[imager.git] / t / t31font.t
1 #!perl -w
2 use strict;
3 use Imager;
4 use Test::More tests => 14;
5
6 unshift @INC, "t";
7
8 ok(Imager::Font->register(type => "test",
9                           class=>"GoodTestFont",
10                           files => "\\.ppm\$"),
11    "register a test font");
12
13 ok(Imager::Font->register(type => "bad",
14                           class => "BadTestFont",
15                           files => "\\.ppm\$"),
16    "register a bad test font");
17
18 ok(!Imager::Font->register(), "no register parameters");
19 like(Imager->errstr, qr/No type parameter/, "check message");
20
21 ok(!Imager::Font->register(type => "bad1"), "no class parameter");
22 like(Imager->errstr, qr/No class parameter/, "check message");
23
24 ok(!Imager::Font->register(type => "bad2", class => "BadFont", files => "**"),
25    "bad files parameter");
26 is(Imager->errstr, "files isn't a valid regexp", "check message");
27
28 Imager::Font->priorities("bad", "test");
29
30 # RT #62855
31 # previously we'd select the first file matched font driver, even if
32 # it wasn't available, then crash loading it.
33
34 SKIP:
35 {
36   my $good;
37   ok(eval {
38     $good = Imager::Font->new(file => "testimg/penguin-base.ppm");
39   }, "load good font avoiding RT 62855")
40     or skip("Failed to load", 1);
41   ok($good->isa("GoodTestFont"), "and it's the right type");
42 }
43
44
45 use Imager::Font::Test;
46
47 # check string() and align_string() handle an empty image
48 {
49   my $font = Imager::Font::Test->new;
50   my $empty = Imager->new;
51   ok(!$empty->string(text => "foo", x => 0, y => 10, size => 10, font => $font),
52      "can't draw text on an empty image");
53   is($empty->errstr, "string: empty input image",
54      "check error message");
55   ok(!$empty->align_string(text => "foo", x => 0, y => 10, size => 10, font => $font),
56      "can't draw text on an empty image");
57   is($empty->errstr, "align_string: empty input image",
58      "check error message");
59 }