X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=t%2F8_auth_00_base.t;fp=t%2F8_auth_00_base.t;h=90e6e519d131b2d16e5cd2e2e8955420f6761e7f;hb=4eee158dce82376f2f37de29d91c53f60a24aebe;hp=0000000000000000000000000000000000000000;hpb=85070b46d0a93ddbeef07341421adb8389a55418;p=chaz%2Fp5-CGI-Ex diff --git a/t/8_auth_00_base.t b/t/8_auth_00_base.t new file mode 100644 index 0000000..90e6e51 --- /dev/null +++ b/t/8_auth_00_base.t @@ -0,0 +1,120 @@ +# -*- Mode: Perl; -*- + +=head1 NAME + +8_auth_00_base.t - Testing of the CGI::Ex::Auth module. + +=cut + +use strict; +use Test::More tests => 33; + +use_ok('CGI::Ex::Auth'); + +{ + package Auth; + use base qw(CGI::Ex::Auth); + use strict; + use vars qw($printed $set_cookie $deleted_cookie); + + sub login_print { $printed = 1 } + sub set_cookie { $set_cookie = 1 } + sub delete_cookie { $deleted_cookie = 1 } + sub get_pass_by_user { '123qwe' } + sub script_name { $0 } + sub no_cookie_verify { 1 } + sub secure_hash_keys { ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbb', 'ccc'] } +} + +{ + package Aut2; + use base qw(Auth); + use vars qw($crypt); + BEGIN { $crypt = crypt('123qwe', 'SS') }; + sub use_crypt { 1 } + sub get_pass_by_user { $crypt } +} + +my $token = Auth->new->generate_token({user => 'test', real_pass => '123qwe', use_base64 => 1}); + +my $form_bad = { cea_user => 'test', cea_pass => '123qw' }; +my $form_good = { cea_user => 'test', cea_pass => '123qwe' }; +my $form_good2 = { cea_user => $token }; +my $form_good3 = { cea_user => 'test/123qwe' }; +my $cookie_bad = { cea_user => 'test/123qw' }; +my $cookie_good = { cea_user => 'test/123qwe' }; +my $cookie_good2 = { cea_user => $token }; + +sub form_good { Auth->get_valid_auth({form => {%$form_good}, cookies => {} }) } +sub form_good2 { Auth->get_valid_auth({form => {%$form_good2}, cookies => {} }) } +sub form_good3 { Aut2->get_valid_auth({form => {%$form_good3}, cookies => {} }) } +sub form_bad { Auth->get_valid_auth({form => {%$form_bad}, cookies => {} }) } +sub cookie_good { Auth->get_valid_auth({form => {}, cookies => {%$cookie_good} }) } +sub cookie_good2 { Auth->get_valid_auth({form => {}, cookies => {%$cookie_good2}}) } +sub cookie_bad { Auth->get_valid_auth({form => {}, cookies => {%$cookie_bad} }) } + +$Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; +ok(form_good(), "Got good auth"); +ok(! $Auth::printed, "Printed was not set"); +ok($Auth::set_cookie, "Set_cookie called"); +ok(! $Auth::deleted_cookie, "deleted_cookie was not called"); + +$Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; +ok(form_good2(), "Got good auth"); +ok(! $Auth::printed, "Printed was not set"); +ok($Auth::set_cookie, "Set_cookie called"); +ok(! $Auth::deleted_cookie, "deleted_cookie was not called"); + +$Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; +ok(form_good3(), "Got good auth"); +ok(! $Auth::printed, "Printed was not set"); +ok($Auth::set_cookie, "Set_cookie called"); +ok(! $Auth::deleted_cookie, "deleted_cookie was not called"); + +$Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; +ok(! form_bad(), "Got bad auth"); +ok($Auth::printed, "Printed was set"); +ok(! $Auth::set_cookie, "set_cookie called"); +ok(! $Auth::deleted_cookie, "deleted_cookie was not called"); + +$Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; +ok(cookie_good(), "Got good auth"); +ok(! $Auth::printed, "Printed was not set"); +ok($Auth::set_cookie, "Set_cookie called"); +ok(! $Auth::deleted_cookie, "deleted_cookie was not called"); + +$Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; +ok(cookie_good2(), "Got good auth"); +ok(! $Auth::printed, "Printed was not set"); +ok($Auth::set_cookie, "Set_cookie called"); +ok(! $Auth::deleted_cookie, "deleted_cookie was not called"); + +$Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; +ok(! cookie_bad(), "Got bad auth"); +ok($Auth::printed, "Printed was set"); +ok(! $Auth::set_cookie, "Set_cookie was not called"); +ok($Auth::deleted_cookie, "deleted_cookie was not called"); + + +SKIP: { + skip("Crypt::Blowfish not found", 4) if ! eval { require Crypt::Blowfish }; + + { + package Aut3; + use base qw(Auth); + sub use_blowfish { "This_is_my_key" } + sub use_base64 { 0 } + sub use_plaintext { 1 } + } + + my $token2 = Aut3->new->generate_token({user => 'test', real_pass => '123qwe'}); + my $form_good4 = { cea_user => $token2 }; + + sub form_good4 { Aut3->get_valid_auth({form => {%$form_good4}, cookies => {} }) } + + $Auth::printed = $Auth::set_cookie = $Auth::deleted_cookie = 0; + ok(form_good4(), "Got good auth"); + ok(! $Auth::printed, "Printed was not set"); + ok($Auth::set_cookie, "Set_cookie called"); + ok(! $Auth::deleted_cookie, "deleted_cookie was not called"); +};