cp = new ComicPress(); vfsStreamWrapper::register(); vfsStreamWrapper::setRoot(new vfsStreamDirectory('root')); } function providerTestCascadeSearch() { $parent = vfsStream::url('root/parent/file'); $child = vfsStream::url('root/child/file'); return array( array(array(), false, false), array(array('child'), false, $child), array(array('parent'), false, $parent), array(array('child', 'parent'), false, $child), array(array('child', 'parent'), true, $parent), ); } /** * @dataProvider providerTestCascadeSearch */ function testCascadeSearch($create, $force_parent, $expected_result) { mkdir(vfsStream::url('root/parent'), 0777); mkdir(vfsStream::url('root/child'), 0777); _set_template_directory(vfsStream::url('root/parent')); _set_stylesheet_directory(vfsStream::url('root/child')); foreach ($create as $type) { file_put_contents(vfsStream::url("root/${type}/file"), 'file'); } $result = $this->cp->cascade_search('file', $force_parent); $this->assertTrue($result === $expected_result); } function providerTestCategorySearch() { return array( array( array('comic'), array(vfsStream::url('root/style/comic')) ), array( array('chapter-1', 'comic'), array(vfsStream::url('root/style/comic'), vfsStream::url('root/style/comic/chapter-1')) ), array( array('part-1', 'chapter-1', 'comic'), array(vfsStream::url('root/style/comic'), vfsStream::url('root/style/comic/chapter-1'), vfsStream::url('root/style/comic/chapter-1/part-1')) ), array( array('comic', 'chapter-1'), array() ), array( array(), array() ) ); } /** * @dataProvider providerTestCategorySearch */ function testCategorySearch($categories, $found_path) { mkdir(vfsStream::url('root/style/comic/chapter-1/part-1'), 0777, true); $this->assertEquals($found_path, $this->cp->category_search($categories, vfsStream::url('root/style'))); } } ?>