szurubooru/tests/JobTests/ListCommentsJobTest.php

67 lines
1.5 KiB
PHP
Raw Normal View History

<?php
2014-05-06 11:18:04 +02:00
class ListCommentJobTest extends AbstractTest
{
public function testNone()
{
2014-05-06 13:07:24 +02:00
$this->grantAccess('listComments');
$this->assert->areEqual(0, CommentModel::getCount());
$ret = $this->runApi(1);
$this->assert->areEqual(0, count($ret->entities));
}
public function testSingle()
{
2014-05-06 13:07:24 +02:00
$this->grantAccess('listComments');
$this->grantAccess('listPosts');
$this->assert->areEqual(0, CommentModel::getCount());
$this->mockComment($this->mockUser());
$ret = $this->runApi(1);
$this->assert->areEqual(1, count($ret->entities));
$post = $ret->entities[0];
$samePost = $this->assert->doesNotThrow(function() use ($post)
{
return PostModel::getById($post->getId());
});
//posts retrieved via ListCommentsJob should already have cached its comments
$this->assert->areNotEquivalent($post, $samePost);
$post->resetCache();
$samePost->resetCache();
$this->assert->areEquivalent($post, $samePost);
}
public function testPaging()
{
2014-05-06 13:07:24 +02:00
$this->grantAccess('listComments');
$this->grantAccess('listPosts');
getConfig()->comments->commentsPerPage = 2;
$this->assert->areEqual(0, CommentModel::getCount());
$this->mockComment($this->mockUser());
$this->mockComment($this->mockUser());
$this->mockComment($this->mockUser());
$ret = $this->runApi(1);
$this->assert->areEqual(2, count($ret->entities));
$ret = $this->runApi(2);
$this->assert->areEqual(1, count($ret->entities));
}
protected function runApi($page)
{
return Api::run(
new ListCommentsJob(),
[
ListCommentsJob::PAGE_NUMBER => $page,
]);
}
}