X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Ft%2Fweb%2Fdashboards-search-cache.t;fp=rt%2Ft%2Fweb%2Fdashboards-search-cache.t;h=ad2a96969ee5fff6c0dbe34c4008c1b029853ed4;hp=0000000000000000000000000000000000000000;hb=6587f6ba7d047ddc1686c080090afe7d53365bd4;hpb=47153aae5c2fc00316654e7277fccd45f72ff611 diff --git a/rt/t/web/dashboards-search-cache.t b/rt/t/web/dashboards-search-cache.t new file mode 100644 index 000000000..ad2a96969 --- /dev/null +++ b/rt/t/web/dashboards-search-cache.t @@ -0,0 +1,73 @@ +#!/usr/bin/perl -w +use strict; + +use RT::Test tests => 20; +my ($baseurl, $m) = RT::Test->started_ok; + +my $url = $m->rt_base_url; + +ok($m->login, 'logged in'); + +# create a search +$m->follow_link_ok({text => 'Tickets'}, 'to query builder'); +$m->form_name('BuildQuery'); + +$m->field(ValueOfid => 10 ); +$m->click('AddClause'); +$m->text_contains( 'id < 10', 'added new clause'); + +$m->form_name('BuildQuery'); +$m->field(SavedSearchDescription => 'Original Name'); +$m->click('SavedSearchSave'); + +# create a dashboard +$m->get_ok("$url/Dashboards/Modify.html?Create=1"); +$m->form_name('ModifyDashboard'); +$m->field('Name' => 'cachey dashboard'); +$m->click_button(value => 'Create'); +$m->text_contains('Saved dashboard cachey dashboard'); + +my ($dashboard_id) = $m->content =~ /name="id" value="(\d+)"/; +ok($dashboard_id, "got an ID, $dashboard_id"); + +# add the search to the dashboard +$m->follow_link_ok({text => 'Content'}); +my $form = $m->form_name('Dashboard-Searches-body'); +my @input = $form->find_input('Searches-body-Available'); +my ($search) = + map { ( $_->possible_values )[1] } + grep { ( $_->value_names )[1] =~ /Saved Search: Original Name/ } @input; +$form->value('Searches-body-Available' => $search ); +$m->click_button(name => 'add'); +$m->text_contains('Dashboard updated'); + +# subscribe to the dashboard +$m->follow_link_ok({text => 'Subscription'}); +$m->text_contains('Saved Search: Original Name'); +$m->form_name('SubscribeDashboard'); +$m->click_button(name => 'Save'); +$m->text_contains('Subscribed to dashboard cachey dashboard'); + +# rename the search +$m->follow_link_ok({text => 'Tickets'}, 'to query builder'); +$form = $m->form_name('BuildQuery'); +@input = $form->find_input('SavedSearchLoad'); +($search) = + map { ( $_->possible_values )[1] } + grep { ( $_->value_names )[1] =~ /Original Name/ } @input; +$form->value('SavedSearchLoad' => $search ); +$m->click_button(value => 'Load'); +$m->text_contains('Loaded saved search "Original Name"'); + +$m->form_name('BuildQuery'); +$m->field('SavedSearchDescription' => 'New Name'); +$m->click_button(value => 'Update'); +$m->text_contains('Updated saved search "New Name"'); + +# check subscription page again +$m->get_ok("/Dashboards/Subscription.html?id=$dashboard_id"); +TODO: { + local $TODO = 'we cache search names too aggressively'; + $m->text_contains('Saved Search: New Name'); + $m->text_unlike(qr/Saved Search: Original Name/); # t-w-m lacks text_lacks +}