Merge pull request #2538 from vlakoff/develop-4

Fix config_item() returning stale values
diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php
index 1b8efff..4b45a62 100644
--- a/system/helpers/file_helper.php
+++ b/system/helpers/file_helper.php
@@ -275,7 +275,7 @@
 			switch ($key)
 			{
 				case 'name':
-					$fileinfo['name'] = substr(strrchr($file, DIRECTORY_SEPARATOR), 1);
+					$fileinfo['name'] = basename($file);
 					break;
 				case 'server_path':
 					$fileinfo['server_path'] = $file;
diff --git a/tests/codeigniter/helpers/directory_helper_test.php b/tests/codeigniter/helpers/directory_helper_test.php
index 41370e6..d860473 100644
--- a/tests/codeigniter/helpers/directory_helper_test.php
+++ b/tests/codeigniter/helpers/directory_helper_test.php
@@ -14,6 +14,8 @@
 
 	public function test_directory_map()
 	{
+		$ds = DIRECTORY_SEPARATOR;
+
 		$structure = array(
 			'libraries' => array(
 				'benchmark.html' => '',
@@ -26,11 +28,18 @@
 
 		vfsStream::create($structure, $this->_test_dir);
 
+		// opendir() seems to fail on Windows + vfsStream when there are trailing slashes in directory names
+		if ( ! @opendir(vfsStream::url('testDir')))
+		{
+			$this->markTestSkipped();
+			return;
+		}
+
 		// test default recursive behavior
 		$expected = array(
-			'libraries/' => array(
+			'libraries'.$ds => array(
 				'benchmark.html',
-				'database/' => array('active_record.html', 'binds.html'),
+				'database'.$ds => array('active_record.html', 'binds.html'),
 				'email.html',
 				'0'
 			)
@@ -39,12 +48,12 @@
 		$this->assertEquals($expected, directory_map(vfsStream::url('testDir')));
 
 		// test detection of hidden files
-		$expected['libraries/'][] = '.hiddenfile.txt';
+		$expected['libraries'.$ds][] = '.hiddenfile.txt';
 
-		$this->assertEquals($expected, directory_map(vfsStream::url('testDir'), FALSE, TRUE));
+		$this->assertEquals($expected, directory_map(vfsStream::url('testDir'), 0, TRUE));
 
 		// test recursion depth behavior
-		$this->assertEquals(array('libraries/'), directory_map(vfsStream::url('testDir'), 1));
+		$this->assertEquals(array('libraries'.$ds), directory_map(vfsStream::url('testDir'), 1));
 	}
 
 }