|
1 use strict; |
|
2 use warnings; |
|
3 |
|
4 use Test::More; |
|
5 use File::Temp qw(tempdir); |
|
6 use Net::LibIDN qw(:all); |
|
7 |
|
8 # make it work with older versions of Test::More |
|
9 unless (defined &done_testing) { |
|
10 sub done_testing() {}; |
|
11 use Test::More qw(no_plan); |
|
12 } |
|
13 |
|
14 my $CMD = "perl -Mblib blib/sbin/zone-mk"; |
|
15 |
|
16 system("$CMD -h &>/dev/null"); |
|
17 is($? => 0, "exit on help"); |
|
18 |
|
19 system("$CMD -m &>/dev/null"); |
|
20 is($? => 0, "exit on man"); |
|
21 |
|
22 system("$CMD &>/dev/null"); |
|
23 ok($? > 0, "error on missing args"); |
|
24 |
|
25 my $master_dir = tempdir; |
|
26 my $config_dir = tempdir; |
|
27 my $tmp = File::Temp->new; |
|
28 $ENV{DNSTOOLS_CONF} = $tmp->filename; |
|
29 |
|
30 print $tmp <<__EOF; |
|
31 master_dir = $master_dir |
|
32 zone_conf_dir = $config_dir |
|
33 hostmaster = hostmaster\@schlittermann.de |
|
34 template_dir = ./templates |
|
35 __EOF |
|
36 |
|
37 system("$CMD xxx müller.de &>/dev/null"); |
|
38 is($? => 0, "created zone"); |
|
39 |
|
40 my $domain = idn_to_ascii("müller.de", "UTF-8"); |
|
41 ok(-s "$master_dir/$domain/$domain", "zone file $domain"); |
|
42 ok(-s "$config_dir/$domain", "config file $domain"); |
|
43 |
|
44 |
|
45 done_testing; |