Bugzilla – Attachment 126652 Details for
Bug 19185
Web installer and onboarding tool selenium test
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 19185: Split installation and onboarding
Bug-19185-Split-installation-and-onboarding.patch (text/plain), 7.19 KB, created by
Jonathan Druart
on 2021-10-21 08:49:25 UTC
(
hide
)
Description:
Bug 19185: Split installation and onboarding
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2021-10-21 08:49:25 UTC
Size:
7.19 KB
patch
obsolete
>From 3add1037a25c5c671413253342e9fb542e5626ea Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Wed, 20 Oct 2021 12:04:25 +0200 >Subject: [PATCH] Bug 19185: Split installation and onboarding > >The previous installation tests were testing the full onboarding process >by not selecting all the sample data. >It would be good to test the whole sample data set. > >So there are now 2 files, 00-onboarding.t and 01-installation.t >--- > .../{00-installation.t => 00-onboarding.t} | 6 + > t/db_dependent/selenium/01-installation.t | 165 ++++++++++++++++++ > 2 files changed, 171 insertions(+) > rename t/db_dependent/selenium/{00-installation.t => 00-onboarding.t} (95%) > create mode 100644 t/db_dependent/selenium/01-installation.t > >diff --git a/t/db_dependent/selenium/00-installation.t b/t/db_dependent/selenium/00-onboarding.t >similarity index 95% >rename from t/db_dependent/selenium/00-installation.t >rename to t/db_dependent/selenium/00-onboarding.t >index 9ee3a27bea..e1218011e8 100644 >--- a/t/db_dependent/selenium/00-installation.t >+++ b/t/db_dependent/selenium/00-onboarding.t >@@ -15,6 +15,11 @@ > # You should have received a copy of the GNU General Public License > # along with Koha; if not, see <http://www.gnu.org/licenses>. > >+# This test file is made to be run by our CI >+# - KOHA_TESTING must be set >+# - the database must exist but be empty >+# It will go through the installer process with only the mandatory sample data checked, to test the onboarding process >+ > use Modern::Perl; > > use Test::More tests => 2; >@@ -125,6 +130,7 @@ SKIP: { > # Default data loaded > $s->submit_form; > >+ # Installation complete > $s->click( { href => '/installer/onboarding.pl', main => 'installer-step3' } ); > > # Create a library >diff --git a/t/db_dependent/selenium/01-installation.t b/t/db_dependent/selenium/01-installation.t >new file mode 100644 >index 0000000000..ce9841b81f >--- /dev/null >+++ b/t/db_dependent/selenium/01-installation.t >@@ -0,0 +1,165 @@ >+#!/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>. >+ >+# This test file is made to be run by our CI >+# - KOHA_TESTING must be set >+# - the database must exist but be empty >+# It will go through the installer process with all the sample data checked! >+ >+use Modern::Perl; >+ >+use Test::More tests => 2; >+ >+use t::lib::Selenium; >+use C4::Context; >+ >+my $superlibrarian = { >+ surname => 'koha', >+ firstname => 'koha', >+ cardnumber => '42', >+ userid => 'koha', >+ password => 'koha' >+}; >+ >+my $languages = { >+ en => 'en', >+ ar => 'ar-Arab', >+ es => 'es-ES', >+ fr => 'fr-FR', >+ it => 'it-IT', >+ pt_BR => 'pt-BR', >+ tr => 'tr-TR', >+ zh_TW => 'zh-Hans-TW' >+}; >+ >+SKIP: { >+ eval { require Selenium::Remote::Driver; }; >+ skip "Selenium::Remote::Driver is needed for selenium tests.", 2 if $@; >+ >+ skip "This test must be run with an empty DB. We are using KOHA_TESTING that is set by our CI\nIf you really want to run it, set this env var.", 2 unless $ENV{KOHA_TESTING}; >+ >+ my $dbh = eval { C4::Context->dbh; }; >+ skip "Tests won't run if the database does not exist", 2 if $@; >+ >+ { >+ my $dup_err; >+ local *STDERR; >+ open STDERR, ">>", \$dup_err; >+ $dbh->do(q| >+ SELECT * FROM systempreferences WHERE 1 = 0 | >+ ); >+ close STDERR; >+ if ( $dup_err ) { >+ skip "Tests won't run if the database is not empty", 2 if $@; >+ } >+ } >+ >+ my $s = t::lib::Selenium->new; >+ >+ my $driver = $s->driver; >+ my $base_url = $s->base_url; >+ my $db_user = C4::Context->config('user'); >+ my $db_pass = C4::Context->config('pass'); >+ >+ $driver->get($base_url."mainpage.pl"); >+ >+ my $lang = "en"; # The idea here is to loop on all languages >+ >+ $driver->set_window_size(3840,1080); >+ # Welcome to the Koha web installer >+ $s->fill_form({userid => $db_user, password => $db_pass }); >+ $s->submit_form; >+ >+ # Choose your language >+ $s->fill_form({ language => $languages->{$lang} }); >+ $s->submit_form; >+ >+ # Check Perl dependencies >+ $s->submit_form; >+ >+ # Database settings >+ $s->submit_form; >+ >+ # Database settings >+ # Connection established >+ $s->driver->find_element('//div[@class="alert alert-success"]'); >+ $s->submit_form; >+ >+ # Set up database >+ $s->submit_form; >+ >+ # Success >+ # Database tables created >+ $s->driver->find_element('//div[@class="alert alert-success"]'); >+ $s->submit_form; >+ >+ # Install basic configuration settings >+ $s->submit_form; >+ >+ # Select your MARC flavor >+ $s->fill_form({ marcflavour => 'MARC21' }); >+ $s->submit_form; >+ >+ # Selecting default settings >+ my @checkboxes = $driver->find_elements('//input[@type="checkbox" and not(@checked="checked")]'); >+ for my $c ( @checkboxes ) { >+ $c->click; >+ } >+ $s->submit_form; >+ >+ for (1..20){ # FIXME This is really ugly, but for an unknown reason the next submit_form is resubmitting the same form. So waiting for the next page to be effectively loaded >+ my $title = $s->driver->get_title; >+ last if $title =~ m|Default data loaded|; >+ sleep 1; >+ } >+ >+ # Default data loaded >+ $s->submit_form; >+ >+ my $RequireStrongPassword = C4::Context->preference('RequireStrongPassword'); >+ my $minPasswordLength = C4::Context->preference('minPasswordLength'); >+ C4::Context->set_preference('RequireStrongPassword', 0 ); >+ C4::Context->set_preference('minPasswordLength', 3 ); >+ >+ # Installation complete >+ $s->click( { href => '/installer/onboarding.pl', main => 'installer-step3' } ); >+ >+ # Create Koha administrator patron >+ $s->fill_form({ %$superlibrarian, password2 => $superlibrarian->{password} }); >+ $s->submit_form; >+ C4::Context->set_preference('RequireStrongPassword', $RequireStrongPassword ); >+ C4::Context->set_preference('minPasswordLength', $minPasswordLength ); >+ >+ # Create a new circulation rule >+ # Keep default values >+ $s->submit_form; >+ >+ # Get the interface in the correct language >+ C4::Context->set_preference('language', $languages->{$lang} ); >+ C4::Context->set_preference('opaclanguages', $languages->{$lang} ); >+ >+ $s->click( { href => '/mainpage.pl', main => 'onboarding-step5' } ); >+ >+ $s->fill_form({ userid => $superlibrarian->{userid}, password => $superlibrarian->{password} }); >+ >+ like( $s->driver->get_title, qr(Log in to Koha), 'After the onboarding process the user should have landed in the login form page'); >+ $s->submit_form; >+ >+ is( $s->driver->get_title, 'Koha staff interface', 'The credentials we created should work'); >+ >+ $driver->quit(); >+}; >-- >2.25.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 19185
:
66508
|
68830
|
75088
|
75089
|
75090
|
81913
|
81914
|
81915
|
103406
|
103407
|
103408
|
103416
|
105796
|
105797
|
105798
|
105799
|
120273
|
126646
|
126647
|
126648
|
126649
|
126650
|
126651
| 126652 |
126819
|
126901
|
126918
|
126984