From af2d858f688a1aa8b7b6f31e5b0cdcc8f96b9097 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sun, 9 Aug 2009 04:35:16 +0000 Subject: [PATCH] Revision Event storage locations. --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Event.pm | 4 ++++ t/Asset/Event.t | 21 ++++++++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index e5da95742..e16c29188 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,4 +1,5 @@ 7.7.17 + - fixed #10738: Events do not revision their storage locations - fixed #10724: gotcha.txt for 7.7.17 enhanced - fixed #10316: Cannot view pending version tags - fixed #10710: testEnvironment 7.6.33 diff --git a/lib/WebGUI/Asset/Event.pm b/lib/WebGUI/Asset/Event.pm index cde1c1c05..a83f44a9e 100644 --- a/lib/WebGUI/Asset/Event.pm +++ b/lib/WebGUI/Asset/Event.pm @@ -65,6 +65,10 @@ sub addRevision { $sequenceNumber = 0; } $newRev->update({iCalSequenceNumber => $sequenceNumber}); + if ($newRev->get("storageId") && $newRev->get("storageId") eq $self->get('storageId')) { + my $newStorage = WebGUI::Storage->get($self->session,$self->get("storageId"))->copy; + $newRev->update({storageId => $newStorage->getId}); + } return $newRev; } diff --git a/t/Asset/Event.t b/t/Asset/Event.t index ed53df15e..ad4b755f4 100644 --- a/t/Asset/Event.t +++ b/t/Asset/Event.t @@ -19,7 +19,7 @@ use WebGUI::Asset::Event; use Test::More; # increment this value for each test you create use Test::Deep; -plan tests => 16; +plan tests => 18; my $session = WebGUI::Test->session; @@ -110,3 +110,22 @@ my $event5 = $cal->addChild($properties2, $properties2->{id}); is($event5->getIcalStart, '20000831', 'getIcalStart, with no start time'); is($event5->getIcalEnd, '20000901', 'getIcalEnd, with no end time, day incremented'); + +my $properties3 = {}; +$properties3->{startDate} = '2000-08-31'; +$properties3->{endDate} = '2000-08-31'; +$properties3->{id} = 'EventAssetTestStorage6'; +$properties3->{url} = 'event-asset-test6'; +$properties3->{className} = 'WebGUI::Asset::Event'; + +my $eventStorage = WebGUI::Storage->create($session); +WebGUI::Test->storagesToDelete($eventStorage); +$properties3->{storageId} = $eventStorage->getId; + +my $event6 = $cal->addChild($properties3, $properties3->{id}); + +sleep 2; + +my $event6a = $event6->addRevision({ title => 'Event with storage', }); +ok($session->id->valid($event6a->get('storageId')), 'addRevision gives the new revision a valid storageId'); +isnt($event6a->get('storageId'), $event6->get('storageId'), '... and it is different from the previous revision');