summaryrefslogtreecommitdiff
path: root/rt/t/web/saved_search_chart.t
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/web/saved_search_chart.t')
-rw-r--r--rt/t/web/saved_search_chart.t86
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' );