mirror of
https://github.com/wallabag/wallabag.git
synced 2025-08-01 17:38:38 +00:00
Fix tests
This commit is contained in:
parent
1b6b77f029
commit
8f2038e5b1
5 changed files with 86 additions and 71 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue