Merge branch 'master' of https://github.com/jgoodman/Freeside
[freeside.git] / rt / t / api / searchbuilder.t
1
2 use strict;
3 use warnings;
4 use RT;
5 use RT::Test tests => 19;
6
7
8 {
9
10 ok (require RT::SearchBuilder);
11
12
13 }
14
15 {
16
17 use_ok('RT::Queues');
18 ok(my $queues = RT::Queues->new(RT->SystemUser), 'Created a queues object');
19 ok( $queues->UnLimit(),'Unlimited the result set of the queues object');
20 my $items = $queues->ItemsArrayRef();
21 my @items = @{$items};
22
23 ok($queues->NewItem->_Accessible('Name','read'));
24 my @sorted = sort {lc($a->Name) cmp lc($b->Name)} @items;
25 ok (@sorted, "We have an array of queues, sorted". join(',',map {$_->Name} @sorted));
26
27 ok (@items, "We have an array of queues, raw". join(',',map {$_->Name} @items));
28 my @sorted_ids = map {$_->id } @sorted;
29 my @items_ids = map {$_->id } @items;
30
31 is ($#sorted, $#items);
32 is ($sorted[0]->Name, $items[0]->Name);
33 is ($sorted[-1]->Name, $items[-1]->Name);
34 is_deeply(\@items_ids, \@sorted_ids, "ItemsArrayRef sorts alphabetically by name");
35
36
37
38 }
39
40 #20767: CleanSlate doesn't clear RT::SearchBuilder's flags for handling Disabled columns
41 {
42   my $items;
43
44   ok(my $queues = RT::Queues->new(RT->SystemUser), 'Created a queues object');
45   ok( $queues->UnLimit(),'Unlimited the result set of the queues object');
46
47   # sanity check
48   is( $queues->{'handled_disabled_column'} => undef, 'handled_disabled_column IS NOT set' );
49   is( $queues->{'find_disabled_rows'}      => undef, 'find_disabled_rows IS NOT set ' );
50
51   $queues->LimitToDeleted;
52
53   # sanity check
54   ok( $queues->{'handled_disabled_column'}, 'handled_disabled_column IS set' );
55   ok( $queues->{'find_disabled_rows'},      'find_disabled_rows IS set ' );
56
57   $queues->CleanSlate;
58
59   # these fail without the overloaded CleanSlate method
60   is( $queues->{'handled_disabled_column'} => undef, 'handled_disabled_column IS NOT set' );
61   is( $queues->{'find_disabled_rows'}      => undef, 'find_disabled_rows IS NOT set ' );
62 }
63