Koha/t/db_dependent/www/history.t
Olli-Antti Kivilahti 163404d9c7 Bug 19483: Fix test plan in t/db_dependent/www/*
t/db_dependent/www/* crashes test harness due to misconfigured test plan

prove t/db_dependent/www/

without defining KOHA_INTRANET_URL
bails out and marks the whole test suite as failed.
Test suite should not be failed if this optional WWW::Mechanize test
suite is not activated.

After this patch, the tests are properly skipped without failing the
whole tests.

This is important when running all tests under t, as this needlessly
fails the test suite.

Also handling of 'skip_all' is inconsistent in t/db_dependent/www
-tests, so this normalizes it to skip_all instead of bail_out

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2018-01-15 12:22:16 -03:00

69 lines
2.2 KiB
Perl

#!/usr/bin/perl
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Koha is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use utf8;
use XML::Simple;
use Encode;
use Test::More; #See plan tests => \d+ below
use Test::WWW::Mechanize;
my $koha_conf = $ENV{KOHA_CONF};
my $xml = XMLin($koha_conf);
my $user = $ENV{KOHA_USER} || $xml->{config}->{user};
my $password = $ENV{KOHA_PASS} || $xml->{config}->{pass};
my $intranet = $ENV{KOHA_INTRANET_URL};
eval{
use C4::Context;
};
if ($@) {
plan skip_all => "Tests skip. You must have a working Context\n";
}
elsif (not defined $intranet) {
plan skip_all => "Tests skip. You must set env. variable KOHA_INTRANET_URL to do tests\n";
}
else {
plan tests => 4;
}
$intranet =~ s#/$##;
my $agent = Test::WWW::Mechanize->new( autocheck => 1 );
# Login
$agent->get_ok( "$intranet/cgi-bin/koha/mainpage.pl", 'Load the intranet login page' );
$agent->form_name('loginform');
$agent->field( 'password', $password );
$agent->field( 'userid', $user );
$agent->field( 'branch', '' );
$agent->click( '', 'Login to the intranet' );
$agent->get_ok( "$intranet/cgi-bin/koha/about.pl", 'Load the about page' );
# Test about > timeline is correctly encoded
my $encoded_latin_name = Encode::encode('UTF-8', 'Frédéric Demians');
my $encoded_cyrillic_name = Encode::encode('UTF-8', 'Сергій Дубик');
my $history_page = Encode::encode('UTF-8', $agent->text());
like( $history_page, qr/$encoded_latin_name/, "Latin characters with umlauts show correctly on the history page." );
like( $history_page, qr/$encoded_cyrillic_name/, "Cyrillic characters with umlauts show correctly on the history page." );