helper('directory'); vfsStreamWrapper::register(); vfsStreamWrapper::setRoot(new vfsStreamDirectory('testDir')); $this->_test_dir = vfsStreamWrapper::getRoot(); } public function test_directory_map() { $ds = DIRECTORY_SEPARATOR; $structure = array( 'libraries' => array( 'benchmark.html' => '', 'database' => array('active_record.html' => '', 'binds.html' => ''), 'email.html' => '', '0' => '', '.hiddenfile.txt' => '' ) ); vfsStream::create($structure, $this->_test_dir); // is_dir(), opendir(), etc. seem to fail on Windows + vfsStream when there are trailing backslashes in directory names if ( ! is_dir(vfsStream::url('testDir').DIRECTORY_SEPARATOR)) { $this->markTestSkipped("Can't test this under Windows"); return; } // test default recursive behavior $expected = array( 'libraries'.$ds => array( 'benchmark.html', 'database'.$ds => array('active_record.html', 'binds.html'), 'email.html', '0' ) ); $this->assertEquals($expected, directory_map(vfsStream::url('testDir'))); // test detection of hidden files $expected['libraries'.$ds][] = '.hiddenfile.txt'; $this->assertEquals($expected, directory_map(vfsStream::url('testDir'), 0, TRUE)); // test recursion depth behavior $this->assertEquals(array('libraries'.$ds), directory_map(vfsStream::url('testDir'), 1)); } }