getClient()->getKernel()); $application->add(new GenerateUrlHashesCommand()); $command = $application->find('wallabag:generate-hashed-urls'); $tester = new CommandTester($command); $tester->execute([ 'command' => $command->getName(), ]); $this->assertContains('Generating hashed urls for the 3 user account entries', $tester->getDisplay()); $this->assertContains('Finished generated hashed urls', $tester->getDisplay()); } public function testRunGenerateUrlHashesCommandWithBadUsername() { $application = new Application($this->getClient()->getKernel()); $application->add(new GenerateUrlHashesCommand()); $command = $application->find('wallabag:generate-hashed-urls'); $tester = new CommandTester($command); $tester->execute([ 'command' => $command->getName(), 'username' => 'unknown', ]); $this->assertContains('User "unknown" not found', $tester->getDisplay()); } public function testRunGenerateUrlHashesCommandForUser() { $application = new Application($this->getClient()->getKernel()); $application->add(new GenerateUrlHashesCommand()); $command = $application->find('wallabag:generate-hashed-urls'); $tester = new CommandTester($command); $tester->execute([ 'command' => $command->getName(), 'username' => 'admin', ]); $this->assertContains('Generated hashed urls for user admin', $tester->getDisplay()); } public function testGenerateUrls() { $url = 'http://www.lemonde.fr/sport/visuel/2017/05/05/rondelle-prison-blanchissage-comprendre-le-hockey-sur-glace_5122587_3242.html'; $client = $this->getClient(); $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $this->logInAs('admin'); $user = $em->getRepository('WallabagUserBundle:User')->findOneById($this->getLoggedInUserId()); $entry1 = new Entry($user); $entry1->setUrl($url); $em->persist($entry1); $em->flush(); $this->assertNull($entry1->getHashedUrl()); $application = new Application($this->getClient()->getKernel()); $application->add(new GenerateUrlHashesCommand()); $command = $application->find('wallabag:generate-hashed-urls'); $tester = new CommandTester($command); $tester->execute([ 'command' => $command->getName(), 'username' => 'admin', ]); $this->assertContains('Generated hashed urls for user admin', $tester->getDisplay()); $entry = $em->getRepository('WallabagCoreBundle:Entry')->findOneByUrl($url); $this->assertEquals($entry->getHashedUrl(), hash('sha512', $url)); $query = $em->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.url = :url'); $query->setParameter('url', $url); $query->execute(); } }