25c379830b4dab038a3dfe07b607cfcff99aa985
[imager-screenshot.git] / t / 20x11.t
1 #!perl -w\r
2 use strict;\r
3 use Test::More;\r
4 \r
5 use Imager::Screenshot 'screenshot';\r
6 \r
7 Imager::Screenshot->have_x11\r
8     or plan skip_all => "No X11 support";\r
9 \r
10 # can we connect to a display\r
11 my $display = Imager::Screenshot::x11_open()\r
12   or plan skip_all => "Cannot connect to a display: ".Imager->errstr;\r
13 \r
14 plan tests => 5;\r
15 \r
16 {\r
17   # should automatically connect and grab the root window\r
18   my $im = screenshot(id => 0)\r
19     or print "# ", Imager->errstr, "\n";\r
20   \r
21   ok($im, "got a root screenshot, no display");\r
22 }\r
23 \r
24 {\r
25   # use our supplied display\r
26   my $im = screenshot(display => $display, id => 0);\r
27   ok($im, "got a root screenshot, supplied display");\r
28 }\r
29 \r
30 {\r
31   # use our supplied display - as a method\r
32   my $im = Imager::Screenshot->screenshot(display => $display, id => 0);\r
33   ok($im, "got a root screenshot, supplied display (method)");\r
34 }\r
35 \r
36 {\r
37   # supply a junk window id\r
38   my $im = screenshot(display => $display, id => 0xFFFFFFF)\r
39     or print "# ", Imager->errstr, "\n";\r
40   ok(!$im, "should fail to get screenshot");\r
41   cmp_ok(Imager->errstr, '=~', 'BadWindow',\r
42          "check error");\r
43 }\r
44 \r
45 Imager::Screenshot::x11_close($display);\r