From eda2756d76304c313634c01999eddb13c4a8027a Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Tue, 25 Jan 2011 13:20:51 -0600 Subject: [PATCH] migrate Product www_editBenefit to FormBuilder --- lib/WebGUI/Asset/Sku/Product.pm | 36 ++++++++++----------- t/Asset/Sku/Product.t | 56 ++++++++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 19 deletions(-) diff --git a/lib/WebGUI/Asset/Sku/Product.pm b/lib/WebGUI/Asset/Sku/Product.pm index 7d8dc92e7..b8e269e83 100644 --- a/lib/WebGUI/Asset/Sku/Product.pm +++ b/lib/WebGUI/Asset/Sku/Product.pm @@ -1174,28 +1174,28 @@ sub www_editBenefit { return $self->session->privilege->insufficient() unless ($self->canEdit); my $data = $self->getCollateral('benefitJSON', 'benefitId', $bid); my $i18n = WebGUI::International->new($self->session,'Asset_Product'); - my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl); - $f->hidden( - -name => 'bid', - -value => $bid, + my $f = WebGUI::FormBuilder->new($self->session,action=>$self->getUrl); + $f->addField( "hidden", + name => 'bid', + value => $bid, ); - $f->hidden( - -name => 'func', - -value => 'editBenefitSave', + $f->addField( "hidden", + name => 'func', + value => 'editBenefitSave', ); - $f->text( - -name => 'benefit', - -label => $i18n->get(51), - -hoverHelp => $i18n->get('51 description'), - -value => $data->{benefit}, + $f->addField( "text", + name => 'benefit', + label => $i18n->get(51), + hoverHelp => $i18n->get('51 description'), + value => $data->{benefit}, ); - $f->yesNo( - -name => 'proceed', - -label => $i18n->get(52), - -hoverHelp => $i18n->get('52 description'), + $f->addField( "yesNo", + name => 'proceed', + label => $i18n->get(52), + hoverHelp => $i18n->get('52 description'), ); - $f->submit; - return $self->getAdminConsole->render($f->print, 'product benefit 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 6114a6292..2c41a0e3d 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 => 31; # Increment this number for each test you create +plan tests => 40; # Increment this number for each test you create #---------------------------------------------------------------------------- # put your tests here @@ -242,3 +242,57 @@ cmp_deeply( [ { relatedAssetId => $imagedProduct->getId }, { relatedAssetId => $viewProduct->getId } ], ); +#---------------------------------------------------------------------------- +# editBenefit +my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file ); +$mech->get_ok( '/' ); +$mech->session->user({ userId => 3 }); +$mech->get_ok( $product->getUrl( 'func=editBenefit' ) ); + +$mech->submit_form_ok({ + fields => { + benefit => 'One new benefit', + proceed => 1, + }, +}, 'add one new benefit'); + +$product = $product->cloneFromDb; +cmp_deeply( + $product->getAllCollateral( 'benefitJSON' ), + [ { benefit => 'One new benefit', benefitId => ignore() } ], +); + +$mech->submit_form_ok({ + fields => { + benefit => 'Two new benefit', + proceed => 0, + }, +}, 'add one more new benefit' ); + +$product = $product->cloneFromDb; +cmp_deeply( + $product->getAllCollateral( 'benefitJSON' ), + [ + { benefit => 'One new benefit', benefitId => ignore() }, + { benefit => 'Two new benefit', benefitId => ignore() }, + ], +); + +my $benefit = $product->getAllCollateral( 'benefitJSON' )->[0]; +$mech->get_ok( $product->getUrl( 'func=editBenefit;bid=' . $benefit->{benefitId} ) ); + +$mech->submit_form_ok( { + fields => { + benefit => 'One edited benefit', + }, +}, 'edit an existing benefit' ); +$product = $product->cloneFromDb; +cmp_deeply( + $product->getAllCollateral( 'benefitJSON' ), + [ + { benefit => 'One edited benefit', benefitId => ignore() }, + { benefit => 'Two new benefit', benefitId => ignore() }, + ], +); + +