The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Email::MIME::Creator::ISO_2022_JP::Test::Base;

use strict;
use warnings;
use Test::Classy::Base;
use Email::MIME;
use Encode;
use utf8;

sub subject { 'テスト'; }
sub body    { '本文'; }

sub has_utf8_subject {
  my ($class, $email) = @_;

  ok $email =~ /^Subject:\s*=\?UTF-8\?/im, $class->message('has utf-8 encoded subject');
}

sub has_iso_2022_jp_subject {
  my ($class, $email) = @_;

  ok $email =~ /^Subject:\s*=\?ISO-2022-JP\?/im, $class->message('has iso-2022-jp encoded subject');
}

sub has_iso_2022_jp_body {
  my ($class, $email) = @_;

  my $body_jis = quotemeta(encode(jis => $class->body));
  ok $email =~ /^$body_jis/m, $class->message('has jis encoded body');
}

sub has_date_headers {
  my ($class, $email, $num) = @_;

  my @dates = $email =~ /^Date:/mg;
  ok (($num ? @dates == $num : @dates), $class->message("date occurs " . @dates . " time(s)"));
}

sub import_iso_2022_jp {
  require Email::MIME::Creator::ISO_2022_JP;
  Email::MIME::Creator::ISO_2022_JP->import;
}

sub unimport_iso_2022_jp {
  Email::MIME::Creator::ISO_2022_JP->unimport;
}

1;