mirror of
https://github.com/wallabag/wallabag.git
synced 2025-01-09 08:25:25 +00:00
Add test and fix migration
This commit is contained in:
parent
222e09f140
commit
a7e2218e25
3 changed files with 51 additions and 5 deletions
|
@ -4,16 +4,43 @@ namespace Application\Migrations;
|
||||||
|
|
||||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||||
|
use Wallabag\CoreBundle\Entity\Entry;
|
||||||
|
|
||||||
class Version20160410190541 extends AbstractMigration
|
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var ContainerInterface
|
||||||
|
*/
|
||||||
|
private $container;
|
||||||
|
|
||||||
|
public function setContainer(ContainerInterface $container = null)
|
||||||
|
{
|
||||||
|
$this->container = $container;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Schema $schema
|
* @param Schema $schema
|
||||||
*/
|
*/
|
||||||
public function up(Schema $schema)
|
public function up(Schema $schema)
|
||||||
{
|
{
|
||||||
$this->addSql('ALTER TABLE wallabag_entry ADD uuid LONGTEXT DEFAULT NULL');
|
$this->addSql('ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL');
|
||||||
$this->addSql('UPDATE wallabag_entry SET uuid = uuid()');
|
|
||||||
|
$em = $this->container->get('doctrine.orm.entity_manager');
|
||||||
|
$queryBuilder = $this->connection->createQueryBuilder();
|
||||||
|
$queryBuilder
|
||||||
|
->select('e.uuid')
|
||||||
|
->andWhere('e.uuid IS NULL');
|
||||||
|
$entries = $queryBuilder->execute();
|
||||||
|
|
||||||
|
/** @var Entry $entry */
|
||||||
|
foreach ($entries as $entry) {
|
||||||
|
$entry->generateUuid();
|
||||||
|
$em->persist($entry);
|
||||||
|
$em->clear();
|
||||||
|
}
|
||||||
|
$em->flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,6 +48,6 @@ class Version20160410190541 extends AbstractMigration
|
||||||
*/
|
*/
|
||||||
public function down(Schema $schema)
|
public function down(Schema $schema)
|
||||||
{
|
{
|
||||||
$this->addSql('ALTER TABLE `wallabag_entry` DROP uuid');
|
$this->addSql('ALTER TABLE `wallabag_entry` DROP `uuid`');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -630,7 +630,8 @@ class Entry
|
||||||
public function generateUuid()
|
public function generateUuid()
|
||||||
{
|
{
|
||||||
if (empty($this->uuid) || is_null($this->uuid)) {
|
if (empty($this->uuid) || is_null($this->uuid)) {
|
||||||
$this->uuid = uniqid();
|
// @see http://blog.kevingomez.fr/til/2015/07/26/why-is-uniqid-slow/ for true parameter
|
||||||
|
$this->uuid = uniqid('', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -698,4 +698,22 @@ class EntryControllerTest extends WallabagCoreTestCase
|
||||||
$crawler = $client->submit($form, $data);
|
$crawler = $client->submit($form, $data);
|
||||||
$this->assertCount(2, $crawler->filter('div[class=entry]'));
|
$this->assertCount(2, $crawler->filter('div[class=entry]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testCache()
|
||||||
|
{
|
||||||
|
$this->logInAs('admin');
|
||||||
|
$client = $this->getClient();
|
||||||
|
|
||||||
|
$content = $client->getContainer()
|
||||||
|
->get('doctrine.orm.entity_manager')
|
||||||
|
->getRepository('WallabagCoreBundle:Entry')
|
||||||
|
->findOneByUser($this->getLoggedInUserId());
|
||||||
|
|
||||||
|
$client->request('GET', '/share/'.$content->getUuid());
|
||||||
|
$this->assertContains('max-age=25200, public', $client->getResponse()->headers->get('cache-control'));
|
||||||
|
$this->assertNotContains('no-cache', $client->getResponse()->headers->get('cache-control'));
|
||||||
|
|
||||||
|
$client->request('GET', '/view/'.$content->getId());
|
||||||
|
$this->assertContains('no-cache', $client->getResponse()->headers->get('cache-control'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue