use strict; use warnings; BEGIN { require RT::Test; if (eval { require GD; 1 }) { RT::Test->import(plan => 'no_plan'); } else { RT::Test->import(skip_all => 'GD required.'); } } for my $n (1..7) { my $ticket = RT::Ticket->new( RT->SystemUser ); my $req = 'root' . ($n % 2) . '@localhost'; my ( $ret, $msg ) = $ticket->Create( Subject => "base ticket $_", Queue => "General", Owner => "root", Requestor => $req, MIMEObj => MIME::Entity->build( From => $req, To => 'rt@localhost', Subject => "base ticket $_", Data => "Content $_", ), ); ok( $ret, "ticket $n created: $msg" ); } my ($url, $m) = RT::Test->started_ok; ok( $m->login, "Logged in" ); # Test that defaults work $m->get_ok( "/Search/Chart.html?Query=id>0" ); $m->content_like(qr{]*>Queue\s*\s*]*>Tickets\s*}, "Grouped by queue"); $m->content_like(qr{General\s*\s*]*>\s*]*>7}, "Found results in table"); $m->content_like(qr{get_ok( "/Search/Chart?Query=id>0" ); is( $m->content_type, "image/png" ); ok( length($m->content), "Has content" ); # Group by Queue $m->get_ok( "/Search/Chart.html?Query=id>0&PrimaryGroupBy=Queue" ); $m->content_like(qr{]*>Queue\s*\s*]*>Tickets\s*}, "Grouped by queue"); $m->content_like(qr{General\s*\s*]*>\s*]*>7}, "Found results in table"); $m->content_like(qr{get_ok( "/Search/Chart?Query=id>0&PrimaryGroupBy=Queue" ); is( $m->content_type, "image/png" ); ok( length($m->content), "Has content" ); # Group by Requestor email $m->get_ok( "/Search/Chart.html?Query=id>0&PrimaryGroupBy=Requestor.EmailAddress" ); $m->content_like(qr{]*>Requestor\.EmailAddress\s*\s*]*>Tickets\s*}, "Grouped by requestor"); $m->content_like(qr{root0\@localhost\s*\s*]*>\s*]*>3}, "Found results in table"); $m->content_like(qr{get_ok( "/Search/Chart?Query=id>0&PrimaryGroupBy=Requestor.Email" ); is( $m->content_type, "image/png" ); ok( length($m->content), "Has content" ); # Group by Requestor phone -- which is bogus, and falls back to queue $m->get_ok( "/Search/Chart.html?Query=id>0&PrimaryGroupBy=Requestor.Phone" ); $m->content_like(qr{General\s*\s*]*>\s*]*>7}, "Found queue results in table, as a default"); $m->content_like(qr{get_ok( "/Search/Chart?Query=id>0&PrimaryGroupBy=Requestor.Phone" ); is( $m->content_type, "image/png" ); ok( length($m->content), "Has content" );