rt 4.0.23
[freeside.git] / rt / t / web / command_line_with_unknown_field.t
index 9a7ec7a..6afad8a 100644 (file)
@@ -1,9 +1,8 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use File::Spec ();
 use Test::Expect;
-use RT::Test tests => 10;
+use RT::Test tests => 21, actual_server => 1;
 my ($baseurl, $m) = RT::Test->started_ok;
 my $rt_tool_path = "$RT::BinPath/rt";
 
@@ -12,13 +11,20 @@ $ENV{'RTPASSWD'} = 'password';
 $RT::Logger->debug("Connecting to server at ".RT->Config->Get('WebBaseURL'));
 $ENV{'RTSERVER'} =RT->Config->Get('WebBaseURL') ;
 $ENV{'RTDEBUG'} = '1';
+$ENV{'RTCONFIG'} = '/dev/null';
 
 expect_run(
     command => "$rt_tool_path shell",
     prompt => 'rt> ',
     quit => 'quit',
 );
+
+expect_send( q{create -t ticket set foo=bar}, "create ticket with unknown field" );
+expect_like(qr/foo: Unknown field/, 'foo is unknown field');
+expect_like(qr/Could not create ticket/, 'ticket is not created');
+
 expect_send(q{create -t ticket set subject='new ticket' add cc=foo@example.com}, "Creating a ticket...");
+
 expect_like(qr/Ticket \d+ created/, "Created the ticket");
 expect_handle->before() =~ /Ticket (\d+) created/;
 my $ticket_id = $1;
@@ -31,4 +37,20 @@ expect_send("edit ticket/$ticket_id set homer=simpson", 'set unknown field');
 expect_like(qr/homer: Unknown field/, 'homer is unknown field');
 expect_like(qr/homer: simpson/, 'the value we set for homer is shown too');
 
+expect_send(
+    q{create -t ticket set requestors='foo@example.com, bar@example.com'},
+    "create ticket with field 'requestors'" );
+expect_like(qr/Ticket \d+ created/, "Created the ticket");
+expect_handle->before() =~ /Ticket (\d+) created/;
+$ticket_id = $1;
+expect_send("show ticket/$ticket_id", 'check requestors');
+expect_like(qr/From: (?:foo\@example\.com, bar\@example\.com|bar\@example\.com, foo\@example\.com)/, "requestors are set correctly");
+
 expect_quit();
+
+# you may encounter warning like Use of uninitialized value $ampm
+# ... in Time::ParseDate
+my @warnings = grep { $_ !~ /\$ampm/ } $m->get_warnings;
+is( scalar @warnings, 0, 'no extra warnings' );
+
+1; # needed to avoid a weird exit value from expect_quit