From cec52f5164b5e888492d4c6dc91c5e3cbdc69203 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 28 Apr 2017 15:23:18 +0100 Subject: [PATCH] BUG 12027 [QA Followup] - Update tests --- C4/Auth_with_shibboleth.pm | 1 - t/Auth_with_shibboleth.t | 62 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 11 deletions(-) diff --git a/C4/Auth_with_shibboleth.pm b/C4/Auth_with_shibboleth.pm index a6ab055..ff358f6 100644 --- a/C4/Auth_with_shibboleth.pm +++ b/C4/Auth_with_shibboleth.pm @@ -134,7 +134,6 @@ sub _get_uri { my $interface = C4::Context->interface; $debug and warn "shibboleth interface: " . $interface; - my $return; my $uri; if ( $interface eq 'intranet' ) { diff --git a/t/Auth_with_shibboleth.t b/t/Auth_with_shibboleth.t index 3b35709..736ca9a 100644 --- a/t/Auth_with_shibboleth.t +++ b/t/Auth_with_shibboleth.t @@ -28,13 +28,17 @@ use C4::Context; BEGIN { if ( check_install( module => 'Test::DBIx::Class' ) ) { - plan tests => 11; - } else { - plan skip_all => "Need Test::DBIx::Class" + plan tests => 17; + } + else { + plan skip_all => "Need Test::DBIx::Class"; } } -use Test::DBIx::Class { schema_class => 'Koha::Schema', connect_info => ['dbi:SQLite:dbname=:memory:','',''] }; +use Test::DBIx::Class { + schema_class => 'Koha::Schema', + connect_info => [ 'dbi:SQLite:dbname=:memory:', '', '' ] +}; # Mock Variables my $matchpoint = 'userid'; @@ -63,8 +67,12 @@ $context->mock( 'config', \&mockedConfig ); ### Mock ->preference my $OPACBaseURL = "testopac.com"; +my $staffClientBaseURL = "teststaff.com"; $context->mock( 'preference', \&mockedPref ); +my $interface = 'opac'; +$context->mock( 'interface', \&mockedInterface ); + ## Mock Database my $database = new Test::MockModule('Koha::Database'); @@ -247,15 +255,17 @@ subtest "checkpw_shib tests" => sub { }; -## _get_uri +## _get_uri - opac $OPACBaseURL = "testopac.com"; is( C4::Auth_with_shibboleth::_get_uri(), "https://testopac.com", "https opac uri returned" ); $OPACBaseURL = "http://testopac.com"; my $result; -warning_like { $result = C4::Auth_with_shibboleth::_get_uri() } -[qr/Shibboleth requires OPACBaseURL to use the https protocol!/], +warnings_are { $result = C4::Auth_with_shibboleth::_get_uri() }[ + "shibboleth interface: $interface", +"Shibboleth requires OPACBaseURL/staffClientBaseURL to use the https protocol!" +], "improper protocol - received expected warning"; is( $result, "https://testopac.com", "https opac uri returned" ); @@ -264,10 +274,34 @@ is( C4::Auth_with_shibboleth::_get_uri(), "https://testopac.com", "https opac uri returned" ); $OPACBaseURL = undef; -warning_like { $result = C4::Auth_with_shibboleth::_get_uri() } -[qr/OPACBaseURL not set!/], +warnings_are { $result = C4::Auth_with_shibboleth::_get_uri() } +[ "shibboleth interface: $interface", "OPACBaseURL not set!" ], "undefined OPACBaseURL - received expected warning"; -is( $result, "https://", "https opac uri returned" ); +is( $result, "https://", "https $interface uri returned" ); + +## _get_uri - intranet +$interface = 'intranet'; +$staffClientBaseURL = "teststaff.com"; +is( C4::Auth_with_shibboleth::_get_uri(), + "https://teststaff.com", "https $interface uri returned" ); + +$staffClientBaseURL = "http://teststaff.com"; +warnings_are { $result = C4::Auth_with_shibboleth::_get_uri() }[ + "shibboleth interface: $interface", +"Shibboleth requires OPACBaseURL/staffClientBaseURL to use the https protocol!" +], + "improper protocol - received expected warning"; +is( $result, "https://teststaff.com", "https $interface uri returned" ); + +$staffClientBaseURL = "https://teststaff.com"; +is( C4::Auth_with_shibboleth::_get_uri(), + "https://teststaff.com", "https $interface uri returned" ); + +$staffClientBaseURL = undef; +warnings_are { $result = C4::Auth_with_shibboleth::_get_uri() } +[ "shibboleth interface: $interface", "staffClientBaseURL not set!" ], + "undefined staffClientBaseURL - received expected warning"; +is( $result, "https://", "https $interface uri returned" ); ## _get_shib_config # Internal helper function, covered in tests above @@ -292,9 +326,17 @@ sub mockedPref { $return = $OPACBaseURL; } + if ( $param eq 'staffClientBaseURL' ) { + $return = $staffClientBaseURL; + } + return $return; } +sub mockedInterface { + return $interface; +} + sub mockedSchema { return Schema(); } -- 2.1.4