diff --git a/lib/WebGUI/AdSpace/Ad.pm b/lib/WebGUI/AdSpace/Ad.pm index 353aa5d1f..8c9cf2dcf 100644 --- a/lib/WebGUI/AdSpace/Ad.pm +++ b/lib/WebGUI/AdSpace/Ad.pm @@ -253,7 +253,7 @@ sub set { $self->{_properties}{borderColor} = $properties->{borderColor} || $self->{_properties}{borderColor} || "#000000"; $self->{_properties}{textColor} = $properties->{textColor} || $self->{_properties}{textColor} || "#000000"; $self->{_properties}{backgroundColor} = $properties->{backgroundColor} || $self->{_properties}{backgroundColor} || "#ffffff"; - $self->{_properties}{priority} = $properties->{priority} || $self->{_properties}{priority} || "0"; + $self->{_properties}{priority} = exists $properties->{priority} ? $properties->{priority} : $self->{_properties}{priority}; # prerender the ad for faster display my $adSpace = WebGUI::AdSpace->new($self->session, $self->get("adSpaceId")); if ($self->get("type") eq "text") { diff --git a/t/AdSpace/Ad.t b/t/AdSpace/Ad.t index 196f3ce07..eca275318 100644 --- a/t/AdSpace/Ad.t +++ b/t/AdSpace/Ad.t @@ -36,7 +36,7 @@ my $newAdSettings = { priority => "0", }; -my $numTests = 23; # increment this value for each test you create +my $numTests = 28; # increment this value for each test you create $numTests += scalar keys %{ $newAdSettings }; ++$numTests; ##For conditional testing on module load @@ -46,7 +46,7 @@ my $loaded = use_ok('WebGUI::AdSpace::Ad'); my $session = WebGUI::Test->session; my $ad; -my ($richAd, $textAd, $imageAd, $nonAd); +my ($richAd, $textAd, $imageAd, $nonAd, $setAd); my $adSpace; my $imageStorage = WebGUI::Storage::Image->create($session); $imageStorage->addFileFromScalar('foo.bmp', 'This is not really an image'); @@ -180,10 +180,26 @@ SKIP: { is($renderedNonAd, undef, 'undefined ad types are not rendered'); + $nonAd->delete; + + $nonAd = WebGUI::AdSpace::Ad->new($session, 'nonExistantId'); + is($nonAd, undef, 'requesting a non-existant id via new returns undef'); + + my $setAd = WebGUI::AdSpace::Ad->create($session, $adSpace->getId, {isActive => 1}); + is($setAd->get('isActive'), 1, 'set isActive true during instantiation'); + $setAd->set({isActive=>0}); + is($setAd->get('isActive'), 0, 'set isActive false during instantiation'); + $setAd->delete; + + my $setAd = WebGUI::AdSpace::Ad->create($session, $adSpace->getId, {priority => 1}); + is($setAd->get('priority'), 1, 'set priority=1 during instantiation'); + $setAd->set({priority=>0}); + is($setAd->get('priority'), 0, 'set priority=0'); + } END { - foreach my $advertisement ($ad, $richAd, $textAd, $imageAd, $nonAd) { + foreach my $advertisement ($ad, $richAd, $textAd, $imageAd, $nonAd, $setAd) { if (defined $advertisement and ref $advertisement eq 'WebGUI::AdSpace::Ad') { $advertisement->delete; }