Forward port XML encoding for template based RSS feeds in the Gallery.
This commit is contained in:
parent
55e0feb687
commit
3b577599f5
6 changed files with 29 additions and 24 deletions
|
|
@ -27,6 +27,7 @@
|
||||||
- fixed #10721: Invalid/Missing Style TemplateIds in use
|
- fixed #10721: Invalid/Missing Style TemplateIds in use
|
||||||
- fixed #10029: Account CSS rule scoping
|
- fixed #10029: Account CSS rule scoping
|
||||||
- fixed #10641: Matrix Asset - Compare/Search buttons broken in Opera
|
- fixed #10641: Matrix Asset - Compare/Search buttons broken in Opera
|
||||||
|
- fixed #10723: RSS Feed Error in Gallery
|
||||||
|
|
||||||
7.7.16
|
7.7.16
|
||||||
- fixed #10590: Session::DateTime->secondsToInterval doesn't allow 7 weeks
|
- fixed #10590: Session::DateTime->secondsToInterval doesn't allow 7 weeks
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ use Tie::IxHash;
|
||||||
use WebGUI::International;
|
use WebGUI::International;
|
||||||
use WebGUI::Utility;
|
use WebGUI::Utility;
|
||||||
use XML::Simple;
|
use XML::Simple;
|
||||||
|
use WebGUI::HTML;
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
|
@ -1213,6 +1214,11 @@ sub www_listAlbumsRss {
|
||||||
$assetVar->{ $key } = $self->session->url->getSiteURL . $assetVar->{ $key };
|
$assetVar->{ $key } = $self->session->url->getSiteURL . $assetVar->{ $key };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Encode XML entities
|
||||||
|
for my $key ( qw( title description synopsis gallery_title gallery_menuTitle ) ) {
|
||||||
|
$assetVar->{ $key } = WebGUI::HTML::filter($assetVar->{$key}, 'xml');
|
||||||
|
}
|
||||||
|
|
||||||
# Additional vars for RSS
|
# Additional vars for RSS
|
||||||
$assetVar->{ rssDate }
|
$assetVar->{ rssDate }
|
||||||
= $session->datetime->epochToMail( $assetVar->{ creationDate } );
|
= $session->datetime->epochToMail( $assetVar->{ creationDate } );
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ use File::Temp qw{ tempdir };
|
||||||
use Tie::IxHash;
|
use Tie::IxHash;
|
||||||
use WebGUI::International;
|
use WebGUI::International;
|
||||||
use WebGUI::Utility;
|
use WebGUI::Utility;
|
||||||
|
use WebGUI::HTML;
|
||||||
|
|
||||||
use Archive::Any;
|
use Archive::Any;
|
||||||
|
|
||||||
|
|
@ -1069,7 +1070,7 @@ sub www_addFileService {
|
||||||
# my $filePath = $storage->getPath( $storage->getFiles->[0] );
|
# my $filePath = $storage->getPath( $storage->getFiles->[0] );
|
||||||
# $self->setFile( $filePath );
|
# $self->setFile( $filePath );
|
||||||
# $storage->delete;
|
# $storage->delete;
|
||||||
$session->log->warn('XX:'. $filename);
|
#$session->log->warn('XX:'. $filename);
|
||||||
|
|
||||||
$file->requestAutoCommit;
|
$file->requestAutoCommit;
|
||||||
|
|
||||||
|
|
@ -1419,12 +1420,21 @@ sub www_viewRss {
|
||||||
$var->{ $key } = $self->session->url->getSiteURL . $var->{ $key };
|
$var->{ $key } = $self->session->url->getSiteURL . $var->{ $key };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Encode XML entities
|
||||||
|
for my $key ( qw( title description synopsis gallery_title gallery_menuTitle ) ) {
|
||||||
|
$var->{ $key } = WebGUI::HTML::filter($var->{$key}, 'xml');
|
||||||
|
}
|
||||||
|
|
||||||
# Process the file loop to add additional params
|
# Process the file loop to add additional params
|
||||||
for my $file ( @{ $var->{file_loop} } ) {
|
for my $file ( @{ $var->{file_loop} } ) {
|
||||||
# Fix URLs to be full URLs
|
# Fix URLs to be full URLs
|
||||||
for my $key ( qw( url ) ) {
|
for my $key ( qw( url ) ) {
|
||||||
$file->{ $key } = $self->session->url->getSiteURL . $file->{$key};
|
$file->{ $key } = $self->session->url->getSiteURL . $file->{$key};
|
||||||
}
|
}
|
||||||
|
# Encode XML entities
|
||||||
|
for my $key ( qw( title description synopsis ) ) {
|
||||||
|
$file->{ $key } = WebGUI::HTML::filter($file->{$key}, 'xml');
|
||||||
|
}
|
||||||
|
|
||||||
$file->{ rssDate }
|
$file->{ rssDate }
|
||||||
= $self->session->datetime->epochToMail( $file->{creationDate} );
|
= $self->session->datetime->epochToMail( $file->{creationDate} );
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ my $session = WebGUI::Test->session;
|
||||||
my $node = WebGUI::Asset->getImportNode($session);
|
my $node = WebGUI::Asset->getImportNode($session);
|
||||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||||
$versionTag->set({name=>"Gallery Test"});
|
$versionTag->set({name=>"Gallery Test"});
|
||||||
|
WebGUI::Test->tagsToRollback($versionTag);
|
||||||
my $maker = WebGUI::Test::Maker::Permission->new;
|
my $maker = WebGUI::Test::Maker::Permission->new;
|
||||||
my $gallery;
|
my $gallery;
|
||||||
|
|
||||||
|
|
@ -75,9 +76,3 @@ $maker->prepare(
|
||||||
plan tests => $maker->plan;
|
plan tests => $maker->plan;
|
||||||
|
|
||||||
$maker->run;
|
$maker->run;
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# Cleanup
|
|
||||||
END {
|
|
||||||
$versionTag->rollback;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ use Test::More;
|
||||||
use WebGUI::Test; # Must use this before any other WebGUI modules
|
use WebGUI::Test; # Must use this before any other WebGUI modules
|
||||||
use WebGUI::Session;
|
use WebGUI::Session;
|
||||||
use Test::Deep;
|
use Test::Deep;
|
||||||
|
plan skip_all => 'set WEBGUI_LIVE to enable this test' unless $ENV{WEBGUI_LIVE};
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Init
|
# Init
|
||||||
|
|
@ -58,6 +59,7 @@ my $gallery
|
||||||
} );
|
} );
|
||||||
|
|
||||||
$versionTags[-1]->commit;
|
$versionTags[-1]->commit;
|
||||||
|
WebGUI::Test->tagsToRollback(@versionTags);
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Tests
|
# Tests
|
||||||
|
|
@ -110,14 +112,6 @@ $mech->content_contains(
|
||||||
my $album = WebGUI::Asset->newByDynamicClass( $session, $gallery->getAlbumIds->[0] );
|
my $album = WebGUI::Asset->newByDynamicClass( $session, $gallery->getAlbumIds->[0] );
|
||||||
cmp_deeply( $properties, subhashof( $album->get ), "Properties from edit form are set correctly" );
|
cmp_deeply( $properties, subhashof( $album->get ), "Properties from edit form are set correctly" );
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# Cleanup
|
|
||||||
END {
|
|
||||||
for my $tag ( @versionTags ) {
|
|
||||||
$tag->rollback;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# getMechLogin( baseUrl, WebGUI::User, "identifier" )
|
# getMechLogin( baseUrl, WebGUI::User, "identifier" )
|
||||||
# Returns a Test::WWW::Mechanize session after logging in the given user using
|
# Returns a Test::WWW::Mechanize session after logging in the given user using
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ use WebGUI::Session;
|
||||||
use Test::More;
|
use Test::More;
|
||||||
use Test::Deep;
|
use Test::Deep;
|
||||||
use XML::Simple;
|
use XML::Simple;
|
||||||
|
plan skip_all => 'set WEBGUI_LIVE to enable this test' unless $ENV{WEBGUI_LIVE};
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Init
|
# Init
|
||||||
|
|
@ -27,6 +28,7 @@ my $session = WebGUI::Test->session;
|
||||||
my $node = WebGUI::Asset->getImportNode($session);
|
my $node = WebGUI::Asset->getImportNode($session);
|
||||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||||
$versionTag->set({name=>"Album Test"});
|
$versionTag->set({name=>"Album Test"});
|
||||||
|
WebGUI::Test->tagsToRollback($versionTag);
|
||||||
my $gallery
|
my $gallery
|
||||||
= $node->addChild({
|
= $node->addChild({
|
||||||
className => "WebGUI::Asset::Wobject::Gallery",
|
className => "WebGUI::Asset::Wobject::Gallery",
|
||||||
|
|
@ -40,13 +42,16 @@ my $album
|
||||||
= $gallery->addChild({
|
= $gallery->addChild({
|
||||||
className => "WebGUI::Asset::Wobject::GalleryAlbum",
|
className => "WebGUI::Asset::Wobject::GalleryAlbum",
|
||||||
ownerUserId => "3", # Admin
|
ownerUserId => "3", # Admin
|
||||||
description => "An RSS Description",
|
description => "An RSS Description with an extra space",
|
||||||
|
title => "Title with extra dash",
|
||||||
},
|
},
|
||||||
undef,
|
undef,
|
||||||
undef,
|
undef,
|
||||||
{
|
{
|
||||||
skipAutoCommitWorkflows => 1,
|
skipAutoCommitWorkflows => 1,
|
||||||
});
|
});
|
||||||
|
diag $album->get('title');
|
||||||
|
diag $album->get('description');
|
||||||
my @photos;
|
my @photos;
|
||||||
for my $i ( 0 .. 5 ) {
|
for my $i ( 0 .. 5 ) {
|
||||||
$photos[ $i ]
|
$photos[ $i ]
|
||||||
|
|
@ -114,9 +119,3 @@ cmp_deeply(
|
||||||
},
|
},
|
||||||
"RSS Datastructure is complete and correct",
|
"RSS Datastructure is complete and correct",
|
||||||
);
|
);
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# Cleanup
|
|
||||||
END {
|
|
||||||
$versionTag->rollback();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue