@@ -170,7 +170,6 @@ class CommentNode implements \Sabre\DAV\INode, \Sabre\DAV\IProperties { | |||
function propPatch(PropPatch $propPatch) { | |||
// other properties than 'message' are read only | |||
$propPatch->handle('{'.self::NS_OWNCLOUD.'}message', [$this, 'updateComment']); | |||
$propPatch->commit(); | |||
} | |||
/** |
@@ -43,6 +43,7 @@ class CommentsPlugin extends ServerPlugin { | |||
// namespace | |||
const NS_OWNCLOUD = 'http://owncloud.org/ns'; | |||
const REPORT_NAME = '{http://owncloud.org/ns}filter-comments'; | |||
const REPORT_PARAM_LIMIT = '{http://owncloud.org/ns}limit'; | |||
const REPORT_PARAM_OFFSET = '{http://owncloud.org/ns}offset'; | |||
const REPORT_PARAM_TIMESTAMP = '{http://owncloud.org/ns}datetime'; | |||
@@ -124,6 +125,18 @@ class CommentsPlugin extends ServerPlugin { | |||
return false; | |||
} | |||
/** | |||
* Returns a list of reports this plugin supports. | |||
* | |||
* This will be used in the {DAV:}supported-report-set property. | |||
* | |||
* @param string $uri | |||
* @return array | |||
*/ | |||
public function getSupportedReportSet($uri) { | |||
return [self::REPORT_NAME]; | |||
} | |||
/** | |||
* REPORT operations to look for comments | |||
* | |||
@@ -136,7 +149,7 @@ class CommentsPlugin extends ServerPlugin { | |||
*/ | |||
public function onReport($reportName, $report, $uri) { | |||
$node = $this->server->tree->getNodeForPath($uri); | |||
if(!$node instanceof EntityCollection) { | |||
if(!$node instanceof EntityCollection || $reportName !== self::REPORT_NAME) { | |||
throw new ReportNotSupported(); | |||
} | |||
$args = ['limit' => 0, 'offset' => 0, 'datetime' => null]; |
@@ -114,9 +114,6 @@ class CommentsNode extends \Test\TestCase { | |||
->method('handle') | |||
->with('{http://owncloud.org/ns}message'); | |||
$propPatch->expects($this->once()) | |||
->method('commit'); | |||
$this->node->propPatch($propPatch); | |||
} | |||
@@ -517,7 +517,26 @@ class CommentsPlugin extends \Test\TestCase { | |||
->will($this->returnValue($path)); | |||
$this->plugin->initialize($this->server); | |||
$this->plugin->onReport('', [], '/' . $path); | |||
$this->plugin->onReport(CommentsPluginImplementation::REPORT_NAME, [], '/' . $path); | |||
} | |||
/** | |||
* @expectedException \Sabre\DAV\Exception\ReportNotSupported | |||
*/ | |||
public function testOnReportInvalidReportName() { | |||
$path = 'comments/files/42'; | |||
$this->tree->expects($this->any()) | |||
->method('getNodeForPath') | |||
->with('/' . $path) | |||
->will($this->returnValue($this->getMock('\Sabre\DAV\INode'))); | |||
$this->server->expects($this->any()) | |||
->method('getRequestUri') | |||
->will($this->returnValue($path)); | |||
$this->plugin->initialize($this->server); | |||
$this->plugin->onReport('{whoever}whatever', [], '/' . $path); | |||
} | |||
public function testOnReportDateTimeEmpty() { | |||
@@ -572,7 +591,7 @@ class CommentsPlugin extends \Test\TestCase { | |||
$this->server->httpResponse = $response; | |||
$this->plugin->initialize($this->server); | |||
$this->plugin->onReport('', $parameters, '/' . $path); | |||
$this->plugin->onReport(CommentsPluginImplementation::REPORT_NAME, $parameters, '/' . $path); | |||
} | |||
public function testOnReport() { | |||
@@ -627,7 +646,7 @@ class CommentsPlugin extends \Test\TestCase { | |||
$this->server->httpResponse = $response; | |||
$this->plugin->initialize($this->server); | |||
$this->plugin->onReport('', $parameters, '/' . $path); | |||
$this->plugin->onReport(CommentsPluginImplementation::REPORT_NAME, $parameters, '/' . $path); | |||
} | |||