From 111276a18a6edd391c7d653f77003fe24ae00d8f Mon Sep 17 00:00:00 2001 From: Thomas Kasulke Date: Thu, 9 Aug 2007 13:14:40 +0000 Subject: [PATCH] Angepasst an die "neue" Testumgebung --- t/selenium/AllTests.t | 130 ++++++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/t/selenium/AllTests.t b/t/selenium/AllTests.t index f309231e2..c3c5265b7 100644 --- a/t/selenium/AllTests.t +++ b/t/selenium/AllTests.t @@ -1,12 +1,12 @@ #===================================================================== # LX-Office ERP -# Copyright (C) 2006 +# Copyright (C) 2006/2007 # Web http://www.lx-office.org # #===================================================================== # -# Author: Udo Spallek -# Email: udono@gmx.net +# 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 @@ -30,87 +30,93 @@ # ####################################################################### no strict; - push @INC, ['/t/selenium']; + push @INC, ['/t/selenium', \&init_server]; use vars qw( $lxdebug $lxtest $sel ); use strict; use Carp; use Test::WWW::Selenium; - use Test::More; + use Test::More qw(no_plan); use IO::Socket; - eval { require('t/lxtest.conf'); }; + + 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 => 204; # Need to be cutomized - } - else { - plan skip_all => "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}; - $lxtest->{testuserpasswd} = $lxtest->{test_id}; - $lxtest->{db} = $lxtest->{db} . $lxtest->{test_id}; - - 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"; +# if (server_is_running) { +# plan tests => 200; # Need to be cutomized +# } + sub init_server { + 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'); - 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'); + $lxtest->{test_id} = time; # create individual ids by unixtime + $lxtest->{testuserlogin} = $lxtest->{testlogin} . $lxtest->{test_id}; + $lxtest->{testuserpasswd} = $lxtest->{test_id}; + $lxtest->{db} = $lxtest->{db} . $lxtest->{test_id}; - diag('Starting Selenium tests...'); - - opendir(SCRIPTS, 't/selenium/testscripts'); - my @testscripts = sort readdir(SCRIPTS); + ok(defined $lxtest->{rpw}, "Get root password"); - foreach my $script (@testscripts){ - my $file = "t/selenium/testscripts/" . $script; - require_ok($file) if ( $script =~ /^\d\d\d.*\.t$/ ); + 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...'); + + foreach my $scriptdir (@_) { + opendir(SCRIPTS, 't/selenium/testscripts/' . $scriptdir); + foreach (sort readdir(SCRIPTS)) { + require_ok("t/selenium/testscripts/". $scriptdir . "/" . $_) if ( $_ =~ /^\w\d\d\d.*\.t$/); + } + closedir(SCRIPTS); + } + $sel->stop(); } - exit 1; - - $sel=''; # Destroy selenium object - - exit 1; - + +1; -- 2.20.1