|
|
|
|
@ -23,6 +23,7 @@ namespace OCA\DAV\Tests\Unit\Comments;
|
|
|
|
|
|
|
|
|
|
use OC\Comments\Comment;
|
|
|
|
|
use OCA\DAV\Comments\CommentsPlugin as CommentsPluginImplementation;
|
|
|
|
|
use OCP\Comments\IComment;
|
|
|
|
|
use Sabre\DAV\Exception\NotFound;
|
|
|
|
|
|
|
|
|
|
class CommentsPlugin extends \Test\TestCase {
|
|
|
|
|
@ -505,6 +506,98 @@ class CommentsPlugin extends \Test\TestCase {
|
|
|
|
|
$this->plugin->httpPost($request, $response);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @expectedException \Sabre\DAV\Exception\BadRequest
|
|
|
|
|
* @expectedExceptionMessage Message exceeds allowed character limit of
|
|
|
|
|
*/
|
|
|
|
|
public function testCreateCommentMessageTooLong() {
|
|
|
|
|
$commentData = [
|
|
|
|
|
'actorType' => 'users',
|
|
|
|
|
'verb' => 'comment',
|
|
|
|
|
'message' => str_pad('', IComment::MAX_MESSAGE_LENGTH + 1, 'x'),
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
$comment = new Comment([
|
|
|
|
|
'objectType' => 'files',
|
|
|
|
|
'objectId' => '42',
|
|
|
|
|
'actorType' => 'users',
|
|
|
|
|
'actorId' => 'alice',
|
|
|
|
|
'verb' => 'comment',
|
|
|
|
|
]);
|
|
|
|
|
$comment->setId('23');
|
|
|
|
|
|
|
|
|
|
$path = 'comments/files/42';
|
|
|
|
|
|
|
|
|
|
$requestData = json_encode($commentData);
|
|
|
|
|
|
|
|
|
|
$user = $this->getMock('OCP\IUser');
|
|
|
|
|
$user->expects($this->once())
|
|
|
|
|
->method('getUID')
|
|
|
|
|
->will($this->returnValue('alice'));
|
|
|
|
|
|
|
|
|
|
$node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMock();
|
|
|
|
|
$node->expects($this->once())
|
|
|
|
|
->method('getName')
|
|
|
|
|
->will($this->returnValue('files'));
|
|
|
|
|
$node->expects($this->once())
|
|
|
|
|
->method('getId')
|
|
|
|
|
->will($this->returnValue('42'));
|
|
|
|
|
|
|
|
|
|
$node->expects($this->never())
|
|
|
|
|
->method('setReadMarker');
|
|
|
|
|
|
|
|
|
|
$this->commentsManager->expects($this->once())
|
|
|
|
|
->method('create')
|
|
|
|
|
->with('users', 'alice', 'files', '42')
|
|
|
|
|
->will($this->returnValue($comment));
|
|
|
|
|
|
|
|
|
|
$this->userSession->expects($this->once())
|
|
|
|
|
->method('getUser')
|
|
|
|
|
->will($this->returnValue($user));
|
|
|
|
|
|
|
|
|
|
// technically, this is a shortcut. Inbetween EntityTypeCollection would
|
|
|
|
|
// be returned, but doing it exactly right would not be really
|
|
|
|
|
// unit-testing like, as it would require to haul in a lot of other
|
|
|
|
|
// things.
|
|
|
|
|
$this->tree->expects($this->any())
|
|
|
|
|
->method('getNodeForPath')
|
|
|
|
|
->with('/' . $path)
|
|
|
|
|
->will($this->returnValue($node));
|
|
|
|
|
|
|
|
|
|
$request = $this->getMockBuilder('Sabre\HTTP\RequestInterface')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
$response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
$request->expects($this->once())
|
|
|
|
|
->method('getPath')
|
|
|
|
|
->will($this->returnValue('/' . $path));
|
|
|
|
|
|
|
|
|
|
$request->expects($this->once())
|
|
|
|
|
->method('getBodyAsString')
|
|
|
|
|
->will($this->returnValue($requestData));
|
|
|
|
|
|
|
|
|
|
$request->expects($this->once())
|
|
|
|
|
->method('getHeader')
|
|
|
|
|
->with('Content-Type')
|
|
|
|
|
->will($this->returnValue('application/json'));
|
|
|
|
|
|
|
|
|
|
$response->expects($this->never())
|
|
|
|
|
->method('setHeader');
|
|
|
|
|
|
|
|
|
|
$this->server->expects($this->any())
|
|
|
|
|
->method('getRequestUri')
|
|
|
|
|
->will($this->returnValue($path));
|
|
|
|
|
$this->plugin->initialize($this->server);
|
|
|
|
|
|
|
|
|
|
$this->plugin->httpPost($request, $response);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @expectedException \Sabre\DAV\Exception\ReportNotSupported
|
|
|
|
|
*/
|
|
|
|
|
|