szurubooru/tests/Tests/JobTests/EditPostSourceJobTest.php

82 lines
1.7 KiB
PHP
Raw Normal View History

2014-05-06 11:28:33 +02:00
<?php
class EditPostSourceJobTest extends AbstractTest
{
public function testSaving()
{
$this->prepare();
$this->grantAccess('editPostSource.own');
$post = $this->assert->doesNotThrow(function()
{
return $this->runApi('a');
});
$this->assert->areEqual('a', $post->getSource());
2014-05-06 11:28:33 +02:00
$this->assert->doesNotThrow(function() use ($post)
{
PostModel::getById($post->getId());
2014-05-06 11:28:33 +02:00
});
}
public function testAlmostTooLongText()
{
$this->prepare();
$this->grantAccess('editPostSource.own');
$this->assert->doesNotThrow(function()
{
2014-05-15 10:32:53 +02:00
$this->runApi(str_repeat('a', Core::getConfig()->posts->maxSourceLength));
2014-05-06 11:28:33 +02:00
});
}
public function testTooLongText()
{
$this->prepare();
$this->grantAccess('editPostSource.own');
$this->assert->throws(function()
{
2014-05-15 10:32:53 +02:00
$this->runApi(str_repeat('a', Core::getConfig()->posts->maxSourceLength + 1));
2014-05-06 11:28:33 +02:00
}, 'Source must have at most');
}
2014-05-13 00:02:25 +02:00
public function testEmptyText()
{
$this->prepare();
$this->grantAccess('editPostSource.own');
$post = $this->assert->doesNotThrow(function()
{
return $this->runApi('');
});
$this->assert->areEqual('', $post->getSource());
}
2014-05-06 11:28:33 +02:00
public function testWrongPostId()
{
$this->prepare();
$this->assert->throws(function()
{
Api::run(
new EditPostSourceJob(),
[
JobArgs::ARG_POST_ID => 100,
JobArgs::ARG_NEW_SOURCE => 'alohaa',
2014-05-06 11:28:33 +02:00
]);
}, 'Invalid post ID');
}
protected function runApi($text)
{
$post = $this->postMocker->mockSingle();
2014-05-06 11:28:33 +02:00
return Api::run(
new EditPostSourceJob(),
[
JobArgs::ARG_POST_ID => $post->getId(),
JobArgs::ARG_NEW_SOURCE => $text
2014-05-06 11:28:33 +02:00
]);
}
protected function prepare()
{
$this->login($this->userMocker->mockSingle());
2014-05-06 11:28:33 +02:00
}
}