fix #11964 files show in trash and old revisions
This commit is contained in:
parent
336075784c
commit
55920f59e0
5 changed files with 224 additions and 34 deletions
|
|
@ -25,7 +25,7 @@ use JSON;
|
|||
|
||||
use Test::More; # increment this value for each test you create
|
||||
use Test::Deep;
|
||||
plan tests => 13;
|
||||
plan tests => 18;
|
||||
|
||||
#TODO: This script tests certain aspects of WebGUI::Storage and it should not
|
||||
|
||||
|
|
@ -126,6 +126,42 @@ WebGUI::Test::addToCleanup( WebGUI::VersionTag->getWorking( $session ) );
|
|||
is( $newRev->getStorageLocation->getFileContentsAsScalar('.wgaccess'), undef, "wgaccess doesn't exist" );
|
||||
note( @{ $newRev->getStorageLocation->getFiles() } );
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# commit on new revision trashes old revision
|
||||
$newRev->commit;
|
||||
my $storage = $asset->getStorageLocation;
|
||||
my $dir = $storage->getPathClassDir();
|
||||
ok(-e $dir->file('.wgaccess')->stringify, 'commit: .wgaccess file created');
|
||||
my $privs;
|
||||
$privs = $storage->getFileContentsAsScalar('.wgaccess');
|
||||
is ($privs, '{"state":"trash"}', '... correct state');
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# trash should update storage location
|
||||
my $tag = WebGUI::VersionTag->getWorking( $session );
|
||||
$asset = $defaultAsset->addChild( $properties );
|
||||
$asset->getStorageLocation->addFileFromScalar($filename, $filename);
|
||||
$asset->update({
|
||||
filename => $filename,
|
||||
});
|
||||
|
||||
$tag->commit;
|
||||
addToCleanup( $tag );
|
||||
$asset->trash;
|
||||
my $storage = $asset->getStorageLocation;
|
||||
my $dir = $storage->getPathClassDir();
|
||||
ok(-e $dir->file('.wgaccess')->stringify, 'trash: .wgaccess file created')
|
||||
or note( $dir->file('.wgaccess')->stringify );
|
||||
my $privs;
|
||||
$privs = $storage->getFileContentsAsScalar('.wgaccess');
|
||||
is ($privs, '{"state":"trash"}', '... correct state');
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# restore should de-trash storage location
|
||||
$asset->restore;
|
||||
unlike( $storage->getFileContentsAsScalar('.wgaccess'), qr{"state"\:"trash"}, "wgaccess not trashed" );
|
||||
|
||||
|
||||
############################################
|
||||
#
|
||||
# www_view
|
||||
|
|
|
|||
60
t/Storage.t
60
t/Storage.t
|
|
@ -31,7 +31,7 @@ my $cwd = Cwd::cwd();
|
|||
|
||||
my ($extensionTests, $fileIconTests, $block_extension_tests) = setupDataDrivenTests($session);
|
||||
|
||||
plan tests => 141
|
||||
plan tests => 155
|
||||
+ scalar @{ $extensionTests }
|
||||
+ scalar @{ $fileIconTests }
|
||||
+ scalar @{ $block_extension_tests }
|
||||
|
|
@ -518,6 +518,64 @@ foreach my $iconTest (@{ $fileIconTests }) {
|
|||
is( $storage1->getFileIconUrl($iconTest->{filename}), $iconTest->{iconUrl}, $iconTest->{comment} );
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# writeAccess
|
||||
my $shallowStorage = WebGUI::Storage->create($session);
|
||||
addToCleanup($shallowStorage);
|
||||
$shallowStorage->writeAccess( users => ["3"], groups => ["2"], assets => ["1"] );
|
||||
my $shallowDir = $shallowStorage->getPathClassDir();
|
||||
ok(-e $shallowDir->file('.wgaccess')->stringify, 'writeAccess: .wgaccess file created in shallow storage');
|
||||
my $privs;
|
||||
$privs = $shallowStorage->getFileContentsAsScalar('.wgaccess');
|
||||
is ($privs, '{"assets":["1"],"groups":["2"],"users":["3"]}', '... correct group contents');
|
||||
$shallowStorage->deleteFile('.wgaccess');
|
||||
|
||||
my $deepStorage = WebGUI::Storage->create($session);
|
||||
addToCleanup($deepStorage);
|
||||
my $deepDir = $deepStorage->getPathClassDir();
|
||||
my $deepDeepDir = $deepDir->subdir('deep');
|
||||
my $errorStr;
|
||||
$deepDeepDir->mkpath({ error => \$errorStr } );
|
||||
ok(-e $deepDeepDir->stringify, 'created storage directory with a subdirectory for testing');
|
||||
|
||||
$deepStorage->writeAccess( users => ["3"], groups => ["2"], assets => ["1"] );
|
||||
ok(-e $deepDir->file('.wgaccess')->stringify, '.wgaccess file created in deep storage');
|
||||
ok(-e $deepDeepDir->file('.wgaccess')->stringify, '.wgaccess file created in deep storage subdir');
|
||||
|
||||
$privs = $deepStorage->getFileContentsAsScalar('.wgaccess');
|
||||
is ($privs, '{"assets":["1"],"groups":["2"],"users":["3"]}', '... correct group contents, deep storage');
|
||||
$privs = $deepStorage->getFileContentsAsScalar('deep/.wgaccess');
|
||||
is ($privs, '{"assets":["1"],"groups":["2"],"users":["3"]}', '... correct group contents, deep storage subdir');
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# trash
|
||||
my $shallowStorage = WebGUI::Storage->create($session);
|
||||
addToCleanup($shallowStorage);
|
||||
$shallowStorage->trash;
|
||||
my $shallowDir = $shallowStorage->getPathClassDir();
|
||||
ok(-e $shallowDir->file('.wgaccess')->stringify, 'trash: .wgaccess file created in shallow storage');
|
||||
my $privs;
|
||||
$privs = $shallowStorage->getFileContentsAsScalar('.wgaccess');
|
||||
is ($privs, '{"state":"trash"}', '... correct state');
|
||||
$shallowStorage->deleteFile('.wgaccess');
|
||||
|
||||
my $deepStorage = WebGUI::Storage->create($session);
|
||||
addToCleanup($deepStorage);
|
||||
my $deepDir = $deepStorage->getPathClassDir();
|
||||
my $deepDeepDir = $deepDir->subdir('deep');
|
||||
my $errorStr;
|
||||
$deepDeepDir->mkpath({ error => \$errorStr } );
|
||||
ok(-e $deepDeepDir->stringify, 'created storage directory with a subdirectory for testing');
|
||||
|
||||
$deepStorage->trash;
|
||||
ok(-e $deepDir->file('.wgaccess')->stringify, '.wgaccess file created in deep storage');
|
||||
ok(-e $deepDeepDir->file('.wgaccess')->stringify, '.wgaccess file created in deep storage subdir');
|
||||
|
||||
$privs = $deepStorage->getFileContentsAsScalar('.wgaccess');
|
||||
is ($privs, '{"state":"trash"}', '... correct state contents, deep storage');
|
||||
$privs = $deepStorage->getFileContentsAsScalar('deep/.wgaccess');
|
||||
is ($privs, '{"state":"trash"}', '... correct state contents, deep storage subdir');
|
||||
|
||||
####################################################
|
||||
#
|
||||
# setPrivileges
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue