X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fweb%2Fcf_textarea.t;fp=rt%2Ft%2Fweb%2Fcf_textarea.t;h=d11bda4d55d8fbbe603356a041586e6b30f9e4e8;hb=e131b1f71f08b69abb832c1687d1f29682d171f8;hp=0000000000000000000000000000000000000000;hpb=d05d7346bb2387fd9d0354923d577275c5c7f019;p=freeside.git diff --git a/rt/t/web/cf_textarea.t b/rt/t/web/cf_textarea.t new file mode 100644 index 000000000..d11bda4d5 --- /dev/null +++ b/rt/t/web/cf_textarea.t @@ -0,0 +1,75 @@ +use strict; +use warnings; + +use RT::Test tests => 'no_declare'; + +my $content = join ' ', ('The quick brown fox jumps over the lazy dog.') x 5; +$content = join "\n\n", $content, $content, $content; + +my ($base, $m) = RT::Test->started_ok; + +$m->login; + +my $ticket = RT::Test->create_ticket( + Queue => 1, + Subject => 'a test ticket', +); +ok $ticket && $ticket->id, "Created ticket"; + +my $EditUrl = "/Ticket/Modify.html?id=" . $ticket->id; + +my $cfs = { + area => { + type => 'Text', + name => 'TheTextarea', + }, + text => { + type => 'FreeformSingle', + name => 'TheControlField', + }, +}; + +while ( my( $label, $data ) = each %$cfs ) { + my $cf = $data->{obj} = RT::Test->load_or_create_custom_field( + Name => $data->{name}, + Type => $data->{type}, + Queue => 0, + LookupType => 'RT::Queue-RT::Ticket', + ); + ok $cf && $cf->id, "Created $data->{type} CF"; + + # get cf input field name + $data->{input} = RT::Interface::Web::GetCustomFieldInputName( + Object => $ticket, + CustomField => $cf, + ); +} + +# open ticket "Basics" page +$m->get_ok($EditUrl, "Fetched $EditUrl"); +$m->content_contains($_->{name} . ':') for ( values %$cfs ); + +$m->submit_form_ok({ + with_fields => { + $cfs->{area}{input} => $content, + $cfs->{area}{input} . '-Magic' => "1", + $cfs->{text}{input} => 'value a', + $cfs->{text}{input} . '-Magic' => "1", + }, +}, 'submitted form to initially set CFs'); +$m->content_contains('
  • TheControlField value a added
  • '); +$m->content_contains("
  • TheTextarea $content added
  • ", 'content found'); + +# http://issues.bestpractical.com/Ticket/Display.html?id=30378 +# #30378: RT 4.2.6 - Very long text fields get updated even when they haven't changed +$m->submit_form_ok({ + with_fields => { + $cfs->{text}{input} => 'value b', + $cfs->{text}{input} . '-Magic' => "1", + }, +}, 'submitted form to initially set CFs'); +$m->content_contains('
  • TheControlField value a changed to value b
  • '); +$m->content_lacks("
  • TheTextarea $content changed to $content
  • ", 'textarea wasnt updated'); + +undef $m; +done_testing;