Skip to content

Commit

Permalink
Allow Folder::addPathElement() to accept arrays, also corrected docblock
Browse files Browse the repository at this point in the history
  • Loading branch information
Bryan Crowe committed Oct 3, 2013
1 parent 5e9b222 commit b9003e5
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
17 changes: 15 additions & 2 deletions lib/Cake/Test/Case/Utility/FolderTest.php
Expand Up @@ -345,11 +345,24 @@ public function testZeroAsDirectory() {
* @return void
*/
public function testAddPathElement() {
$expected = DS . 'some' . DS . 'dir' . DS . 'another_path';

$result = Folder::addPathElement(DS . 'some' . DS . 'dir', 'another_path');
$this->assertEquals(DS . 'some' . DS . 'dir' . DS . 'another_path', $result);
$this->assertEquals($expected, $result);

$result = Folder::addPathElement(DS . 'some' . DS . 'dir' . DS, 'another_path');
$this->assertEquals(DS . 'some' . DS . 'dir' . DS . 'another_path', $result);
$this->assertEquals($expected, $result);

$result = Folder::addPathElement(DS . 'some' . DS . 'dir', array('another_path'));
$this->assertEquals($expected, $result);

$result = Folder::addPathElement(DS . 'some' . DS . 'dir' . DS, array('another_path'));
$this->assertEquals($expected, $result);

$expected = DS . 'some' . DS . 'dir' . DS . 'another_path' . DS . 'and' . DS . 'another';

$result = Folder::addPathElement(DS . 'some' . DS . 'dir', array('another_path', 'and', 'another'));
$this->assertEquals($expected, $result);
}

/**
Expand Down
6 changes: 4 additions & 2 deletions lib/Cake/Utility/Folder.php
Expand Up @@ -321,12 +321,14 @@ public static function slashTerm($path) {
* Returns $path with $element added, with correct slash in-between.
*
* @param string $path Path
* @param string $element Element to and at end of path
* @param string|array $element Element to add at end of path
* @return string Combined path
* @link http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::addPathElement
*/
public static function addPathElement($path, $element) {
return rtrim($path, DS) . DS . $element;
$element = (array)$element;
array_unshift($element, rtrim($path, DS));
return implode(DS, $element)
}

/**
Expand Down

0 comments on commit b9003e5

Please sign in to comment.