X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Farticles%2Fupload-customfields.t;fp=rt%2Ft%2Farticles%2Fupload-customfields.t;h=912c23ded5d6426973eb1cb69a302c5b8d3b9c11;hb=33beebf4cb42eba3e1dd868ad5e0af102de961da;hp=0000000000000000000000000000000000000000;hpb=7ac86daf67b0a95153b736d5811f9050363f6553;p=freeside.git diff --git a/rt/t/articles/upload-customfields.t b/rt/t/articles/upload-customfields.t new file mode 100644 index 000000000..912c23ded --- /dev/null +++ b/rt/t/articles/upload-customfields.t @@ -0,0 +1,90 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use RT::Test tests => 20; + +use RT; +my $logo; +BEGIN { + $logo = + -e $RT::MasonComponentRoot . '/NoAuth/images/bpslogo.png' + ? 'bpslogo.png' + : 'bplogo.gif'; +} + +use constant ImageFile => $RT::MasonComponentRoot . "/NoAuth/images/$logo"; + +use constant ImageFileContent => do { + local $/; + open my $fh, '<', ImageFile or die ImageFile.$!; + binmode($fh); + scalar <$fh>; +}; + +use RT::Class; +my $class = RT::Class->new($RT::SystemUser); +my ($ret, $msg) = $class->Create('Name' => 'tlaTestClass-'.$$, + 'Description' => 'A general-purpose test class'); +ok($ret, "Test class created"); + + +my ($url, $m) = RT::Test->started_ok; +isa_ok($m, 'Test::WWW::Mechanize'); +ok($m->login, 'logged in'); +$m->follow_link_ok( { text => 'Configuration' } ); +$m->title_is(q/RT Administration/, 'admin screen'); +$m->follow_link_ok( { text => 'Custom Fields' } ); +$m->title_is(q/Select a Custom Field/, 'admin-cf screen'); +$m->follow_link_ok( { text => 'Create', url_regex => qr{^/Admin/CustomFields/} } ); +$m->submit_form( + form_name => "ModifyCustomField", + fields => { + TypeComposite => 'Image-0', + LookupType => 'RT::Class-RT::Article', + Name => 'img'.$$, + Description => 'img', + }, +); +$m->title_is(qq/Editing CustomField img$$/, 'admin-cf created'); +$m->follow_link( text => 'Applies to' ); +$m->title_is(qq/Modify associated objects for img$$/, 'pick cf screenadmin screen'); +$m->form_number(3); + +my $tcf = (grep { /AddCustomField-/ } map { $_->name } $m->current_form->inputs )[0]; +$m->tick( $tcf, 0 ); # Associate the new CF with this queue +$m->click('UpdateObjs'); +$m->content_like( qr/Object created/, 'TCF added to the queue' ); + +$m->follow_link_ok( { text => 'Articles', url_regex => qr!^/Articles/! }, + 'UI -> Articles' ); +$m->follow_link( text => 'New Article'); + +$m->follow_link( url_regex => qr/Edit.html\?Class=1/ ); +$m->title_is(qq/Create a new article/); + +$m->content_like(qr/Upload multiple images/, 'has a upload image field'); + +$tcf =~ /(\d+)$/ or die "Hey this is impossible dude"; +my $upload_field = "Object-RT::Article--CustomField-$1-Upload"; + +diag("Uploading an image to $upload_field") if $ENV{TEST_VERBOSE}; + +$m->submit_form( + form_name => "EditArticle", + fields => { + $upload_field => ImageFile, + Name => 'Image Test '.$$, + Summary => 'testing img cf creation', + }, +); + +$m->content_like(qr/Article \d+ created/, "an article was created succesfully"); + +my $id = $1 if $m->content =~ /Article (\d+) created/; + +$m->title_like(qr/Modify article #$id/, "Editing article $id"); + +$m->follow_link( text => $logo ); +$m->content_is(ImageFileContent, "it links to the uploaded image");