namespace Tests\Wallabag\CoreBundle\Controller;
use Tests\Wallabag\CoreBundle\WallabagCoreTestCase;
+use Wallabag\CoreBundle\Entity\Tag;
class TagControllerTest extends WallabagCoreTestCase
{
$entry = $client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
- ->findOneByUsernameAndNotArchived('admin');
+ ->findByUrlAndUserId('http://0.0.0.0/entry1', $this->getLoggedInUserId());
$crawler = $client->request('GET', '/view/'.$entry->getId());
$entry = $client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
- ->findOneByUsernameAndNotArchived('admin');
+ ->findByUrlAndUserId('http://0.0.0.0/entry1', $this->getLoggedInUserId());
- $this->assertEquals(1, count($entry->getTags()));
+ $this->assertEquals(3, count($entry->getTags()));
- # tag already exists and already assigned
+ // tag already exists and already assigned
$client->submit($form, $data);
$this->assertEquals(302, $client->getResponse()->getStatusCode());
->getRepository('WallabagCoreBundle:Entry')
->find($entry->getId());
- $this->assertEquals(1, count($newEntry->getTags()));
+ $this->assertEquals(3, count($newEntry->getTags()));
- # tag already exists but still not assigned to this entry
+ // tag already exists but still not assigned to this entry
$data = [
- 'tag[label]' => 'foo',
+ 'tag[label]' => 'foo bar',
];
$client->submit($form, $data);
->getRepository('WallabagCoreBundle:Entry')
->find($entry->getId());
- $this->assertEquals(2, count($newEntry->getTags()));
+ $this->assertEquals(3, count($newEntry->getTags()));
}
public function testAddMultipleTagToEntry()
$entry = $client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
- ->findOneByUsernameAndNotArchived('admin');
+ ->findByUrlAndUserId('http://0.0.0.0/entry2', $this->getLoggedInUserId());
$crawler = $client->request('GET', '/view/'.$entry->getId());
->find($entry->getId());
$tags = $newEntry->getTags()->toArray();
+ foreach ($tags as $key => $tag) {
+ $tags[$key] = $tag->getLabel();
+ }
+
$this->assertGreaterThanOrEqual(2, count($tags));
- $this->assertNotEquals(false, array_search('foo2', $tags), 'Tag foo2 is assigned to the entry');
- $this->assertNotEquals(false, array_search('bar2', $tags), 'Tag bar2 is assigned to the entry');
+ $this->assertNotFalse(array_search('foo2', $tags), 'Tag foo2 is assigned to the entry');
+ $this->assertNotFalse(array_search('bar2', $tags), 'Tag bar2 is assigned to the entry');
}
public function testRemoveTagFromEntry()
$entry = $client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
- ->findOneByUsernameAndNotArchived('admin');
+ ->findByUrlAndUserId('http://0.0.0.0/entry1', $this->getLoggedInUserId());
$tag = $client->getContainer()
->get('doctrine.orm.entity_manager')
$client->request('GET', '/remove-tag/'.$entry->getId().'/'.$tag->getId());
$this->assertEquals(404, $client->getResponse()->getStatusCode());
+
+ $tag = $client->getContainer()
+ ->get('doctrine.orm.entity_manager')
+ ->getRepository('WallabagCoreBundle:Tag')
+ ->findOneByLabel($this->tagName);
+
+ $this->assertNull($tag, $this->tagName.' was removed because it begun an orphan tag');
+ }
+
+ public function testShowEntriesForTagAction()
+ {
+ $this->logInAs('admin');
+ $client = $this->getClient();
+ $em = $client->getContainer()
+ ->get('doctrine.orm.entity_manager');
+
+ $tag = new Tag();
+ $tag->setLabel($this->tagName);
+
+ $entry = $client->getContainer()
+ ->get('doctrine.orm.entity_manager')
+ ->getRepository('WallabagCoreBundle:Entry')
+ ->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getLoggedInUserId());
+
+ $tag->addEntry($entry);
+
+ $em->persist($entry);
+ $em->persist($tag);
+ $em->flush();
+
+ $tag = $client->getContainer()
+ ->get('doctrine.orm.entity_manager')
+ ->getRepository('WallabagCoreBundle:Tag')
+ ->findOneByEntryAndTagLabel($entry, $this->tagName);
+
+ $crawler = $client->request('GET', '/tag/list/'.$tag->getSlug());
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+ $this->assertCount(1, $crawler->filter('[id*="entry-"]'));
+
+ $entry->removeTag($tag);
+ $em->remove($tag);
+ $em->flush();
}
}