fixed #11928: Story Archive breaks if url has extension

This commit is contained in:
Paul Driver 2010-10-26 11:01:55 -07:00
parent 6fced77b37
commit 0d46331745
3 changed files with 31 additions and 3 deletions

View file

@ -1,4 +1,5 @@
7.10.4
- fixed #11928: Story Archive breaks if url has extension
- fixed #11920: Defaul DataForm emails missing entries.
- fixed #11921: DataForm emails contain 1 table per field
- fixed #11922: Help tempalte is squatting on a good URL

View file

@ -322,7 +322,7 @@ sub getFolder {
my ($self, $date) = @_;
my $session = $self->session;
my $folderName = $session->datetime->epochToHuman($date, DATE_FORMAT);
my $folderUrl = join '/', $self->getUrl, $folderName;
my $folderUrl = $self->getFolderUrl($folderName);
my $folder = WebGUI::Asset->newByUrl($session, $folderUrl);
return $folder if $folder;
##The requested folder doesn't exist. Make it and autocommit it.
@ -359,6 +359,21 @@ sub getFolder {
#-------------------------------------------------------------------
=head2 getFolderUrl ( name )
Constructs a url for a subfolder with the given name.
=cut
sub getFolderUrl {
my ($self, $name) = @_;
my $base = $self->getUrl;
$base =~ s/(.*)\..*/$1/;
return "$base/$name";
}
#-------------------------------------------------------------------
=head2 getKeywordFilename ( $keyword )
Returns the name for the file containing stories that match this keyword. Used

View file

@ -63,7 +63,7 @@ $canPostMaker->prepare({
fail => [1, $reader ],
});
my $tests = 52
my $tests = 54
+ $canPostMaker->plan
;
plan tests => 1
@ -132,13 +132,25 @@ my $dt = DateTime->from_epoch(epoch => $now, time_zone => $session->datetime->ge
my $folderName = $dt->strftime('%B_%d_%Y');
$folderName =~ s/^(\w+_)0/$1/;
is($todayFolder->getTitle, $folderName, '... folder has the right name');
my $folderUrl = join '/', $archive->getUrl, lc $folderName;
my $folderUrl = $archive->getFolderUrl($folderName);
is($todayFolder->getUrl, $folderUrl, '... folder has the right URL');
is($todayFolder->getParent->getId, $archive->getId, '... created folder has the right parent');
is($todayFolder->get('state'), 'published', '... created folder is published');
is($todayFolder->get('status'), 'approved', '... created folder is approved');
is($todayFolder->get('styleTemplateId'), $archive->get('styleTemplateId'), '... created folder has correct styleTemplateId');
{
my $arch2 = $home->addChild({
className => $class,
url => 'home/extension-tester.ext',
title => 'Extension Tester',
});
addToCleanup($arch2);
ok defined $arch2->getFolder($now), 'getFolder with url extension';
is $arch2->getFolderUrl('blah'), '/home/extension-tester/blah',
'folder urls have extension properly stripped';
}
my $sameFolder = $archive->getFolder($now);
is($sameFolder->getId, $todayFolder->getId, 'call with same time returns the same folder');
undef $sameFolder;