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 120
|
use strict;
use warnings;
use RT::Test tests => undef, config => 'Set( $HideUnsetFieldsOnDisplay, 1 );';
my @link_classes = qw(
DependsOn
DependedOnBy
MemberOf
Members
RefersTo
ReferredToBy
);
my $foo = RT::Test->create_ticket(
Queue => 'General',
Subject => 'test display page',
);
my $dep = RT::Test->create_ticket(
Queue => 'General',
Subject => 'dep ticket',
);
my $bar = RT::Test->create_ticket(
Queue => 'General',
Subject => 'depend ticket',
Starts => '2011-07-08 00:00:00',
Started => '2011-07-09 00:00:00',
Resolved => '2011-07-11 00:00:00',
Due => '2011-07-12 00:00:00',
Cc => 'foo@example.com',
AdminCc => 'admin@example.com',
DependsOn => [ $dep->id ],
);
$bar->SetTold;
my ( $baseurl, $m ) = RT::Test->started_ok;
diag "URL is: $baseurl";
diag "test with root";
{
$m->login;
$m->goto_ticket( $foo->id );
my $dom = $m->dom;
for my $class (qw/starts started due resolved cc admincc/) {
is $dom->find(qq{div.$class.unset-field})->size, 1, "found unset $class";
}
is $dom->find(qq{div.told:not(.unset-field)})->size, 1, "has Told as root can modify it";
for my $class (@link_classes) {
is $dom->find(qq{div.$class:not(.unset-field)})->size, 1, "has $class as root can create";
}
$m->goto_ticket( $bar->id );
$dom = $m->dom;
for my $class (qw/starts started due resolved cc admincc/) {
is $dom->find(qq{div.$class:not(.unset-field)})->size, 1, "has $class as value is set";
}
}
diag "test without ModifyTicket right";
{
my $user =
RT::Test->load_or_create_user( Name => 'foo', Password => 'password' );
RT::Test->set_rights( Principal => $user, Right => ['ShowTicket'] );
$m->login( 'foo', 'password', logout => 1 );
$m->goto_ticket( $foo->id );
my $dom = $m->dom;
is $dom->find(qq{div.told.unset-field})->size, 1, "lacks Told as it is unset and user has no modify right";
for my $class ( @link_classes ) {
is $dom->find(qq{div.$class.unset-field})->size, 1, "lacks $class as it is unset and user has no modify right";
}
$m->goto_ticket( $bar->id );
$dom = $m->dom;
is $dom->find(qq{div.DependsOn:not(.unset-field)})->size, 1, "has Depends on as it is set";
}
diag "Test unset custom fields";
{
my $cf = RT::Test->load_or_create_custom_field(
Name => 'TextArea',
Type => 'Text',
Queue => 0,
LookupType => 'RT::Queue-RT::Ticket',
);
ok $cf && $cf->id, "Created TextArea CF";
$m->login( 'root', 'password', logout => 1 );
$m->goto_ticket( $foo->id );
my $dom = $m->dom;
my $cfid = $cf->Id;
is $dom->find(qq{div.custom-field.custom-field-$cfid.unset-field})->size, 1, "found unset custom field";
# open ticket "Basics" page
my $EditUrl = "/Ticket/Modify.html?id=" . $foo->id;
$m->get_ok($EditUrl, "Fetched $EditUrl");
$m->content_contains('TextArea:');
my $cf_input = RT::Interface::Web::GetCustomFieldInputName(
Object => $foo,
CustomField => $cf,
);
$m->submit_form_ok({
with_fields => {
$cf_input => 'some unique content',
$cf_input . '-Magic' => "1",
},
}, 'submitted form to initially set CFs');
$m->goto_ticket( $foo->id );
$dom = $m->dom;
$m->content_contains('some unique content');
isnt $dom->find(qq{div.customfield.unset-field})->size, 1, "no unset custom fields";
}
done_testing;
|