X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fweb%2Fsaved_search_chart.t;h=3737b512eda510186572384cd0d528bdd76d0271;hb=7b17cfde7d91544caca9647c6d17c84987479786;hp=10516623304c517f3d62b9b0ae1d34f16eb9d03a;hpb=63a268637b2d51a8766412617724b9436439deb6;p=freeside.git diff --git a/rt/t/web/saved_search_chart.t b/rt/t/web/saved_search_chart.t index 105166233..3737b512e 100644 --- a/rt/t/web/saved_search_chart.t +++ b/rt/t/web/saved_search_chart.t @@ -1,12 +1,12 @@ -#!/usr/bin/env perl 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 +35,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( @@ -58,22 +58,22 @@ $m->submit_form( form_name => 'SaveSearch', fields => { Query => 'id=2', - PrimaryGroupBy => 'Status', + GroupBy => '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_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' ); + 'GroupBy 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('GroupBy'), + 'Status', 'GroupBy is indeed updated' ); is( $search->SubValue('ChartStyle'), 'pie', 'ChartStyle is indeed updated' ); # finally, let's test delete @@ -81,6 +81,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]);