Angepasst an die "neue" Testumgebung
authorThomas Kasulke <t.kasulke@linet-services.de>
Thu, 9 Aug 2007 13:14:40 +0000 (13:14 +0000)
committerThomas Kasulke <t.kasulke@linet-services.de>
Thu, 9 Aug 2007 13:14:40 +0000 (13:14 +0000)
t/selenium/AllTests.t

index f309231..c3c5265 100644 (file)
@@ -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
 #
 #######################################################################
   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;