[Rt-commit] rt branch, 4.4/recently-viewed-bogus-tickets, repushed

Michel Rodriguez michel at bestpractical.com
Fri Mar 6 11:30:05 EST 2020


The branch 4.4/recently-viewed-bogus-tickets was deleted and repushed:
       was 5e27684ce911dc350114c47f6f678798dd50124f
       now dd95c46b91697608e1ee9c8789deaeb6d74790d4

1: 57a018617 ! 1: 840738e02 Fix RecentlyViewedTickets to deal with shredded/merged tickets.
    @@ -10,8 +10,6 @@
         
         RecentlyViewedTickets now returns a list of hashes { id => , subject => }
         so that the code in the template doesn't have to deal with this
    -    
    -      Fixes: I#213199
     
     diff --git a/lib/RT/User.pm b/lib/RT/User.pm
     --- a/lib/RT/User.pm
    @@ -45,7 +43,7 @@
     +
     +        foreach my $ticketRef ( @storedList ) {
     +            my ($ticketId, $timestamp) = @$ticketRef;
    -+            my $ticket = RT::Ticket->new( $self );
    ++            my $ticket = RT::Ticket->new( $self->CurrentUser );
     +            $ticket->Load( $ticketId );
     +            my $realId= $ticket->Id; # can be undef or changed in case of merge
     +            if ( $ticket->Id && ! $seen{$realId} ) {
-:  ------- > 2: 05e156db4 Fix bug that kept 11 tickets in the "recently visited" list instead of 10.
2: 5e27684ce ! 3: dd95c46b9 Test recently viewed tickets that are merged or shredded.
    @@ -1,6 +1,6 @@
     Author: michel <michel at bestpractical.com>
     
    -    Tests for recently-viewed-bogus-tickets.
    +    Test recently viewed tickets that are merged or shredded.
     
     diff --git a/t/api/user_recently_visited.t b/t/api/user_recently_visited.t
     new file mode 100644
    @@ -12,7 +12,6 @@
     +
     +# test the RecentlyViewedTickets method
     +
    -+use Test::Deep;
     +use RT::Test::Shredder tests => undef;
     +my $test = "RT::Test::Shredder";
     +
    @@ -29,7 +28,7 @@
     +        'granting rights'
     +      );
     +
    -+    is( $user->_visited_nb, 0, 'init: empty RecentlyViewedTickets' );
    ++    is( visited_nb( $user ), 0, 'init: empty RecentlyViewedTickets' );
     +
     +    my %ticket;
     +    foreach my $ticket_code ( 'a' .. 't' ) {
    @@ -45,63 +44,66 @@
     +            ;    # needed for the tests with shredder to work
     +    }
     +
    -+    is( $user->_visited_nb, 0,
    -+        'tickets created: empty RecentlyViewedTickets' );
    ++    is( visited_nb( $user ), 0,
    ++        'tickets created: empty RecentlyViewedTickets'
    ++    );
     +
     +    # using reverse on the list so it's easier to read later (last visited is first in RecentlyViewedTicket)
     +    foreach my $viewed ( reverse qw( c q p b e d c b a ) ) {
     +        $user->AddRecentlyViewedTicket( $ticket{$viewed}->{ticket} );
     +    }
     +
    -+    is( $user->_visited, 'c,q,p,b,e,d,a',
    -+        'visited tickets after inital visits' );
    ++    is( visited( $user ), 'c,q,p,b,e,d,a',
    ++        'visited tickets after inital visits'
    ++    );
     +
     +    my $shredder = $test->shredder_new();
     +
     +    $shredder->PutObjects( Objects => $ticket{m}->{ticket} );
     +    $shredder->WipeoutAll;
    -+    is( $user->_visited, 'c,q,p,b,e,d,a',
    -+        'visited tickets after shredding an unvisited ticket' );
    ++    is( visited( $user ), 'c,q,p,b,e,d,a',
    ++        'visited tickets after shredding an unvisited ticket'
    ++    );
     +
     +    $shredder->PutObjects( Objects => $ticket{p}->{ticket} );
     +    $shredder->PutObjects( Objects => $ticket{d}->{ticket} );
     +    $shredder->WipeoutAll;
    -+    is( $user->_visited, 'c,q,b,e,a',
    -+        'visited tickets after shredding 2 visited tickets' );
    ++    is( visited( $user ), 'c,q,b,e,a',
    ++        'visited tickets after shredding 2 visited tickets'
    ++    );
     +
     +    my ( $ok, $msg ) = $ticket{b}->{ticket}->MergeInto( $ticket{j}->{id} );
     +    if ( !$ok ) { die "error merging: $msg\n"; }
    -+    is( $user->_visited, 'c,q,j,e,a',
    ++    is( visited( $user ), 'c,q,j,e,a',
     +        'visited tickets after merging into a ticket that was NOT on the list'
    -+      );
    ++    );
     +
     +    $ticket{c}->{ticket}->MergeInto( $ticket{a}->{id} );
    -+    is( $user->_visited, 'a,q,j,e',
    -+        'visited tickets after merging into a ticket that was on the list' );
    ++    is( visited( $user ), 'a,q,j,e',
    ++        'visited tickets after merging into a ticket that was on the list'
    ++    );
     +
     +    $ticket{e}->{ticket}->MergeInto( $ticket{j}->{id} );
    -+    is( $user->_visited, 'a,q,j',
    ++    is( visited( $user ), 'a,q,j',
     +        'visited tickets after merging into a ticket that was on the list (merged)'
    -+      );
    ++    );
     +
     +    foreach my $viewed ( reverse qw( r j a h k a q a k i s t f g d ) ) {
     +        $user->AddRecentlyViewedTicket( $ticket{$viewed}->{ticket} );
     +    }
     +
    -+    is( $user->_visited, 'r,j,a,h,k,q,i,s,t,f,g',
    -+        'visited more than 11 tickets' );
    ++    is( visited( $user ), 'r,j,a,h,k,q,i,s,t,f',
    ++        'visited more than 10 tickets'
    ++    );
     +
     +}
     +
     +done_testing();
     +
    -+# monkey patching not strictly necessary, but makes for a nicer syntax in the tests
    -+package RT::User;
    -+
    -+sub _visited_nb {
    ++sub visited_nb {
     +    return scalar shift->RecentlyViewedTickets;
     +}
     +
    -+sub _visited {
    ++sub visited {
     +    return join ',', map { $_->{subject} } shift->RecentlyViewedTickets;
     +}



More information about the rt-commit mailing list