mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-22 21:15:55 +03:00
Proper cleanup of the shared directory.
This commit is contained in:
parent
9822002480
commit
ab439f8f0f
2 changed files with 51 additions and 3 deletions
|
@ -31,7 +31,7 @@ use Carp::Assert;
|
|||
use Digest::MD5;
|
||||
use Unicode::Normalize;
|
||||
use LWP::UserAgent;
|
||||
use HTTP::Request::Common;
|
||||
use HTTP::Request::Common qw( POST DELETE );
|
||||
use File::Basename;
|
||||
|
||||
use Encode qw(from_to);
|
||||
|
@ -63,7 +63,7 @@ our %config;
|
|||
assertLocalDirs assertLocalAndRemoteDir glob_put put_to_dir
|
||||
putToDirLWP localDir remoteDir localCleanup createLocalFile md5OfFile
|
||||
remoteCleanup server initLocalDir initRemoteDir moveRemoteFile
|
||||
printInfo remoteFileId createShare
|
||||
printInfo remoteFileId createShare removeShare
|
||||
configValue testDirUrl);
|
||||
|
||||
sub server
|
||||
|
@ -634,11 +634,54 @@ sub createShare($$)
|
|||
$req->authorization_basic($share_user, $share_passwd);
|
||||
my $response = $ua->request($req);
|
||||
|
||||
my $id = 0;
|
||||
if ($response->is_success()) {
|
||||
# print "OK: ", $response->content;
|
||||
print $response->decoded_content;
|
||||
if( $response->decoded_content =~ /<id>(\d+)<\/id>/m) {
|
||||
$id = $1;
|
||||
}
|
||||
} else {
|
||||
die( "Create sharing failed: " . $response->as_string );
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
|
||||
sub removeShare($$)
|
||||
{
|
||||
my ($shareId, $dir) = @_;
|
||||
|
||||
my $dd = HTTP::DAV->new();
|
||||
|
||||
$dd->credentials( -url => $owncloud, -realm=>"ownCloud",
|
||||
-user => $share_user,
|
||||
-pass => $share_passwd );
|
||||
$dd->open( $owncloud);
|
||||
|
||||
my $ua = LWP::UserAgent->new();
|
||||
$ua->agent( "ownCloudTest_sharing");
|
||||
# http://localhost/ocm/ocs/v1.php/apps/files_sharing/api/v1/shares
|
||||
my $url = $ocs_url . "apps/files_sharing/api/v1/shares/" . $shareId;
|
||||
|
||||
my $req = DELETE $url;
|
||||
$req->authorization_basic($share_user, $share_passwd);
|
||||
my $response = $ua->request($req);
|
||||
|
||||
if ($response->is_success()) {
|
||||
# print "OK: ", $response->content;
|
||||
print $response->decoded_content;
|
||||
if( $response->decoded_content =~ /<status_code>(\d+)<\/status_code>/m) {
|
||||
my $code = $1;
|
||||
assert( $code == 100 );
|
||||
}
|
||||
} else {
|
||||
die( "Create sharing failed: " . $response->as_string );
|
||||
}
|
||||
|
||||
# remove the share dir
|
||||
my $req = DELETE $owncloud . $dir;
|
||||
$req->authorization_basic($share_user, $share_passwd);
|
||||
my $response = $ua->request($req);
|
||||
}
|
||||
|
||||
#
|
||||
|
|
|
@ -37,7 +37,10 @@ initTesting();
|
|||
my $share_dir = "share_source";
|
||||
|
||||
printInfo( "Create a share." );
|
||||
createShare( $share_dir, 31 );
|
||||
my $shareId = createShare( $share_dir, 31 );
|
||||
print "Created share with id <$shareId>\n";
|
||||
|
||||
assert( $shareId > 0 );
|
||||
|
||||
# put a couple of files into the shared directory in the sharer account
|
||||
glob_put( 'sharing/*', $share_dir, { user => configValue('share_user'),
|
||||
|
@ -56,6 +59,8 @@ createLocalFile( localDir(). $share_dir . "/foobar.txt", 8094 );
|
|||
csync( server()."Shared" );
|
||||
assertLocalAndRemoteDir( 'Shared', 0, server() );
|
||||
|
||||
printInfo("Remove a Share.");
|
||||
removeShare($shareId, $share_dir);
|
||||
cleanup();
|
||||
|
||||
# --
|
||||
|
|
Loading…
Reference in a new issue