Removing trailing dot in path that samba doesn't seem to like
Fixes #5778 Added unit test for getId() and constructUrl()
This commit is contained in:
parent
a7962faa56
commit
8ab40f1959
|
@ -47,8 +47,13 @@ class SMB extends \OC\Files\Storage\StreamWrapper{
|
|||
|
||||
public function constructUrl($path) {
|
||||
if (substr($path, -1)=='/') {
|
||||
$path=substr($path, 0, -1);
|
||||
$path = substr($path, 0, -1);
|
||||
}
|
||||
if (substr($path, 0, 1)=='/') {
|
||||
$path = substr($path, 1);
|
||||
}
|
||||
// remove trailing dots which some versions of samba don't seem to like
|
||||
$path = rtrim($path, '.');
|
||||
$path = urlencode($path);
|
||||
$user = urlencode($this->user);
|
||||
$pass = urlencode($this->password);
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Vincent Petry <pvince81@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
namespace Test\Files\Storage;
|
||||
|
||||
class SMBFunctions extends \PHPUnit_Framework_TestCase {
|
||||
|
||||
public function setUp() {
|
||||
$id = uniqid();
|
||||
// dummy config
|
||||
$this->config = array(
|
||||
'run'=>false,
|
||||
'user'=>'test',
|
||||
'password'=>'testpassword',
|
||||
'host'=>'smbhost',
|
||||
'share'=>'/sharename',
|
||||
'root'=>'/rootdir/',
|
||||
);
|
||||
|
||||
$this->instance = new \OC\Files\Storage\SMB($this->config);
|
||||
}
|
||||
|
||||
public function tearDown() {
|
||||
}
|
||||
|
||||
public function testGetId() {
|
||||
$this->assertEquals('smb::test@smbhost//sharename//rootdir/', $this->instance->getId());
|
||||
}
|
||||
|
||||
public function testConstructUrl() {
|
||||
$this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc", $this->instance->constructUrl('/abc'));
|
||||
$this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc", $this->instance->constructUrl('/abc/'));
|
||||
$this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc%2F", $this->instance->constructUrl('/abc/.'));
|
||||
$this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc%2Fdef", $this->instance->constructUrl('/abc/def'));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue