1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-08-01 17:38:38 +00:00

Fix tests

This commit is contained in:
Jeremy Benoist 2018-11-26 22:22:49 +01:00
parent 1b6b77f029
commit 8f2038e5b1
No known key found for this signature in database
GPG key ID: BCA73962457ACC3C
5 changed files with 86 additions and 71 deletions

View file

@ -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);

View file

@ -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');

View file

@ -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();
}
}

View file

@ -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',