[Rt-commit] rt branch, 4.4/shredder-user-uid, created. rt-4.4.3beta1-2-g29a6fee2c
Craig Kaiser
craig at bestpractical.com
Thu Jun 14 12:13:00 EDT 2018
The branch, 4.4/shredder-user-uid has been created
at 29a6fee2c3bd7e3a711949c1503a7f38ef701b19 (commit)
- Log -----------------------------------------------------------------
commit db515611a419c1c01bc93921f6e3e2a69981ef29
Author: Craig Kaiser <craig at bestpractical.com>
Date: Tue May 22 11:02:34 2018 -0400
Add test to hit shredder web UI
Test that the web UI loads and shreds a ticket successfully.
diff --git a/t/web/shredder.t b/t/web/shredder.t
new file mode 100644
index 000000000..232b82303
--- /dev/null
+++ b/t/web/shredder.t
@@ -0,0 +1,88 @@
+use strict;
+use warnings;
+
+use RT::Test;
+
+RT::Config->Set('ShredderStoragePath', RT::Test->temp_directory . '');
+
+my ( $baseurl, $agent ) = RT::Test->started_ok;
+
+diag("Test server running at $baseurl");
+
+my $ticket_id;
+{
+ $agent->login('root' => 'password');
+ is( $agent->status, 200, "Fetched the page ok");
+
+ my $ticket = RT::Test->create_ticket( Subject => 'test shredder', Queue => 1, );
+ ok( $ticket->Id, "created new ticket" );
+
+ $ticket_id = $ticket->id;
+}
+
+{
+ $agent->get($baseurl . '/Admin/Tools/Shredder/');
+ $agent->submit_form(
+ form_id => 'shredder-search-form',
+ fields => { Plugin => 'Tickets'},
+ );
+
+ $agent->submit_form(
+ form_id => 'shredder-search-form',
+ fields => {
+ 'Tickets:query' => 'id=' . $ticket_id,
+ },
+ button => 'Search',
+ );
+
+ $agent->submit_form(
+ form_id => 'shredder-search-form',
+ fields => {
+ 'WipeoutObject' => 'RT::Ticket-example.com-1',
+ },
+ button => 'Wipeout',
+ );
+
+ my $ticket = RT::Ticket->new(RT->SystemUser);
+ my ($ret, $msg) = $ticket->Load($ticket_id);
+
+ ok !$ret, 'Ticket successfully shredded';
+}
+
+# Shred RT::User
+{
+ my $user = RT::User->new(RT->SystemUser);
+ my ($ret, $msg) = $user->LoadOrCreateByEmail('test at example.com');
+ ok $ret;
+
+ my $id = $user->id;
+ ok $id;
+
+ $agent->get($baseurl . '/Admin/Tools/Shredder/');
+ $agent->submit_form(
+ form_id => 'shredder-search-form',
+ fields => { Plugin => 'Users'},
+ );
+
+ $agent->submit_form(
+ form_id => 'shredder-search-form',
+ fields => {
+ 'Users:email' => 'test at example.com',
+ 'Users:status' => 'Enabled',
+ },
+ button => 'Search',
+ );
+
+ $agent->submit_form(
+ form_id => 'shredder-search-form',
+ fields => {
+ 'WipeoutObject' => 'RT::User-test at example.com',
+ },
+ button => 'Wipeout',
+ );
+
+ ($ret, $msg) = $user->Load($id);
+ ok !$ret, 'User successfully shredded';
+}
+
+done_testing();
commit 29a6fee2c3bd7e3a711949c1503a7f38ef701b19
Author: Craig Kaiser <craig at bestpractical.com>
Date: Tue May 22 11:03:14 2018 -0400
Restrict Name checks to RT::User objects when shredding
92dc904 updated the id check in Shredder to allow names to be
passed in addition to numeric ids. However, it relies on the ->Name
method and not all shreddable objects have that method, resulting
in errors like:
error: RT::Ticket::Name Unimplemented in RT::Shredder
Restrict the ->Name check to only objects that have the Name method.
diff --git a/lib/RT/Shredder.pm b/lib/RT/Shredder.pm
index 8d99326b6..6f92204cf 100644
--- a/lib/RT/Shredder.pm
+++ b/lib/RT/Shredder.pm
@@ -364,11 +364,15 @@ sub CastObjectsToRecords
RT::Shredder::Exception::Info->throw( 'CouldntLoadObject' );
}
- if ( $id =~ /^\d+$/ && $id ne $obj->Id ){
- die 'Loaded object id ' . $obj->Id . " is different from passed id $id";
+ if ( $id =~ /^\d+$/ ) {
+ if ( $id ne $obj->Id ) {
+ die 'Loaded object id ' . $obj->Id . " is different from passed id $id";
+ }
}
- elsif ( $id ne $obj->Name ){
- die 'Loaded object name ' . $obj->Name . " is different from passed name $id";
+ else {
+ if ( $obj->_Accessible( 'Name', 'read' ) && $id ne $obj->Name ) {
+ die 'Loaded object name ' . $obj->Name . " is different from passed name $id";
+ }
}
push @res, $obj;
} else {
-----------------------------------------------------------------------
More information about the rt-commit
mailing list