4 use RT::Test tests => 100, actual_server => 1;
5 my ( $baseurl, $m ) = RT::Test->started_ok;
7 my $rt_tool_path = "$RT::BinPath/rt";
9 $ENV{'RTUSER'} = 'root';
10 $ENV{'RTPASSWD'} = 'password';
11 $ENV{'RTSERVER'} = RT->Config->Get('WebBaseURL');
12 $ENV{'RTDEBUG'} = '1';
13 $ENV{'RTCONFIG'} = '/dev/null';
16 'foo=bar', 'foo.bar', 'foo:bar', 'foo bar',
17 'foo{bar}', 'foo-bar', 'foo()bar',
20 RT::Test->load_or_create_custom_field(
29 command => "$rt_tool_path shell",
37 qq{create -t ticket set subject='test cf $name' 'CF.{$name}=foo:b a.r=baz'},
38 "creating a ticket for cf $name"
41 expect_handle->before() =~ /Ticket (\d+) created/;
44 expect_send( "show ticket/$ticket_id -f 'CF.{$name}'",
45 'checking new value' );
46 expect_like( qr/CF\.{\Q$name\E}: foo:b a\.r=baz/i, 'verified change' );
48 expect_send( "edit ticket/$ticket_id set 'CF.{$name}=bar'",
49 "changing cf $name to bar" );
50 expect_like( qr/Ticket $ticket_id updated/, 'changed cf' );
51 expect_send( "show ticket/$ticket_id -f 'CF.{$name}'",
52 'checking new value' );
53 expect_like( qr/CF\.{\Q$name\E}: bar/i, 'verified change' );
56 qq{create -t ticket set subject='test cf $name' 'CF-$name=foo:b a.r=baz'},
57 "creating a ticket for cf $name"
59 expect_handle->before() =~ /Ticket (\d+) created/;
62 expect_send( "show ticket/$ticket_id -f 'CF-$name'", 'checking new value' );
63 if ( $name eq 'foo=bar' ) {
64 expect_like( qr/CF\.{\Q$name\E}: $/mi,
65 "can't use = in cf name with old style" );
68 expect_like( qr/CF\.{\Q$name\E}: foo:b a\.r=baz/i, 'verified change' );
69 expect_send( "edit ticket/$ticket_id set 'CF-$name=bar'",
70 "changing cf $name to bar" );
71 expect_like( qr/Ticket $ticket_id updated/, 'changed cf' );
72 expect_send( "show ticket/$ticket_id -f 'CF-$name'",
73 'checking new value' );
74 expect_like( qr/CF\.{\Q$name\E}: bar/i, 'verified change' );
78 my @invalid = ('foo,bar');
79 for my $name (@invalid) {
81 qq{create -t ticket set subject='test cf $name' 'CF.{$name}=foo'},
82 "creating a ticket for cf $name" );
83 expect_like( qr/You shouldn't specify objects as arguments to create/i,
84 '$name is not a valid cf name' );