Koha-clms/t/Form_MessagingPreferences.t

74 lines
2.2 KiB
Perl
Executable File

#!/usr/bin/perl
use Modern::Perl;
use CGI;
use Template;
use Test::More tests => 1;
use Test::MockModule;
#use Test::NoWarnings;
use t::lib::TestBuilder;
use t::lib::Mocks;
use C4::Form::MessagingPreferences;
my $builder = t::lib::TestBuilder->new;
my $schema = Koha::Database->new->schema;
subtest 'restore_form_values' => sub {
plan tests => 2;
my $cgi = CGI->new;
my $template_module = Test::MockModule->new('Template');
my $vars = {};
$template_module->mock( 'param', sub { my ( $self, $key, $val ) = @_; $vars->{$key} = $val; } );
my $template = Template->new( ENCODING => 'UTF-8' );
$schema->storage->txn_begin;
my $patron = $builder->build_object( { class => 'Koha::Patrons' } );
t::lib::Mocks::mock_preference( 'EnhancedMessagingPreferences', 1 );
C4::Form::MessagingPreferences::set_form_values( { borrowernumber => $patron->id }, $template );
my $set_form_values_vars = {%$vars};
$vars = {};
C4::Form::MessagingPreferences::restore_form_values( $cgi, $template );
my $restore_form_values_vars = {%$vars};
is_deeply(
$set_form_values_vars, $restore_form_values_vars,
"Default messaging preferences don't change when handled with restore_form_values."
);
C4::Members::Messaging::SetMessagingPreference(
{
borrowernumber => $patron->id,
message_transport_types => ['email'],
message_attribute_id => 2,
days_in_advance => 10,
wants_digest => 1
}
);
C4::Form::MessagingPreferences::set_form_values( { borrowernumber => $patron->id }, $template );
$set_form_values_vars = {%$vars};
$vars = {};
$cgi->param( -name => '2', -value => 'email' );
$cgi->param( -name => '2-DAYS', -value => '10' );
$cgi->param( -name => 'digest', -value => '2' );
C4::Form::MessagingPreferences::restore_form_values( $cgi, $template );
$restore_form_values_vars = {%$vars};
is_deeply(
$set_form_values_vars, $restore_form_values_vars,
"Patrons messaging preferences don't change when handled with restore_form_values."
);
$schema->storage->txn_rollback;
};