Skip to content

Commit

Permalink
move tests from protected method to name()
Browse files Browse the repository at this point in the history
  • Loading branch information
saeideng committed Mar 28, 2018
1 parent 7b576d3 commit 5347287
Showing 1 changed file with 45 additions and 26 deletions.
71 changes: 45 additions & 26 deletions tests/TestCase/Filesystem/FileTest.php
Expand Up @@ -17,6 +17,7 @@
use Cake\Filesystem\File; use Cake\Filesystem\File;
use Cake\Filesystem\Folder; use Cake\Filesystem\Folder;
use Cake\TestSuite\TestCase; use Cake\TestSuite\TestCase;
use SplFileInfo;


/** /**
* FileTest class * FileTest class
Expand Down Expand Up @@ -142,15 +143,33 @@ public function testUtf8Filenames()
* @dataProvider baseNameValueProvider * @dataProvider baseNameValueProvider
* @return void * @return void
*/ */
public function testBasename($path, $suffix) public function testBasename($path, $suffix, $isRoot)
{ {
$class = new \ReflectionClass('Cake\Filesystem\File'); if (!$isRoot) {
$method = $class->getMethod('_basename'); $path = TMP . 'tests/permissions' . $path;
$method->setAccessible(true); }
$File = new File($path, false);

//some of paths is directory like '/etc/sudoers.d'
if (!is_dir($path)) {
//test the name after running __construct()
$result = $File->name;
$expecting = basename($path);
$this->assertEquals($expecting, $result);
}

//test the name()
$splInfo = new SplFileInfo($path);
$File->name = ltrim($splInfo->getFilename(), '/\\');
if ($suffix === null) { if ($suffix === null) {
$this->assertEquals(basename($path), $method->invokeArgs(null, [$path])); $File->info();//to set and unset 'extension' in bellow
if (isset($File->info['extension'])) {
unset($File->info['extension']);
}
$this->assertEquals(basename($path), $File->name());
} else { } else {
$this->assertEquals(basename($path, $suffix), $method->invokeArgs(null, [$path, $suffix])); $File->info['extension'] = $suffix;
$this->assertEquals(basename($path, '.' . $suffix), $File->name());
} }
} }


Expand All @@ -162,28 +181,28 @@ public function testBasename($path, $suffix)
public function baseNameValueProvider() public function baseNameValueProvider()
{ {
return [ return [
['folder/نام.txt', null], ['folder/نام.txt', null, false],
['folder/نام فارسی.txt', null], ['folder/نام فارسی.txt', null, false],
['نام.txt', null], ['نام.txt', null, true],
['نام فارسی.txt', null], ['نام فارسی.txt', null, true],
['/نام.txt', null], ['/نام.txt', null, true],
['/نام فارسی.txt', null], ['/نام فارسی.txt', null, true],
// //
['folder/نام.txt', '.txt'], ['folder/نام.txt', 'txt', false],
['folder/نام فارسی.txt', '.txt'], ['folder/نام فارسی.txt', 'txt', false],
['نام.txt', '.txt'], ['نام.txt', 'txt', true],
['نام فارسی.txt', '.txt'], ['نام فارسی.txt', 'txt', true],
['/نام.txt', '.txt'], ['/نام.txt', 'txt', true],
['/نام فارسی.txt', '.txt'], ['/نام فارسی.txt', 'txt', true],
// //
['abcde.ab', '.abe'], ['abcde.ab', 'abe', false],
['/etc/sudoers.d', null], ['/etc/sudoers.d', null, true],
['/etc/.d', '.d'], ['/etc/.d', 'd', true],
['/etc/sudoers.d', '.d'], ['/etc/sudoers.d', 'd', true],
['/etc/passwd', null], ['/etc/passwd', null, true],
['/etc/', null], ['/etc/', null, true],
['.', null], ['.', null, true],
['/', null], ['/', null, true],
]; ];
} }


Expand Down

0 comments on commit 5347287

Please sign in to comment.