コード例 #1
0
 private function doTestDescribe($op, $withSource, $okStatus)
 {
     $backendName = $this->backendClass();
     $source = $op['src'];
     $this->prepare(array('dir' => dirname($source)));
     if ($withSource) {
         $status = $this->backend->doOperation(array('op' => 'create', 'content' => 'blahblah', 'dst' => $source, 'headers' => array('Content-Disposition' => 'xxx')));
         $this->assertGoodStatus($status, "Creation of file at {$source} succeeded ({$backendName}).");
         if ($this->backend->hasFeatures(FileBackend::ATTR_HEADERS)) {
             $attr = $this->backend->getFileXAttributes(array('src' => $source));
             $this->assertHasHeaders(array('Content-Disposition' => 'xxx'), $attr);
         }
         $status = $this->backend->describe(array('src' => $source, 'headers' => array('Content-Disposition' => '')));
         // remove
         $this->assertGoodStatus($status, "Removal of header for {$source} succeeded ({$backendName}).");
         if ($this->backend->hasFeatures(FileBackend::ATTR_HEADERS)) {
             $attr = $this->backend->getFileXAttributes(array('src' => $source));
             $this->assertFalse(isset($attr['headers']['content-disposition']), "File 'Content-Disposition' header removed.");
         }
     }
     $status = $this->backend->doOperation($op);
     if ($okStatus) {
         $this->assertGoodStatus($status, "Describe of file at {$source} succeeded without warnings ({$backendName}).");
         $this->assertEquals(true, $status->isOK(), "Describe of file at {$source} succeeded ({$backendName}).");
         $this->assertEquals(array(0 => true), $status->success, "Describe of file at {$source} has proper 'success' field in Status ({$backendName}).");
         if ($this->backend->hasFeatures(FileBackend::ATTR_HEADERS)) {
             $this->assertHasHeaders($op['headers'], $attr);
         }
     } else {
         $this->assertEquals(false, $status->isOK(), "Describe of file at {$source} failed ({$backendName}).");
     }
     $this->assertBackendPathsConsistent(array($source));
 }