summaryrefslogtreecommitdiff
path: root/rt/lib/t/regression/08web_cf_access.t
blob: c352bbcf8a18c42592e64998186114eeb413cbfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/usr/bin/perl -w
use strict;

use Test::More tests => 15;
BEGIN {
    use RT;
    RT::LoadConfig;
    RT::Init;
}
use Test::WWW::Mechanize;

use constant BaseURL => $RT::WebURL;
use constant ImageFile => $RT::MasonComponentRoot .'/NoAuth/images/bplogo.gif';
use constant ImageFileContent => do {
    local $/;
    open my $fh, '<', ImageFile or die $!;
    binmode($fh);
    scalar <$fh>;
};

my $m = Test::WWW::Mechanize->new;
isa_ok($m, 'Test::WWW::Mechanize');

$m->get( BaseURL."?user=root;pass=password" );
$m->content_like(qr/Logout/, 'we did log in');
$m->follow_link( text => 'Configuration' );
$m->title_is(q/RT Administration/, 'admin screen');
$m->follow_link( text => 'Custom Fields' );
$m->title_is(q/Select a Custom Field/, 'admin-cf screen');
$m->follow_link( text => 'New custom field' );
$m->submit_form(
    form_name => "ModifyCustomField",
    fields => {
        TypeComposite => 'Image-0',
        LookupType => 'RT::Queue-RT::Ticket',
        Name => 'img',
        Description => 'img',
    },
);
$m->title_is(q/Created CustomField img/, 'admin-cf created');
$m->follow_link( text => 'Queues' );
$m->title_is(q/Admin queues/, 'admin-queues screen');
$m->follow_link( text => 'General' );
$m->title_is(q/Editing Configuration for queue General/, 'admin-queue: general');
$m->follow_link( text => 'Ticket Custom Fields' );

$m->title_is(q/Edit Custom Fields for General/, 'admin-queue: general tcf');
$m->form_name('EditCustomFields');

# Sort by numeric IDs in names
my @names = map  { $_->[1] }
            sort { $a->[0] <=> $b->[0] }
            map  { /Object-1-CF-(\d+)/ ? [ $1 => $_ ] : () }
            map  $_->name, $m->current_form->inputs;
my $tcf = pop(@names);
$m->field( $tcf => 1 );         # Associate the new CF with this queue
$m->field( $_ => undef ) for @names;    # ...and not any other. ;-)
$m->submit;

$m->content_like( qr/Object created/, 'TCF added to the queue' );

$m->submit_form(
    form_name => "CreateTicketInQueue",
    fields => { Queue => 'General' },
);

$m->content_like(qr/Upload multiple images/, 'has a upload image field');

$tcf =~ /(\d+)$/ or die "Hey this is impossible dude";
my $upload_field = "Object-RT::Ticket--CustomField-$1-Upload";

$m->submit_form(
    form_name => "TicketCreate",
    fields => {
        $upload_field => ImageFile,
        Subject => 'testing img cf creation',
    },
);

$m->content_like(qr/Ticket \d+ created/, "a ticket is created succesfully");

my $id = $1 if $m->content =~ /Ticket (\d+) created/;

$m->title_like(qr/testing img cf creation/, "its title is the Subject");

$m->follow_link( text => 'bplogo.gif' );
$m->content_is(ImageFileContent, "it links to the uploaded image");

$m->get( BaseURL );

$m->follow_link( text => 'Tickets' );
$m->follow_link( text => 'New Query' );

$m->title_is(q/Query Builder/, 'Query building');
$m->submit_form(
    form_name => "BuildQuery",
    fields => {
        idOp => '=',
        ValueOfid => $id,
        ValueOfQueue => 'General',
    },
    button => 'AddClause',
);

$m->form_name('BuildQuery');

my $col = ($m->current_form->find_input('SelectDisplayColumns'))[-1];
$col->value( ($col->possible_values)[-1] );

$m->click('AddCol');

$m->form_name('BuildQuery');
$m->click('DoSearch');

$m->follow_link( text_regex => qr/bplogo\.gif/ );
$m->content_is(ImageFileContent, "it links to the uploaded image");

__END__
[FC] Bulk Update does not have custom fields.