diff --git a/lib/files/mapper.php b/lib/files/mapper.php index 2b6890472e3..15f5f0628b5 100644 --- a/lib/files/mapper.php +++ b/lib/files/mapper.php @@ -191,8 +191,8 @@ class Mapper // apply index to file name if ($index !== null) { - array_pop($sluggedElements); - array_push($sluggedElements, $filename.'-'.$index); + $last= array_pop($sluggedElements); + array_push($sluggedElements, $last.'-'.$index); } // add back the extension diff --git a/tests/lib/files/mapper.php b/tests/lib/files/mapper.php index 36221f8bcaa..79005eefdcb 100644 --- a/tests/lib/files/mapper.php +++ b/tests/lib/files/mapper.php @@ -34,8 +34,19 @@ class Mapper extends \PHPUnit_Framework_TestCase { } public function testSlugifyPath() { + // with extension $this->assertEquals('D:/text.txt', $this->mapper->slugifyPath('D:/text.txt')); $this->assertEquals('D:/text-2.txt', $this->mapper->slugifyPath('D:/text.txt', 2)); $this->assertEquals('D:/a/b/text.txt', $this->mapper->slugifyPath('D:/a/b/text.txt')); + + // without extension + $this->assertEquals('D:/text', $this->mapper->slugifyPath('D:/text')); + $this->assertEquals('D:/text-2', $this->mapper->slugifyPath('D:/text', 2)); + $this->assertEquals('D:/a/b/text', $this->mapper->slugifyPath('D:/a/b/text')); + + // with double dot + $this->assertEquals('D:/text-text.txt', $this->mapper->slugifyPath('D:/text.text.txt')); + $this->assertEquals('D:/text-text-2.txt', $this->mapper->slugifyPath('D:/text.text.txt', 2)); + $this->assertEquals('D:/a/b/text-text.txt', $this->mapper->slugifyPath('D:/a/b/text.text.txt')); } }