diff options
Diffstat (limited to 'rt/t/web/saved_search_chart.t')
-rw-r--r-- | rt/t/web/saved_search_chart.t | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/rt/t/web/saved_search_chart.t b/rt/t/web/saved_search_chart.t new file mode 100644 index 000000000..105166233 --- /dev/null +++ b/rt/t/web/saved_search_chart.t @@ -0,0 +1,86 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +use RT::Test tests => 19; +my ( $url, $m ) = RT::Test->started_ok; +use RT::Attribute; +my $search = RT::Attribute->new($RT::SystemUser); +my $ticket = RT::Ticket->new($RT::SystemUser); +my ( $ret, $msg ) = $ticket->Create( + Subject => 'base ticket' . $$, + Queue => 'general', + Owner => 'root', + Requestor => 'root@localhost', + MIMEObj => MIME::Entity->build( + From => 'root@localhost', + To => 'rt@localhost', + Subject => 'base ticket' . $$, + Data => "", + ), +); +ok( $ret, "ticket created: $msg" ); + +ok( $m->login, 'logged in' ); + +$m->get_ok( $url . "/Search/Chart.html?Query=" . 'id=1' ); +my ($owner) = $m->content =~ /value="(RT::User-\d+)"/; + +$m->submit_form( + form_name => 'SaveSearch', + fields => { + SavedSearchDescription => 'first chart', + SavedSearchOwner => $owner, + }, + button => 'SavedSearchSave', +); + +$m->content_like( qr/Chart first chart saved/, 'saved first chart' ); + +my ( $search_uri, $id ) = $m->content =~ /value="(RT::User-\d+-SavedSearch-(\d+))"/; +$m->submit_form( + form_name => 'SaveSearch', + fields => { SavedSearchLoad => $search_uri }, +); + +$m->content_like( qr/name="SavedSearchDelete"\s+value="Delete"/, + 'found Delete button' ); +$m->content_like( + qr/name="SavedSearchDescription"\s+value="first chart"/, + 'found Description input with the value filled' +); +$m->content_like( qr/name="SavedSearchSave"\s+value="Update"/, + 'found Update button' ); +$m->content_unlike( qr/name="SavedSearchSave"\s+value="Save"/, + 'no Save button' ); + +$m->submit_form( + form_name => 'SaveSearch', + fields => { + Query => 'id=2', + PrimaryGroupBy => 'Status', + ChartStyle => 'pie', + }, + button => 'SavedSearchSave', +); + +$m->content_like( qr/Chart first chart updated/, 'found updated message' ); +$m->content_like( qr/id=2/, 'Query is updated' ); +$m->content_like( qr/value="Status"\s+selected="selected"/, + 'PrimaryGroupBy is updated' ); +$m->content_like( qr/value="pie"\s+selected="selected"/, + 'ChartType is updated' ); +ok( $search->Load($id) ); +is( $search->SubValue('Query'), 'id=2', 'Query is indeed updated' ); +is( $search->SubValue('PrimaryGroupBy'), + 'Status', 'PrimaryGroupBy is indeed updated' ); +is( $search->SubValue('ChartStyle'), 'pie', 'ChartStyle is indeed updated' ); + +# finally, let's test delete +$m->submit_form( + form_name => 'SaveSearch', + button => 'SavedSearchDelete', +); +$m->content_like( qr/Chart first chart deleted/, 'found deleted message' ); +$m->content_unlike( qr/value="RT::User-\d+-SavedSearch-\d+"/, + 'no saved search' ); |