diff options
Diffstat (limited to 'rt/t/web/saved_search_chart.t')
-rw-r--r-- | rt/t/web/saved_search_chart.t | 82 |
1 files changed, 75 insertions, 7 deletions
diff --git a/rt/t/web/saved_search_chart.t b/rt/t/web/saved_search_chart.t index 105166233..f84307162 100644 --- a/rt/t/web/saved_search_chart.t +++ b/rt/t/web/saved_search_chart.t @@ -2,11 +2,12 @@ use strict; use warnings; -use RT::Test tests => 19; +use RT::Test no_plan => 1; 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 $search = RT::Attribute->new(RT->SystemUser); +my $ticket = RT::Ticket->new(RT->SystemUser); my ( $ret, $msg ) = $ticket->Create( Subject => 'base ticket' . $$, Queue => 'general', @@ -35,7 +36,7 @@ $m->submit_form( button => 'SavedSearchSave', ); -$m->content_like( qr/Chart first chart saved/, 'saved first chart' ); +$m->content_contains("Chart first chart saved", 'saved first chart' ); my ( $search_uri, $id ) = $m->content =~ /value="(RT::User-\d+-SavedSearch-(\d+))"/; $m->submit_form( @@ -64,8 +65,8 @@ $m->submit_form( button => 'SavedSearchSave', ); -$m->content_like( qr/Chart first chart updated/, 'found updated message' ); -$m->content_like( qr/id=2/, 'Query is updated' ); +$m->content_contains("Chart first chart updated", 'found updated message' ); +$m->content_contains("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"/, @@ -81,6 +82,73 @@ $m->submit_form( form_name => 'SaveSearch', button => 'SavedSearchDelete', ); -$m->content_like( qr/Chart first chart deleted/, 'found deleted message' ); +$m->content_contains("Chart first chart deleted", 'found deleted message' ); $m->content_unlike( qr/value="RT::User-\d+-SavedSearch-\d+"/, 'no saved search' ); + +for ('A' .. 'F') { + $ticket->Create( + Subject => $$ . $_, + ); +} + +for ([A => 'subject="'.$$.'A"'], [BorC => 'subject="'.$$.'B" OR subject="'.$$.'C"']) { + $m->get_ok('/Search/Edit.html'); + $m->form_name('BuildQueryAdvanced'); + $m->field('Query', $_->[1]); + $m->submit; + + # Save the search + $m->follow_link_ok({id => 'page-chart'}); + $m->form_name('SaveSearch'); + $m->field(SavedSearchDescription => $_->[0]); + $m->click_ok('SavedSearchSave'); + $m->text_contains('Chart ' . $_->[0] . ' saved.'); + +} + +$m->form_name('SaveSearch'); +my @saved_search_ids = + $m->current_form->find_input('SavedSearchLoad')->possible_values; +shift @saved_search_ids; # first value is blank + +cmp_ok(@saved_search_ids, '==', 2, 'Two saved charts were made'); + +# TODO get find_link('page-chart')->URI->params to work... +sub page_chart_link_has { + my ($m, $id, $msg) = @_; + + $Test::Builder::Level = $Test::Builder::Level + 1; + + (my $dec_id = $id) =~ s/:/%3A/g; + + my $chart_url = $m->find_link(id => 'page-chart')->url; + like( + $chart_url, qr{SavedChartSearchId=\Q$dec_id\E}, + $msg || 'Page chart link matches the pattern we expected' + ); +} + +# load the first chart +$m->field('SavedSearchLoad' => $saved_search_ids[0]); +$m->click('SavedSearchLoadSubmit'); + +page_chart_link_has($m, $saved_search_ids[0]); + +$m->form_name('SaveSearch'); +is($m->form_number(3)->value('SavedChartSearchId'), $saved_search_ids[0]); + +$m->form_name('SaveSearch'); + +# now load the second chart +$m->field('SavedSearchLoad' => $saved_search_ids[1]); +$m->click('SavedSearchLoadSubmit'); + +page_chart_link_has($m, $saved_search_ids[1]); + +is( + $m->form_number(3)->value('SavedChartSearchId'), $saved_search_ids[1], + 'Second form is seen as a hidden field' +); + +page_chart_link_has($m, $saved_search_ids[1]); |