RT 3.8.17
[freeside.git] / rt / lib / RT / Test / Web.pm
index 9e3d6ae..ddae24f 100644 (file)
@@ -1,40 +1,40 @@
 # BEGIN BPS TAGGED BLOCK {{{
-# 
+#
 # COPYRIGHT:
-# 
-# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-#                                          <jesse@bestpractical.com>
-# 
+#
+# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+#                                          <sales@bestpractical.com>
+#
 # (Except where explicitly superseded by other copyright notices)
-# 
-# 
+#
+#
 # LICENSE:
-# 
+#
 # This work is made available to you under the terms of Version 2 of
 # the GNU General Public License. A copy of that license should have
 # been provided with this software, but in any event can be snarfed
 # from www.gnu.org.
-# 
+#
 # This work 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., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301 or visit their web page on the internet at
 # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-# 
-# 
+#
+#
 # CONTRIBUTION SUBMISSION POLICY:
-# 
+#
 # (The following paragraph is not intended to limit the rights granted
 # to you to modify and distribute this software under the terms of
 # the GNU General Public License and is only of importance to you if
 # you choose to contribute your changes and enhancements to the
 # community by submitting them to Best Practical Solutions, LLC.)
-# 
+#
 # By intentionally submitting any modifications, corrections or
 # derivatives to this work, or any other work intended for use with
 # Request Tracker, to Best Practical Solutions, LLC, you confirm that
@@ -43,7 +43,7 @@
 # royalty-free, perpetual, license to use, copy, create derivative
 # works based on those contributions, and sublicense and distribute
 # those contributions and any derivatives thereof.
-# 
+#
 # END BPS TAGGED BLOCK }}}
 
 package RT::Test::Web;
@@ -76,23 +76,46 @@ sub login {
     my $self = shift;
     my $user = shift || 'root';
     my $pass = shift || 'password';
+    
+    $self->logout;
 
     my $url = $self->rt_base_url;
+    $self->get($url . "?user=$user;pass=$pass");
+    unless ( $self->status == 200 ) {
+        Test::More::diag( "error: status is ". $self->status );
+        return 0;
+    }
+    unless ( $self->content =~ qr/Logout/i ) {
+        Test::More::diag("error: page has no Logout");
+        return 0;
+    }
+    unless ( $self->content =~ m{<span>\Q$user\E</span>}i ) {
+        Test::More::diag("Page has no user name");
+        return 0;
+    }
+    return 1;
+}
 
+sub logout {
+    my $self = shift;
+
+    my $url = $self->rt_base_url;
     $self->get($url);
     Test::More::diag( "error: status is ". $self->status )
         unless $self->status == 200;
+
     if ( $self->content =~ qr/Logout/i ) {
         $self->follow_link( text => 'Logout' );
+        Test::More::diag( "error: status is ". $self->status ." when tried to logout" )
+            unless $self->status == 200;
     }
-
-    $self->get($url . "?user=$user;pass=$pass");
-    unless ( $self->status == 200 ) {
-        Test::More::diag( "error: status is ". $self->status );
-        return 0;
+    else {
+        return 1;
     }
-    unless ( $self->content =~ qr/Logout/i ) {
-        Test::More::diag("error: page has no Logout");
+
+    $self->get($url);
+    if ( $self->content =~ qr/Logout/i ) {
+        Test::More::diag( "error: couldn't logout" );
         return 0;
     }
     return 1;