4 use RT::Test tests => 'no_declare';
6 my ($base, $m) = RT::Test->started_ok;
8 my $cf = RT::Test->load_or_create_custom_field(
10 Type => 'FreeformSingle',
11 Pattern => '(?#Digits)^\d+$',
13 LookupType => 'RT::Queue-RT::Ticket',
15 ok $cf && $cf->id, "Created CF with Pattern";
17 my $ticket = RT::Test->create_ticket(
19 Subject => 'a test ticket',
21 ok $ticket && $ticket->id, "Created ticket";
25 for my $page ("/Ticket/Create.html?Queue=1", "/Ticket/Modify.html?id=".$ticket->id) {
27 $m->get_ok($page, "Fetched $page");
28 $m->content_contains("Yaks");
29 $m->content_contains("Input must match [Digits]");
30 $m->content_lacks("cfinvalidfield");
32 my $cfinput = RT::Interface::Web::GetCustomFieldInputName(
33 Object => ( $page =~ /Create/ ? RT::Ticket->new( RT->SystemUser ) : $ticket ),
38 $cfinput => "too many",
39 "${cfinput}-Magic" => "1",
42 $m->content_contains("Input must match [Digits]");
43 $m->content_contains("cfinvalidfield");
48 "${cfinput}-Magic" => "1",
52 if ($page =~ /Create/) {
53 $m->content_like(qr/Ticket \d+ created/, "Created ticket");
55 $m->content_contains("Yaks 42 added", "Updated ticket");
56 $m->content_contains("Input must match [Digits]");
57 $m->content_lacks("cfinvalidfield");
61 diag "Quick ticket creation";
66 Subject => "test quick create",
70 my $tickets = RT::Tickets->new(RT->SystemUser);
71 $tickets->FromSQL("Subject = 'test quick create'");
72 is $tickets->Count, 0, "No ticket created";
74 like $m->uri, qr/Ticket\/Create\.html/, "Redirected to the ticket create page";
75 $m->content_contains("Yaks: Input must match", "Found CF validation error");
76 $m->content_contains("test quick create", "Found prefilled Subject");