first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / dashboards-search-cache.t
diff --git a/rt/t/web/dashboards-search-cache.t b/rt/t/web/dashboards-search-cache.t
new file mode 100644 (file)
index 0000000..ad2a969
--- /dev/null
@@ -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
+}