diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index e64b4b050..7b04aaa95 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -226,6 +226,20 @@ sub getCollateral { } +#------------------------------------------------------------------- + +=head2 getStyleTemplateId + +This returns the correct style to use, either a regular style or a mobile style, +based on $session->style->useMobileStyle. + +=cut + +sub getStyleTemplateId { + my $self = shift; + return $self->session->style->useMobileStyle ? $self->mobileStyleTemplateId : $self->styleTemplateId; +} + #------------------------------------------------------------------- =head2 moveCollateralDown ( tableName, keyName, keyValue [ , setName, setValue ] ) @@ -345,10 +359,7 @@ override processStyle => sub { my ($self, $output, $options) = @_; $output = super(); my $style = $self->session->style; - if ($style->useMobileStyle) { - return $style->process($output,$self->get("mobileStyleTemplateId")); - } - return $style->process($output,$self->get("styleTemplateId")); + return $style->process($output,$self->getStyleTemplateId); }; diff --git a/t/tests/Test/WebGUI/Asset/Wobject.pm b/t/tests/Test/WebGUI/Asset/Wobject.pm index 25e6d0b84..96da6b18a 100644 --- a/t/tests/Test/WebGUI/Asset/Wobject.pm +++ b/t/tests/Test/WebGUI/Asset/Wobject.pm @@ -21,4 +21,20 @@ sub list_of_tables { return [qw/assetData wobject/]; } +sub t_15_getStyleTemplateId : Test(2) { + note "getStyleTemplateId"; + my ( $test ) = @_; + my $session = $test->session; + $session->style->setMobileStyle(0); + $session->setting->set('useMobileStyle', 1); + my ( $tag, $asset, @parents ) = $test->getAnchoredAsset(); + $asset->styleTemplateId('Style'); + $asset->mobileStyleTemplateId('Mobile'); + is $asset->getStyleTemplateId, 'Style', 'returns Style since mobile was not requested'; + $session->style->setMobileStyle(1); + is $asset->getStyleTemplateId, 'Mobile', 'returns Mobile since mobile was set'; + $session->style->setMobileStyle(0); + $session->setting->set('useMobileStyle', 0); +} + 1;