[tools] testbot/cgi: Add Page::SetError().

Francois Gouget fgouget at codeweavers.com
Tue Mar 29 10:58:41 CDT 2022


This provides a proper API to set the page error, particularly for
non-child classes.
Use it in CollectionBlock.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 testbot/lib/ObjectModel/CGI/CollectionBlock.pm | 8 ++++++--
 testbot/lib/ObjectModel/CGI/Page.pm            | 8 ++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/testbot/lib/ObjectModel/CGI/CollectionBlock.pm b/testbot/lib/ObjectModel/CGI/CollectionBlock.pm
index 053b22545..58ece69f3 100644
--- a/testbot/lib/ObjectModel/CGI/CollectionBlock.pm
+++ b/testbot/lib/ObjectModel/CGI/CollectionBlock.pm
@@ -617,8 +617,12 @@ sub OnItemAction($$$)
   if ($Action eq "Delete")
   {
     my $ErrMessage = $self->{Collection}->DeleteItem($Item);
-    $self->{EnclosingPage}->{ErrMessage} = $ErrMessage;
-    return ! defined($ErrMessage);
+    if (defined $ErrMessage)
+    {
+      $self->{EnclosingPage}->SetError(undef, $ErrMessage);
+      return 0;
+    }
+    return 1;
   }
 
   $self->{EnclosingPage}->SetError(undef, "No per-Item action defined for $Action");
diff --git a/testbot/lib/ObjectModel/CGI/Page.pm b/testbot/lib/ObjectModel/CGI/Page.pm
index f7e3c93b8..a79155950 100644
--- a/testbot/lib/ObjectModel/CGI/Page.pm
+++ b/testbot/lib/ObjectModel/CGI/Page.pm
@@ -309,6 +309,14 @@ sub GetErrMessage($)
   return $self->{ErrMessage};
 }
 
+sub SetError($$$)
+{
+  my ($self, $ErrField, $ErrMessage) = @_;
+
+  $self->{ErrField} = $ErrField;
+  $self->{ErrMessage} = $ErrMessage;
+}
+
 sub GenerateErrorDiv($)
 {
   my ($self) = @_;
-- 
2.30.2




More information about the wine-devel mailing list