[Rt-commit] r17887 - in rt/3.999/branches/merge_to_3.8.2: .

sunnavy at bestpractical.com sunnavy at bestpractical.com
Thu Jan 22 04:24:52 EST 2009


Author: sunnavy
Date: Thu Jan 22 04:24:51 2009
New Revision: 17887

Modified:
   rt/3.999/branches/merge_to_3.8.2/   (props changed)
   rt/3.999/branches/merge_to_3.8.2/lib/RT/Test/Web.pm

Log:
 r18977 at sunnavys-mb:  sunnavy | 2009-01-22 17:15:34 +0800
 merged lib/RT/Test/Web.pm


Modified: rt/3.999/branches/merge_to_3.8.2/lib/RT/Test/Web.pm
==============================================================================
--- rt/3.999/branches/merge_to_3.8.2/lib/RT/Test/Web.pm	(original)
+++ rt/3.999/branches/merge_to_3.8.2/lib/RT/Test/Web.pm	Thu Jan 22 04:24:51 2009
@@ -61,7 +61,9 @@
     if ( $url =~ m{^/} ) {
         $url = $self->rt_base_url . $url;
     }
-    return $self->SUPER::get_ok( $url, @_ );
+    my $rv = $self->SUPER::get_ok( $url, @_ );
+    Test::More::diag "Couldn't get $url" unless $rv;
+    return $rv;
 }
 
 sub rt_base_url {
@@ -133,4 +135,56 @@
     return 1;
 }
 
+sub get_warnings {
+    my $self         = shift;
+    my $server_class = 'RT::Interface::Web::Standalone';
+
+    my $url = $server_class->test_warning_path;
+
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+    return unless $self->get_ok($url);
+
+    my @warnings = $server_class->decode_warnings( $self->content );
+    return @warnings;
+}
+
+sub warning_like {
+    my $self = shift;
+    my $re   = shift;
+    my $name = shift;
+
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+
+    my @warnings = $self->get_warnings;
+    if ( @warnings == 0 ) {
+        Test::More::fail("no warnings emitted; expected 1");
+        return 0;
+    }
+    elsif ( @warnings > 1 ) {
+        Test::More::fail( scalar(@warnings) . " warnings emitted; expected 1" );
+        for (@warnings) {
+            Test::More::diag("got warning: $_");
+        }
+        return 0;
+    }
+
+    return Test::More::like( $warnings[0], $re, $name );
+}
+
+sub no_warnings_ok {
+    my $self = shift;
+    my $name = shift || "no warnings emitted";
+
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+
+    my @warnings = $self->get_warnings;
+
+    Test::More::is( @warnings, 0, $name );
+    for (@warnings) {
+        Test::More::diag("got warning: $_");
+    }
+
+    return @warnings == 0 ? 1 : 0;
+}
+
 1;


More information about the Rt-commit mailing list