mirror of
https://github.com/wallabag/wallabag.git
synced 2024-12-22 15:46:30 +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\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
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('ALTER TABLE wallabag_entry ADD uuid LONGTEXT DEFAULT NULL');
|
||||
$this->addSql('UPDATE wallabag_entry SET uuid = uuid()');
|
||||
$this->addSql('ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL');
|
||||
|
||||
$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)
|
||||
{
|
||||
$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()
|
||||
{
|
||||
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);
|
||||
$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