From 078397b0158c6f1adae9976b20ec4506a1c01cff Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Tue, 25 Jan 2011 13:05:46 -0600 Subject: [PATCH] migrate Product www_addRelated to FormBuilder --- lib/WebGUI/Asset/Sku/Product.pm | 30 ++++++++++++++-------------- t/Asset/Sku/Product.t | 35 ++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 16 deletions(-) diff --git a/lib/WebGUI/Asset/Sku/Product.pm b/lib/WebGUI/Asset/Sku/Product.pm index b109a565f..7d8dc92e7 100644 --- a/lib/WebGUI/Asset/Sku/Product.pm +++ b/lib/WebGUI/Asset/Sku/Product.pm @@ -959,10 +959,10 @@ Provides a form for the user to pick Products related to this one. sub www_addRelated { my $self = shift; return $self->session->privilege->insufficient() unless ($self->canEdit); - my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl); - $f->hidden( - -name => 'func', - -value => 'addRelatedSave', + my $f = WebGUI::FormBuilder->new($self->session,action=>$self->getUrl); + $f->addField( "hidden", + name => 'func', + value => 'addRelatedSave', ); ##Relateds are other Products. Give the user a list of Related products that ##are not already used, nor itself. @@ -988,19 +988,19 @@ sub www_addRelated { my $i18n = WebGUI::International->new($self->session,'Asset_Product'); - $f->selectBox( - -name => 'relatedAssetId', - -options => $related, - -label => $i18n->get(20), - -hoverHelp => $i18n->get('20 description'), + $f->addField( "selectBox", + name => 'relatedAssetId', + options => $related, + label => $i18n->get(20), + hoverHelp => $i18n->get('20 description'), ); - $f->yesNo( - -name => 'proceed', - -label => $i18n->get(21), - -hoverHelp => $i18n->get('21 description'), + $f->addField( "yesNo", + name => 'proceed', + label => $i18n->get(21), + hoverHelp => $i18n->get('21 description'), ); - $f->submit; - return $self->getAdminConsole->render($f->print,'product related add/edit'); + $f->addField( "submit", name => "submit" ); + return $f->toHtml; } #------------------------------------------------------------------- diff --git a/t/Asset/Sku/Product.t b/t/Asset/Sku/Product.t index b930f760c..6114a6292 100644 --- a/t/Asset/Sku/Product.t +++ b/t/Asset/Sku/Product.t @@ -36,7 +36,7 @@ my $session = WebGUI::Test->session; #---------------------------------------------------------------------------- # Tests -plan tests => 25; # Increment this number for each test you create +plan tests => 31; # Increment this number for each test you create #---------------------------------------------------------------------------- # put your tests here @@ -209,3 +209,36 @@ cmp_deeply( [ { accessoryAssetId => $imagedProduct->getId }, { accessoryAssetId => $viewProduct->getId } ], ); +#---------------------------------------------------------------------------- +# addRelated +my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file ); +$mech->get_ok( '/' ); +$mech->session->user({ userId => 3 }); +$mech->get_ok( $product->getUrl( 'func=addRelated' ) ); + +$mech->submit_form_ok({ + fields => { + relatedAssetId => $imagedProduct->getId, + proceed => 1, + }, +}, 'add imagedProduct as a related and add another'); + +$product = $product->cloneFromDb; +cmp_deeply( + $product->getAllCollateral( 'relatedJSON' ), + [ { relatedAssetId => $imagedProduct->getId } ], +); + +$mech->submit_form_ok({ + fields => { + relatedAssetId => $viewProduct->getId, + proceed => 0, + }, +}, 'add viewProduct and go back' ); + +$product = $product->cloneFromDb; +cmp_deeply( + $product->getAllCollateral( 'relatedJSON' ), + [ { relatedAssetId => $imagedProduct->getId }, { relatedAssetId => $viewProduct->getId } ], +); +