mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-23 01:21:03 +00:00
Fix tests
This commit is contained in:
parent
1b6b77f029
commit
8f2038e5b1
5 changed files with 86 additions and 71 deletions
|
@ -44,15 +44,15 @@
|
|||
"ext-tokenizer": "*",
|
||||
"ext-pdo": "*",
|
||||
"symfony/symfony": "3.4.*",
|
||||
"doctrine/orm": "^2.5.12",
|
||||
"doctrine/doctrine-bundle": "^1.8.0",
|
||||
"doctrine/doctrine-cache-bundle": "^1.3.2",
|
||||
"twig/extensions": "^1.5.1",
|
||||
"symfony/swiftmailer-bundle": "^3.2.3",
|
||||
"symfony/monolog-bundle": "^3.1.2",
|
||||
"sensio/distribution-bundle": "^5.0.21",
|
||||
"sensio/framework-extra-bundle": "^5.2.1",
|
||||
"incenteev/composer-parameter-handler": "^2.1.2",
|
||||
"doctrine/orm": "^2.6",
|
||||
"doctrine/doctrine-bundle": "^1.9",
|
||||
"doctrine/doctrine-cache-bundle": "^1.3",
|
||||
"twig/extensions": "^1.5",
|
||||
"symfony/swiftmailer-bundle": "^3.2",
|
||||
"symfony/monolog-bundle": "^3.1",
|
||||
"sensio/distribution-bundle": "^5.0",
|
||||
"sensio/framework-extra-bundle": "^5.2",
|
||||
"incenteev/composer-parameter-handler": "^2.1",
|
||||
"nelmio/cors-bundle": "~1.5",
|
||||
"friendsofsymfony/rest-bundle": "~2.1",
|
||||
"jms/serializer-bundle": "~2.2",
|
||||
|
@ -62,27 +62,26 @@
|
|||
"simplepie/simplepie": "~1.5",
|
||||
"willdurand/hateoas-bundle": "~1.3",
|
||||
"liip/theme-bundle": "^1.4.6",
|
||||
"lexik/form-filter-bundle": "^5.0.4",
|
||||
"lexik/form-filter-bundle": "^5.0",
|
||||
"j0k3r/graby": "^1.0",
|
||||
"friendsofsymfony/user-bundle": "2.0.*",
|
||||
"friendsofsymfony/oauth-server-bundle": "^1.5.2",
|
||||
"friendsofsymfony/oauth-server-bundle": "^1.5",
|
||||
"stof/doctrine-extensions-bundle": "^1.2",
|
||||
"scheb/two-factor-bundle": "^2.14.0",
|
||||
"scheb/two-factor-bundle": "^2.14",
|
||||
"grandt/phpepub": "dev-master",
|
||||
"wallabag/php-mobi": "~1.0.0",
|
||||
"wallabag/php-mobi": "~1.0",
|
||||
"kphoen/rulerz-bundle": "~0.13",
|
||||
"guzzlehttp/guzzle": "^5.3.1",
|
||||
"doctrine/doctrine-migrations-bundle": "^1.3",
|
||||
"paragonie/random_compat": "^2.0.11",
|
||||
"craue/config-bundle": "~2.0",
|
||||
"mnapoli/piwik-twig-extension": "^1.0",
|
||||
"ocramius/proxy-manager": "^1.0.2",
|
||||
"white-october/pagerfanta-bundle": "^1.1.0",
|
||||
"white-october/pagerfanta-bundle": "^1.1",
|
||||
"php-amqplib/rabbitmq-bundle": "^1.14",
|
||||
"predis/predis": "v1.1.x-dev",
|
||||
"javibravo/simpleue": "^2.0",
|
||||
"symfony/dom-crawler": "^3.3.13",
|
||||
"friendsofsymfony/jsrouting-bundle": "^2.2.1",
|
||||
"symfony/dom-crawler": "^3.4",
|
||||
"friendsofsymfony/jsrouting-bundle": "^2.2",
|
||||
"bdunogier/guzzle-site-authenticator": "^1.0.0@dev",
|
||||
"defuse/php-encryption": "^2.1",
|
||||
"html2text/html2text": "^4.1"
|
||||
|
@ -90,10 +89,10 @@
|
|||
"require-dev": {
|
||||
"doctrine/doctrine-fixtures-bundle": "~3.0",
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
"symfony/phpunit-bridge": "3.4.x-dev",
|
||||
"friendsofphp/php-cs-fixer": "~2.0",
|
||||
"m6web/redis-mock": "^2.0",
|
||||
"dama/doctrine-test-bundle": "^4.0"
|
||||
"symfony/phpunit-bridge": "^3.4",
|
||||
"friendsofphp/php-cs-fixer": "~2.13",
|
||||
"m6web/redis-mock": "^4.1",
|
||||
"dama/doctrine-test-bundle": "^5.0"
|
||||
},
|
||||
"scripts": {
|
||||
"post-cmd": [
|
||||
|
|
|
@ -100,8 +100,7 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase
|
|||
$this->assertSame('my quote', $content['quote']);
|
||||
|
||||
/** @var Annotation $annotation */
|
||||
$annotation = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
$annotation = $em
|
||||
->getRepository('WallabagAnnotationBundle:Annotation')
|
||||
->findLastAnnotationByPageId($entry->getId(), 1);
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 1, 'isArchived' => false]);
|
||||
->findOneBy(['user' => $this->getUserId(), 'isArchived' => false]);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -41,7 +41,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 1, 'url' => 'http://0.0.0.0/entry2']);
|
||||
->findOneBy(['user' => $this->getUserId(), 'url' => 'http://0.0.0.0/entry2']);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -60,7 +60,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 1, 'isArchived' => false]);
|
||||
->findOneBy(['user' => $this->getUserId(), 'isArchived' => false]);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -108,7 +108,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 2, 'isArchived' => false]);
|
||||
->findOneBy(['user' => $this->getUserId('bob'), 'isArchived' => false]);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -185,7 +185,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1);
|
||||
->findOneByUser($this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -394,7 +394,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1, ['id' => 'asc']);
|
||||
->findOneByUser($this->getUserId(), ['id' => 'asc']);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -440,7 +440,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$this->assertNull($content['starred_at']);
|
||||
$this->assertNull($content['archived_at']);
|
||||
$this->assertSame('New title for my article', $content['title']);
|
||||
$this->assertSame(1, $content['user_id']);
|
||||
$this->assertSame($this->getUserId(), $content['user_id']);
|
||||
$this->assertCount(2, $content['tags']);
|
||||
$this->assertNull($content['origin_url']);
|
||||
$this->assertSame('my content', $content['content']);
|
||||
|
@ -455,7 +455,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testPostSameEntry()
|
||||
{
|
||||
$em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$entry = new Entry($em->getReference(User::class, 1));
|
||||
$entry = new Entry($em->getReference(User::class, $this->getUserId()));
|
||||
$entry->setUrl('https://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html');
|
||||
$entry->setArchived(true);
|
||||
$entry->addTag((new Tag())->setLabel('google'));
|
||||
|
@ -535,7 +535,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$this->assertSame(1, $content['is_starred']);
|
||||
$this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['starred_at']))->getTimestamp());
|
||||
$this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['archived_at']))->getTimestamp());
|
||||
$this->assertSame(1, $content['user_id']);
|
||||
$this->assertSame($this->getUserId(), $content['user_id']);
|
||||
}
|
||||
|
||||
public function testPostArchivedAndStarredEntryWithoutQuotes()
|
||||
|
@ -584,7 +584,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1);
|
||||
->findOneByUser($this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -611,7 +611,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$this->assertSame($entry->getUrl(), $content['url']);
|
||||
$this->assertSame('New awesome title', $content['title']);
|
||||
$this->assertGreaterThanOrEqual(1, \count($content['tags']), 'We force only one tag');
|
||||
$this->assertSame(1, $content['user_id']);
|
||||
$this->assertSame($this->getUserId(), $content['user_id']);
|
||||
$this->assertSame('de_AT', $content['language']);
|
||||
$this->assertSame('http://preview.io/picture.jpg', $content['preview_picture']);
|
||||
$this->assertContains('sponge', $content['published_by']);
|
||||
|
@ -626,7 +626,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1);
|
||||
->findOneByUser($this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -660,7 +660,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1);
|
||||
->findOneByUser($this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -691,7 +691,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1);
|
||||
->findOneByUser($this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -723,7 +723,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1);
|
||||
->findOneByUser($this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -768,7 +768,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneByUser(1);
|
||||
->findOneByUser($this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -833,7 +833,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 1, 'isArchived' => true]);
|
||||
->findOneBy(['user' => $this->getUserId(), 'isArchived' => true]);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -855,7 +855,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 1, 'isStarred' => true]);
|
||||
->findOneBy(['user' => $this->getUserId(), 'isStarred' => true]);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -877,7 +877,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 1, 'isArchived' => true]);
|
||||
->findOneBy(['user' => $this->getUserId(), 'isArchived' => true]);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -903,7 +903,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$entry = $this->client->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findOneBy(['user' => 1, 'isStarred' => true]);
|
||||
->findOneBy(['user' => $this->getUserId(), 'isStarred' => true]);
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -920,32 +920,27 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['starred_at']))->getTimestamp());
|
||||
}
|
||||
|
||||
public function dataForEntriesExistWithUrl()
|
||||
public function testGetEntriesExistsWithReturnId()
|
||||
{
|
||||
return [
|
||||
'with_id' => [
|
||||
'url' => '/api/entries/exists?url=http://0.0.0.0/entry2&return_id=1',
|
||||
'expectedValue' => 2,
|
||||
],
|
||||
'without_id' => [
|
||||
'url' => '/api/entries/exists?url=http://0.0.0.0/entry2',
|
||||
'expectedValue' => true,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataForEntriesExistWithUrl
|
||||
*/
|
||||
public function testGetEntriesExists($url, $expectedValue)
|
||||
{
|
||||
$this->client->request('GET', $url);
|
||||
$this->client->request('GET', '/api/entries/exists?url=http://0.0.0.0/entry2&return_id=1');
|
||||
|
||||
$this->assertSame(200, $this->client->getResponse()->getStatusCode());
|
||||
|
||||
$content = json_decode($this->client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertSame($expectedValue, $content['exists']);
|
||||
// it returns a database id, we don't know it, so we only check it's greater than the lowest possible value
|
||||
$this->assertGreaterThan(1, $content['exists']);
|
||||
}
|
||||
|
||||
public function testGetEntriesExistsWithoutReturnId()
|
||||
{
|
||||
$this->client->request('GET', '/api/entries/exists?url=http://0.0.0.0/entry2');
|
||||
|
||||
$this->assertSame(200, $this->client->getResponse()->getStatusCode());
|
||||
|
||||
$content = json_decode($this->client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertSame(true, $content['exists']);
|
||||
}
|
||||
|
||||
public function testGetEntriesExistsWithManyUrls()
|
||||
|
@ -960,7 +955,8 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
|
||||
$this->assertArrayHasKey($url1, $content);
|
||||
$this->assertArrayHasKey($url2, $content);
|
||||
$this->assertSame(2, $content[$url1]);
|
||||
// it returns a database id, we don't know it, so we only check it's greater than the lowest possible value
|
||||
$this->assertGreaterThan(1, $content[$url1]);
|
||||
$this->assertNull($content[$url2]);
|
||||
}
|
||||
|
||||
|
@ -1002,7 +998,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
{
|
||||
$entry = $this->client->getContainer()->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findByUrlAndUserId('http://0.0.0.0/entry4', 1);
|
||||
->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getUserId());
|
||||
|
||||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
|
@ -1038,7 +1034,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
{
|
||||
$entry = $this->client->getContainer()->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findByUrlAndUserId('http://0.0.0.0/entry4', 1);
|
||||
->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getUserId());
|
||||
|
||||
$tags = $entry->getTags();
|
||||
|
||||
|
@ -1062,7 +1058,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
|
||||
$entry = $this->client->getContainer()->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findByUrlAndUserId('http://0.0.0.0/entry4', 1);
|
||||
->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getUserId());
|
||||
|
||||
$tags = $entry->getTags();
|
||||
$this->assertCount(4, $tags);
|
||||
|
@ -1082,7 +1078,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testDeleteEntriesTagsListAction()
|
||||
{
|
||||
$em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$entry = new Entry($em->getReference(User::class, 1));
|
||||
$entry = new Entry($em->getReference(User::class, $this->getUserId()));
|
||||
$entry->setUrl('http://0.0.0.0/test-entry');
|
||||
$entry->addTag((new Tag())->setLabel('foo-tag'));
|
||||
$entry->addTag((new Tag())->setLabel('bar-tag'));
|
||||
|
@ -1150,7 +1146,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testDeleteEntriesListAction()
|
||||
{
|
||||
$em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$em->persist((new Entry($em->getReference(User::class, 1)))->setUrl('http://0.0.0.0/test-entry1'));
|
||||
$em->persist((new Entry($em->getReference(User::class, $this->getUserId())))->setUrl('http://0.0.0.0/test-entry1'));
|
||||
|
||||
$em->flush();
|
||||
$em->clear();
|
||||
|
@ -1208,7 +1204,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testRePostEntryAndReUsePublishedAt()
|
||||
{
|
||||
$em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
|
||||
$entry = new Entry($em->getReference(User::class, 1));
|
||||
$entry = new Entry($em->getReference(User::class, $this->getUserId()));
|
||||
$entry->setTitle('Antoine de Caunes : « Je veux avoir le droit de tâtonner »');
|
||||
$entry->setContent('hihi');
|
||||
$entry->setUrl('https://www.lemonde.fr/m-perso/article/2017/06/25/antoine-de-caunes-je-veux-avoir-le-droit-de-tatonner_5150728_4497916.html');
|
||||
|
|
|
@ -48,4 +48,23 @@ abstract class WallabagApiTestCase extends WebTestCase
|
|||
|
||||
return $client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the ID for the user admin.
|
||||
* Used because on heavy testing we don't want to re-create the database on each run.
|
||||
* Which means "admin" user won't have id 1 all the time.
|
||||
*
|
||||
* @param string $username
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getUserId($username = 'admin')
|
||||
{
|
||||
return $this->client
|
||||
->getContainer()
|
||||
->get('doctrine.orm.entity_manager')
|
||||
->getRepository('WallabagUserBundle:User')
|
||||
->findOneByUserName($username)
|
||||
->getId();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,6 +84,8 @@ class ImportCommandTest extends WallabagCoreTestCase
|
|||
|
||||
public function testRunImportCommandWithUserId()
|
||||
{
|
||||
$this->logInAs('admin');
|
||||
|
||||
$application = new Application($this->getClient()->getKernel());
|
||||
$application->add(new ImportCommand());
|
||||
|
||||
|
@ -92,7 +94,7 @@ class ImportCommandTest extends WallabagCoreTestCase
|
|||
$tester = new CommandTester($command);
|
||||
$tester->execute([
|
||||
'command' => $command->getName(),
|
||||
'username' => 1,
|
||||
'username' => $this->getLoggedInUserId(),
|
||||
'filepath' => $application->getKernel()->getContainer()->getParameter('kernel.project_dir') . '/tests/Wallabag/ImportBundle/fixtures/wallabag-v2-read.json',
|
||||
'--useUserId' => true,
|
||||
'--importer' => 'v2',
|
||||
|
|
Loading…
Reference in a new issue