function testSearchOutsideJail() { $file1 = 'foo/foobar'; $file2 = 'folder/foobar'; $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder'); $this->sourceCache->put($file1, $data1); $this->sourceCache->put($file2, $data1); $this->assertCount(2, $this->sourceCache->search('%foobar')); $result = $this->cache->search('%foobar%'); $this->assertCount(1, $result); $this->assertEquals('foobar', $result[0]['path']); }
function testSearch() { $file1 = 'folder'; $file2 = 'folder/foobar'; $file3 = 'folder/foo'; $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder'); $fileData = array(); $fileData['foobar'] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); $fileData['foo'] = array('size' => 20, 'mtime' => 25, 'mimetype' => 'foo/file'); $this->cache->put($file1, $data1); $this->cache->put($file2, $fileData['foobar']); $this->cache->put($file3, $fileData['foo']); $this->assertEquals(2, count($this->cache->search('%foo%'))); $this->assertEquals(1, count($this->cache->search('foo'))); $this->assertEquals(1, count($this->cache->search('%folder%'))); $this->assertEquals(1, count($this->cache->search('folder%'))); $this->assertEquals(3, count($this->cache->search('%'))); // case insensitive search should match the same files $this->assertEquals(2, count($this->cache->search('%Foo%'))); $this->assertEquals(1, count($this->cache->search('Foo'))); $this->assertEquals(1, count($this->cache->search('%Folder%'))); $this->assertEquals(1, count($this->cache->search('Folder%'))); $this->assertEquals(3, count($this->cache->searchByMime('foo'))); $this->assertEquals(2, count($this->cache->searchByMime('foo/file'))); }
/** * search for files matching $pattern * * @param string $pattern * @return array an array of file data */ public function search($pattern) { $results = $this->cache->search($pattern); return array_map(array($this, 'formatCacheEntry'), $results); }