X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/34211d2356367e21aa8f624caa7b17ee4b8ec4ac..1d91e75c53e7da5bf2c1b334f5aeecf241dc5ec4:/t/old/selenium/AllTests.t diff --git a/t/old/selenium/AllTests.t b/t/old/selenium/AllTests.t new file mode 100644 index 000000000..c5ebf1d19 --- /dev/null +++ b/t/old/selenium/AllTests.t @@ -0,0 +1,153 @@ +#===================================================================== +# LX-Office ERP +# Copyright (C) 2006/2007 +# Web http://www.lx-office.org +# +#===================================================================== +# +# Author: Udo Spallek, Thomas Kasulke +# Email: udono@gmx.net, tkasulke@linet-services.de +# +# This program 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 2 of the License, or +# (at your option) any later version. +# +# This program 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 this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +#====================================================================== +# +# Selenium Main Caller +# Call all Selenium scripts from here. To use Selenium tests in +# Lx-Office you need to Install Selenium Remote Control. Take a look at +# the README Document for further informatinons on installing Selenium +# and testing Lx-Office and of course writing your own testcases. +# +####################################################################### + no strict; + push @INC, ['/t/selenium', \&init_server]; + use vars qw( $lxdebug $lxtest $sel ); + use strict; + use Carp; + + use Test::WWW::Selenium; + use Test::More qw(no_plan); + use IO::Socket; + + if(-f "/tmp/lxtest-temp.conf") { + eval { require('/tmp/lxtest-temp.conf'); }; + } + else { + eval { require('t/lxtest.conf'); }; + } + if ($@) { + diag("No test configuration found in t/lxtest.conf.\n + Maybe you forget to copy t/lxtest.conf.default to t/lxtest.conf. Exit test...\n"); + exit 0; + } + + sub server_is_running { + return IO::Socket::INET->new(PeerAddr => $ENV{SRC_HOST} || $lxtest->{seleniumhost}, + PeerPort => $ENV{SRC_PORT} || $lxtest->{seleniumport}, + ); + } + +# if (server_is_running) { +# plan tests => 200; # Need to be cutomized +# } + sub init_server { + my $singlefileonly = 0; + if ($_[0] eq "singlefileonly") { + $singlefileonly = 1; + shift; + } + if(!server_is_running) { + print "No selenium server found! " + ."Maybe you forgot to start it or " + ."the preferences in t/lxtest.conf doesen't fit to your system"; + exit 0; + } + + diag('Pretests and initialisation'); + + + + $lxtest->{test_id} = time; # create individual ids by unixtime + $lxtest->{testuserlogin} = $lxtest->{testlogin} . $lxtest->{test_id} if(!$lxtest->{testuserlogin}); + $lxtest->{testuserpasswd} = $lxtest->{test_id} if(!$lxtest->{testuserpasswd}); + $lxtest->{db} = $lxtest->{db} . $lxtest->{test_id} if(!($lxtest->{db} =~ /^seleniumtestdatabase[0-9]{10}$/)); + + ok(defined $lxtest->{rpw}, "Get root password"); + + ok(defined $lxtest->{dbhost}, "found dbhost in config"); + ok(defined $lxtest->{dbport}, "found dbport in config"); + ok(defined $lxtest->{dbuser}, "found dbuser in config"); + ok(defined $lxtest->{dbpasswd}, "found dbpasswd in config"); + + $lxtest->{lxadmin_url} = $lxtest->{lxbaseurl} . "admin.pl"; + $lxtest->{lxadmin_with_get} = $lxtest->{lxadmin_url} . "?rpw=$lxtest->{rpw}&nextsub=list_users&action=Weiter"; + $lxtest->{lxadmin} = $lxtest->{lxadmin_url} . "?rpw=$lxtest->{rpw}&nextsub=list_users&action=Weiter"; + + + + + eval { $sel = Test::WWW::Selenium->new( + host => $lxtest->{seleniumhost}, + port => $lxtest->{seleniumport}, + browser => $lxtest->{seleniumbrowser}, + browser_url => $lxtest->{lxadmin}, + auto_stop => '0', + ); + }; + if ($@) { + diag("No Selenium Server running, or wrong preferences\n\n"); + exit 0; + } + + ok(defined $sel, 'Creating Selenium Object'); + + diag('Starting Selenium tests...'); + + if(!$singlefileonly) { + foreach my $scriptdir (@_) { + opendir(SCRIPTS, 't/selenium/testscripts/' . $scriptdir) or die "Can't open directory!" . $!; + foreach (sort readdir(SCRIPTS)) { + if ( $_ =~ /^\w\d\d\d.*\.t$|^\d\d\d.*\.t$/ && !$sel->{ran_tests}{"t/selenium/testscripts/". $scriptdir . "/" . $_}) { + require_ok("t/selenium/testscripts/". $scriptdir . "/" . $_); + $sel->{ran_tests}{"t/selenium/testscripts/". $scriptdir . "/" . $_} = 1; + } + } + closedir(SCRIPTS); + } + } + else { + foreach (@_) { + if ( $_ =~ /^.*\/\w\d\d\d.*\.t$|^.*\/\d\d\d.*\.t$/ && !$sel->{ran_tests}{$_}) { + require_ok($_); + $sel->{ran_tests}{$_} = 1; + } + } + } + if($!) { + @! = ("Test fehlgeschlagen!"); + } + $sel->stop(); + } + + sub start_login() { + require "t/selenium/testscripts/base/000Login.t" if(!$sel->{_page_opened}); + skip("Failed page to load pages!",) if(!$sel->{_page_opened}); + + if($sel->get_title() ne "Lx-Office Version 2.4.3 - Selenium - " . $lxtest->{db}){ + require "t/selenium/testscripts/base/000Login.t"; + } + + $sel->select_frame_ok("relative=up"); + } + +1;