Blame t/order.t

Packit ae5a87
#!perl
Packit ae5a87
Packit ae5a87
use Test::More tests => 75;
Packit ae5a87
Packit ae5a87
use Authen::SASL qw(Perl);
Packit ae5a87
Packit ae5a87
my %order = qw(
Packit ae5a87
  ANONYMOUS	0
Packit ae5a87
  LOGIN		1
Packit ae5a87
  PLAIN		1
Packit ae5a87
  CRAM-MD5	2
Packit ae5a87
  EXTERNAL	2
Packit ae5a87
  DIGEST-MD5	3
Packit ae5a87
);
Packit ae5a87
my $skip3 = !eval { require Digest::MD5 and $Digest::MD5::VERSION || $Digest::MD5::VERSION };
Packit ae5a87
Packit ae5a87
foreach my $level (reverse 0..3) {
Packit ae5a87
  my @mech = grep { $order{$_} <= $level } keys %order;
Packit ae5a87
  foreach my $n (1..@mech) {
Packit ae5a87
    push @mech, shift @mech; # rotate
Packit ae5a87
    my $mech = join(" ",@mech);
Packit ae5a87
    print "# $level $mech\n";
Packit ae5a87
    if ($level == 3 and $skip3) {
Packit ae5a87
      SKIP: {
Packit ae5a87
	skip "requires Digest::MD5", 5;
Packit ae5a87
      }
Packit ae5a87
      next;
Packit ae5a87
    }
Packit ae5a87
    my $sasl = Authen::SASL->new(
Packit ae5a87
      mechanism => $mech,
Packit ae5a87
      callback => {
Packit ae5a87
	user => 'gbarr',
Packit ae5a87
	pass => 'fred',
Packit ae5a87
	authname => 'none'
Packit ae5a87
      },
Packit ae5a87
    );
Packit ae5a87
    ok($sasl, "new");
Packit ae5a87
Packit ae5a87
    is($sasl->mechanism, $mech, "sasl mechanism");
Packit ae5a87
Packit ae5a87
    my $conn = $sasl->client_new("ldap","localhost");
Packit ae5a87
    ok($conn, 'client_new');
Packit ae5a87
Packit ae5a87
    my $chosen = $conn->mechanism;
Packit ae5a87
    ok($chosen, 'conn mechanism ' . ($chosen || '?'));
Packit ae5a87
Packit ae5a87
    is($order{$chosen}, $level, 'mechanism level');
Packit ae5a87
  }
Packit ae5a87
}