From e628c703f5f52d11e469cdaad1e1af54f92f656f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Oudot?= Date: Fri, 23 Aug 2013 12:59:03 +0000 Subject: [PATCH] Fix loading of alternate config file (#608) --- .../lib/Lemonldap/NG/Portal/SharedConf.pm | 6 ++- .../t/02-Lemonldap-NG-Portal-SharedConf.t | 47 ++++++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/SharedConf.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/SharedConf.pm index 088ac48f2..f463ec461 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/SharedConf.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/SharedConf.pm @@ -15,7 +15,7 @@ use Regexp::Assemble; *EXPORT_TAGS = *Lemonldap::NG::Portal::Simple::EXPORT_TAGS; *EXPORT = *Lemonldap::NG::Portal::Simple::EXPORT; -our $VERSION = '1.2.2'; +our $VERSION = '1.3.0'; use base qw(Lemonldap::NG::Portal::Simple); our $confCached; @@ -44,6 +44,10 @@ sub getConf { %args = @_; } + if ( defined( $args{configStorage} ) ) { + $self->{configStorage} = $args{configStorage}; + } + my $num = $self->__lmConf->lastCfg; # Reload configuration diff --git a/lemonldap-ng-portal/t/02-Lemonldap-NG-Portal-SharedConf.t b/lemonldap-ng-portal/t/02-Lemonldap-NG-Portal-SharedConf.t index dd870d3bd..cb28ed6cd 100644 --- a/lemonldap-ng-portal/t/02-Lemonldap-NG-Portal-SharedConf.t +++ b/lemonldap-ng-portal/t/02-Lemonldap-NG-Portal-SharedConf.t @@ -5,7 +5,7 @@ # change 'tests => 1' to 'tests => last_test_to_print'; -use Test::More tests => 1; +use Test::More tests => 2; BEGIN { use_ok('Lemonldap::NG::Portal::SharedConf') } ######################### @@ -13,3 +13,48 @@ BEGIN { use_ok('Lemonldap::NG::Portal::SharedConf') } # Insert your test code below, the Test::More module is use()ed here so read # its man page ( perldoc Test::More ) for help writing this test script. +# Try to load an alternate conffile +use File::Temp; +my $dir = File::Temp->newdir(); +my $ini = File::Temp->new( DIR => $dir ); + +print $ini "[all] + +[configuration] +type=File +dirName=$dir + +[portal] +portalSkin = test +"; + +$ini->flush(); + +open( CONF, ">$dir/lmConf-1" ) or die $@; + +print CONF " +cfgNum + 1 + +useXForwardedForIP + 0 + +key + tmp + +"; + +CONF->flush(); + +my $portal = Lemonldap::NG::Portal::SharedConf->new( + { + globalStorage => 'Apache::Session::File', + domain => 'example.com', + configStorage => { confFile => "$ini" }, + } +); + +my $test = $portal->{portalSkin}; + +ok( $test eq "test", "Custom INI file" ); +