import torrus 1.0.9
[freeside.git] / rt / t / web / saved_search_chart.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4
5 use RT::Test tests => 19;
6 my ( $url, $m ) = RT::Test->started_ok;
7 use RT::Attribute;
8 my $search = RT::Attribute->new($RT::SystemUser);
9 my $ticket = RT::Ticket->new($RT::SystemUser);
10 my ( $ret, $msg ) = $ticket->Create(
11     Subject   => 'base ticket' . $$,
12     Queue     => 'general',
13     Owner     => 'root',
14     Requestor => 'root@localhost',
15     MIMEObj   => MIME::Entity->build(
16         From    => 'root@localhost',
17         To      => 'rt@localhost',
18         Subject => 'base ticket' . $$,
19         Data    => "",
20     ),
21 );
22 ok( $ret, "ticket created: $msg" );
23
24 ok( $m->login, 'logged in' );
25
26 $m->get_ok( $url . "/Search/Chart.html?Query=" . 'id=1' );
27 my ($owner) = $m->content =~ /value="(RT::User-\d+)"/;
28
29 $m->submit_form(
30     form_name => 'SaveSearch',
31     fields    => {
32         SavedSearchDescription => 'first chart',
33         SavedSearchOwner       => $owner,
34     },
35     button => 'SavedSearchSave',
36 );
37
38 $m->content_like( qr/Chart first chart saved/, 'saved first chart' );
39
40 my ( $search_uri, $id ) = $m->content =~ /value="(RT::User-\d+-SavedSearch-(\d+))"/;
41 $m->submit_form(
42     form_name => 'SaveSearch',
43     fields    => { SavedSearchLoad => $search_uri },
44 );
45
46 $m->content_like( qr/name="SavedSearchDelete"\s+value="Delete"/,
47     'found Delete button' );
48 $m->content_like(
49     qr/name="SavedSearchDescription"\s+value="first chart"/,
50     'found Description input with the value filled'
51 );
52 $m->content_like( qr/name="SavedSearchSave"\s+value="Update"/,
53     'found Update button' );
54 $m->content_unlike( qr/name="SavedSearchSave"\s+value="Save"/,
55     'no Save button' );
56
57 $m->submit_form(
58     form_name => 'SaveSearch',
59     fields    => {
60         Query          => 'id=2',
61         PrimaryGroupBy => 'Status',
62         ChartStyle     => 'pie',
63     },
64     button => 'SavedSearchSave',
65 );
66
67 $m->content_like( qr/Chart first chart updated/, 'found updated message' );
68 $m->content_like( qr/id=2/,                      'Query is updated' );
69 $m->content_like( qr/value="Status"\s+selected="selected"/,
70     'PrimaryGroupBy is updated' );
71 $m->content_like( qr/value="pie"\s+selected="selected"/,
72     'ChartType is updated' );
73 ok( $search->Load($id) );
74 is( $search->SubValue('Query'), 'id=2', 'Query is indeed updated' );
75 is( $search->SubValue('PrimaryGroupBy'),
76     'Status', 'PrimaryGroupBy is indeed updated' );
77 is( $search->SubValue('ChartStyle'), 'pie', 'ChartStyle is indeed updated' );
78
79 # finally, let's test delete
80 $m->submit_form(
81     form_name => 'SaveSearch',
82     button    => 'SavedSearchDelete',
83 );
84 $m->content_like( qr/Chart first chart deleted/, 'found deleted message' );
85 $m->content_unlike( qr/value="RT::User-\d+-SavedSearch-\d+"/,
86     'no saved search' );