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
|
use strict;
use warnings;
use Test::Expect;
use RT::Test tests => 100, actual_server => 1;
my ( $baseurl, $m ) = RT::Test->started_ok;
my $rt_tool_path = "$RT::BinPath/rt";
$ENV{'RTUSER'} = 'root';
$ENV{'RTPASSWD'} = 'password';
$ENV{'RTSERVER'} = RT->Config->Get('WebBaseURL');
$ENV{'RTDEBUG'} = '1';
$ENV{'RTCONFIG'} = '/dev/null';
my @cfs = (
'foo=bar', 'foo.bar', 'foo:bar', 'foo bar',
'foo{bar}', 'foo-bar', 'foo()bar',
);
for my $name (@cfs) {
RT::Test->load_or_create_custom_field(
Name => $name,
Type => 'Freeform',
MaxValues => 1,
Queue => 0,
);
}
expect_run(
command => "$rt_tool_path shell",
prompt => 'rt> ',
quit => 'quit',
);
# create a ticket
for my $name (@cfs) {
expect_send(
qq{create -t ticket set subject='test cf $name' 'CF.{$name}=foo:b a.r=baz'},
"creating a ticket for cf $name"
);
expect_handle->before() =~ /Ticket (\d+) created/;
my $ticket_id = $1;
expect_send( "show ticket/$ticket_id -f 'CF.{$name}'",
'checking new value' );
expect_like( qr/CF\.\Q{$name}\E: foo:b a\.r=baz/i, 'verified change' );
expect_send( "edit ticket/$ticket_id set 'CF.{$name}=bar'",
"changing cf $name to bar" );
expect_like( qr/Ticket $ticket_id updated/, 'changed cf' );
expect_send( "show ticket/$ticket_id -f 'CF.{$name}'",
'checking new value' );
expect_like( qr/CF\.\Q{$name}\E: bar/i, 'verified change' );
expect_send(
qq{create -t ticket set subject='test cf $name' 'CF-$name=foo:b a.r=baz'},
"creating a ticket for cf $name"
);
expect_handle->before() =~ /Ticket (\d+) created/;
$ticket_id = $1;
expect_send( "show ticket/$ticket_id -f 'CF-$name'", 'checking new value' );
if ( $name eq 'foo=bar' ) {
expect_like( qr/CF\.\Q{$name}\E: $/mi,
"can't use = in cf name with old style" );
}
else {
expect_like( qr/CF\.\Q{$name}\E: foo:b a\.r=baz/i, 'verified change' );
expect_send( "edit ticket/$ticket_id set 'CF-$name=bar'",
"changing cf $name to bar" );
expect_like( qr/Ticket $ticket_id updated/, 'changed cf' );
expect_send( "show ticket/$ticket_id -f 'CF-$name'",
'checking new value' );
expect_like( qr/CF\.\Q{$name}\E: bar/i, 'verified change' );
}
}
my @invalid = ('foo,bar');
for my $name (@invalid) {
expect_send(
qq{create -t ticket set subject='test cf $name' 'CF.{$name}=foo'},
"creating a ticket for cf $name" );
expect_like( qr/You shouldn't specify objects as arguments to create/i,
'$name is not a valid cf name' );
}
expect_quit();
|