Bug 20912: (QA follow-up) The default rule already has renewalsallowed=0
[koha.git] / t / Scrubber.t
index ce1503f..9bcd003 100755 (executable)
@@ -3,7 +3,10 @@
 use strict;
 use warnings;
 
-use Test::More tests => 11;
+$| = 1;
+use Test::More tests => 29;
+use Test::Warn;
+
 BEGIN {
        use FindBin;
        use lib $FindBin::Bin;
@@ -20,7 +23,7 @@ sub pretty_line {
 
 my ($scrubber,$html,$result,@types,$collapse);
 $collapse = 1;
-@types = qw(comment tag);
+@types = qw(default comment tag staff);
 $html = q|
 <![CDATA[selfdestruct]]&#x5d;>
 <?php  echo(" EVIL EVIL EVIL "); ?>    <!-- COMMENT -->
@@ -43,28 +46,39 @@ $html = q|
 At the end here, I actually have some regular text.
 |;
 
-print pretty_line("Original HTML:"), $html, "\n", pretty_line();
-$collapse and diag "Note: scrubber test output will have whitespace collapsed for readability\n";
 ok($scrubber = C4::Scrubber->new(), "Constructor: C4::Scrubber->new()");
 
 isa_ok($scrubber, 'HTML::Scrubber', 'Constructor returns HTML::Scrubber object');
 
-ok(printf("# scrubber settings: default %s, comment %s, process %s\n",
-       $scrubber->default(),$scrubber->comment(),$scrubber->process()),
-       "Outputting settings from scrubber object (type: [default])"
-);
+warning_like { $scrubber->default() } '', "\$scrubber->default ran without fault.";
+warning_like { $scrubber->comment() } '', "\$scrubber->comment ran without fault.";
+warning_like { $scrubber->process() } '', "\$scrubber->process ran without fault.";
+
 ok($result = $scrubber->scrub($html), "Getting scrubbed text (type: [default])");
-$collapse and $result =~ s/\s*\n\s*/\n/g;
-print pretty_line('default'), $result, "\n", pretty_line();
 
 foreach(@types) {
-       ok($scrubber = C4::Scrubber->new($_), "Constructor: C4::Scrubber->new($_)");
-       ok(printf("# scrubber settings: default %s, comment %s, process %s\n",
-               $scrubber->default(),$scrubber->comment(),$scrubber->process()),
-               "Outputting settings from scrubber object (type: $_)"
-       );
+       ok($scrubber = C4::Scrubber->new($_), "testing Constructor: C4::Scrubber->new($_)");
+
+        warning_like { $scrubber->default() } '', "\$scrubber->default ran without fault.";
+        warning_like { $scrubber->comment() } '', "\$scrubber->comment ran without fault.";
+        warning_like { $scrubber->process() } '', "\$scrubber->process ran without fault.";
+
        ok($result = $scrubber->scrub($html), "Getting scrubbed text (type: $_)");
-       $collapse and $result =~ s/\s*\n\s*/\n/g;
-       print pretty_line($_), $result, "\n", pretty_line();
 }
-diag "done.\n";
+
+#Test for invalid new entry
+eval{
+       C4::Scrubber->new("");
+       fail("test should fail on entry of ''");
+};
+if ($@) {
+    pass("Test should have failed on entry of '' (empty string) and it did. YAY!");
+}
+
+eval{
+       C4::Scrubber->new("Client");
+       fail("test should fail on entry of 'Client'");
+};
+if ($@) {
+    pass("Test should have failed on entry of 'Client' and it did. YAY!");
+}