4 use RT::Test tests => 34;
6 my $lifecycles = RT->Config->Get('Lifecycles');
8 initial => ['initial'],
10 inactive => ['resolved'],
14 # explicitly Set so RT::Test can catch our change
15 RT->Config->Set( Lifecycles => %$lifecycles );
17 RT::Lifecycle->FillCache();
19 my $general = RT::Test->load_or_create_queue( Name => 'General' );
20 my $foo = RT::Test->load_or_create_queue( Name => 'foo', Lifecycle => 'foo' );
22 my $global_cf = RT::Test->load_or_create_custom_field(
25 Type => 'FreeformSingle',
28 my $general_cf = RT::Test->load_or_create_custom_field(
31 Type => 'FreeformSingle',
34 my $foo_cf = RT::Test->load_or_create_custom_field(
37 Type => 'FreeformSingle'
40 my $root = RT::Test->load_or_create_user( Name => 'root', );
41 my $user_a = RT::Test->load_or_create_user(
43 Password => 'password',
45 my $user_b = RT::Test->load_or_create_user(
47 Password => 'password',
55 Right => ['OwnTicket'],
60 Right => ['OwnTicket'],
63 'granted OwnTicket right for user_a and user_b'
66 my ( $url, $m ) = RT::Test->started_ok;
67 ok( $m->login, 'logged in' );
69 $m->get_ok( $url . '/Search/Build.html' );
71 diag "check default statuses, cf and owners";
72 my $form = $m->form_name('BuildQuery');
73 ok( $form, 'found BuildQuery form' );
74 ok( $form->find_input("ValueOf'CF.{global_cf}'"), 'found global_cf by default' );
75 ok( !$form->find_input("ValueOf'CF.{general_cf}'"), 'no general_cf by default' );
76 ok( !$form->find_input("ValueOf'CF.{foo_cf}'"), 'no foo_cf by default' );
78 my $status_input = $form->find_input('ValueOfStatus');
79 my @statuses = sort $status_input->possible_values;
81 \@statuses, [ '', qw/initial new open rejected resolved stalled/], 'found all statuses'
84 my $owner_input = $form->find_input('ValueOfActor');
85 my @owners = sort $owner_input->possible_values;
87 \@owners, [ '', qw/Nobody root user_a user_b/], 'found all users'
90 diag "limit queue to foo";
92 fields => { ValueOfQueue => 'foo' },
93 button => 'AddClause',
96 $form = $m->form_name('BuildQuery');
97 ok( $form->find_input("ValueOf'CF.{foo_cf}'"), 'found foo_cf' );
98 ok( $form->find_input("ValueOf'CF.{global_cf}'"), 'found global_cf' );
99 ok( !$form->find_input("ValueOf'CF.{general_cf}'"), 'still no general_cf' );
100 $status_input = $form->find_input('ValueOfStatus');
101 @statuses = sort $status_input->possible_values;
104 [ '', qw/initial open resolved/ ],
105 'found statuses from foo only'
108 $owner_input = $form->find_input('ValueOfActor');
109 @owners = sort $owner_input->possible_values;
111 \@owners, [ '', qw/Nobody root user_b/], 'no user_a'
114 diag "limit queue to general too";
117 fields => { ValueOfQueue => 'General' },
118 button => 'AddClause',
121 $form = $m->form_name('BuildQuery');
122 ok( $form->find_input("ValueOf'CF.{general_cf}'"), 'found general_cf' );
123 ok( $form->find_input("ValueOf'CF.{foo_cf}'"), 'found foo_cf' );
124 ok( $form->find_input("ValueOf'CF.{global_cf}'"), 'found global_cf' );
125 $status_input = $form->find_input('ValueOfStatus');
126 @statuses = sort $status_input->possible_values;
129 [ '', qw/initial new open rejected resolved stalled/ ],
130 'found all statuses again'
132 $owner_input = $form->find_input('ValueOfActor');
133 @owners = sort $owner_input->possible_values;
135 \@owners, [ '', qw/Nobody root user_a user_b/], 'found all users again'
138 diag "limit queue to != foo";
139 $m->get_ok( $url . '/Search/Build.html?NewQuery=1' );
141 form_name => 'BuildQuery',
142 fields => { ValueOfQueue => 'foo', QueueOp => '!=' },
143 button => 'AddClause',
146 $form = $m->form_name('BuildQuery');
147 ok( $form->find_input("ValueOf'CF.{global_cf}'"), 'found global_cf' );
148 ok( !$form->find_input("ValueOf'CF.{foo_cf}'"), 'no foo_cf' );
149 ok( !$form->find_input("ValueOf'CF.{general_cf}'"), 'no general_cf' );
150 $status_input = $form->find_input('ValueOfStatus');
151 @statuses = sort $status_input->possible_values;
153 \@statuses, [ '', qw/initial new open rejected resolved stalled/],
156 $owner_input = $form->find_input('ValueOfActor');
157 @owners = sort $owner_input->possible_values;
159 \@owners, [ '', qw/Nobody root user_a user_b/], 'found all users'
162 diag "limit queue to General OR foo";
163 $m->get_ok( $url . '/Search/Edit.html' );
165 form_name => 'BuildQueryAdvanced',
166 fields => { Query => q{Queue = 'General' OR Queue = 'foo'} },
168 $form = $m->form_name('BuildQuery');
169 ok( $form->find_input("ValueOf'CF.{general_cf}'"), 'found general_cf' );
170 ok( $form->find_input("ValueOf'CF.{foo_cf}'"), 'found foo_cf' );
171 ok( $form->find_input("ValueOf'CF.{global_cf}'"), 'found global_cf' );
172 $status_input = $form->find_input('ValueOfStatus');
173 @statuses = sort $status_input->possible_values;
176 [ '', qw/initial new open rejected resolved stalled/ ],
179 $owner_input = $form->find_input('ValueOfActor');
180 @owners = sort $owner_input->possible_values;
182 \@owners, [ '', qw/Nobody root user_a user_b/], 'found all users'