@@ -, +, @@ koha-conf.xml --- Koha/SMTP/Servers.pm | 11 ++++++++++- t/db_dependent/Koha/SMTP/Servers.t | 31 +++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) --- a/Koha/SMTP/Servers.pm +++ a/Koha/SMTP/Servers.pm @@ -43,7 +43,16 @@ Returns the default I object. sub get_default { my ($self) = @_; - my $default = Koha::SMTP::Server->new( $self->default_setting ); + my $default; + my $smtp_config = C4::Context->config('smtp_server'); + + if ( $smtp_config ) { + $default = Koha::SMTP::Server->new( $smtp_config ); + } + else { + $default = Koha::SMTP::Server->new( $self->default_setting ); + } + $default->{_is_system_default} = 1; return $default; } --- a/t/db_dependent/Koha/SMTP/Servers.t +++ a/t/db_dependent/Koha/SMTP/Servers.t @@ -29,10 +29,12 @@ my $builder = t::lib::TestBuilder->new; subtest 'get_default() tests' => sub { - plan tests => 3; + plan tests => 5; $schema->storage->txn_begin; + t::lib::Mocks::mock_config( 'smtp_server', undef ); + my $server = Koha::SMTP::Servers->get_default; is( ref($server), 'Koha::SMTP::Server', 'An object of the right type is returned' ); @@ -48,5 +50,32 @@ subtest 'get_default() tests' => sub { 'The default setting is returned if no user-defined default' ); + t::lib::Mocks::mock_config( + 'smtp_server', + { + host => 'localhost.midway', + port => 1234, + timeout => 121, + ssl_mode => 'starttls', + user_name => 'tomasito', + password => 'none', + debug => 1 + } + ); + + my $smtp_config = C4::Context->config('smtp_server'); + + $server = Koha::SMTP::Servers->get_default; + is( ref($server), 'Koha::SMTP::Server', + 'An object of the right type is returned' ); + + $unblessed_server = $server->unblessed; + delete $unblessed_server->{id}; + is_deeply( + $unblessed_server, + $smtp_config, + 'The default setting is overridden by the entry in koha-conf.xml' + ); + $schema->storage->txn_rollback; }; --