コード例 #1
0
ファイル: main.php プロジェクト: jacomyma/GEXF-Atlas
 /**
  * Callback for the hook ezcWebdavServer::receivedRequest().
  *
  * Parameters are:
  * - ezcWebdavRequest request
  *
  * Needs to react directly on:
  * - ezcWebdavLockRequest
  * - ezcWebdavUnlockRequest
  *
  * Needs to check if lock violations occur on:
  * - ezcWebdavCopyRequest
  * - ezcWebdavMoveRequest
  * - ezcWebdavMakeCollectionRequest
  * - ezcWebdavPropPatchRequest
  * - ezcWebdavPutRequest
  * 
  * @param ezcWebdavPluginParameters $params 
  * @return ezcWebdavResponse|null
  */
 public function receivedRequest(ezcWebdavPluginParameters $params)
 {
     $request = $params['request'];
     $requestClass = get_class($request);
     if (isset(ezcWebdavLockPlugin::$requestHandlingMap[$requestClass])) {
         // Set headers parsed by the lock plugin only.
         $request->setHeader('If', $this->headerHandler->parseIfHeader($request));
         $request->setHeader('Timeout', $this->headerHandler->parseTimeoutHeader($request));
         $request->setHeader('Lock-Token', $this->headerHandler->parseLockTokenHeader($request));
         $request->validateHeaders();
         $handlerClass = ezcWebdavLockPlugin::$requestHandlingMap[$requestClass];
         $this->handler = new $handlerClass(new ezcWebdavLockTools($this->options));
         if ($this->handler->needsBackendLock) {
             ezcWebdavServer::getInstance()->backend->lock($this->options->backendLockWaitTime, $this->options->backendLockTimeout);
         }
         $res = null;
         try {
             $res = $this->handler->receivedRequest($request);
         } catch (Exception $e) {
             if ($this->handler->needsBackendLock) {
                 ezcWebdavServer::getInstance()->backend->unlock();
             }
             throw $e;
         }
         return $res;
     }
     // return null
 }
コード例 #2
0
 /**
  * testParseNoTaggedList 
  * 
  * @param mixed $content 
  * @param mixed $result 
  * @return void
  *
  * @dataProvider provideIfHeaderData
  */
 public function testParseIfHeader($content, $result)
 {
     $_SERVER['HTTP_IF'] = $content;
     $handler = new ezcWebdavLockHeaderHandler();
     $this->assertEquals($result, $handler->parseIfHeader());
 }