From 37c5a829532e81892098072fbff976c0c946861f Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 9 Oct 2018 13:30:54 -0300 Subject: [PATCH] Bug 21479: Add regression tests Signed-off-by: Jonathan Druart Signed-off-by: Martin Renvoize Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 45fbd36e1f2e1aa622eec1ba588424cc50243fb3) Signed-off-by: Martin Renvoize (cherry picked from commit bbf6d87d56e63a7c17ce91b7ea4b599fae95a881) Signed-off-by: Fridolin Somers --- t/db_dependent/selenium/regressions.t | 63 +++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 t/db_dependent/selenium/regressions.t diff --git a/t/db_dependent/selenium/regressions.t b/t/db_dependent/selenium/regressions.t new file mode 100644 index 0000000000..bffddc3713 --- /dev/null +++ b/t/db_dependent/selenium/regressions.t @@ -0,0 +1,63 @@ +#!/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 . + +use Modern::Perl; + +use C4::Context; + +use Test::More tests => 1; + +use t::lib::Selenium; + +eval { require Selenium::Remote::Driver; }; +skip "Selenium::Remote::Driver is needed for selenium tests.", 1 if $@; + +my $s = t::lib::Selenium->new; + +my $driver = $s->driver; +my $opac_base_url = $s->opac_base_url; + +subtest 'OPAC - Remove from cart' => sub { + plan tests => 4; + + $driver->get( $opac_base_url . "opac-search.pl?q=d" ); + + my $basket_count_elt; + eval { + # FIXME This will produce a STRACE + # A better way to do that would be to modify the way we display the basket count + # We should show/hide the count instead or recreate the node + $basket_count_elt = $driver->find_element('//span[@id="basketcount"]/span') + }; + like($@, qr{An element could not be located on the page}, 'Basket should be empty'); + + $driver->find_element('//a[@class="addtocart cart1"]')->click; + $basket_count_elt = $driver->find_element('//span[@id="basketcount"]/span'); + is( $basket_count_elt->get_text(), + 1, 'One element should have been added to the cart' ); + + $driver->find_element('//a[@class="addtocart cart3"]')->click; + $driver->find_element('//a[@class="addtocart cart5"]')->click; + $basket_count_elt = $driver->find_element('//span[@id="basketcount"]/span'); + is( $basket_count_elt->get_text(), + 3, '3 elements should have been added to the cart' ); + + $driver->find_element('//a[@class="cartRemove cartR3"]')->click; + $basket_count_elt = $driver->find_element('//span[@id="basketcount"]/span'); + is( $basket_count_elt->get_text(), + 2, '1 element should have been removed from the cart' ); +}; -- 2.39.2