######################################################################
# Test suite for Mail::DWIM
# by Mike Schilli <cpan@perlmeister.com>
######################################################################

use warnings;
use strict;

use Test::More;
use Mail::DWIM qw(mail);
use File::Temp qw(tempfile);
use Log::Log4perl qw(:easy);

#Log::Log4perl->easy_init($DEBUG);

plan tests => 5;

my($fh, $file) = tempfile(UNLINK => 1);
$ENV{MAIL_DWIM_TEST} = $file;

my($fhg, $gcfg) = tempfile();
my($fhu, $ucfg) = tempfile();

  # Local overrides global
Mail::DWIM::blurt("from: goof\@goof.com\n", $gcfg);
Mail::DWIM::blurt("from: goof2\@goof.com\n", $ucfg);
my $m = Mail::DWIM->new(
  global_cfg_file => $gcfg,
  user_cfg_file   => $ucfg,
);
is($m->{from}, 'goof2@goof.com', "user cfg overrides global");

  # Test 'from' override of conf files
$m = Mail::DWIM->new(
  global_cfg_file => $gcfg,
  user_cfg_file   => $ucfg,
  from    => 'a@b.com',
  to      => 'c@d.com',
  subject => 'This is the subject line',
  text    => 'This is the mail text',
);
$m->send();
my $data = Mail::DWIM::slurp($file);
like($data, qr/From: a\@b.com/, "'From' override of cfg file");

  # No local, just global
Mail::DWIM::blurt("", $ucfg);
$m = Mail::DWIM->new(
  global_cfg_file => $gcfg,
  user_cfg_file   => $ucfg,
);
is($m->{from}, 'goof@goof.com', "global cfg");

  # Empty conf files
Mail::DWIM::blurt("", $ucfg);
Mail::DWIM::blurt("", $gcfg);
$m = Mail::DWIM->new(
  global_cfg_file => $gcfg,
  user_cfg_file   => $ucfg,
);
like($m->{from}, qr/\S\@\S/, "from: determined by user/domain");

  # No conf files
unlink $ucfg;
unlink $gcfg;
$m = Mail::DWIM->new(
  global_cfg_file => $gcfg,
  user_cfg_file   => $ucfg,
);
like($m->{from}, qr/\S\@\S/, "from: determined by user/domain");