From be35b8afe4a01bc6df6be1448f4a9647084d7d4d Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 30 Sep 2010 10:45:54 -0700 Subject: [PATCH] Test default label handling. --- lib/WebGUI/Shop/PayDriver.pm | 11 ++++++++++- t/Shop/PayDriver.t | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/lib/WebGUI/Shop/PayDriver.pm b/lib/WebGUI/Shop/PayDriver.pm index 03ef8bdc3..03d0fec66 100644 --- a/lib/WebGUI/Shop/PayDriver.pm +++ b/lib/WebGUI/Shop/PayDriver.pm @@ -62,6 +62,16 @@ property label => ( hoverHelp => ['label help', 'PayDriver'], default => "Credit Card", ); +around label => sub { + my $orig = shift; + my $self = shift; + if (@_ > 0) { + my $label = shift; + $label = $self->getName($self->session) if $label eq '' || lc($label) eq 'untitled'; + unshift @_, $label; + } + $self->$orig(@_); +}; property enabled => ( fieldType => 'yesNo', label => ['enabled', 'PayDriver'], @@ -476,7 +486,6 @@ sub getName { WebGUI::Error::InvalidParam->throw(error => q{Must provide a session variable}) unless ref $session eq 'WebGUI::Session'; - my $definition = $class->meta->pluginName; return WebGUI::International->new($session, 'Asset')->get(@{ $class->meta->pluginName }); } diff --git a/t/Shop/PayDriver.t b/t/Shop/PayDriver.t index 2422b2bdd..65de828cd 100644 --- a/t/Shop/PayDriver.t +++ b/t/Shop/PayDriver.t @@ -133,6 +133,20 @@ is (WebGUI::Shop::PayDriver->getName($session), 'Payment Driver', 'getName retur can_ok $driver, qw/get set update write getName className label enabled paymentGatewayId groupToUse/; +####################################################################### +# +# default label +# +####################################################################### + +$driver->label(''); +is $driver->label, $driver->getName($session), 'empty label replaced with plugin name'; +$driver->label('untitled'); +is $driver->label, $driver->getName($session), 'label=untitled replaced with plugin name'; +$driver->label('uNtItLeD'); +is $driver->label, $driver->getName($session), '...regardless of case'; +$driver->label('Fast and harmless'); + ####################################################################### # # get @@ -147,7 +161,6 @@ cmp_deeply( %{ $options }, paymentGatewayId => ignore(), }, - $options, 'get works like the options method with no param passed' ); is ($driver->get('label'), 'Fast and harmless', 'get the label entry from the options');