コード例 #1
0
 public function getDirectoryList(array $params)
 {
     return $this->backend->getDirectoryList($params);
 }
コード例 #2
0
 private function doTestGetDirectoryList()
 {
     $backendName = $this->backendClass();
     $base = self::baseStorePath();
     $files = array("{$base}/unittest-cont1/e/test1.txt", "{$base}/unittest-cont1/e/test2.txt", "{$base}/unittest-cont1/e/test3.txt", "{$base}/unittest-cont1/e/subdir1/test1.txt", "{$base}/unittest-cont1/e/subdir1/test2.txt", "{$base}/unittest-cont1/e/subdir2/test3.txt", "{$base}/unittest-cont1/e/subdir2/test4.txt", "{$base}/unittest-cont1/e/subdir2/subdir/test1.txt", "{$base}/unittest-cont1/e/subdir3/subdir/test2.txt", "{$base}/unittest-cont1/e/subdir4/subdir/test3.txt", "{$base}/unittest-cont1/e/subdir4/subdir/test4.txt", "{$base}/unittest-cont1/e/subdir4/subdir/test5.txt", "{$base}/unittest-cont1/e/subdir4/subdir/sub/test0.txt", "{$base}/unittest-cont1/e/subdir4/subdir/sub/120-px-file.txt");
     // Add the files
     $ops = array();
     foreach ($files as $file) {
         $this->prepare(array('dir' => dirname($file)));
         $ops[] = array('op' => 'create', 'content' => 'xxy', 'dst' => $file);
     }
     $status = $this->backend->doQuickOperations($ops);
     $this->assertGoodStatus($status, "Creation of files succeeded ({$backendName}).");
     $this->assertEquals(true, $status->isOK(), "Creation of files succeeded with OK status ({$backendName}).");
     $this->assertEquals(true, $this->backend->directoryExists(array('dir' => "{$base}/unittest-cont1/e/subdir1")), "Directory exists in ({$backendName}).");
     $this->assertEquals(true, $this->backend->directoryExists(array('dir' => "{$base}/unittest-cont1/e/subdir2/subdir")), "Directory exists in ({$backendName}).");
     $this->assertEquals(false, $this->backend->directoryExists(array('dir' => "{$base}/unittest-cont1/e/subdir2/test1.txt")), "Directory does not exists in ({$backendName}).");
     // Expected listing
     $expected = array("e");
     sort($expected);
     // Actual listing (no trailing slash)
     $list = array();
     $iter = $this->backend->getTopDirectoryList(array('dir' => "{$base}/unittest-cont1"));
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct top dir listing ({$backendName}).");
     // Expected listing
     $expected = array("subdir1", "subdir2", "subdir3", "subdir4");
     sort($expected);
     // Actual listing (no trailing slash)
     $list = array();
     $iter = $this->backend->getTopDirectoryList(array('dir' => "{$base}/unittest-cont1/e"));
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct top dir listing ({$backendName}).");
     // Actual listing (with trailing slash)
     $list = array();
     $iter = $this->backend->getTopDirectoryList(array('dir' => "{$base}/unittest-cont1/e/"));
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct top dir listing ({$backendName}).");
     // Expected listing
     $expected = array("subdir");
     sort($expected);
     // Actual listing (no trailing slash)
     $list = array();
     $iter = $this->backend->getTopDirectoryList(array('dir' => "{$base}/unittest-cont1/e/subdir2"));
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct top dir listing ({$backendName}).");
     // Actual listing (with trailing slash)
     $list = array();
     $iter = $this->backend->getTopDirectoryList(array('dir' => "{$base}/unittest-cont1/e/subdir2/"));
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct top dir listing ({$backendName}).");
     // Actual listing (using iterator second time)
     $list = array();
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct top dir listing ({$backendName}), second iteration.");
     // Expected listing (recursive)
     $expected = array("e", "e/subdir1", "e/subdir2", "e/subdir3", "e/subdir4", "e/subdir2/subdir", "e/subdir3/subdir", "e/subdir4/subdir", "e/subdir4/subdir/sub");
     sort($expected);
     // Actual listing (recursive)
     $list = array();
     $iter = $this->backend->getDirectoryList(array('dir' => "{$base}/unittest-cont1/"));
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct dir listing ({$backendName}).");
     // Expected listing (recursive)
     $expected = array("subdir", "subdir/sub");
     sort($expected);
     // Actual listing (recursive)
     $list = array();
     $iter = $this->backend->getDirectoryList(array('dir' => "{$base}/unittest-cont1/e/subdir4"));
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct dir listing ({$backendName}).");
     // Actual listing (recursive, second time)
     $list = array();
     foreach ($iter as $file) {
         $list[] = $file;
     }
     sort($list);
     $this->assertEquals($expected, $list, "Correct dir listing ({$backendName}).");
     $iter = $this->backend->getDirectoryList(array('dir' => "{$base}/unittest-cont1/e/subdir1"));
     $items = $this->listToArray($iter);
     $this->assertEquals(array(), $items, "Directory listing is empty.");
     foreach ($files as $file) {
         // clean up
         $this->backend->doOperation(array('op' => 'delete', 'src' => $file));
     }
     $iter = $this->backend->getDirectoryList(array('dir' => "{$base}/unittest-cont1/not/exists"));
     foreach ($iter as $file) {
         // no errors
     }
     $items = $this->listToArray($iter);
     $this->assertEquals(array(), $items, "Directory listing is empty.");
     $iter = $this->backend->getDirectoryList(array('dir' => "{$base}/unittest-cont1/e/not/exists"));
     $items = $this->listToArray($iter);
     $this->assertEquals(array(), $items, "Directory listing is empty.");
 }