diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
index b69e75c82..b6b4f8cc2 100644
--- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
+++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
@@ -200,7 +200,7 @@ use WebGUI::Asset::Sku::EMSRibbon;
use WebGUI::Asset::Sku::EMSToken;
use WebGUI::Exception;
use WebGUI::FormValidator;
-use WebGUI::HTMLForm;
+use WebGUI::FormBuilder;
use WebGUI::International;
use WebGUI::Workflow::Instance;
use Data::Dumper;
@@ -995,20 +995,20 @@ sub www_editBadgeGroup {
my $self = shift;
return $self->session->privilege->insufficient() unless $self->canEdit;
my ($form, $db) = $self->session->quick(qw(form db));
- my $f = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl);
+ my $f = WebGUI::FormBuilder->new($self->session, action=>$self->getUrl);
my $badgeGroup = $db->getRow("EMSBadgeGroup","badgeGroupId",$form->get('badgeGroupId'));
$badgeGroup->{badgeList} = ($badgeGroup->{badgeList} ne "") ? JSON::from_json($badgeGroup->{badgeList}) : [];
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
- $f->hidden(name=>'func', value=>'editBadgeGroupSave');
- $f->hidden(name=>'badgeGroupId', value=>$form->get('badgeGroupId'));
- $f->text(
+ $f->addField( "hidden", name=>'func', value=>'editBadgeGroupSave');
+ $f->addField( "hidden", name=>'badgeGroupId', value=>$form->get('badgeGroupId'));
+ $f->addField( "text",
name => 'name',
value => $badgeGroup->{name},
label => $i18n->get('badge group name'),
hoverHelp => $i18n->get('badge group name help'),
);
- $f->submit;
- return $self->processStyle('
'.$i18n->get('badge groups').'
'.$f->print);
+ $f->addField( "submit", name => "submit" );
+ return $self->processStyle(''.$i18n->get('badge groups').'
'.$f->toHtml);
}
diff --git a/t/Asset/Wobject/EventManagementSystem.t b/t/Asset/Wobject/EventManagementSystem.t
index 3a15897db..5f710f9fc 100644
--- a/t/Asset/Wobject/EventManagementSystem.t
+++ b/t/Asset/Wobject/EventManagementSystem.t
@@ -16,6 +16,7 @@
use strict;
use Test::More;
use WebGUI::Test; # Must use this before any other WebGUI modules
+use WebGUI::Test::Mechanize;
use WebGUI::Test::MockAsset;
use WebGUI::Session;
use WebGUI::User;
@@ -49,7 +50,7 @@ my %tag = ( tagId => $versionTag->getId, status => "pending" );
#----------------------------------------------------------------------------
# Tests
-plan tests => 41; # Increment this number for each test you create
+plan tests => 51; # Increment this number for each test you create
#----------------------------------------------------------------------------
@@ -630,3 +631,47 @@ cmp_deeply( JSON::from_json($data), {
'Location page #2 looks good'
);
+#----------------------------------------------------------------------------
+# www_editBadgeGroup
+$ems = WebGUI::Test->asset(
+ className => 'WebGUI::Asset::Wobject::EventManagementSystem',
+ groupIdEdit => '3',
+);
+
+my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file );
+$mech->get_ok('/');
+$mech->session->user({ userId => 3 });
+
+# Create a new one
+$mech->get_ok( $ems->getUrl( 'func=editBadgeGroup;badgeGroupId=new' ), "Get form to create a new badge group" );
+$mech->submit_form_ok( {
+ fields => {
+ name => 'Inmate Training',
+ },
+}, "create a new badge group" );
+
+my $bgroup = $session->db->quickHashRef(
+ "SELECT * FROM EMSBadgeGroup WHERE name=?",
+ [ "Inmate Training" ],
+);
+ok( $bgroup, "Badge group exists" );
+is( $bgroup->{emsAssetId}, $ems->getId, 'ems asset id set correctly' );
+
+# Edit existing one
+$mech->get_ok(
+ $ems->getUrl( 'func=editBadgeGroup;badgeGroupId=' . $bgroup->{badgeGroupId} ),
+ "Get form to edit our badge group",
+);
+$mech->submit_form_ok( {
+ fields => {
+ name => 'Inmate Beating',
+ },
+}, "Edit an existing badge group" );
+
+$bgroup = $session->db->quickHashRef(
+ "SELECT * FROM EMSBadgeGroup WHERE badgeGroupId=?",
+ [ $bgroup->{badgeGroupId} ],
+);
+ok( $bgroup, "Badge group exists" );
+is( $bgroup->{emsAssetId}, $ems->getId, 'ems asset id set correctly' );
+is( $bgroup->{name}, "Inmate Beating", 'badge name set correctly' );